@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +9 -2
- package/LICENSE +21 -0
- package/README.md +174 -140
- package/{src → dist}/catalog.js +5 -12
- package/dist/cli.js +174 -0
- package/dist/comentarios/command.js +74 -0
- package/dist/comentarios/instalar.js +33 -0
- package/dist/config/config.js +98 -0
- package/dist/contratos/artefatos.js +284 -0
- package/dist/contratos/eventos.js +103 -0
- package/dist/doctor/checks.js +424 -0
- package/dist/init.js +240 -0
- package/dist/install/atomic.js +51 -0
- package/dist/install/flags.js +99 -0
- package/dist/install/hooks.js +47 -0
- package/dist/install/lock.js +39 -0
- package/dist/install/plan.js +209 -0
- package/dist/install/selection.js +77 -0
- package/dist/install/settings.js +108 -0
- package/dist/memoria/indice.js +195 -0
- package/dist/migrar/migrar.js +426 -0
- package/dist/rastro/command.js +46 -0
- package/dist/run.js +86 -0
- package/dist/types.js +1 -0
- package/dist/update/legado.js +74 -0
- package/dist/update/update.js +284 -0
- package/package.json +17 -8
- package/templates/CLAUDE.md +59 -30
- package/templates/agents/auditor-plano.md +42 -0
- package/templates/agents/investigador.md +32 -0
- package/templates/agents/qa.md +44 -0
- package/templates/agents/revisor-testes.md +40 -0
- package/templates/catalog.json +24 -61
- package/templates/commands/atualizar-deps.md +43 -9
- package/templates/commands/diagrama.md +35 -10
- package/templates/commands/gerar-env.md +39 -10
- package/templates/commands/gerar-testes.md +42 -10
- package/templates/commands/git-commit-push.md +0 -0
- package/templates/commands/onboarding.md +44 -15
- package/templates/commands/refatorar.md +50 -10
- package/templates/commands/revisar-pr.md +56 -12
- package/templates/commands/sincronizar-claude-md.md +177 -9
- package/templates/commands/versao.md +0 -0
- package/templates/hooks/comentarios/check.mjs +210 -0
- package/templates/hooks/hooks.json +34 -0
- package/templates/hooks/lembrete.mjs +29 -0
- package/templates/hooks/lib/config.mjs +40 -0
- package/templates/hooks/lib/hook.mjs +85 -0
- package/templates/hooks/lib/rastro.mjs +130 -0
- package/templates/hooks/lib/segredos.mjs +91 -0
- package/templates/hooks/lib/temas.mjs +111 -0
- package/templates/hooks/lib/trabalho.mjs +94 -0
- package/templates/hooks/proteger-contratos.mjs +56 -0
- package/templates/hooks/segredo-no-commit.mjs +76 -0
- package/templates/hooks/sem-jargao.mjs +58 -0
- package/templates/hooks/task-so-fecha-verde.mjs +33 -0
- package/templates/legado/manifesto.json +1267 -0
- package/templates/rules/comentarios.md +166 -0
- package/templates/rules/harness-projeto.md +41 -0
- package/templates/skills/auditar-performance/SKILL.md +53 -0
- package/templates/skills/auditar-performance/references/pontos-quentes.md +35 -0
- package/templates/skills/auditar-performance/templates/relatorios/CLIENTE.md +26 -0
- package/templates/skills/auditar-performance/templates/relatorios/TECNICO.md +27 -0
- package/templates/skills/auditar-seguranca/SKILL.md +67 -0
- package/templates/skills/auditar-seguranca/references/seguranca-tecnica.md +23 -0
- package/templates/skills/auditar-seguranca/templates/relatorios/CLIENTE.md +30 -0
- package/templates/skills/auditar-seguranca/templates/relatorios/TECNICO.md +38 -0
- package/templates/skills/auditar-ui/SKILL.md +64 -0
- package/templates/skills/auditar-ui/references/lentes.md +33 -0
- package/templates/skills/auditar-ui/templates/relatorios/CLIENTE.md +26 -0
- package/templates/skills/auditar-ui/templates/relatorios/TECNICO.md +31 -0
- package/templates/skills/evoluir-harness/SKILL.md +81 -0
- package/templates/skills/evoluir-harness/references/agent.md +83 -0
- package/templates/skills/evoluir-harness/references/auditoria.md +107 -0
- package/templates/skills/evoluir-harness/references/code-reviewer.md +68 -0
- package/templates/skills/evoluir-harness/references/design-system.md +56 -0
- package/templates/skills/evoluir-harness/references/hook.md +95 -0
- package/templates/skills/evoluir-harness/references/rule.md +67 -0
- package/templates/skills/evoluir-harness/references/skill.md +63 -0
- package/templates/skills/executar-plan/SKILL.md +114 -0
- package/templates/skills/executar-plan/references/delegacao.md +43 -0
- package/templates/skills/executar-plan/references/retomada.md +33 -0
- package/templates/skills/executar-plan/templates/BLOQUEIOS.md +30 -0
- package/templates/skills/harness/SKILL.md +75 -0
- package/templates/skills/harness/references/auto-tag.md +118 -0
- package/templates/skills/harness/references/ignores.md +40 -0
- package/templates/skills/harness/references/scaffold.md +29 -0
- package/templates/skills/harness/references/validar-ideia.md +42 -0
- package/templates/skills/memoria/SKILL.md +52 -0
- package/templates/skills/nova-tarefa/SKILL.md +97 -0
- package/templates/skills/nova-tarefa/references/isso-ja-existe.md +24 -0
- package/templates/skills/nova-tarefa/references/regras-do-plano.md +33 -0
- package/templates/skills/nova-tarefa/templates/DECISOES.md +20 -0
- package/templates/skills/nova-tarefa/templates/PLAN.md +58 -0
- package/templates/skills/nova-tarefa/templates/SPEC.md +37 -0
- package/templates/skills/resolver-bug/SKILL.md +104 -0
- package/templates/skills/resolver-bug/references/relatorio-para-cliente.md +26 -0
- package/templates/skills/resolver-bug/templates/PLAN.md +62 -0
- package/templates/skills/resolver-bug/templates/relatorios/CLIENTE.md +29 -0
- package/templates/skills/resolver-bug/templates/relatorios/TECNICO.md +32 -0
- package/bin/cli.js +0 -122
- package/src/init.js +0 -317
- package/src/installer.js +0 -92
- package/src/run.js +0 -99
- package/templates/commands/auditar-performance.md +0 -27
- package/templates/commands/auditar-seguranca.md +0 -64
- package/templates/commands/auditar-ui.md +0 -38
- package/templates/commands/codigo-morto.md +0 -22
- package/templates/commands/configurar-auto-tag.md +0 -185
- package/templates/commands/configurar-comentarios.md +0 -543
- package/templates/commands/configurar-orquestrador.md +0 -13
- package/templates/commands/corrigir-review.md +0 -11
- package/templates/commands/criar-agents.md +0 -42
- package/templates/commands/criar-code-reviewer.md +0 -30
- package/templates/commands/criar-hooks.md +0 -32
- package/templates/commands/criar-rag.md +0 -25
- package/templates/commands/criar-rules.md +0 -31
- package/templates/commands/criar-skill.md +0 -22
- package/templates/commands/design-system.md +0 -27
- package/templates/commands/executar-plan.md +0 -36
- package/templates/commands/gerar-claude-md.md +0 -66
- package/templates/commands/gerar-ignore.md +0 -37
- package/templates/commands/gerar-spec.md +0 -33
- package/templates/commands/harness.md +0 -34
- package/templates/commands/nova-tarefa.md +0 -60
- package/templates/commands/resolver-bug.md +0 -25
- package/templates/commands/review-por-task.md +0 -16
- package/templates/commands/scaffold.md +0 -25
- package/templates/commands/validar-commands.md +0 -24
- package/templates/commands/validar-ideia.md +0 -36
package/templates/catalog.json
CHANGED
|
@@ -7,69 +7,43 @@
|
|
|
7
7
|
},
|
|
8
8
|
"master": {
|
|
9
9
|
"id": "harness",
|
|
10
|
-
"
|
|
11
|
-
"title": "/harness (
|
|
12
|
-
"description": "Conduz
|
|
13
|
-
"requires": [
|
|
14
|
-
|
|
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
|
|
28
|
+
"title": "Setup e contexto",
|
|
37
29
|
"commands": [
|
|
38
|
-
{ "id": "
|
|
39
|
-
{ "id": "
|
|
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", "
|
|
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", "
|
|
72
|
-
{ "id": "nova-tarefa", "
|
|
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 (
|
|
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": "
|
|
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": "
|
|
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
|
|
8
|
+
Alvo: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
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
|
-
#
|
|
6
|
+
# /diagrama — Diagrama Mermaid a partir do código
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Visão: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **🚦 Há um GATE de aprovação** antes de gravar o arquivo.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
## Passo 0 — Definir a visão
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
#
|
|
6
|
+
# /gerar-env — .env.example fiel ao código
|
|
6
7
|
|
|
7
|
-
Escopo
|
|
8
|
+
Escopo: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **🚦 Há um GATE de aprovação** antes de gravar o `.env.example`.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
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
|
-
#
|
|
6
|
+
# /gerar-testes — Testes para o que não está coberto
|
|
6
7
|
|
|
7
|
-
Alvo
|
|
8
|
+
Alvo: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **🚦 Há um GATE de aprovação** antes de gravar os testes.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
## Passo 0 — Pré-checagem (somente leitura)
|
|
12
13
|
|
|
13
|
-
1. Leia o `CLAUDE.md` e o framework de testes já usado
|
|
14
|
-
2.
|
|
15
|
-
3.
|
|
16
|
-
|
|
17
|
-
|
|
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
|
|
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
|
|
6
|
+
# /onboarding — Guia para quem chega
|
|
6
7
|
|
|
7
|
-
Público
|
|
8
|
+
Público: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **🚦 Há um GATE de aprovação** antes de gravar o guia.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
8
|
+
Alvo e objetivo: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **🚦 Há um GATE de aprovação** antes de alterar o código.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
## Passo 0 — Alvo e objetivo
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
|
6
|
+
# /revisar-pr — Review de PR ou diff
|
|
6
7
|
|
|
7
|
-
Alvo
|
|
8
|
+
Alvo: $ARGUMENTS
|
|
8
9
|
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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**.
|