executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
focused-fixUse quando o usuário pedir para corrigir, depurar ou fazer uma funcionalidade/módulo/área específica funcionar de ponta a ponta. Gatilhos: 'faça X funcionar', 'corrija a funcionalidade Y', 'o módulo Z está quebrado', 'foque em [área]'. Não para correções rápidas de bug único — isso é para reparo sistemático e profundo em todos os arquivos e dependências.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: "focused-fix" description: "Use quando o usuário pedir para corrigir, depurar ou fazer uma funcionalidade/módulo/área específica funcionar de ponta a ponta. Gatilhos: 'faça X funcionar', 'corrija a funcionalidade Y', 'o módulo Z está quebrado', 'foque em [área]'. Não para correções rápidas de bug único — isso é para reparo sistemático e profundo em todos os arquivos e dependências." agents:
Ative quando o usuário pedir para corrigir, depurar ou fazer uma funcionalidade/módulo/área específica funcionar. Gatilhos principais:
Isso NÃO é para correções rápidas de bug único (use systematic-debugging para isso). Isso é para quando uma funcionalidade ou módulo inteiro precisa de reparo sistemático — rastreando cada dependência, lendo logs, verificando testes, mapeando o grafo completo de dependências.
digraph when_to_use {
"User reports feature broken" [shape=diamond];
"Single bug or symptom?" [shape=diamond];
"Use systematic-debugging" [shape=box];
"Entire feature/module needs repair?" [shape=diamond];
"Use focused-fix" [shape=box];
"Something else" [shape=box];
"User reports feature broken" -> "Single bug or symptom?";
"Single bug or symptom?" -> "Use systematic-debugging" [label="yes"];
"Single bug or symptom?" -> "Entire feature/module needs repair?" [label="no"];
"Entire feature/module needs repair?" -> "Use focused-fix" [label="yes"];
"Entire feature/module needs repair?" -> "Something else" [label="no"];
}
SEM CORREÇÕES SEM COMPLETAR ESCOPO → RASTREAR → DIAGNOSTICAR PRIMEIRO
Se você não terminou a Fase 3, não pode propor correções. Ponto final.
Violar a letra dessas fases é violar o espírito do reparo focado.
digraph phases {
rankdir=LR;
SCOPE [shape=box, label="Fase 1\nESCOPO"];
TRACE [shape=box, label="Fase 2\nRASTREAR"];
DIAGNOSE [shape=box, label="Fase 3\nDIAGNOSTICAR"];
FIX [shape=box, label="Fase 4\nCORRIGIR"];
VERIFY [shape=box, label="Fase 5\nVERIFICAR"];
SCOPE -> TRACE -> DIAGNOSE -> FIX -> VERIFY;
FIX -> DIAGNOSE [label="correção quebrou\nalgo mais"];
FIX -> ESCALATE [label="3+ correções\ncriam novos problemas"];
ESCALATE [shape=doubleoctagon, label="PARE\nQuestione Arquitetura\nDiscuta com Usuário"];
}
Antes de tocar em qualquer código, entenda o escopo completo da funcionalidade.
ESCOPO DA FUNCIONALIDADE:
Caminho primário: src/features/auth/
Pontos de entrada: [arquivos importados por outras partes do app]
Arquivos internos: [arquivos usados apenas dentro desta funcionalidade]
Total de arquivos: N
Total de linhas: N
Rastreie cada conexão que esta funcionalidade tem com o resto da base de código.
ENTRADA (o que esta funcionalidade importa):
SAÍDA (o que importa esta funcionalidade):
Formato de saída:
MAPA DE DEPENDÊNCIAS:
Entrada (esta funcionalidade depende de):
src/lib/db.ts → usado em auth/repository.ts (getUserById, createUser)
src/lib/jwt.ts → usado em auth/service.ts (signToken, verifyToken)
@prisma/client → usado em auth/repository.ts
process.env.JWT_SECRET → usado em auth/service.ts
process.env.DATABASE_URL → usado via prisma
Saída (depende desta funcionalidade):
src/app/api/login/route.ts → importa { login } de auth/service
src/app/api/register/route.ts → importa { register } de auth/service
src/middleware.ts → importa { verifyToken } de auth/service
Variáveis de env necessárias: JWT_SECRET, DATABASE_URL
Arquivos de configuração: prisma/schema.prisma (modelo User)
Verifique sistematicamente se há problemas. Execute TODAS estas verificações:
QUALIDADE DO CÓDIGO:
any em interfaces)RUNTIME:
TESTES:
LOGS E ERROS:
git log --oneline -20 -- <feature-path>git log --oneline -5 --all -- <arquivos dos quais esta funcionalidade depende>CONFIGURAÇÃO:
CONFIRMAÇÃO DE CAUSA RAIZ: Para cada problema CRÍTICO encontrado, confirme a causa raiz antes de adicioná-lo à lista de correção:
superpowers:systematic-debugging (Investigação de Causa Raiz) para confirmar antes de prosseguirROTULAGEM DE RISCO: Atribua a cada problema um rótulo de risco:
| Risco | Critérios |
|---|---|
| ALTO | Superfície de API pública / contrato de interface quebrável / schema de BD / lógica de auth ou segurança / módulo amplamente importado (>3 chamadores) / hotspot do git |
| MÉDIO | Módulo interno com testes / utilitário compartilhado / config com impacto de runtime / chamadores internos de funções alteradas |
| BAIXO | Módulo folha / arquivo isolado / mudança somente de teste / helper de propósito único sem chamadores |
Formato de saída:
RELATÓRIO DE DIAGNÓSTICO:
Problemas encontrados: N
CRÍTICOS:
1. [ALTO] [arquivo:linha] — descrição do problema. Causa raiz: [explicação confirmada]
2. [ALTO] [arquivo:linha] — descrição do problema. Causa raiz: [explicação confirmada]
AVISOS:
1. [MÉDIO] [arquivo:linha] — descrição do problema
2. [BAIXO] [arquivo:linha] — descrição do problema
TESTES:
Executados: N testes
Aprovados: N
Falhos: N
[liste cada falha com resumo de uma linha]
Corrija os problemas nesta EXATA ordem:
Regras:
REGRA DE ESCALADA — Verificação de Arquitetura em 3 Tentativas: Se 3+ correções nesta fase criarem NOVOS problemas (não pré-existentes), PARE imediatamente.
Este padrão indica um problema arquitetural, não uma coleção de bugs:
Ação: Pare de corrigir. Diga ao usuário: "3+ correções cascatearam em novos problemas. Isso sugere que a arquitetura da funcionalidade pode precisar ser repensada, não corrigida. Aqui está o que encontrei: [resumo]. Devemos continuar corrigindo sintomas ou discutir a reestruturação?"
NÃO tente a correção nº 4 sem esta discussão.
Formato de saída após cada correção:
CORREÇÃO #1:
Arquivo: auth/service.ts:45
Problema: signToken chamado com ordem de argumento errada
Mudança: trocou (expiresIn, payload) para (payload, expiresIn)
Teste: auth.test.ts → APROVADO
Após todas as correções serem aplicadas:
Saída final:
FOCUSED FIX CONCLUÍDO:
Funcionalidade: auth
Arquivos alterados: 4
Total de correções: 7
Testes: 23/23 aprovados
Regressões: 0
Mudanças:
1. auth/service.ts — corrigida ordem de argumento de assinatura de token
2. auth/repository.ts — adicionada verificação de nulo para busca de usuário
3. auth/middleware.ts — corrigido tratamento de erro async
4. auth/types.ts — tipo UserResponse alinhado com schema real de BD
Consumidores verificados:
- src/app/api/login/route.ts ✅
- src/app/api/register/route.ts ✅
- src/middleware.ts ✅
Se você se pegar pensando em qualquer um destes, está pulando fases:
TODOS esses significam: Retorne à fase em que deveria estar.
| Desculpa | Realidade |
|---|---|
| "A funcionalidade é pequena, não preciso de todas as 5 fases" | Funcionalidades pequenas também têm dependências. As Fases 1-2 levam minutos para funcionalidades pequenas — faça-as. |
| "Já conheço esta base de código" | O conhecimento decai. Rastreie as importações reais, não confie na memória. |
| "O usuário quer velocidade, não processo" | Pular fases causa retrabalho. Sistemático é mais rápido que se debater. |
| "Apenas um arquivo está quebrado" | Se apenas um arquivo estivesse quebrado, o usuário diria "corrija este bug", não "faça a funcionalidade funcionar." |
| "Corrigi os testes, então funciona" | Os testes podem passar enquanto os consumidores estão quebrados. Verifique a Fase 5 completamente. |
| "O mapa de dependências é grande demais para rastrear" | Então a funcionalidade é grande demais para corrigir sem rastrear. É exatamente por isso que você precisa disso. |
| "A causa raiz é óbvia, não preciso confirmar" | Causas raiz "óbvias" estão erradas 40% do tempo. Confirme com evidência. |
| "3 falhas em cascata são normais para uma grande correção" | 3 falhas em cascata significa que você está corrigindo sintomas de um problema arquitetural. |
| Anti-Padrão | Por Que Está Errado |
|---|---|
| Começar a corrigir código antes de mapear todas as dependências | Você perderá causas raiz e criará correções do tipo bater e correr |
| Corrigir apenas o arquivo que o usuário mencionou | Arquivos relacionados provavelmente também têm problemas |
| Ignorar variáveis de ambiente e configuração | Muitos "bugs de código" são na verdade problemas de configuração |
| Pular a fase de execução de testes | Você não pode verificar correções sem executar testes |
| Fazer mudanças fora da pasta da funcionalidade sem explicar o porquê | Efeitos colaterais inesperados confundem o usuário |
| Corrigir sintomas em arquivos consumidores em vez de causa raiz na funcionalidade | Curativos que quebram quando o próximo consumidor aparece |
| Declarar "feito" sem executar testes de verificação | Correções não testadas são correções não verificadas |
| Mudar a API pública sem atualizar todos os consumidores | Quebra tudo que depende da funcionalidade |
superpowers:systematic-debugging — Use dentro da Fase 3 para rastreamento de causa raiz de bugs individuais complexossuperpowers:verification-before-completion — Use dentro da Fase 5 antes de afirmar que a funcionalidade está corrigidascope — Se você precisar entender o raio de blast antes de começar, execute scope primeiro e depois focused-fix| Fase | Ação Principal | Saída |
|---|---|---|
| ESCOPO | Leia cada arquivo, mapeie pontos de entrada | Manifesto de funcionalidade |
| RASTREAR | Mapeie dependências de entrada + saída | Mapa de dependências |
| DIAGNOSTICAR | Verifique código, runtime, testes, logs, config | Relatório de diagnóstico |
| CORRIGIR | Corrija em ordem: deps → tipos → lógica → testes → integração | Log de correção por problema |
| VERIFICAR | Execute todos os testes, verifique consumidores, resuma | Relatório de conclusão |