Jobmaker-LdPost/test-pipeline.sh
Ricardo Carneiro ea532659b0 feat: pipeline inicial ldpost-squad (6 agentes)
Pipeline completo de publicação no LinkedIn:
evaluator → redator → editor → art → director → publisher

- Seed com 37 posts em _sugestoes.md
- Sorteio de formato com N=3 bloqueados (format-history)
- Reciclagem mensal de posts com rotação de formato
- Revisão via Telegram com chat livre (Gemini 2.5 Flash)
- Publicação via LinkedIn API (OAuth2)
- Makefile com targets para Windows/Linux/ARM64

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:55:39 -03:00

90 lines
3.5 KiB
Bash

#!/usr/bin/env bash
# test-pipeline.sh — roda o pipeline completo sem postar no LinkedIn
# Usa workspace de teste separado para não contaminar o real.
#
# Uso: bash test-pipeline.sh [slug]
# slug: força um slug específico do _sugestoes.md (opcional)
#
# Para desfazer tudo depois: bash test-cleanup.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
TEST_WS="$SCRIPT_DIR/workspace-test"
BINS="$SCRIPT_DIR/bin"
# Copiar _sugestoes.md para o workspace de teste
mkdir -p "$TEST_WS/_inbox"
cp "$SCRIPT_DIR/workspace/_inbox/_sugestoes.md" "$TEST_WS/_inbox/_sugestoes.md"
echo ""
echo "══════════════════════════════════════════════"
echo " ldpost — PIPELINE DE TESTE"
echo " Workspace: $TEST_WS"
echo "══════════════════════════════════════════════"
echo ""
# ── 1. Evaluator ──────────────────────────────────────────────────────────────
echo "▶ [1/5] Evaluator — sorteio + aprovação no Telegram..."
if [[ -n "${1:-}" ]]; then
EVALUATOR_FLAGS="--force-slug $1"
else
EVALUATOR_FLAGS=""
fi
SLUG=$("$BINS/ldpost-evaluator.exe" \
--workspace "$TEST_WS" \
$EVALUATOR_FLAGS \
2>&1 | tee /dev/stderr | tail -1)
if [[ -z "$SLUG" ]]; then
echo "❌ Evaluator não retornou slug. Abortando."
exit 1
fi
echo ""
echo "✅ Slug criado: $SLUG"
echo ""
# ── 2. Redator ────────────────────────────────────────────────────────────────
echo "▶ [2/5] Redator — gerando rascunho via Groq..."
"$BINS/ldpost-redator.exe" \
--workspace "$TEST_WS" \
--post "$SLUG"
echo ""
# ── 3. Editor ─────────────────────────────────────────────────────────────────
echo "▶ [3/5] Editor — formatando para LinkedIn..."
echo " (modo não-interativo — use --no-interactive para pular loop)"
"$BINS/ldpost-editor.exe" \
--workspace "$TEST_WS" \
--post "$SLUG" \
--no-interactive
echo ""
# ── 4. Director ───────────────────────────────────────────────────────────────
echo "▶ [4/5] Director — revisão final no Telegram (sem imagens)..."
"$BINS/ldpost-director.exe" \
--workspace "$TEST_WS" \
--post "$SLUG" \
--skip-images
echo ""
# ── 5. Publisher (manual — não posta) ─────────────────────────────────────────
echo "▶ [5/5] Publisher — modo manual (NÃO posta no LinkedIn)"
echo " Quando pedir URL do post, pressione Enter para pular."
echo ""
"$BINS/ldpost-publisher.exe" \
--workspace "$TEST_WS" \
--post "$SLUG" \
--manual
echo ""
echo "══════════════════════════════════════════════"
echo " Pipeline de teste concluído!"
echo " Para limpar: bash test-cleanup.sh"
echo "══════════════════════════════════════════════"