@fontdata/ai-harness 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +9 -2
  3. package/LICENSE +21 -0
  4. package/README.md +174 -140
  5. package/{src → dist}/catalog.js +5 -12
  6. package/dist/cli.js +174 -0
  7. package/dist/comentarios/command.js +74 -0
  8. package/dist/comentarios/instalar.js +33 -0
  9. package/dist/config/config.js +98 -0
  10. package/dist/contratos/artefatos.js +284 -0
  11. package/dist/contratos/eventos.js +103 -0
  12. package/dist/doctor/checks.js +424 -0
  13. package/dist/init.js +240 -0
  14. package/dist/install/atomic.js +51 -0
  15. package/dist/install/flags.js +99 -0
  16. package/dist/install/hooks.js +47 -0
  17. package/dist/install/lock.js +39 -0
  18. package/dist/install/plan.js +209 -0
  19. package/dist/install/selection.js +77 -0
  20. package/dist/install/settings.js +108 -0
  21. package/dist/memoria/indice.js +195 -0
  22. package/dist/migrar/migrar.js +426 -0
  23. package/dist/rastro/command.js +46 -0
  24. package/dist/run.js +86 -0
  25. package/dist/types.js +1 -0
  26. package/dist/update/legado.js +74 -0
  27. package/dist/update/update.js +284 -0
  28. package/package.json +17 -8
  29. package/templates/CLAUDE.md +59 -30
  30. package/templates/agents/auditor-plano.md +42 -0
  31. package/templates/agents/investigador.md +32 -0
  32. package/templates/agents/qa.md +44 -0
  33. package/templates/agents/revisor-testes.md +40 -0
  34. package/templates/catalog.json +24 -61
  35. package/templates/commands/atualizar-deps.md +43 -9
  36. package/templates/commands/diagrama.md +35 -10
  37. package/templates/commands/gerar-env.md +39 -10
  38. package/templates/commands/gerar-testes.md +42 -10
  39. package/templates/commands/git-commit-push.md +0 -0
  40. package/templates/commands/onboarding.md +44 -15
  41. package/templates/commands/refatorar.md +50 -10
  42. package/templates/commands/revisar-pr.md +56 -12
  43. package/templates/commands/sincronizar-claude-md.md +177 -9
  44. package/templates/commands/versao.md +0 -0
  45. package/templates/hooks/comentarios/check.mjs +210 -0
  46. package/templates/hooks/hooks.json +34 -0
  47. package/templates/hooks/lembrete.mjs +29 -0
  48. package/templates/hooks/lib/config.mjs +40 -0
  49. package/templates/hooks/lib/hook.mjs +85 -0
  50. package/templates/hooks/lib/rastro.mjs +130 -0
  51. package/templates/hooks/lib/segredos.mjs +91 -0
  52. package/templates/hooks/lib/temas.mjs +111 -0
  53. package/templates/hooks/lib/trabalho.mjs +94 -0
  54. package/templates/hooks/proteger-contratos.mjs +56 -0
  55. package/templates/hooks/segredo-no-commit.mjs +76 -0
  56. package/templates/hooks/sem-jargao.mjs +58 -0
  57. package/templates/hooks/task-so-fecha-verde.mjs +33 -0
  58. package/templates/legado/manifesto.json +1267 -0
  59. package/templates/rules/comentarios.md +166 -0
  60. package/templates/rules/harness-projeto.md +41 -0
  61. package/templates/skills/auditar-performance/SKILL.md +53 -0
  62. package/templates/skills/auditar-performance/references/pontos-quentes.md +35 -0
  63. package/templates/skills/auditar-performance/templates/relatorios/CLIENTE.md +26 -0
  64. package/templates/skills/auditar-performance/templates/relatorios/TECNICO.md +27 -0
  65. package/templates/skills/auditar-seguranca/SKILL.md +67 -0
  66. package/templates/skills/auditar-seguranca/references/seguranca-tecnica.md +23 -0
  67. package/templates/skills/auditar-seguranca/templates/relatorios/CLIENTE.md +30 -0
  68. package/templates/skills/auditar-seguranca/templates/relatorios/TECNICO.md +38 -0
  69. package/templates/skills/auditar-ui/SKILL.md +64 -0
  70. package/templates/skills/auditar-ui/references/lentes.md +33 -0
  71. package/templates/skills/auditar-ui/templates/relatorios/CLIENTE.md +26 -0
  72. package/templates/skills/auditar-ui/templates/relatorios/TECNICO.md +31 -0
  73. package/templates/skills/evoluir-harness/SKILL.md +81 -0
  74. package/templates/skills/evoluir-harness/references/agent.md +83 -0
  75. package/templates/skills/evoluir-harness/references/auditoria.md +107 -0
  76. package/templates/skills/evoluir-harness/references/code-reviewer.md +68 -0
  77. package/templates/skills/evoluir-harness/references/design-system.md +56 -0
  78. package/templates/skills/evoluir-harness/references/hook.md +95 -0
  79. package/templates/skills/evoluir-harness/references/rule.md +67 -0
  80. package/templates/skills/evoluir-harness/references/skill.md +63 -0
  81. package/templates/skills/executar-plan/SKILL.md +114 -0
  82. package/templates/skills/executar-plan/references/delegacao.md +43 -0
  83. package/templates/skills/executar-plan/references/retomada.md +33 -0
  84. package/templates/skills/executar-plan/templates/BLOQUEIOS.md +30 -0
  85. package/templates/skills/harness/SKILL.md +75 -0
  86. package/templates/skills/harness/references/auto-tag.md +118 -0
  87. package/templates/skills/harness/references/ignores.md +40 -0
  88. package/templates/skills/harness/references/scaffold.md +29 -0
  89. package/templates/skills/harness/references/validar-ideia.md +42 -0
  90. package/templates/skills/memoria/SKILL.md +52 -0
  91. package/templates/skills/nova-tarefa/SKILL.md +97 -0
  92. package/templates/skills/nova-tarefa/references/isso-ja-existe.md +24 -0
  93. package/templates/skills/nova-tarefa/references/regras-do-plano.md +33 -0
  94. package/templates/skills/nova-tarefa/templates/DECISOES.md +20 -0
  95. package/templates/skills/nova-tarefa/templates/PLAN.md +58 -0
  96. package/templates/skills/nova-tarefa/templates/SPEC.md +37 -0
  97. package/templates/skills/resolver-bug/SKILL.md +104 -0
  98. package/templates/skills/resolver-bug/references/relatorio-para-cliente.md +26 -0
  99. package/templates/skills/resolver-bug/templates/PLAN.md +62 -0
  100. package/templates/skills/resolver-bug/templates/relatorios/CLIENTE.md +29 -0
  101. package/templates/skills/resolver-bug/templates/relatorios/TECNICO.md +32 -0
  102. package/bin/cli.js +0 -122
  103. package/src/init.js +0 -317
  104. package/src/installer.js +0 -92
  105. package/src/run.js +0 -99
  106. package/templates/commands/auditar-performance.md +0 -27
  107. package/templates/commands/auditar-seguranca.md +0 -64
  108. package/templates/commands/auditar-ui.md +0 -38
  109. package/templates/commands/codigo-morto.md +0 -22
  110. package/templates/commands/configurar-auto-tag.md +0 -185
  111. package/templates/commands/configurar-comentarios.md +0 -543
  112. package/templates/commands/configurar-orquestrador.md +0 -13
  113. package/templates/commands/corrigir-review.md +0 -11
  114. package/templates/commands/criar-agents.md +0 -42
  115. package/templates/commands/criar-code-reviewer.md +0 -30
  116. package/templates/commands/criar-hooks.md +0 -32
  117. package/templates/commands/criar-rag.md +0 -25
  118. package/templates/commands/criar-rules.md +0 -31
  119. package/templates/commands/criar-skill.md +0 -22
  120. package/templates/commands/design-system.md +0 -27
  121. package/templates/commands/executar-plan.md +0 -36
  122. package/templates/commands/gerar-claude-md.md +0 -66
  123. package/templates/commands/gerar-ignore.md +0 -37
  124. package/templates/commands/gerar-spec.md +0 -33
  125. package/templates/commands/harness.md +0 -34
  126. package/templates/commands/nova-tarefa.md +0 -60
  127. package/templates/commands/resolver-bug.md +0 -25
  128. package/templates/commands/review-por-task.md +0 -16
  129. package/templates/commands/scaffold.md +0 -25
  130. package/templates/commands/validar-commands.md +0 -24
  131. package/templates/commands/validar-ideia.md +0 -36
@@ -7,69 +7,43 @@
7
7
  },
8
8
  "master": {
9
9
  "id": "harness",
10
- "file": "commands/harness.md",
11
- "title": "/harness (comando-mestre)",
12
- "description": "Conduz a sequência de setup em ordem: validar-ideia → gerar-spec → gerar-claude-md → nova-tarefa → scaffold → executar-plan.",
13
- "requires": [
14
- "validar-ideia",
15
- "gerar-spec",
16
- "gerar-claude-md",
17
- "gerar-ignore",
18
- "nova-tarefa",
19
- "scaffold",
20
- "configurar-comentarios",
21
- "criar-skill",
22
- "criar-agents",
23
- "criar-code-reviewer",
24
- "criar-rules",
25
- "criar-hooks",
26
- "configurar-orquestrador",
27
- "executar-plan"
28
- ]
10
+ "skill": "skills/harness",
11
+ "title": "/harness (setup guiado)",
12
+ "description": "Conduz o setup do harness em etapas (ideia, contexto, ignores, plano do start, scaffold, peças do harness, auto-tag e execução), validando entre elas; /harness <etapa> roda uma etapa isolada.",
13
+ "requires": ["sincronizar-claude-md", "nova-tarefa", "evoluir-harness", "executar-plan"],
14
+ "replaces": ["validar-ideia", "gerar-ignore", "scaffold", "configurar-auto-tag"]
29
15
  },
16
+ "agents": [
17
+ { "id": "auditor-plano", "file": "agents/auditor-plano.md", "title": "Agent auditor-plano", "description": "Audita o PLAN.md antes da execução: dependências, paralelismo, testes críticos e critérios binários." },
18
+ { "id": "investigador", "file": "agents/investigador.md", "title": "Agent investigador", "description": "Investiga a causa raiz de um bug antes da correção, com evidência." },
19
+ { "id": "qa", "file": "agents/qa.md", "title": "Agent qa", "description": "Valida critérios de aceite e roda a suíte completa antes do gate." },
20
+ { "id": "revisor-testes", "file": "agents/revisor-testes.md", "title": "Agent revisor-testes", "description": "Verifica se cada teste crítico falharia com a implementação errada." }
21
+ ],
30
22
  "skills": [
31
23
  { "id": "lgpd-checker", "dir": "skills/lgpd-checker", "title": "Skill lgpd-checker", "description": "Conformidade com a LGPD (Lei nº 13.709/2018) em 11 categorias, com checklist e template de relatório. Vendorizada de bittencourtthulio/lgpd-checker." }
32
24
  ],
33
25
  "groups": [
34
26
  {
35
27
  "id": "setup",
36
- "title": "Setup inicial",
28
+ "title": "Setup e contexto",
37
29
  "commands": [
38
- { "id": "validar-ideia", "file": "commands/validar-ideia.md", "title": "/validar-ideia", "description": "Valida se a ideia cabe em ~4h com multi-agents (entrevista + veredito).", "recommended": true },
39
- { "id": "gerar-spec", "file": "commands/gerar-spec.md", "title": "/gerar-spec", "description": "Entrevista de requisitos e gera o SPEC.md principal na raiz.", "recommended": true },
40
- { "id": "gerar-claude-md", "file": "commands/gerar-claude-md.md", "title": "/gerar-claude-md", "description": "Gera o CLAUDE.md (context file) a partir do SPEC.md.", "recommended": true },
41
- { "id": "gerar-ignore", "file": "commands/gerar-ignore.md", "title": "/gerar-ignore", "description": "Gera .claudeignore e .gitignore conforme a stack.", "recommended": false },
42
- { "id": "scaffold", "file": "commands/scaffold.md", "title": "/scaffold", "description": "Cria a estrutura inicial do projeto (pastas, configs, /health, testes de smoke).", "recommended": true }
30
+ { "id": "sincronizar-claude-md", "file": "commands/sincronizar-claude-md.md", "title": "/sincronizar-claude-md", "description": "Gera o SPEC.md e o CLAUDE.md que faltam e reconcilia os existentes com o código e os agents do projeto, inclusive a seção de orquestração.", "recommended": true, "replaces": ["gerar-spec", "gerar-claude-md", "configurar-orquestrador"] },
31
+ { "id": "evoluir-harness", "skill": "skills/evoluir-harness", "title": "/evoluir-harness", "description": "Audita a pasta .claude e cria agents, skills, rules, hooks, code-reviewer e design system do projeto.", "recommended": true, "replaces": ["criar-agents", "criar-skill", "criar-rules", "criar-hooks", "criar-code-reviewer", "design-system", "validar-commands"] }
43
32
  ]
44
33
  },
45
34
  {
46
35
  "id": "orquestracao",
47
36
  "title": "Orquestração & implementação",
48
37
  "commands": [
49
- { "id": "executar-plan", "file": "commands/executar-plan.md", "title": "/executar-plan", "description": "Orquestra a execução do plano com sub-agents em paralelo, fase a fase.", "recommended": true },
50
- { "id": "configurar-orquestrador", "file": "commands/configurar-orquestrador.md", "title": "/configurar-orquestrador", "description": "Configura o agente orquestrador de sub-agents no CLAUDE.md.", "recommended": false },
51
- { "id": "corrigir-review", "file": "commands/corrigir-review.md", "title": "/corrigir-review", "description": "Organiza correções do review em sprints/fases/tasks com TDD e delega.", "recommended": false },
52
- { "id": "review-por-task", "file": "commands/review-por-task.md", "title": "/review-por-task", "description": "Enforça implementação → review isolado → correção em cada task.", "recommended": false }
53
- ]
54
- },
55
- {
56
- "id": "harness",
57
- "title": "Harness (agents/skills/hooks/rules)",
58
- "commands": [
59
- { "id": "criar-skill", "file": "commands/criar-skill.md", "title": "/criar-skill", "description": "Sugere e cria skills do projeto em .claude/skills/.", "recommended": false },
60
- { "id": "criar-agents", "file": "commands/criar-agents.md", "title": "/criar-agents", "description": "Cria agents especializados em .claude/agents/ a partir do plano.", "recommended": false },
61
- { "id": "criar-hooks", "file": "commands/criar-hooks.md", "title": "/criar-hooks", "description": "Cria hooks por agent em .claude/hooks/ conforme o escopo.", "recommended": false },
62
- { "id": "criar-rules", "file": "commands/criar-rules.md", "title": "/criar-rules", "description": "Cria rules incondicionais e por path em .claude/rules/.", "recommended": false },
63
- { "id": "configurar-comentarios", "file": "commands/configurar-comentarios.md", "title": "/configurar-comentarios", "description": "Instala o padrão de comentários (rule com orçamento, bloco no CLAUDE.md e hook bloqueante com catraca sobre o legado), inclusive Delphi/Pascal.", "recommended": true },
64
- { "id": "criar-code-reviewer", "file": "commands/criar-code-reviewer.md", "title": "/criar-code-reviewer", "description": "Cria o agent code-reviewer (somente leitura) em .claude/agents/.", "recommended": true }
38
+ { "id": "executar-plan", "skill": "skills/executar-plan", "title": "/executar-plan", "description": "Executa o plano aprovado com sub-agents em paralelo, fase a fase, com gates de revisor-testes e qa, portões extras do projeto, bloqueios registrados e retomada.", "recommended": true, "replaces": ["review-por-task"] }
65
39
  ]
66
40
  },
67
41
  {
68
42
  "id": "dia-a-dia",
69
43
  "title": "Slash commands & dia a dia",
70
44
  "commands": [
71
- { "id": "resolver-bug", "file": "commands/resolver-bug.md", "title": "/resolver-bug", "description": "Investiga, planeja em docs/bugs e corrige um bug passo a passo.", "recommended": true },
72
- { "id": "nova-tarefa", "file": "commands/nova-tarefa.md", "title": "/nova-tarefa", "description": "Gera spec+plano em docs/ (start inicial ou nova tarefa) e, se confirmado, dispara o orquestrador.", "recommended": true }
45
+ { "id": "resolver-bug", "skill": "skills/resolver-bug", "title": "/resolver-bug", "description": "Investiga a causa raiz, corrige com teste de regressão e entrega relatório técnico e para o cliente.", "recommended": true },
46
+ { "id": "nova-tarefa", "skill": "skills/nova-tarefa", "title": "/nova-tarefa", "description": "Verifica se já existe, gera SPEC e PLAN do trabalho, audita o plano e, se confirmado, dispara a execução.", "recommended": true }
73
47
  ]
74
48
  },
75
49
  {
@@ -77,8 +51,7 @@
77
51
  "title": "Qualidade & manutenção de código",
78
52
  "commands": [
79
53
  { "id": "gerar-testes", "file": "commands/gerar-testes.md", "title": "/gerar-testes", "description": "Detecta cobertura faltante e escreve testes seguindo TDD (RED→GREEN).", "recommended": false },
80
- { "id": "refatorar", "file": "commands/refatorar.md", "title": "/refatorar", "description": "Refatora um alvo usando os testes como rede de segurança, sem mudar comportamento.", "recommended": false },
81
- { "id": "codigo-morto", "file": "commands/codigo-morto.md", "title": "/codigo-morto", "description": "Varre o projeto em busca de código morto e propõe remoção segura.", "recommended": false },
54
+ { "id": "refatorar", "file": "commands/refatorar.md", "title": "/refatorar", "description": "Refatora um alvo usando os testes como rede de segurança, sem mudar comportamento, inclusive a remoção de código morto.", "recommended": false, "replaces": ["codigo-morto"] },
82
55
  { "id": "atualizar-deps", "file": "commands/atualizar-deps.md", "title": "/atualizar-deps", "description": "Atualiza dependências em lotes, testando a cada passo e isolando o que quebra.", "recommended": false }
83
56
  ]
84
57
  },
@@ -86,7 +59,6 @@
86
59
  "id": "documentacao",
87
60
  "title": "Documentação & onboarding",
88
61
  "commands": [
89
- { "id": "sincronizar-claude-md", "file": "commands/sincronizar-claude-md.md", "title": "/sincronizar-claude-md", "description": "Aponta onde o CLAUDE.md/SPEC.md divergiu do código, sem reescrever sozinho.", "recommended": false },
90
62
  { "id": "diagrama", "file": "commands/diagrama.md", "title": "/diagrama", "description": "Gera diagramas Mermaid de arquitetura/fluxo a partir do código.", "recommended": false },
91
63
  { "id": "onboarding", "file": "commands/onboarding.md", "title": "/onboarding", "description": "Gera um guia de onboarding (rodar, entender e contribuir) em docs/.", "recommended": false },
92
64
  { "id": "gerar-env", "file": "commands/gerar-env.md", "title": "/gerar-env", "description": "Monta o .env.example a partir das variáveis de ambiente lidas no código.", "recommended": false }
@@ -94,20 +66,12 @@
94
66
  },
95
67
  {
96
68
  "id": "avancado",
97
- "title": "Avançado (RAG, UX, Design, Auditorias)",
98
- "commands": [
99
- { "id": "criar-rag", "file": "commands/criar-rag.md", "title": "/criar-rag", "description": "Cria um sistema de RAG (SQLite + sqlite-vec) para capturar aprendizados.", "recommended": false },
100
- { "id": "auditar-ui", "file": "commands/auditar-ui.md", "title": "/auditar-ui", "description": "Navega a app via Playwright MCP e audita UX/UI e/ou acessibilidade (a11y), por tela e severidade.", "recommended": false },
101
- { "id": "design-system", "file": "commands/design-system.md", "title": "/design-system", "description": "Cria o agent de design system com skills e rules de identidade visual.", "recommended": false },
102
- { "id": "auditar-performance", "file": "commands/auditar-performance.md", "title": "/auditar-performance", "description": "Audita gargalos de performance (queries, bundle, renders, algoritmos).", "recommended": false },
103
- { "id": "auditar-seguranca", "file": "commands/auditar-seguranca.md", "title": "/auditar-seguranca", "description": "Auditoria defensiva: segredos, deps vulneráveis, inputs sem validação, configs e conformidade LGPD.", "recommended": false, "requiresSkills": ["lgpd-checker"] }
104
- ]
105
- },
106
- {
107
- "id": "manutencao",
108
- "title": "Manutenção & validação",
69
+ "title": "Avançado (memória e auditorias)",
109
70
  "commands": [
110
- { "id": "validar-commands", "file": "commands/validar-commands.md", "title": "/validar-commands", "description": "Audita .claude: valida modelos dos agents, aponta commands redundantes e sugere novos.", "recommended": false }
71
+ { "id": "memoria", "skill": "skills/memoria", "title": "/memoria", "description": "Mostra quem já mexeu num arquivo e por quê e aponta regressões candidatas de um bug.", "recommended": false },
72
+ { "id": "auditar-ui", "skill": "skills/auditar-ui", "title": "/auditar-ui", "description": "Navega a app via Playwright MCP e audita UX/UI e/ou acessibilidade (a11y), por tela e severidade.", "recommended": false },
73
+ { "id": "auditar-performance", "skill": "skills/auditar-performance", "title": "/auditar-performance", "description": "Audita gargalos de performance (queries, bundle, renders, algoritmos).", "recommended": false },
74
+ { "id": "auditar-seguranca", "skill": "skills/auditar-seguranca", "title": "/auditar-seguranca", "description": "Auditoria defensiva: segredos, deps vulneráveis, inputs sem validação, configs e conformidade LGPD.", "recommended": false, "requiresSkills": ["lgpd-checker"] }
111
75
  ]
112
76
  },
113
77
  {
@@ -116,8 +80,7 @@
116
80
  "commands": [
117
81
  { "id": "git-commit-push", "file": "commands/git-commit-push.md", "title": "/git-commit-push", "description": "Gera mensagem e executa git add/commit/push em PT-BR.", "recommended": true },
118
82
  { "id": "versao", "file": "commands/versao.md", "title": "/versao", "description": "Detecta o versionamento do projeto (qualquer stack) e aplica o bump de versão + changelog (autossuficiente), com gate de aprovação e sem push.", "recommended": true },
119
- { "id": "configurar-auto-tag", "file": "commands/configurar-auto-tag.md", "title": "/configurar-auto-tag", "description": "Detecta o padrão de versionamento (qualquer stack, inclusive Delphi) e gera a GitHub Action que cria a tag automaticamente quando a versão chega na main.", "recommended": true },
120
- { "id": "revisar-pr", "file": "commands/revisar-pr.md", "title": "/revisar-pr", "description": "Revisa um PR ou o diff atual, classificando em BLOQUEANTE/IMPORTANTE/SUGESTÃO.", "recommended": false }
83
+ { "id": "revisar-pr", "file": "commands/revisar-pr.md", "title": "/revisar-pr", "description": "Revisa um PR ou o diff atual em BLOQUEANTE/IMPORTANTE/SUGESTÃO e, se pedido, organiza as correções num trabalho com teste de regressão.", "recommended": false, "replaces": ["corrigir-review"] }
121
84
  ]
122
85
  }
123
86
  ]
@@ -1,15 +1,49 @@
1
1
  ---
2
- description: Atualiza dependências em lotes, rodando testes a cada passo e isolando o que quebra.
2
+ description: Atualiza dependências em lotes (patch, minor e major), rodando build e testes a cada passo e isolando o pacote que quebra.
3
+ argument-hint: "[pacote específico ou 'tudo']"
3
4
  ---
4
5
 
5
- # Atualização segura de dependências
6
+ # /atualizar-deps — Atualização segura de dependências
6
7
 
7
- Alvo (opcional — pacote específico ou "tudo"): $ARGUMENTS
8
+ Alvo: $ARGUMENTS
8
9
 
9
- Passos:
10
+ > **🚦 Há um GATE de aprovação** antes de alterar qualquer arquivo de dependências. Este comando **não faz commit
11
+ > nem push**.
10
12
 
11
- 1. Detecte o gerenciador de pacotes do projeto (npm/pnpm/yarn, pip/poetry, go, cargo, maven, etc.) e liste as dependências **desatualizadas**, separando **patch**, **minor** e **major**.
12
- 2. Garanta um baseline verde: rode build e testes **antes** de qualquer mudança. Se já estiver vermelho, **pare e me avise**.
13
- 3. Atualize em lotes, do mais seguro ao mais arriscado: primeiro **patch**, depois **minor**, por último **major** (um de cada vez). Após cada lote, rode build + testes.
14
- 4. Se um lote quebrar, **isole o pacote culpado**, reverta-o e siga com o resto. Para cada **major**, consulte o changelog/breaking changes antes (use o Context7 quando útil).
15
- 5. **Não faça commit nem push** sem minha confirmação. Ao final, reporte: o que foi atualizado, o que foi segurado e por quê, e o estado da suíte.
13
+ ## Passo 0 — Pré-checagem (somente leitura)
14
+
15
+ 1. Detecte o gerenciador de pacotes (npm/pnpm/yarn, pip/poetry, dotnet, go, cargo, maven...) e o arquivo de lock.
16
+ 2. Liste as dependências **desatualizadas**, separando **patch**, **minor** e **major**
17
+ (`npm outdated`, `pip list --outdated`, `dotnet list package --outdated`...).
18
+ 3. Garanta um **baseline verde**: rode build e testes antes de qualquer mudança. Se já estiver vermelho, **pare e
19
+ avise** — atualizar sobre uma suíte quebrada esconde a causa das próximas falhas.
20
+
21
+ ## Passo 1 — Planejar os lotes
22
+
23
+ - Ordem do mais seguro ao mais arriscado: **patch**, depois **minor**, por último cada **major** separadamente.
24
+ - Para cada major, leia o changelog e as breaking changes (use o Context7 quando útil) e anote o que muda no
25
+ projeto.
26
+ - Separe as dependências que também aparecem como vulneráveis: elas sobem de prioridade.
27
+
28
+ ## Passo 2 — 🚦 GATE de aprovação
29
+
30
+ Mostre os lotes, o resumo das breaking changes de cada major e o que você propõe **segurar** (e por quê).
31
+ **Peça aprovação explícita.**
32
+
33
+ ## Passo 3 — Aplicar lote a lote
34
+
35
+ 1. Aplique um lote e rode build e testes.
36
+ 2. Se quebrar, **isole o pacote culpado**, reverta-o e siga com o restante.
37
+ 3. Uma major que exige mudança de código só é migrada se a migração estiver no escopo aprovado no GATE.
38
+
39
+ ## Passo 4 — Relatório
40
+
41
+ Informe o que foi atualizado, o que foi segurado e o motivo, e o estado final da suíte. Vulnerabilidades que
42
+ continuaram abertas viram recomendação de `/auditar-seguranca`.
43
+
44
+ ## Guardrails
45
+
46
+ - **Nunca** atualizar com o baseline vermelho nem aplicar várias majors de uma vez.
47
+ - **Nunca** trocar o gerenciador de pacotes nem apagar o arquivo de lock.
48
+ - **Nunca** fazer commit ou push por conta própria.
49
+ - Conteúdo em **pt-BR**.
@@ -1,17 +1,42 @@
1
1
  ---
2
- description: Gera diagramas Mermaid de arquitetura/fluxo a partir do código do projeto.
2
+ description: Gera diagramas Mermaid fiéis ao código (arquitetura, fluxo, sequência, dados e estados) e salva em docs/diagramas/.
3
+ argument-hint: "[visão: 'arquitetura geral', 'fluxo de login', 'modelo de dados']"
3
4
  ---
4
5
 
5
- # Geração de diagrama (Mermaid)
6
+ # /diagrama — Diagrama Mermaid a partir do código
6
7
 
7
- O que diagramar (opcional — ex.: "arquitetura geral", "fluxo de login", "modelo de dados"): $ARGUMENTS
8
+ Visão: $ARGUMENTS
8
9
 
9
- Se eu não especifiquei, me pergunte qual visão eu quero antes de gerar.
10
+ > **🚦 Há um GATE de aprovação** antes de gravar o arquivo.
10
11
 
11
- Passos:
12
+ ## Passo 0 — Definir a visão
12
13
 
13
- 1. Explore o código para entender a estrutura relevante (módulos, camadas, serviços, entidades, rotas, eventos) ao tema pedido.
14
- 2. Gere um diagrama em **Mermaid**, escolhendo o tipo adequado: `flowchart` (arquitetura/fluxo), `sequenceDiagram` (interações), `erDiagram` (dados), `classDiagram` (modelo OO), `stateDiagram` (estados).
15
- 3. Mantenha o diagrama **fiel ao código real**, não a uma versão idealizada. Use nomes reais de módulos/arquivos.
16
- 4. Salve em `docs/diagramas/<slug>.md` (crie a pasta se necessário) com um título e um parágrafo curto explicando o que o diagrama mostra.
17
- 5. Mostre o bloco Mermaid no chat e o caminho do arquivo salvo.
14
+ Se a visão não veio nos argumentos, pergunte qual é antes de explorar o código.
15
+
16
+ ## Passo 1 — Explorar o código (somente leitura)
17
+
18
+ Entenda a estrutura relevante para a visão pedida: módulos, camadas, serviços, entidades, rotas e eventos.
19
+
20
+ ## Passo 2 — Rascunhar o diagrama
21
+
22
+ 1. Escolha o tipo: `flowchart` (arquitetura ou fluxo), `sequenceDiagram` (interações), `erDiagram` (dados),
23
+ `classDiagram` (modelo orientado a objetos) ou `stateDiagram` (estados).
24
+ 2. Use os **nomes reais** de módulos, arquivos e tabelas — o diagrama retrata o código como ele é, não uma versão
25
+ idealizada.
26
+ 3. Mostre o bloco Mermaid no chat.
27
+
28
+ ## Passo 3 — 🚦 GATE de aprovação
29
+
30
+ Confirme o diagrama e o caminho `docs/diagramas/<slug>.md`. Se já existir um diagrama da mesma visão, proponha
31
+ atualizá-lo em vez de criar outro.
32
+
33
+ ## Passo 4 — Gravar
34
+
35
+ Grave o arquivo com um título, um parágrafo curto explicando o que o diagrama mostra e o bloco Mermaid, e mostre o
36
+ caminho salvo.
37
+
38
+ ## Guardrails
39
+
40
+ - **Nunca** desenhar o que o código não faz; lacunas ficam explícitas no parágrafo.
41
+ - **Nunca** alterar código neste comando.
42
+ - Conteúdo em **pt-BR**.
@@ -1,16 +1,45 @@
1
1
  ---
2
- description: Monta o .env.example a partir das variáveis de ambiente realmente lidas no código.
2
+ description: Monta o .env.example a partir das variáveis de ambiente realmente lidas no código, com placeholders seguros e as divergências da configuração atual.
3
+ argument-hint: "[escopo opcional]"
3
4
  ---
4
5
 
5
- # Geração de .env.example
6
+ # /gerar-env — .env.example fiel ao código
6
7
 
7
- Escopo (opcional): $ARGUMENTS
8
+ Escopo: $ARGUMENTS
8
9
 
9
- Passos:
10
+ > **🚦 Há um GATE de aprovação** antes de gravar o `.env.example`.
10
11
 
11
- 1. Varra o código procurando todo acesso a variáveis de ambiente (`process.env.X`, `os.environ`, `os.getenv`, `Deno.env`, `System.getenv`, libs de config, etc.).
12
- 2. Consolide a lista única de variáveis usadas, inferindo para cada uma: finalidade, se é obrigatória ou opcional e um valor de exemplo **seguro** (placeholder).
13
- 3. **Nunca** copie segredos reais para o `.env.example` — use placeholders como `troque-me`, `sua-chave-aqui`. Se encontrar segredos hardcoded no código, **avise** como achado de segurança.
14
- 4. Gere/atualize `.env.example` agrupando por contexto (banco, auth, integrações, etc.) com um comentário curto por variável.
15
- 5. Compare com o `.env` atual (se existir e não estiver no git) e aponte variáveis usadas no código mas ausentes da config, e vice-versa.
16
- 6. Garanta que `.env` está no `.gitignore`. Mostre o resultado e as divergências encontradas.
12
+ ## Passo 0 — Pré-checagem (somente leitura)
13
+
14
+ Identifique a stack e as bibliotecas de configuração usadas (dotenv, configuração do framework, arquivos de
15
+ settings).
16
+
17
+ ## Passo 1 — Varrer o código
18
+
19
+ Encontre todo acesso a variáveis de ambiente: `process.env.X`, `os.environ`, `os.getenv`, `Deno.env`,
20
+ `System.getenv`, `Environment.GetEnvironmentVariable` e as bibliotecas de configuração.
21
+
22
+ ## Passo 2 — Consolidar
23
+
24
+ Para cada variável: finalidade, obrigatória ou opcional e um **placeholder seguro** (`troque-me`, `sua-chave-aqui`).
25
+ Segredo escrito direto no código é **achado de segurança**: aponte a localização e sugira `/auditar-seguranca`.
26
+
27
+ ## Passo 3 — Comparar com a configuração atual
28
+
29
+ Compare com o `.env.example` existente e com os **nomes** das variáveis do `.env` local, se houver: aponte o que o
30
+ código usa e falta na configuração, e o que está configurado e ninguém usa.
31
+
32
+ ## Passo 4 — 🚦 GATE de aprovação
33
+
34
+ Mostre o `.env.example` proposto, agrupado por contexto (banco, autenticação, integrações...), e as divergências.
35
+ **Peça aprovação.**
36
+
37
+ ## Passo 5 — Gravar
38
+
39
+ Grave o `.env.example` e garanta que `.env` está no `.gitignore`.
40
+
41
+ ## Guardrails
42
+
43
+ - **Nunca** copiar valores reais para o `.env.example`, para o chat ou para relatórios — só nomes de variáveis.
44
+ - O hook `segredo-no-commit` bloqueia o commit de `.env` com valores; não tente contorná-lo.
45
+ - Conteúdo em **pt-BR**.
@@ -1,17 +1,49 @@
1
1
  ---
2
- description: Detecta cobertura de testes faltante e escreve os testes seguindo TDD (RED→GREEN).
2
+ description: Detecta cobertura de testes faltante e escreve testes com asserções fortes (pelo menos 2 por comportamento crítico), sem alterar o código de produção.
3
+ argument-hint: "[arquivo, módulo ou pasta]"
3
4
  ---
4
5
 
5
- # Geração de testes
6
+ # /gerar-testes — Testes para o que não está coberto
6
7
 
7
- Alvo (arquivo, módulo ou pasta): $ARGUMENTS
8
+ Alvo: $ARGUMENTS
8
9
 
9
- Se eu não informei um alvo, primeiro liste os módulos com **menor cobertura ou sem testes** e me pergunte por onde começar.
10
+ > **🚦 Há um GATE de aprovação** antes de gravar os testes.
10
11
 
11
- Passos:
12
+ ## Passo 0 — Pré-checagem (somente leitura)
12
13
 
13
- 1. Leia o `CLAUDE.md` e o framework de testes já usado no projeto. **Não introduza um framework novo** sem me perguntar.
14
- 2. Para o alvo, mapeie os comportamentos críticos, casos de borda e caminhos de erro que **não** estão cobertos hoje.
15
- 3. Escreva os testes seguindo **TDD**: primeiro confirme que eles falham (**RED**) contra o estado atual quando fizer sentido; depois garanta que passam (**GREEN**). Mínimo de **2 testes críticos** por comportamento.
16
- 4. **Não altere o código de produção** para fazer um teste passar, a menos que exista um bug evidente — nesse caso, **pare e me avise** antes.
17
- 5. Ao final, rode a suíte e reporte: quantos testes foram criados, o que passou/falhou e qual a cobertura aproximada antes/depois.
14
+ 1. Leia o `CLAUDE.md` e identifique o framework de testes já usado. **Não introduza framework novo** sem perguntar.
15
+ 2. Sem alvo informado, liste os módulos com **menor cobertura ou sem testes** e pergunte por onde começar.
16
+ 3. Rode a suíte atual e anote o resultado (baseline).
17
+
18
+ ## Passo 1 — Mapear o que falta
19
+
20
+ Para o alvo, liste os comportamentos críticos, os casos de borda e os caminhos de erro que **não** estão cobertos,
21
+ com `arquivo:linha`.
22
+
23
+ ## Passo 2 — 🚦 GATE de aprovação
24
+
25
+ Mostre os testes propostos (**pelo menos 2 por comportamento crítico**), onde cada um será criado e o que ele
26
+ verifica. **Peça aprovação.**
27
+
28
+ ## Passo 3 — Escrever os testes
29
+
30
+ 1. Cada teste precisa **falhar se o comportamento mudar**: evite asserções fracas (só "não lança", só status 200) e
31
+ mocks que substituem justamente o que está sendo testado.
32
+ 2. Rode os testes novos e a suíte completa.
33
+ 3. Quando útil, peça ao agent `revisor-testes` (no plugin, `fontdata:revisor-testes`) que confira se os testes
34
+ passariam com uma implementação errada.
35
+
36
+ ## Passo 4 — Bug encontrado
37
+
38
+ Se um teste revelar um defeito real, **pare**: não altere o código de produção. Mostre o teste que falha e sugira
39
+ `/resolver-bug`.
40
+
41
+ ## Passo 5 — Relatório
42
+
43
+ Quantos testes foram criados, o resultado da suíte e a cobertura aproximada antes e depois.
44
+
45
+ ## Guardrails
46
+
47
+ - **Nunca** alterar o código de produção para fazer um teste passar.
48
+ - **Nunca** introduzir framework ou dependência de teste sem aprovação.
49
+ - Conteúdo em **pt-BR**.
File without changes
@@ -1,21 +1,50 @@
1
1
  ---
2
- description: Gera um guia de onboarding (como rodar, entender e contribuir) para um dev novo no projeto.
2
+ description: Gera um guia de onboarding verificado (como rodar, entender e contribuir) em docs/ONBOARDING.md para quem chega no projeto.
3
+ argument-hint: "[público: 'dev backend júnior', 'pessoa de QA'...]"
3
4
  ---
4
5
 
5
- # Guia de onboarding
6
+ # /onboarding — Guia para quem chega
6
7
 
7
- Público-alvo (opcional — ex.: "dev backend júnior", "pessoa de QA"): $ARGUMENTS
8
+ Público: $ARGUMENTS
8
9
 
9
- Passos:
10
+ > **🚦 Há um GATE de aprovação** antes de gravar o guia.
10
11
 
11
- 1. Leia o `CLAUDE.md`, o `SPEC.md` (se houver), os scripts do projeto e a estrutura de pastas.
12
- 2. Monte um guia prático em `docs/ONBOARDING.md` cobrindo:
13
- - **Visão geral** do que o projeto faz (1–2 parágrafos).
14
- - **Pré-requisitos** e versões (linguagem, runtime, ferramentas).
15
- - **Setup passo a passo** até rodar localmente (instalar, variáveis de ambiente, subir o app).
16
- - **Como rodar testes** e o que o harness espera (TDD, gates).
17
- - **Mapa do código**: principais pastas/módulos e o que cada um faz.
18
- - **Fluxo de trabalho**: branches, commits semânticos, slash commands do dia a dia.
19
- - **Onde pedir ajuda / armadilhas comuns**.
20
- 3. Baseie tudo no estado **real** do projeto — confira que os comandos descritos realmente existem e funcionam. Não invente passos.
21
- 4. Ao final, mostre o caminho do arquivo e um resumo do que foi documentado.
12
+ ## Passo 0 — Público
13
+
14
+ Sem público nos argumentos, pergunte para quem é o guia: o nível de detalhe muda.
15
+
16
+ ## Passo 1 — Ler o projeto (somente leitura)
17
+
18
+ `CLAUDE.md`, `SPEC.md`, scripts de build e teste, estrutura de pastas e os trabalhos recentes em `docs/trabalhos/`.
19
+
20
+ ## Passo 2 — Verificar os comandos
21
+
22
+ Confira que os comandos que o guia vai citar **existem e funcionam** (build, testes, subir a aplicação). Não instale
23
+ nada sem perguntar; comando que não funciona entra no guia como armadilha conhecida, não como passo.
24
+
25
+ ## Passo 3 — Rascunhar o guia
26
+
27
+ Seções de `docs/ONBOARDING.md`:
28
+
29
+ - **Visão geral** do que o projeto faz.
30
+ - **Pré-requisitos** e versões.
31
+ - **Setup passo a passo** até rodar localmente.
32
+ - **Como rodar os testes** e o que o harness espera (TDD, gates).
33
+ - **Mapa do código**: principais pastas e módulos.
34
+ - **Como trabalhamos**: `/nova-tarefa`, `/executar-plan`, `/resolver-bug`, a pasta de cada trabalho em
35
+ `docs/trabalhos/`, commits semânticos e `npx @fontdata/ai-harness doctor`.
36
+ - **Armadilhas comuns** e onde pedir ajuda.
37
+
38
+ ## Passo 4 — 🚦 GATE de aprovação
39
+
40
+ Mostre o guia completo. **Peça aprovação.**
41
+
42
+ ## Passo 5 — Gravar
43
+
44
+ Grave `docs/ONBOARDING.md` e resuma o que foi documentado.
45
+
46
+ ## Guardrails
47
+
48
+ - **Nunca** inventar passos que não foram verificados.
49
+ - **Nunca** incluir valores de variáveis de ambiente ou credenciais.
50
+ - Conteúdo em **pt-BR**.
@@ -1,17 +1,57 @@
1
1
  ---
2
- description: Refatora um alvo usando os testes existentes como rede de segurança, sem mudar comportamento.
2
+ description: Refatora um alvo em passos pequenos usando os testes existentes como rede de segurança, sem mudar comportamento. Também caça e remove código morto (imports, exports, funções e arquivos não usados).
3
+ argument-hint: "[arquivo ou módulo | codigo-morto] [objetivo: legibilidade, duplicação, acoplamento...]"
3
4
  ---
4
5
 
5
- # Refatoração guiada por testes
6
+ # /refatorar — Refatoração guiada por testes
6
7
 
7
- Alvo da refatoração: $ARGUMENTS
8
+ Alvo e objetivo: $ARGUMENTS
8
9
 
9
- Se eu não informei um alvo, me pergunte qual arquivo/módulo refatorar e qual o objetivo (legibilidade, duplicação, performance, acoplamento).
10
+ > **🚦 Há um GATE de aprovação** antes de alterar o código.
10
11
 
11
- Regras:
12
+ ## Passo 0 — Alvo e objetivo
12
13
 
13
- 1. **Refatoração não muda comportamento.** A interface pública e os resultados observáveis devem permanecer idênticos.
14
- 2. Antes de tocar no código, verifique se há **testes cobrindo o alvo**. Se a cobertura for insuficiente, **pare e me avise** — ofereça rodar `/gerar-testes` primeiro para criar a rede de segurança.
15
- 3. Rode os testes **antes** (baseline verde), faça a refatoração em passos pequenos e rode os testes **depois** de cada passo. Se algo ficar vermelho, reverta o passo.
16
- 4. Não misture refatoração com novas funcionalidades nem com correção de bugs na mesma passada.
17
- 5. Ao final, reporte: o que mudou, por quê, e a confirmação de que toda a suíte continua verde.
14
+ Sem alvo ou objetivo nos argumentos, pergunte qual arquivo ou módulo refatorar e o que se quer melhorar
15
+ (legibilidade, duplicação, acoplamento, performance).
16
+
17
+ **Alvo código morto** (`/refatorar codigo-morto [pasta ou módulo]` ou pedido equivalente):
18
+
19
+ 1. Varra imports, exports sem consumidor, funções, variáveis e classes nunca referenciadas, arquivos órfãos e
20
+ dependências não usadas com a ferramenta da stack (ex.: `knip`, `ts-prune`, `depcheck`, `vulture`, `deadcode`,
21
+ linter). **Não instale nada novo** sem perguntar.
22
+ 2. Confirme cada item **por busca** no projeto e classifique a confiança: **ALTA**, **MÉDIA** (reflexão, rota,
23
+ acesso por string, teste) ou **BAIXA**. Cuidado com API pública, entrypoints e plugins.
24
+ 3. Crie um trabalho do tipo `investigacao` (id `AAAA-MM-DD-codigo-morto`) e grave o relatório em
25
+ `docs/trabalhos/<id>/relatorios/TECNICO.md`, com o frontmatter do contrato (`tipo: relatorio_tecnico`,
26
+ `trabalho_tipo: investigacao`) e os arquivos analisados em `arquivos`.
27
+ 4. Os itens a remover passam pelo GATE do Passo 3; cada remoção é um passo do Passo 4.
28
+
29
+ ## Passo 1 — Rede de segurança (somente leitura)
30
+
31
+ 1. Verifique se há **testes cobrindo o comportamento do alvo**. Com cobertura insuficiente, **pare** e ofereça rodar
32
+ `/gerar-testes` primeiro.
33
+ 2. Rode a suíte e confirme o **baseline verde**.
34
+
35
+ ## Passo 2 — Planejar os passos
36
+
37
+ Liste passos pequenos e independentes, cada um verificável pela suíte. Em **código legado**, preserve o **padrão
38
+ local** do arquivo: a refatoração melhora a estrutura sem impor as convenções de arquivo novo.
39
+
40
+ ## Passo 3 — 🚦 GATE de aprovação
41
+
42
+ Mostre os passos, o que muda em cada um e a garantia de que a interface pública permanece igual. **Peça aprovação.**
43
+
44
+ ## Passo 4 — Executar passo a passo
45
+
46
+ Aplique um passo, rode a suíte e siga. Se algo ficar vermelho, **reverta o passo** e reavalie.
47
+
48
+ ## Passo 5 — Relatório
49
+
50
+ O que mudou, por quê e a confirmação de que toda a suíte continua verde.
51
+
52
+ ## Guardrails
53
+
54
+ - **Refatoração não muda comportamento**: interface pública e resultados observáveis idênticos.
55
+ - **Nunca** misturar refatoração com funcionalidade nova ou correção de defeito na mesma passada.
56
+ - **Nunca** remover código morto que não foi aprovado no GATE, principalmente os de confiança MÉDIA ou BAIXA.
57
+ - Conteúdo em **pt-BR**.
@@ -1,18 +1,62 @@
1
1
  ---
2
- description: Faz o review de um PR ou do diff atual, classificando achados em BLOQUEANTE, IMPORTANTE e SUGESTÃO.
2
+ description: Faz o review de um PR, de uma branch ou do diff atual, classificando os achados em BLOQUEANTE, IMPORTANTE e SUGESTÃO, sem alterar código. Se pedido, organiza as correções num trabalho com plano.
3
+ argument-hint: "[número do PR, branch ou nada para o diff atual]"
3
4
  ---
4
5
 
5
- # Review de PR / diff
6
+ # /revisar-pr — Review de PR ou diff
6
7
 
7
- Alvo (opcional — número do PR, branch ou nada para o diff atual): $ARGUMENTS
8
+ Alvo: $ARGUMENTS
8
9
 
9
- Passos:
10
+ Este comando só lê e reporta. O Passo 5, opcional, só cria arquivos se o usuário pedir e depois do GATE.
10
11
 
11
- 1. Determine o que revisar:
12
- - Se eu informei um **número de PR**, use o `gh` para buscar o diff (`gh pr diff <n>`) e a descrição.
13
- - Se informei uma **branch**, compare-a com a branch principal.
14
- - Se **nada** foi informado, revise o diff local atual (`git diff` do que está em andamento vs. a base).
15
- 2. Se existir o agent `@code-reviewer` em `.claude/agents/`, **delegue a ele** a análise, passando `SPEC.md`/plano como referência. Caso contrário, faça o review diretamente.
16
- 3. Avalie: correção (bugs, casos de borda), segurança, performance, testes (existem? cobrem o crítico?), aderência ao `CLAUDE.md` e às convenções, legibilidade e simplicidade, e **comentários** (orçamento da rule `.claude/rules/comentarios.md`: bloco <= 3 linhas, docstring pública <= 5, sem cabeçalho de arquivo, sem banner/separador, sem task/plano/data/hash de commit no código) — comentário fora do padrão é **IMPORTANTE**, não SUGESTÃO.
17
- 4. Classifique cada achado em **BLOQUEANTE** (não pode entrar assim), **IMPORTANTE** (deveria ser ajustado) e **SUGESTÃO** (melhoria opcional), com `arquivo:linha` e a correção proposta.
18
- 5. Termine com um veredito: **aprovar**, **aprovar com ressalvas** ou **solicitar mudanças**. Não altere o código — apenas revise.
12
+ ## Passo 0 — Determinar o que revisar
13
+
14
+ - **Número de PR:** busque o diff e a descrição com `gh pr diff <n>` e `gh pr view <n>`.
15
+ - **Branch:** compare com a branch principal.
16
+ - **Nada informado:** revise o diff local em andamento contra a base.
17
+
18
+ ## Passo 1 — Contexto
19
+
20
+ Leia o `SPEC.md`, as rules de `.claude/rules/` e, se o diff pertence a um trabalho, o `SPEC.md` e o `PLAN.md` dele
21
+ em `docs/trabalhos/<id>/`.
22
+
23
+ ## Passo 2 — Delegar ou revisar
24
+
25
+ Se existir o agent `code-reviewer` em `.claude/agents/`, delegue a análise a ele, passando o diff e o contexto.
26
+ Caso contrário, revise diretamente.
27
+
28
+ ## Passo 3 — Avaliar
29
+
30
+ 1. **Correção:** bugs, casos de borda, erros silenciados.
31
+ 2. **Aderência** à SPEC e ao plano do trabalho.
32
+ 3. **Testes:** existem e cobrem o crítico? Falhariam com a implementação errada?
33
+ 4. **Segurança e dados:** autorização, isolamento, segredos.
34
+ 5. **Performance** nos trechos quentes.
35
+ 6. **Convenções** do `CLAUDE.md` e das rules; em código legado, respeito ao padrão local.
36
+ 7. **Comentários** fora do orçamento de `.claude/rules/comentarios.md` são **IMPORTANTE**, não sugestão.
37
+
38
+ ## Passo 4 — Classificar e concluir
39
+
40
+ Cada achado em **BLOQUEANTE**, **IMPORTANTE** ou **SUGESTÃO**, com `arquivo:linha` e a correção proposta. Termine
41
+ com o veredito: **aprovar**, **aprovar com ressalvas** ou **solicitar mudanças**. Com achados a corrigir, ofereça
42
+ o Passo 5.
43
+
44
+ ## Passo 5 — Organizar as correções (opcional, só se o usuário pedir)
45
+
46
+ 1. Entram sempre os achados **BLOQUEANTE** e **IMPORTANTE**; pergunte quais **SUGESTÕES** entram.
47
+ 2. Rascunhe o trabalho de correção seguindo `/nova-tarefa` (id `AAAA-MM-DD-correcoes-<slug>`, tipo `feature`) ou,
48
+ quando o achado for defeito de comportamento, `/resolver-bug`. Os documentos ficam em `docs/trabalhos/<id>/`.
49
+ 3. Cada achado vira uma task com **pelo menos 2 testes críticos**, sendo o primeiro um **teste de regressão** que
50
+ falha hoje pelo problema apontado. O achado de origem fica na prosa da task, nunca no código.
51
+ 4. Para cada **classe** de problema que as rules de `.claude/rules/` não cobrem, sugira uma rule curta que teria
52
+ evitado o achado.
53
+ 5. **🚦 GATE de aprovação:** mostre as tasks por achado, as rules sugeridas e o que ficou de fora. **Não crie nenhum
54
+ arquivo antes da aprovação explícita.** Aprovado, siga o fluxo de `/nova-tarefa` ou `/resolver-bug` (auditoria
55
+ do plano e execução com `/executar-plan`).
56
+
57
+ ## Guardrails
58
+
59
+ - **Nunca** alterar código neste comando; até o GATE do Passo 5, nem criar arquivos.
60
+ - **Nunca** escrever no código a referência ao achado ou ao review — ela mora na prosa do `PLAN.md`.
61
+ - **Nunca** publicar comentários no PR sem pedido explícito.
62
+ - Conteúdo em **pt-BR**.