Jobmaker-LdPost/STATUS.md
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

155 lines
4.5 KiB
Markdown

# ldpost-squad — Status do Projeto
> Atualizado: 2026-05-02
> Todos os itens devem ser testáveis de forma independente via CLI.
---
## Fase 0 — Spec & Arquitetura
| Item | Status |
|------|--------|
| `00-arquitetura-mestre.md` — contratos, convenções, estrutura | [ ] |
| `00b-shared-module.md` — módulo compartilhado | [ ] |
| `.env.example` com todas as variáveis necessárias | [ ] |
| `seed/_sugestoes.md` — 30 posts com resumo + 2 imagens cada | [ ] |
---
## Módulo Compartilhado (`shared/`)
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Estruturas comuns (`Post`, `Slug`, `WorkspaceLayout`) | [ ] |
| Utilitários de workspace (resolver paths, criar dirs) | [ ] |
| Helper `.env` / config loader | [ ] |
| Testável: `go test ./shared/...` | [ ] |
---
## CLI 1 — `ldpost-evaluator`
Busca trends, sorteia formato, cria post stub no workspace.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Integração Groq/Gemini para buscar trends | [ ] |
| Sorteio de formato (carrossel / artigo / lista / storytelling) | [ ] |
| Cria `$LDPOST_WORKSPACE/<slug>/post.json` com metadados | [ ] |
| Flag `--topic` para forçar tema manual | [ ] |
| Flag `--format` para forçar formato | [ ] |
| Flag `--dry-run` imprime sem salvar | [ ] |
| Testável: `ldpost-evaluator --topic "IA no RH" --dry-run` | [ ] |
| Testes escritos | [ ] |
---
## CLI 2 — `ldpost-redator`
Gera rascunho do post a partir do stub criado pelo evaluator.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Lê `$LDPOST_WORKSPACE/<slug>/post.json` | [ ] |
| Gera rascunho via Groq/Gemini | [ ] |
| Salva `$LDPOST_WORKSPACE/<slug>/draft.md` | [ ] |
| Flag `--post <slug>` (obrigatória) | [ ] |
| Flag `--model` para escolher modelo LLM | [ ] |
| Flag `--dry-run` imprime sem salvar | [ ] |
| Testável: `ldpost-redator --post meu-slug --dry-run` | [ ] |
| Testes escritos | [ ] |
---
## CLI 3 — `ldpost-editor`
Formata para LinkedIn + loop de revisão interativo.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Lê `draft.md` do workspace do post | [ ] |
| Aplica formatação LinkedIn (emojis, quebras, hashtags) | [ ] |
| Loop de revisão: mostra diff, aceita/rejeita/refina | [ ] |
| Salva `$LDPOST_WORKSPACE/<slug>/final.md` | [ ] |
| Flag `--post <slug>` (obrigatória) | [ ] |
| Flag `--no-interactive` para modo batch | [ ] |
| Testável: `ldpost-editor --post meu-slug --no-interactive` | [ ] |
| Testes escritos | [ ] |
---
## CLI 4 — `ldpost-art`
Gera e cropa imagens para o post.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Lê descrições de imagem do `post.json` | [ ] |
| Gera imagens via Gemini Imagen (ou Groq) | [ ] |
| Cropa para formato LinkedIn (1200x627 ou 1080x1080) | [ ] |
| Salva `$LDPOST_WORKSPACE/<slug>/img/*.png` | [ ] |
| Flag `--post <slug>` (obrigatória) | [ ] |
| Flag `--format square|landscape` (default: landscape) | [ ] |
| Flag `--dry-run` gera prompt sem chamar API | [ ] |
| Testável: `ldpost-art --post meu-slug --dry-run` | [ ] |
| Testes escritos | [ ] |
---
## CLI 5 — `ldpost-director`
Aprovação final via Telegram.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Lê `final.md` + imagens do workspace | [ ] |
| Envia preview completo via Telegram | [ ] |
| Aguarda resposta: aprovar / rejeitar / editar | [ ] |
| Salva status em `$LDPOST_WORKSPACE/<slug>/status.json` | [ ] |
| Flag `--post <slug>` (obrigatória) | [ ] |
| Flag `--skip-telegram` aprova localmente sem bot | [ ] |
| Testável: `ldpost-director --post meu-slug --skip-telegram` | [ ] |
| Testes escritos | [ ] |
---
## CLI 6 — `ldpost-publisher`
Publica no LinkedIn.
| Item | Status |
|------|--------|
| Diretório + `go.mod` | [ ] |
| Lê `final.md` + imagens + `status.json` (deve estar approved) | [ ] |
| Publica via LinkedIn API (ou imprime instruções manuais) | [ ] |
| Registra URL do post publicado em `status.json` | [ ] |
| Flag `--post <slug>` (obrigatória) | [ ] |
| Flag `--manual` imprime conteúdo formatado sem publicar | [ ] |
| Flag `--dry-run` valida sem publicar | [ ] |
| Testável: `ldpost-publisher --post meu-slug --dry-run` | [ ] |
| Testes escritos | [ ] |
---
## Integração End-to-End
| Item | Status |
|------|--------|
| Script de pipeline completo (`run-all.sh` / `.ps1`) | [ ] |
| Testado com post real do zero ao publicado | [ ] |
| Documentação de troubleshooting | [ ] |
---
## Legenda
- `[ ]` Não iniciado
- `[~]` Em progresso
- `[x]` Concluído