Communitygithub.com

Plan-Doc-Do-Follow

Habilidade para estruturar o desenvolvimento de projetos com um fluxo claro de planejamento, documentação, execução e verificação, utilizando rotas, subagentes e um modelo de status determinístico.

O que é Plan-Doc-Do-Follow?

Esta skill implementa uma metodologia rigorosa para o ciclo de vida de funcionalidades e épicos em projetos de software, seguindo o fluxo **Plan** → **Doc** → **Do** → **Follow**. Ao invés de carregar toda a documentação, a skill carrega apenas a rota correspondente à intenção do usuário, seus templates e subagentes, economizando tokens. Ela define invariantes globais (como alinhamento com a visão do produto, rastreabilidade e economia) e um modelo de status determinístico que rastreia o progresso de tarefas, funcionalidades e épicos a partir de arquivos únicos de fonte de verdade. A skill é compatível com agentes como Claude Code, Cursor e Codex, e utiliza subagentes especializados (scout, críticos, codificador) para pesquisa, revisão e execução, sempre priorizando o trabalho inline sempre que possível para maximizar a eficiência.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add codeAvecCyril/ia-skill-plan-doc-do-follow

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Plan-Doc-Do-Follow Skill

Plan → Doc → Do → Follow

Corresponder intenção → primeira rota vence → ler routes/a-b.md (rota a/b) → segui-la → aplicar Invariantes Globais + Modelo de Status. Carregar apenas a rota necessária, seus templates, seus subagentes — nunca tudo

Rotas

Planejamento

IntençãoRotaParâmetros
Extrair épicos da visão do produtoplan/proj
Validar épicos com stakeholdersplan/proj-review
Criar PRD e rastreamento do épicoplan/epicE{n}
Validar especificação ou arquitetura do épicoplan/epic-reviewE{n} {prd|arch}
Projetar arquitetura do épicoplan/epic-archE{n}
Criar PRD da funcionalidadeplan/featE{n} F{n}
Validar especificação ou arquitetura da funcionalidadeplan/feat-reviewE{n} F{n} {prd|arch}
Arquitetura da funcionalidade (somente exceção)plan/feat-archE{n} F{n}
Dividir funcionalidade em tarefasplan/tasksE{n} F{n}
Mudança de escopo — adicionar/atualizar funcionalidade ou épico, mesmo se implementadoplan/changedescrição
Migrar docs do projeto v2 para v3 (one-shot)plan/migrate

Execução

IntençãoRotaParâmetros
Configurar ferramentas de economia de tokens (LSP, filtros, economia, agentes nativos)do/init
Executar uma tarefado/taskE{n} F{n} T{n}
Executar todas as tarefas da funcionalidade, verificar inlinedo/all-tasksE{n} F{n}
Verificar trabalho concluído (caminho tarefa por tarefa)do/verifyE{n} F{n}
Recalcular e reparar todos os statusdo/sync-status
Memorizar boas práticasdo/memorize

Invariantes Globais (todas as rotas)

  1. Verificação do Espírito: alinhar com docs/product.md; Espírito do Produto (topo de docs/project-status.md) literalmente em toda rota de planejamento + brief do revisor
  2. Vontade do usuário: docs/decisions.md vinculante; desvio = perguntar, nunca aplicar silenciosamente
  3. Negócios primeiro: revisão de especificação antes da próxima fase
  4. Verificação de arquitetura: alinhar com docs/global_architecture.md + docs/technical-stack.md
  5. Um fato, um arquivo: status/fato tem um arquivo proprietário (Modelo de Status); outros vinculam, nunca copiam
  6. Linguagem do público: humano/negócios = frases completas, sem abreviações não explicadas; voltado ao agente = estilo Documento (conciso-caverna)
  7. Sem andaimes vazios: excluir seções de template não utilizadas; nunca "N/A" ou placeholders
  8. Sem adivinhação: ambiguidade bloqueadora → perguntar primeiro; rotular bloqueador / importante / menor
  9. Rastreabilidade: cada documento referencia o pai; histórias ↔ requisitos ↔ tarefas ↔ testes vinculados
  10. Documentos globais vivos: docs/data-model.md, docs/ui-map.md, docs/decisions.md atualizados na mesma alteração que os afeta — nunca "depois"
  11. Hierarquia de modelos: plan/* + revisores = modelo forte; toda tarefa plan/tasks executável por modelo mais fraco sem abrir PRD
  12. Sincronização de Status: toda rota que altera status termina com procedimento de Sincronização de Status
  13. Formato de handoff: resumo curto · progresso atual · próximo comando exato · perguntas em aberto
  14. Subagentes com escopo: apenas as entradas que suas listas de definição listam
  15. Mentalidade por rota: adotar a linha de Mentalidade da rota
  16. Deliberação permanece interna: trocas entre críticos nunca em documentos/handoffs — humano vê resultado final + o que validar
  17. Economia em todo lugar: Economia de Trabalho em toda rota e subagente

Modelo de Status

⚪ TODO · 🟡 SPEC especificado · 🟣 PLAN tarefas geradas · 🔵 DEV em andamento · 🟢 DONE concluído e verificado

Propriedade — fonte única de verdade

FatoArquivo proprietário (ÚNICO lugar onde é escrito)
Status da tarefafeat-tasks.md — Tabela de Resumo de Tarefas
Status e progresso da funcionalidadeepic-status.md — Tabela de Funcionalidades
Status e progresso do épicodocs/project-status.md — Tabela de Roadmap de Épicos
Progresso do projetodocs/project-status.md — Seção de Progresso

Sem feat-status.md. Seções por tarefa: sem linha de status. Mermaid = decorativo, regenerado a partir das tabelas proprietárias, nunca fonte de verdade

Regras de derivação

  • Funcionalidade: sem feat-prd.md → ⚪ · PRD existe → 🟡 · feat-tasks.md existe, nenhuma tarefa além de TODO → 🟣 · qualquer tarefa DEV/DONE → 🔵 · 🟢 somente através de portões de verificação (do/verify, ou fase final de do/all-tasks). Tarefas adicionadas a funcionalidade 🟢 → reverter para 🔵
  • Épico: sem epic-prd.md → ⚪ · PRD existe → 🟡 · todas as funcionalidades ≥ 🟣 → 🟣 · qualquer funcionalidade 🔵/🟢 (nem todas 🟢) → 🔵 · todas 🟢 → 🟢
  • Projeto: mesma agregação sobre épicos
  • Progresso: tarefas concluídas / total de tarefas (0 se nenhuma), somado no nível do épico e do projeto

Procedimento de Sincronização de Status

Final de qualquer rota que altera status (autônoma: do/sync-status, todos os épicos):

  1. Ler Tabelas de Resumo de Tarefas da(s) funcionalidade(s) afetada(s)
  2. Recalcular status + progresso de cada funcionalidade; atualizar linha em epic-status.md
  3. Recalcular cada épico afetado; atualizar sua linha, seção de Progresso, gráfico de pizza em docs/project-status.md. Sync de Status nunca escreve changelog — apenas eventos nomeados pela regra rígida de changelog (estilo Documento), escritos pela rota que produziu o marco
  4. Reportar desvio (armazenado ≠ derivado) no handoff

Determinístico e idempotente

Subagentes

Definições em subagents/ — um arquivo por agente (formato: subagents/README.md). Invocar: ler arquivo → montar exatamente as entradas listadas (revisores sempre recebem Espírito do Produto) → gerar com o corpo do arquivo como prompt de sistema

Perfil de economia

Ler Economia do subagente: da seção Ferramentas do arquivo de instruções do repositório (do/init escreve). Ausente → balanced

PerfilComportamento
strictInline-first rígido · scout quase sempre inline · limites de pergunta/ferramenta/retorno aplicados · críticos ainda geram
balancedInline-first conforme descrito abaixo · limites aplicados · aviso suave se >5 perguntas do scout
qualityPortão de custo apenas consultivo · limites ainda se aplicam ao uso de ferramenta do scout e tamanho do retorno

Antes de qualquer geração (inline-first)

Executar em ordem — primeira correspondência vence → não gerar:

  1. Fatos já no contexto do principal → trabalhar inline
  2. Respondível pelo principal em ≤5 chamadas Grep/Glob/Read (ou LSP) → inline (usar checklist scout-lite em subagents/repo-scout.md)
  3. Brief se aproximaria do tamanho da resposta esperada → inline
  4. Descobertas provavelmente cosméticas / checklist mecânico em superfície pequena → inline (mesmo portão de custo de hoje)
  5. Caso contrário, gerar

repo-scout extra (sob strict / balanced): gerar somente se ≥3 perguntas falseáveis e a busca abranger ≥2 áreas que o principal não abriu, ou o contexto do principal já estiver cheio e o isolamento claramente mais barato. Caso contrário, scout-lite inline

Ao gerar:

  • Injeção de ferramentas: brief inclui bloco de Ferramentas de uma linha do arquivo de instruções do repositório (prefixo de filtro CLI, preferência LSP, perfil de economia) — subagente deve obedecê-lo
  • Brief preciso: perguntas/verificações exatas · padrões contra os quais o trabalho é construído · fora do escopo · para scout, caminhos/globs iniciais quando a área é conhecida · ≤5 perguntas por onda do scout (balanced/strict; dividir ou inline o restante)
  • Carregar a barra antecipadamente: antes do rascunho, ler as perguntas de Revisão do crítico; rascunhar para passar na primeira tentativa
  • Limite de retorno: scout ≤15 linhas · críticos ≤25 linhas · principal mantém apenas fatos necessários — nunca colar despejos do scout em documentos

Descobertas do crítico: aplicar se alterar comportamento, contrato ou decisão humana; descartar fúteis/cosméticas silenciosamente. Chamada de julgamento rejeitada → pergunta de decisão para o humano. Convergência: uma execução por documento; no máximo uma reexecução após retrabalho substancial de descobertas bloqueadoras, com escopo nelas — reexecução aceita apenas bloqueadoras; nunca terceira execução. Nunca relatar troca (Invariante 16)

SubagenteTipoChamado porQuando
repo-scoutpesquisaplan/epic-arch, plan/feat, plan/feat-arch, plan/changeplano deve se basear em código existente
prd-criticrevisorplan/epic, plan/featsempre
arch-criticrevisorplan/epic-arch, plan/feat-archsempre
perf-critic-backend / -frontendrevisorrotas de arquitetura, portões de verificaçãoapenas quando os critérios de gatilho (topo de seus arquivos) disparam
task-checkerrevisorplan/tasksapós auto-revisão; no máximo duas execuções
feature-coderexecutordo/all-tasksum por tarefa paralelizável por onda
ui-consistency-reviewerrevisorportões de verificaçãofuncionalidades de UI, superfície não trivial
doc-coherence-reviewerrevisorportões de verificação · plan/change · plan/migrateconclusão do épico · após mudança · após migração

Portões de verificação (+ seus subagentes) executam em do/verify ou inline como fase final de do/all-tasks

UX de Revisão Humana

Conclusões, não processo. Verificações mecânicas auto-verificadas → uma linha de resumo. "Decisões que exigem sua validação": ≤10 afirmações em frases simples + perguntas em aberto rotuladas bloqueadoras/importantes/menores. Decisões validadas → docs/decisions.md. Respostas de stakeholders literalmente — nunca parafrasear, nunca perguntar novamente (se ambíguo, perguntar apenas esclarecimento)

Economia de Trabalho (Invariante 17)

Economia de entrada

  • Preferir navegação LSP/semântica a leituras de arquivos inteiros; intervalos de linha com escopo
  • Preferir Grep/Glob/LSP a Shell para busca de código — Shell apenas quando necessário
  • Saída longa de CLI (testes, builds, git, gerenciadores de pacotes) através de filtro declarado no repositório (ex. rtk, snip) — do/init configura; se Shell usado sem hook ativo, prefixar manualmente
  • Nunca reler o que está no contexto; nunca carregar documento "por segurança"
  • Obedecer perfil de economia + inline-first antes de gerar (Subagentes)

Estilo de saída (principal e subagentes)

  • Conciso-caverna (mesmo padrão de documentos voltados ao agente): sem preâmbulo, sem reafirmar solicitação, sem resumo final, sem enchimento/hesitação
  • Código, comandos, caminhos, erros: byte-exato — nunca parafrasear
  • Alterações de código como diffs ou edições direcionadas — nunca listagens de arquivo completo a menos que solicitado
  • Respostas de pesquisa ≤10 linhas a menos que profundidade seja solicitada; retornos de subagentes obedecem ao limite de retorno
  • Handoff (Invariante 13) = apenas bloco de fechamento: ≤5 linhas

Implementação mínima (rotas do e feature-coder)

Entender completamente, parar no primeiro degrau que se sustenta:

  1. Não precisa existir → pular (YAGNI)
  2. Já está no código → reutilizar
  3. Stdlib faz → usar
  4. Recurso nativo da plataforma → usar
  5. Dependência instalada → usar
  6. Uma linha é suficiente → uma linha
  7. Só então escrever o mínimo que funciona

Nunca cortar: validação de limite de confiança, tratamento de perda de dados, segurança, acessibilidade

Estilo de documento

Dois públicos — escolher pelo propósito do arquivo, não pelo humor da rota

Humano / negócios (prosa completa) — PRDs (epic-prd.md, feat-prd.md), docs/product.md, Espírito do Produto, corpos de revisão humana (seções de decisão *-review.md), documentos centrados no usuário (developer-setup, onboarding, READMEs humanos). Frases completas. Legível para stakeholders. Sem abreviações não explicadas

Voltado ao agente (conciso-caverna) — playbooks da skill (SKILL.md, routes/, subagents/, comentários de template), feat-tasks.md, epic-arch.md / feat-arch.md, tabelas/notas de status, documentos técnicos vivos (data-model.md, ui-map.md, decisions.md), docs/patterns/*. Inspirado pelo caveman completo:

  • Apenas fatos e ordens — sem artigos/enchimento/hesitação quando o significado está claro; fragmentos OK
  • Sinônimos curtos; padrão [coisa] [ação] [motivo] · [próximo passo]
  • Sem abreviações inventadas (cfg/impl/fn); acrônimos técnicos conhecidos OK (DB/API/HTTP)
  • Caminhos, símbolos, código, comandos, strings de erro: exatos
  • Nunca omitir não/nunca/sem/somente/exceto
  • Sem ponto final antes de quebra de linha (pontos no meio da linha em linhas com múltiplas cláusulas permanecem)
  • Decisões e fatos apenas — nunca processo ("revisor sugeriu…", "após discussão…")
  • Justificar apenas quando agente futuro precisar do porquê (trade-off, corte de escopo): ≤2 linhas curtas
  • Clareza automática: prosa mais completa para avisos de segurança, passos irreversíveis ou fragmentos que correm risco de má interpretação de ordem/negação — então retomar conciso

Regra rígida de changelog: uma linha {data}: {fato}, ≤25 palavras. Elegível apenas — projeto: épico concluído, mudança de escopo importante, migração; épico: funcionalidade verificada 🟢, mudança de escopo. Todo o resto (tarefas geradas, PRD rascunhado/aprovado, ondas, sincronizações, reparos de desvio) = sem entrada. Nunca: trocas de críticos (Invariante 16), listas de tarefas, resultados de portões, números de progresso, comandos Próximo:. Entradas existentes verbosas = legado, nunca precedente — escrever apenas linha elegível, ou nada

Organização de Arquivos

docs/
├── product.md                 (entrada: visão do produto)
├── global_architecture.md     (entrada: visão geral da arquitetura)
├── technical-stack.md         (entrada: decisões tecnológicas)
├── project-status.md          (proprietário: Espírito do Produto, status dos épicos, progresso)
├── project-review.md
├── decisions.md               (vivo: decisões vinculantes do usuário, uma linha cada)
├── data-model.md              (vivo: esquema global de dados, se houver)
├── ui-map.md                  (vivo: mapa de navegação global, se UI)
├── design-guidelines.md       (vivo: convenções de estilo de UI, se UI)
├── patterns/{pattern-name}.md (de do/memorize)
└── epics/e{n}-{epic-name}/            (slug ex. e2-orm-discovery)
    ├── epic-brief.md                  (plan/proj)
    ├── epic-prd.md                    (plan/epic)
    ├── epic-status.md                 (proprietário: status das funcionalidades)
    ├── epic-arch.md                   (plan/epic-arch)
    ├── epic-review.md                 (plan/epic-review)
    └── f{n}-{feat-name}/              (filho direto — sem nível features/)
        ├── feat-prd.md                (plan/feat; tem Pontos de Entrada + Delta de Arquitetura)
        ├── feat-arch.md               (plan/feat-arch — apenas exceções)
        ├── feat-tasks.md              (proprietário: status das tarefas)
        └── feat-review.md             (plan/feat-review)

Integração com plataforma

Convenções do repositório, precedência: CLAUDE.md · AGENTS.md · .github/copilot-instructions.md · .cursor/rules/ · .github/instructions/. do/memorize escreve de volta no(s) arquivo(s) realmente presente(s)

Templates

Em templates/ — nomes espelham os arquivos de saída

Habilidades Relacionadas