- Drop model-selection skill (dead, pool is dormant) - Drop PNG rendering from UI planning (HTML-only, no pnpm ui-draft:render) - Trim code-simplification: 331→~150 lines, Python/React examples moved to reference/ - Compress engineering-brief.md: remove redundant 'Pinhos do repo' (alwaysApply rules) - Deduplicate capture-review-debts: reference decision-quality.md instead of re-explaining - Create concise-output skill (35 lines) to enforce terse agent output - Trim all 99 skill descriptions to ≤1 sentence - Split AGENTS.md into layers: core (73 lines, always) + campaign/public/infra (on-demand) - Decompose plan-issue: exploration sub-agent + parallel plan-writers + register sub-agent - Decompose work-issue: exploration sub-agent + plan-writer + 2 parallel reviewers + debt sub-agent - Update agent-work-issue to match sub-agent pattern
5.5 KiB
| name | description | disable-model-invocation |
|---|---|---|
| plan-issue | Turn human ideas into tracked GitHub Issues with intention plans and UI drafts. | true |
Planejar Issues (intenção, não engenharia)
Transforma ideias soltas em: (1) um plano de intenção em docs/plans/<slug>.md por item, e (2) uma Issue rastreável no GitHub (pnpm agent:register, frontmatter id/depends/serializes/priority/model).
Ciclo de vida
parse (main agent)
→ exploration sub-agent (findings per idea)
→ plan-writing sub-agents (parallel, 1 per idea)
→ GATE (main agent) + confirmação explícita
→ register sub-agent → PR → merge → promote
Regras duras:
- Nada no Forgejo antes do gate. Antes da confirmação: proibido
pnpm agent:register, criar Issue/PR. - Register com
--plannasceblocked. Promote só depois do plano emmain. - Planos de Issues
in-progress/done/in-prodsão imutáveis. - Rascunho UI (obrigatório se muda UI): HTML+Tailwind commitado no repo. Classe A/sem UI → sem rascunho.
Decomposição em sub-agentes
Cada fase pesada é delegada a um sub-agente com contexto mínimo. O agente principal orquestra.
Sub-agente: Explorador
Quando: Passo 3, para cada batch de ideias.
Input: lista de ideias parseadas + AGENTS.md (core) + codebase-map.mdc
Task: Para cada ideia, encontrar: arquivos relevantes existentes, sobreposição com trabalho entregue, área provável no codebase. Não escrever planos nem tomar decisões.
Output: ≤15 linhas por ideia (achados concisos).
Sub-agente: Escritor de plano
Quando: Passo 3, paralelo (1 sub-agente por ideia).
Input: UMA ideia + achados do explorador + intention-template.md + shaping.md (+ ui-draft-html.md se UI)
Task: Escrever docs/plans/<slug>.md conforme o template. Não registrar Issues nem criar arquivos — só produzir o conteúdo do plano.
Output: conteúdo markdown do plano.
Sub-agente: Registrador
Quando: Passo 5, após confirmação do gate.
Input: planos aprovados + IDs reservados
Task: Rodar pnpm agent:register para cada plano. Atualizar headers Issue: #N. Criar PR Related #N.
Output: Issues registradas + links de PR.
Checklist
- [ ] 1. Parse do lote + dedup + carregar camada AGENTS
- [ ] 2. Reserva de IDs
- [ ] 3. Dispatch sub-agente explorador → receber findings
- [ ] 4. Dispatch sub-agentes escritores (paralelo) → receber planos
- [ ] 5. GATE: overview + rascunho UI (se muda UI) → confirmar
- [ ] 6. Dispatch sub-agente registrador → PR → merge → promote
Passo 1 — Parse e dedup
- Separe os itens. Entrada pode ser 1 ideia ou N. Se ambíguo, assuma a leitura mais provável.
- Carregar camada AGENTS relevante: se qualquer item toca
/campanha, leiaAGENTS-campaign.md. Se toca site público, leiaAGENTS-public.md. Se toca deploy/CI, leiaAGENTS-infra.md. - Fatia mínima útil. Prefira várias Issues pequenas a um epic.
- Dedup intra-lote: mesclar | absorver | manter separados com
depends. - Dedup contra o existente:
pnpm issue all+issuesById()+ grep emdocs/plans/*.md.- Já coberto / entregue → apontar e não criar.
- Issue
in-progress/done/in-prod: não editar — item sucessor se mudou. - Issue
blocked/ready(não claimada): pode editar o plano existente.
Passo 2 — Reserva de IDs
Último ID por trilha (A/B/C/D/E) via roadmap legacy + issuesById(). Distribua antes de escrever planos.
Passo 3 — Explorar + escrever planos (sub-agentes)
3a. Dispatch sub-agente explorador
Monte o task prompt do explorador com:
- Lista das ideias parseadas (título + 1-linha de intenção)
- Referência:
AGENTS.md(core) +codebase-map.mdc - Instrução: "Para cada ideia, encontre arquivos relevantes, sobreposição com trabalho entregue, área provável. ≤15 linhas por ideia. Não escreva planos."
Aguarde o output. Valide que é conciso e factual.
3b. Classificar e reservar IDs
Para cada ideia, classifique (feature/chore/bloqueio/não-fazer) e atribua ID.
3c. Dispatch sub-agentes escritores (paralelo)
Para cada ideia, monte o task prompt do escritor com:
- Uma ideia (título + intenção completa + tipo + ID)
- Achados do explorador para essa ideia
- Templates:
intention-template.md,shaping.md - Se UI:
ui-draft-html.md - Se dados:
data-presentation.md - Instrução: "Escreva
docs/plans/<slug>.mdconforme o template. Output: conteúdo markdown."
Dispatche todos os escritores em paralelo (Task tool). Cada um retorna o conteúdo do plano.
3d. Self-score e revisão
O agente principal:
- Valida cada plano contra
shaping.md(self-score ≥4) - Aplica melhorias se necessário
- Cria os arquivos
docs/plans/<slug>.mdno disco - Se UI: cria
docs/plans/<slug>-ui-draft.html(sub-agente ou inline)
Passo 4 — GATE
Antes de criar Issues:
- Overview: ID, título, prio, depends, appetite, link do plano
- Para cada item UI: aponte o link do
.htmlfonte - Perguntas acumuladas, recomendação de produto primeiro
Pare e espere. Itere até confirmação explícita do lote.
Passo 5 — Registro (sub-agente registrador)
Após confirmação, dispatche o sub-agente registrador com:
- Lista de planos aprovados + IDs
- Instrução: rodar
pnpm agent:registerpara cada um, criar PRRelated #N, aguardar merge, rodarpnpm agent:ready
O agente principal validação o resultado e reporta o resumo.
Resumo final
Tabela do lote + mesclados/absorvidos/descartados + Issues #N + PRs de plano.