Modern Angular
Spec-driven development com Claude, Codex e o plugin Superpowers
No spec-driven development com agentes de código, a decisão sai do chat e vira um documento revisável antes do código existir. Claude Code e Codex conseguem ler, editar, rodar comandos e usar skills ou subagentes, mas o fluxo mais seguro é spec revisada, plano pequeno, evidência de verificação e gate humano antes do merge. O plugin Superpowers empacota essa disciplina em workflows reutilizáveis.
O prompt some no chat, a spec fica
Eu ainda falo com agentes por prompt direto. Essa é a interface. Mas quando o trabalho tem mais de um passo, o prompt não deveria ser o único lugar onde a decisão vive. Ele some no histórico do chat, se mistura com exploração e fica difícil de revisar depois que o diff existe.
A spec é a camada de compromisso. Ela nomeia o problema, a fronteira, os arquivos que provavelmente vão mudar, os checks que provam a mudança e o que o agente não deve fazer. O agente pode ajudar a rascunhar. O humano precisa aprovar.
Onde entram Claude, Codex e Superpowers
Claude Code e Codex já se sobrepõem no formato do trabalho que conseguem fazer: ler um codebase, editar arquivos, rodar comandos e carregar memória de projeto. O Claude Code documenta memória via CLAUDE.md, skills, hooks e sub-agents. O Codex documenta AGENTS.md, skills e subagents. A sobreposição ajuda. Ela deixa o processo com formato de ferramenta, sem deixar a ferramenta ser dona do processo.
O Superpowers fica acima disso como disciplina de workflow. Eu trato isso como um jeito de forçar etapas nomeadas no trabalho: destrinchar o formato, escrever o plano, executar conforme o plano, rodar testes, pedir review e verificar antes de concluir. O valor aparece porque os gates óbvios ficam visíveis exatamente no momento em que é fácil pular por cima deles.
A spec carrega as decisões
Uma spec útil não precisa ser longa por padrão. Ela tem que ser precisa o bastante para um segundo agente, ou o mesmo agente numa sessão nova, implementar sem redescobrir a decisão do zero.
| Seção da spec | Pergunta que responde | Risco de review que reduz |
|---|---|---|
| Fronteira do problema | Que comportamento exato muda, e o que fica intocado? | Crescimento de escopo. |
| Restrições do repo | Quais padrões, arquivos e regras locais importam para essa mudança? | Código genérico que ignora o codebase. |
| Plano de implementação | Que passos acontecem, em que ordem, e quais podem rodar em paralelo? | Improviso do agente no meio do diff. |
| Verificação | Quais comandos, checks ou screenshots provam a mudança? | Aceitar um resumo plausível como evidência. |
| Regra de rollback ou recusa | Quando o trabalho deve parar em vez de ser empurrado até o fim? | Mudanças meio seguras em fluxos críticos. |
O que você ganha com a spec
A spec parece burocracia, mas é o que torna o trabalho portátil. Quando os créditos acabam no meio da tarefa, ou você troca de um agente para outro, a próxima sessão não começa do zero. Ela lê a spec e retoma a decisão, em vez de redescobrir tudo a partir de um chat que nunca viu.
Essa portabilidade aparece em coisas menores todo dia. Uma decisão errada é pega numa spec de quinze linhas, não num diff de seiscentas. Uma interrupção, um limite de contexto ou um crash não apagam o plano. Outra pessoa do time implementa a partir da spec, sem a sua conversa, e os passos que a spec marca como independentes podem rodar em paralelo, em sessões ou subagentes diferentes.
O agente recebe um plano, não um desejo
Meu loop preferido é simples: escrever a spec, inspecionar o repo, transformar a spec em um plano pequeno, rodar a implementação e revisar o resultado com base na spec, não na confiança do assistente.
Em trabalho Angular, isso significa que o plano nomeia a fronteira real: estado de componente, stream RxJS, escopo de provider, comportamento de rota, edge case de hydration, test runner ou setup de MCP. Um plano que só diz 'modernize o componente' ainda é um desejo, não uma instrução: sobra pro agente adivinhar o resto.
Verificação vence confiança
Eu não aceito 'pronto' de um agente sem evidência. Para código, isso costuma ser teste, build, lint, validação de conteúdo, screenshots ou saída específica de comando. Para escrita, são filtros de voz, checagem de fontes e varredura de banlist. Trabalho diferente, mesma regra.
No review, eu procuro uma coisa mais concreta: o repo agora contém o comportamento pedido pela spec, com evidência anexada e sem estrago extra em volta.
Artefato para reaproveitar
Gate de review da spec ao PR
- A spec declara a mudança de comportamento, os arquivos que provavelmente mudam e as fronteiras que ficam intocadas.
- O plano é pequeno o bastante para cada passo ser revisado com base na spec.
- Claude ou Codex usa memória do repo e skills como contexto, não como permissão para ampliar escopo.
- Subagentes só entram quando a tarefa pode ser dividida sem estado mutável compartilhado.
- A resposta final inclui saída de comando, evidência de teste ou screenshots antes de o trabalho ser tratado como concluído.
Fontes consultadas
- https://github.com/obra/superpowers
- https://developers.openai.com/codex
- https://developers.openai.com/codex/guides/agents-md
- https://developers.openai.com/codex/skills
- https://developers.openai.com/codex/subagents
- https://code.claude.com/docs/en/overview
- https://code.claude.com/docs/en/memory
- https://code.claude.com/docs/en/skills
- https://code.claude.com/docs/en/sub-agents
- https://code.claude.com/docs/en/hooks-guide
Modern Angular Playbook
Este artigo é um play.
O Playbook do Angular Moderno reúne o diagnóstico, a matriz de adoção, onze jogadas e o plano de 30 dias. Grátis, em inglês e português.
Você recebe os dois PDFs por email, pela lista do Dojo IA.