@luanpdd/kit-mcp 1.20.0 → 1.21.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/LICENSE +21 -21
- package/README.md +648 -648
- package/gates/dept-cycle-prevention.md +179 -0
- package/gates/multi-tenant-rls-coverage.md +102 -0
- package/gates/service-role-not-in-user-facing.md +113 -0
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +52 -52
- package/kit/agents/advisor-researcher.md +106 -106
- package/kit/agents/assumptions-analyzer.md +107 -107
- package/kit/agents/audit-log-implementer.md +175 -0
- package/kit/agents/b2b-saas-architect.md +156 -0
- package/kit/agents/codebase-mapper.md +768 -768
- package/kit/agents/crm-pipeline-implementer.md +150 -0
- package/kit/agents/debugger.md +772 -772
- package/kit/agents/evolution-go-integrator.md +179 -0
- package/kit/agents/example-reviewer.md +21 -21
- package/kit/agents/executor.md +523 -523
- package/kit/agents/integration-checker.md +200 -200
- package/kit/agents/invite-flow-implementer.md +137 -0
- package/kit/agents/lgpd-compliance-auditor.md +206 -0
- package/kit/agents/multi-tenant-isolation-auditor.md +243 -0
- package/kit/agents/multi-tenant-rls-writer.md +262 -0
- package/kit/agents/nyquist-auditor.md +178 -178
- package/kit/agents/org-onboarding-implementer.md +202 -0
- package/kit/agents/phase-researcher.md +696 -696
- package/kit/agents/plan-checker.md +272 -272
- package/kit/agents/planner.md +891 -891
- package/kit/agents/project-researcher.md +652 -652
- package/kit/agents/research-synthesizer.md +245 -245
- package/kit/agents/roadmapper.md +677 -677
- package/kit/agents/super-admin-implementer.md +182 -0
- package/kit/agents/ui-auditor.md +437 -437
- package/kit/agents/ui-checker.md +302 -302
- package/kit/agents/ui-researcher.md +355 -355
- package/kit/agents/user-profiler.md +175 -175
- package/kit/agents/verifier.md +728 -728
- package/kit/commands/adicionar-backlog.md +75 -75
- package/kit/commands/adicionar-fase.md +42 -42
- package/kit/commands/adicionar-tarefa.md +45 -45
- package/kit/commands/adicionar-testes.md +41 -41
- package/kit/commands/ajuda.md +21 -21
- package/kit/commands/atualizar.md +37 -37
- package/kit/commands/auditar-marco.md +179 -179
- package/kit/commands/auditar-uat.md +23 -23
- package/kit/commands/autonomo.md +40 -40
- package/kit/commands/branch-pr.md +24 -24
- package/kit/commands/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/discutir-fase.md +131 -131
- package/kit/commands/entrar-discord.md +17 -17
- package/kit/commands/estatisticas.md +18 -18
- package/kit/commands/example-greeting.md +33 -33
- package/kit/commands/executar-fase.md +58 -58
- package/kit/commands/expresso.md +56 -56
- package/kit/commands/fase-ui.md +34 -34
- package/kit/commands/fazer.md +57 -57
- package/kit/commands/fio.md +125 -125
- package/kit/commands/fluxos-trabalho.md +64 -64
- package/kit/commands/forense.md +176 -176
- package/kit/commands/gerenciador.md +38 -38
- package/kit/commands/inserir-fase.md +31 -31
- package/kit/commands/limpeza.md +17 -17
- package/kit/commands/listar-hipoteses-fase.md +45 -45
- package/kit/commands/listar-workspaces.md +18 -18
- package/kit/commands/mapear-codebase.md +70 -70
- package/kit/commands/multi-tenant.md +163 -0
- package/kit/commands/nota.md +33 -33
- package/kit/commands/novo-marco.md +43 -43
- package/kit/commands/novo-projeto.md +41 -41
- package/kit/commands/novo-workspace.md +43 -43
- package/kit/commands/pausar-trabalho.md +37 -37
- package/kit/commands/perfil-usuario.md +45 -45
- package/kit/commands/pesquisar-fase.md +195 -195
- package/kit/commands/planejar-fase.md +67 -67
- package/kit/commands/planejar-lacunas.md +33 -33
- package/kit/commands/plantar-ideia.md +25 -25
- package/kit/commands/progresso.md +24 -24
- package/kit/commands/proximo.md +30 -30
- package/kit/commands/publicar.md +490 -490
- package/kit/commands/rapido.md +35 -35
- package/kit/commands/reaplicar-patches.md +124 -124
- package/kit/commands/relatorio-sessao.md +19 -19
- package/kit/commands/remover-fase.md +31 -31
- package/kit/commands/remover-workspace.md +26 -26
- package/kit/commands/resumo-marco.md +50 -50
- package/kit/commands/retomar-trabalho.md +40 -40
- package/kit/commands/revisar-backlog.md +60 -60
- package/kit/commands/revisar-ui.md +32 -32
- package/kit/commands/revisar.md +37 -37
- package/kit/commands/saude.md +21 -21
- package/kit/commands/setup-notion.md +93 -93
- package/kit/commands/sync-main.md +68 -68
- package/kit/commands/validar-fase.md +35 -35
- package/kit/commands/verificar-tarefas.md +44 -44
- package/kit/commands/verificar-trabalho.md +64 -64
- package/kit/file-manifest.json +30 -3
- package/kit/framework/bin/lib/commands.cjs +959 -959
- package/kit/framework/bin/lib/config.cjs +442 -442
- package/kit/framework/bin/lib/core.cjs +1230 -1230
- package/kit/framework/bin/lib/frontmatter.cjs +336 -336
- package/kit/framework/bin/lib/init.cjs +1442 -1442
- package/kit/framework/bin/lib/milestone.cjs +252 -252
- package/kit/framework/bin/lib/model-profiles.cjs +68 -68
- package/kit/framework/bin/lib/phase.cjs +888 -888
- package/kit/framework/bin/lib/profile-output.cjs +952 -952
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
- package/kit/framework/bin/lib/roadmap.cjs +329 -329
- package/kit/framework/bin/lib/security.cjs +382 -382
- package/kit/framework/bin/lib/state.cjs +1031 -1031
- package/kit/framework/bin/lib/template.cjs +222 -222
- package/kit/framework/bin/lib/uat.cjs +282 -282
- package/kit/framework/bin/lib/verify.cjs +888 -888
- package/kit/framework/bin/lib/workstream.cjs +491 -491
- package/kit/framework/bin/tools.cjs +918 -918
- package/kit/framework/commands/workstreams.md +63 -63
- package/kit/framework/references/checkpoints.md +778 -778
- package/kit/framework/references/continuation-format.md +249 -249
- package/kit/framework/references/decimal-phase-calculation.md +64 -64
- package/kit/framework/references/git-integration.md +295 -295
- package/kit/framework/references/git-planning-commit.md +38 -38
- package/kit/framework/references/model-profile-resolution.md +36 -36
- package/kit/framework/references/model-profiles.md +139 -139
- package/kit/framework/references/phase-argument-parsing.md +61 -61
- package/kit/framework/references/planning-config.md +202 -202
- package/kit/framework/references/questioning.md +162 -162
- package/kit/framework/references/tdd.md +263 -263
- package/kit/framework/references/ui-brand.md +160 -160
- package/kit/framework/references/user-profiling.md +657 -657
- package/kit/framework/references/verification-patterns.md +612 -612
- package/kit/framework/references/workstream-flag.md +58 -58
- package/kit/framework/templates/DEBUG.md +164 -164
- package/kit/framework/templates/UAT.md +265 -265
- package/kit/framework/templates/UI-SPEC.md +100 -100
- package/kit/framework/templates/VALIDATION.md +76 -76
- package/kit/framework/templates/claude-md.md +122 -122
- package/kit/framework/templates/codebase/architecture.md +185 -185
- package/kit/framework/templates/codebase/concerns.md +205 -205
- package/kit/framework/templates/codebase/conventions.md +204 -204
- package/kit/framework/templates/codebase/integrations.md +192 -192
- package/kit/framework/templates/codebase/stack.md +158 -158
- package/kit/framework/templates/codebase/structure.md +199 -199
- package/kit/framework/templates/codebase/testing.md +301 -301
- package/kit/framework/templates/config.json +44 -44
- package/kit/framework/templates/context.md +352 -352
- package/kit/framework/templates/continue-here.md +78 -78
- package/kit/framework/templates/copilot-instructions.md +7 -7
- package/kit/framework/templates/debug-subagent-prompt.md +91 -91
- package/kit/framework/templates/dev-preferences.md +20 -20
- package/kit/framework/templates/discovery.md +146 -146
- package/kit/framework/templates/discussion-log.md +63 -63
- package/kit/framework/templates/milestone-archive.md +123 -123
- package/kit/framework/templates/milestone.md +115 -115
- package/kit/framework/templates/phase-prompt.md +610 -610
- package/kit/framework/templates/planner-subagent-prompt.md +117 -117
- package/kit/framework/templates/project.md +186 -186
- package/kit/framework/templates/requirements.md +231 -231
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
- package/kit/framework/templates/research-project/FEATURES.md +147 -147
- package/kit/framework/templates/research-project/PITFALLS.md +200 -200
- package/kit/framework/templates/research-project/STACK.md +120 -120
- package/kit/framework/templates/research-project/SUMMARY.md +170 -170
- package/kit/framework/templates/research.md +419 -419
- package/kit/framework/templates/retrospective.md +54 -54
- package/kit/framework/templates/roadmap.md +202 -202
- package/kit/framework/templates/state.md +176 -176
- package/kit/framework/templates/summary-complex.md +59 -59
- package/kit/framework/templates/summary-minimal.md +41 -41
- package/kit/framework/templates/summary-standard.md +48 -48
- package/kit/framework/templates/summary.md +209 -209
- package/kit/framework/templates/user-profile.md +146 -146
- package/kit/framework/templates/user-setup.md +256 -256
- package/kit/framework/templates/verification-report.md +258 -258
- package/kit/framework/workflows/add-phase.md +112 -112
- package/kit/framework/workflows/add-tests.md +351 -351
- package/kit/framework/workflows/add-todo.md +158 -158
- package/kit/framework/workflows/audit-milestone.md +340 -340
- package/kit/framework/workflows/audit-uat.md +109 -109
- package/kit/framework/workflows/autonomous.md +891 -891
- package/kit/framework/workflows/check-todos.md +177 -177
- package/kit/framework/workflows/cleanup.md +152 -152
- package/kit/framework/workflows/complete-milestone.md +696 -696
- package/kit/framework/workflows/diagnose-issues.md +231 -231
- package/kit/framework/workflows/discovery-phase.md +289 -289
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
- package/kit/framework/workflows/discuss-phase.md +784 -784
- package/kit/framework/workflows/do.md +104 -104
- package/kit/framework/workflows/execute-phase.md +838 -838
- package/kit/framework/workflows/execute-plan.md +510 -510
- package/kit/framework/workflows/fast.md +102 -102
- package/kit/framework/workflows/forensics.md +265 -265
- package/kit/framework/workflows/health.md +181 -181
- package/kit/framework/workflows/help.md +619 -619
- package/kit/framework/workflows/insert-phase.md +130 -130
- package/kit/framework/workflows/list-phase-assumptions.md +178 -178
- package/kit/framework/workflows/list-workspaces.md +56 -56
- package/kit/framework/workflows/manager.md +362 -362
- package/kit/framework/workflows/map-codebase.md +377 -377
- package/kit/framework/workflows/milestone-summary.md +223 -223
- package/kit/framework/workflows/new-milestone.md +486 -486
- package/kit/framework/workflows/new-project.md +1159 -1159
- package/kit/framework/workflows/new-workspace.md +237 -237
- package/kit/framework/workflows/next.md +97 -97
- package/kit/framework/workflows/node-repair.md +92 -92
- package/kit/framework/workflows/note.md +156 -156
- package/kit/framework/workflows/pause-work.md +176 -176
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
- package/kit/framework/workflows/plan-phase.md +765 -765
- package/kit/framework/workflows/plant-seed.md +169 -169
- package/kit/framework/workflows/pr-branch.md +129 -129
- package/kit/framework/workflows/profile-user.md +450 -450
- package/kit/framework/workflows/progress.md +507 -507
- package/kit/framework/workflows/quick.md +757 -757
- package/kit/framework/workflows/remove-phase.md +155 -155
- package/kit/framework/workflows/remove-workspace.md +90 -90
- package/kit/framework/workflows/research-phase.md +82 -82
- package/kit/framework/workflows/resume-project.md +326 -326
- package/kit/framework/workflows/review.md +228 -228
- package/kit/framework/workflows/session-report.md +146 -146
- package/kit/framework/workflows/settings.md +283 -283
- package/kit/framework/workflows/ship.md +228 -228
- package/kit/framework/workflows/stats.md +60 -60
- package/kit/framework/workflows/transition.md +671 -671
- package/kit/framework/workflows/ui-phase.md +302 -302
- package/kit/framework/workflows/ui-review.md +165 -165
- package/kit/framework/workflows/update.md +323 -323
- package/kit/framework/workflows/validate-phase.md +174 -174
- package/kit/framework/workflows/verify-phase.md +252 -252
- package/kit/framework/workflows/verify-work.md +637 -637
- package/kit/hooks/check-update.js +118 -118
- package/kit/hooks/context-monitor.js +163 -163
- package/kit/hooks/prompt-guard.js +103 -103
- package/kit/hooks/statusline.js +125 -125
- package/kit/hooks/workflow-guard.js +101 -101
- package/kit/settings.json +45 -45
- package/kit/skills/_shared-multi-tenant/glossary.md +186 -0
- package/kit/skills/audit-log-multi-tenant/SKILL.md +334 -0
- package/kit/skills/b2b-saas-architecture/SKILL.md +300 -0
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +326 -0
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -0
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -0
- package/kit/skills/member-invite-flow/SKILL.md +305 -0
- package/kit/skills/member-management-react-shadcn/SKILL.md +328 -0
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +312 -0
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +338 -0
- package/kit/skills/org-onboarding-flow/SKILL.md +257 -0
- package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -0
- package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -0
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +301 -0
- package/kit/skills/super-admin-platform-pattern/SKILL.md +322 -0
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -0
- package/package.json +63 -63
- package/src/core/kit.js +216 -216
- package/src/core/reflect.js +247 -247
- package/src/core/reverse-sync.js +372 -372
- package/src/core/sync.js +418 -418
- package/src/core/watch.js +121 -121
package/kit/commands/depurar.md
CHANGED
|
@@ -1,190 +1,190 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: depurar
|
|
3
|
-
description: Depuração sistemática com estado persistente entre resets de contexto
|
|
4
|
-
argument-hint: "[descrição do problema]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Bash
|
|
8
|
-
- Task
|
|
9
|
-
- AskUserQuestion
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
<objective>
|
|
13
|
-
Depurar problemas usando o método científico com isolamento de subagente.
|
|
14
|
-
|
|
15
|
-
**Papel do orquestrador:** Coletar sintomas, invocar agente debugger, tratar checkpoints, invocar continuações.
|
|
16
|
-
|
|
17
|
-
**Por que subagente:** Investigação consome contexto rapidamente (ler arquivos, formar hipóteses, testar). Contexto fresco de 200k por investigação. Contexto principal permanece enxuto para interação com o usuário.
|
|
18
|
-
</objective>
|
|
19
|
-
|
|
20
|
-
<available_agent_types>
|
|
21
|
-
Tipos de subagente framework válidos (usar nomes exatos — não usar 'general-purpose'):
|
|
22
|
-
- debugger — Diagnostica e corrige problemas
|
|
23
|
-
- schema-checker — Pré-validação de SQL (FK, JOIN, INSERT) contra schema real via Supabase MCP. Use quando o bug envolve migration que falhou em apply ou suspeita de drift entre comentário do dev e schema real.
|
|
24
|
-
</available_agent_types>
|
|
25
|
-
|
|
26
|
-
<supabase_pre_check>
|
|
27
|
-
## Triagem rápida — bug envolve SQL/Supabase?
|
|
28
|
-
|
|
29
|
-
Se o $ARGUMENTS ou sintomas mencionam algum destes patterns, faça **pre-validação com `schema-checker`** ANTES de invocar o `debugger` genérico:
|
|
30
|
-
|
|
31
|
-
| Sintoma | Razão |
|
|
32
|
-
|---|---|
|
|
33
|
-
| "migration falhou em apply" | `schema-checker` valida FKs/colunas/tabelas — sintoma comum é referência a coluna/tabela inexistente |
|
|
34
|
-
| "RLS quebrou query" ou "query lenta após RLS" | Provavelmente `auth.uid()` sem `(select)` wrapper; veja skill `supabase-rls-policies` |
|
|
35
|
-
| "Edge Function quebrou em deploy" | Provavelmente bare specifier ou import sem versão; veja skill `supabase-edge-functions` |
|
|
36
|
-
| "user_metadata em policy" | Privilege escalation; veja skill `supabase-rls-policies` (REGRA absoluta) |
|
|
37
|
-
| "service_role exposto" | Vazamento via `NEXT_PUBLIC_*`; veja skill `supabase-auth-ssr` |
|
|
38
|
-
|
|
39
|
-
Se aplicável: invoque `Task(subagent_type=schema-checker, prompt=...)` primeiro. Se schema-checker retorna GO mas o bug persiste, então invoque o `debugger`.
|
|
40
|
-
</supabase_pre_check>
|
|
41
|
-
|
|
42
|
-
<context>
|
|
43
|
-
Problema do usuário: $ARGUMENTS
|
|
44
|
-
|
|
45
|
-
Verificar sessões ativas:
|
|
46
|
-
```bash
|
|
47
|
-
ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
48
|
-
```
|
|
49
|
-
</context>
|
|
50
|
-
|
|
51
|
-
<process>
|
|
52
|
-
|
|
53
|
-
## 0. Inicializar Contexto
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
INIT=$(node "./.claude/framework/bin/tools.cjs" state load)
|
|
57
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Extrair `commit_docs` do JSON de init. Resolver modelo do depurador:
|
|
61
|
-
```bash
|
|
62
|
-
debugger_model=$(node "./.claude/framework/bin/tools.cjs" resolve-model debugger --raw)
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## 1. Verificar Sessões Ativas
|
|
66
|
-
|
|
67
|
-
Se existirem sessões ativas E sem $ARGUMENTS:
|
|
68
|
-
- Listar sessões com status, hipótese, próxima ação
|
|
69
|
-
- Usuário escolhe número para retomar OU descreve novo problema
|
|
70
|
-
|
|
71
|
-
Se $ARGUMENTS fornecido OU usuário descreve novo problema:
|
|
72
|
-
- Continuar para coleta de sintomas
|
|
73
|
-
|
|
74
|
-
## 2. Coletar Sintomas (se novo problema)
|
|
75
|
-
|
|
76
|
-
Usar AskUserQuestion para cada:
|
|
77
|
-
|
|
78
|
-
1. **Comportamento esperado** - O que deveria acontecer?
|
|
79
|
-
2. **Comportamento atual** - O que acontece em vez disso?
|
|
80
|
-
3. **Mensagens de erro** - Algum erro? (colar ou descrever)
|
|
81
|
-
4. **Cronologia** - Quando isso começou? Já funcionou?
|
|
82
|
-
5. **Reprodução** - Como você aciona o problema?
|
|
83
|
-
|
|
84
|
-
Após todos coletados, confirmar pronto para investigar.
|
|
85
|
-
|
|
86
|
-
## 3. Invocar Agente debugger
|
|
87
|
-
|
|
88
|
-
Preencher prompt e invocar:
|
|
89
|
-
|
|
90
|
-
```markdown
|
|
91
|
-
<objective>
|
|
92
|
-
Investigar problema: {slug}
|
|
93
|
-
|
|
94
|
-
**Resumo:** {trigger}
|
|
95
|
-
</objective>
|
|
96
|
-
|
|
97
|
-
<symptoms>
|
|
98
|
-
expected: {expected}
|
|
99
|
-
actual: {actual}
|
|
100
|
-
errors: {errors}
|
|
101
|
-
reproduction: {reproduction}
|
|
102
|
-
timeline: {timeline}
|
|
103
|
-
</symptoms>
|
|
104
|
-
|
|
105
|
-
<mode>
|
|
106
|
-
symptoms_prefilled: true
|
|
107
|
-
goal: find_and_fix
|
|
108
|
-
</mode>
|
|
109
|
-
|
|
110
|
-
<debug_file>
|
|
111
|
-
Criar: .planning/debug/{slug}.md
|
|
112
|
-
</debug_file>
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
Task(
|
|
117
|
-
prompt=filled_prompt,
|
|
118
|
-
subagent_type="debugger",
|
|
119
|
-
model="{debugger_model}",
|
|
120
|
-
description="Depurar {slug}"
|
|
121
|
-
)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## 4. Tratar Retorno do Agente
|
|
125
|
-
|
|
126
|
-
**Se `## CAUSA RAIZ ENCONTRADA`:**
|
|
127
|
-
- Exibir causa raiz e resumo de evidências
|
|
128
|
-
- Oferecer opções:
|
|
129
|
-
- "Corrigir agora" - invocar subagente de correção
|
|
130
|
-
- "Planejar correção" - sugerir /planejar-fase --gaps
|
|
131
|
-
- "Correção manual" - concluído
|
|
132
|
-
|
|
133
|
-
**Se `## CHECKPOINT ATINGIDO`:**
|
|
134
|
-
- Apresentar detalhes do checkpoint ao usuário
|
|
135
|
-
- Obter resposta do usuário
|
|
136
|
-
- Se tipo de checkpoint for `human-verify`:
|
|
137
|
-
- Se usuário confirmar corrigido: continuar para o agente finalizar/resolver/arquivar
|
|
138
|
-
- Se usuário reportar problemas: continuar para o agente retornar à investigação/correção
|
|
139
|
-
- Invocar agente de continuação (ver passo 5)
|
|
140
|
-
|
|
141
|
-
**Se `## INVESTIGAÇÃO INCONCLUSIVA`:**
|
|
142
|
-
- Mostrar o que foi verificado e eliminado
|
|
143
|
-
- Oferecer opções:
|
|
144
|
-
- "Continuar investigando" - invocar novo agente com contexto adicional
|
|
145
|
-
- "Investigação manual" - concluído
|
|
146
|
-
- "Adicionar mais contexto" - coletar mais sintomas, invocar novamente
|
|
147
|
-
|
|
148
|
-
## 5. Invocar Agente de Continuação (Após Checkpoint)
|
|
149
|
-
|
|
150
|
-
Quando usuário responde ao checkpoint, invocar agente fresco:
|
|
151
|
-
|
|
152
|
-
```markdown
|
|
153
|
-
<objective>
|
|
154
|
-
Continuar depuração de {slug}. Evidências estão no arquivo de depuração.
|
|
155
|
-
</objective>
|
|
156
|
-
|
|
157
|
-
<prior_state>
|
|
158
|
-
<files_to_read>
|
|
159
|
-
- .planning/debug/{slug}.md (Estado da sessão de depuração)
|
|
160
|
-
</files_to_read>
|
|
161
|
-
</prior_state>
|
|
162
|
-
|
|
163
|
-
<checkpoint_response>
|
|
164
|
-
**Tipo:** {checkpoint_type}
|
|
165
|
-
**Resposta:** {user_response}
|
|
166
|
-
</checkpoint_response>
|
|
167
|
-
|
|
168
|
-
<mode>
|
|
169
|
-
goal: find_and_fix
|
|
170
|
-
</mode>
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
Task(
|
|
175
|
-
prompt=continuation_prompt,
|
|
176
|
-
subagent_type="debugger",
|
|
177
|
-
model="{debugger_model}",
|
|
178
|
-
description="Continuar depuração {slug}"
|
|
179
|
-
)
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
</process>
|
|
183
|
-
|
|
184
|
-
<success_criteria>
|
|
185
|
-
- [ ] Sessões ativas verificadas
|
|
186
|
-
- [ ] Sintomas coletados (se novo)
|
|
187
|
-
- [ ] debugger invocado com contexto
|
|
188
|
-
- [ ] Checkpoints tratados corretamente
|
|
189
|
-
- [ ] Causa raiz confirmada antes de corrigir
|
|
190
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: depurar
|
|
3
|
+
description: Depuração sistemática com estado persistente entre resets de contexto
|
|
4
|
+
argument-hint: "[descrição do problema]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Task
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Depurar problemas usando o método científico com isolamento de subagente.
|
|
14
|
+
|
|
15
|
+
**Papel do orquestrador:** Coletar sintomas, invocar agente debugger, tratar checkpoints, invocar continuações.
|
|
16
|
+
|
|
17
|
+
**Por que subagente:** Investigação consome contexto rapidamente (ler arquivos, formar hipóteses, testar). Contexto fresco de 200k por investigação. Contexto principal permanece enxuto para interação com o usuário.
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<available_agent_types>
|
|
21
|
+
Tipos de subagente framework válidos (usar nomes exatos — não usar 'general-purpose'):
|
|
22
|
+
- debugger — Diagnostica e corrige problemas
|
|
23
|
+
- schema-checker — Pré-validação de SQL (FK, JOIN, INSERT) contra schema real via Supabase MCP. Use quando o bug envolve migration que falhou em apply ou suspeita de drift entre comentário do dev e schema real.
|
|
24
|
+
</available_agent_types>
|
|
25
|
+
|
|
26
|
+
<supabase_pre_check>
|
|
27
|
+
## Triagem rápida — bug envolve SQL/Supabase?
|
|
28
|
+
|
|
29
|
+
Se o $ARGUMENTS ou sintomas mencionam algum destes patterns, faça **pre-validação com `schema-checker`** ANTES de invocar o `debugger` genérico:
|
|
30
|
+
|
|
31
|
+
| Sintoma | Razão |
|
|
32
|
+
|---|---|
|
|
33
|
+
| "migration falhou em apply" | `schema-checker` valida FKs/colunas/tabelas — sintoma comum é referência a coluna/tabela inexistente |
|
|
34
|
+
| "RLS quebrou query" ou "query lenta após RLS" | Provavelmente `auth.uid()` sem `(select)` wrapper; veja skill `supabase-rls-policies` |
|
|
35
|
+
| "Edge Function quebrou em deploy" | Provavelmente bare specifier ou import sem versão; veja skill `supabase-edge-functions` |
|
|
36
|
+
| "user_metadata em policy" | Privilege escalation; veja skill `supabase-rls-policies` (REGRA absoluta) |
|
|
37
|
+
| "service_role exposto" | Vazamento via `NEXT_PUBLIC_*`; veja skill `supabase-auth-ssr` |
|
|
38
|
+
|
|
39
|
+
Se aplicável: invoque `Task(subagent_type=schema-checker, prompt=...)` primeiro. Se schema-checker retorna GO mas o bug persiste, então invoque o `debugger`.
|
|
40
|
+
</supabase_pre_check>
|
|
41
|
+
|
|
42
|
+
<context>
|
|
43
|
+
Problema do usuário: $ARGUMENTS
|
|
44
|
+
|
|
45
|
+
Verificar sessões ativas:
|
|
46
|
+
```bash
|
|
47
|
+
ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
48
|
+
```
|
|
49
|
+
</context>
|
|
50
|
+
|
|
51
|
+
<process>
|
|
52
|
+
|
|
53
|
+
## 0. Inicializar Contexto
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" state load)
|
|
57
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Extrair `commit_docs` do JSON de init. Resolver modelo do depurador:
|
|
61
|
+
```bash
|
|
62
|
+
debugger_model=$(node "./.claude/framework/bin/tools.cjs" resolve-model debugger --raw)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 1. Verificar Sessões Ativas
|
|
66
|
+
|
|
67
|
+
Se existirem sessões ativas E sem $ARGUMENTS:
|
|
68
|
+
- Listar sessões com status, hipótese, próxima ação
|
|
69
|
+
- Usuário escolhe número para retomar OU descreve novo problema
|
|
70
|
+
|
|
71
|
+
Se $ARGUMENTS fornecido OU usuário descreve novo problema:
|
|
72
|
+
- Continuar para coleta de sintomas
|
|
73
|
+
|
|
74
|
+
## 2. Coletar Sintomas (se novo problema)
|
|
75
|
+
|
|
76
|
+
Usar AskUserQuestion para cada:
|
|
77
|
+
|
|
78
|
+
1. **Comportamento esperado** - O que deveria acontecer?
|
|
79
|
+
2. **Comportamento atual** - O que acontece em vez disso?
|
|
80
|
+
3. **Mensagens de erro** - Algum erro? (colar ou descrever)
|
|
81
|
+
4. **Cronologia** - Quando isso começou? Já funcionou?
|
|
82
|
+
5. **Reprodução** - Como você aciona o problema?
|
|
83
|
+
|
|
84
|
+
Após todos coletados, confirmar pronto para investigar.
|
|
85
|
+
|
|
86
|
+
## 3. Invocar Agente debugger
|
|
87
|
+
|
|
88
|
+
Preencher prompt e invocar:
|
|
89
|
+
|
|
90
|
+
```markdown
|
|
91
|
+
<objective>
|
|
92
|
+
Investigar problema: {slug}
|
|
93
|
+
|
|
94
|
+
**Resumo:** {trigger}
|
|
95
|
+
</objective>
|
|
96
|
+
|
|
97
|
+
<symptoms>
|
|
98
|
+
expected: {expected}
|
|
99
|
+
actual: {actual}
|
|
100
|
+
errors: {errors}
|
|
101
|
+
reproduction: {reproduction}
|
|
102
|
+
timeline: {timeline}
|
|
103
|
+
</symptoms>
|
|
104
|
+
|
|
105
|
+
<mode>
|
|
106
|
+
symptoms_prefilled: true
|
|
107
|
+
goal: find_and_fix
|
|
108
|
+
</mode>
|
|
109
|
+
|
|
110
|
+
<debug_file>
|
|
111
|
+
Criar: .planning/debug/{slug}.md
|
|
112
|
+
</debug_file>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Task(
|
|
117
|
+
prompt=filled_prompt,
|
|
118
|
+
subagent_type="debugger",
|
|
119
|
+
model="{debugger_model}",
|
|
120
|
+
description="Depurar {slug}"
|
|
121
|
+
)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 4. Tratar Retorno do Agente
|
|
125
|
+
|
|
126
|
+
**Se `## CAUSA RAIZ ENCONTRADA`:**
|
|
127
|
+
- Exibir causa raiz e resumo de evidências
|
|
128
|
+
- Oferecer opções:
|
|
129
|
+
- "Corrigir agora" - invocar subagente de correção
|
|
130
|
+
- "Planejar correção" - sugerir /planejar-fase --gaps
|
|
131
|
+
- "Correção manual" - concluído
|
|
132
|
+
|
|
133
|
+
**Se `## CHECKPOINT ATINGIDO`:**
|
|
134
|
+
- Apresentar detalhes do checkpoint ao usuário
|
|
135
|
+
- Obter resposta do usuário
|
|
136
|
+
- Se tipo de checkpoint for `human-verify`:
|
|
137
|
+
- Se usuário confirmar corrigido: continuar para o agente finalizar/resolver/arquivar
|
|
138
|
+
- Se usuário reportar problemas: continuar para o agente retornar à investigação/correção
|
|
139
|
+
- Invocar agente de continuação (ver passo 5)
|
|
140
|
+
|
|
141
|
+
**Se `## INVESTIGAÇÃO INCONCLUSIVA`:**
|
|
142
|
+
- Mostrar o que foi verificado e eliminado
|
|
143
|
+
- Oferecer opções:
|
|
144
|
+
- "Continuar investigando" - invocar novo agente com contexto adicional
|
|
145
|
+
- "Investigação manual" - concluído
|
|
146
|
+
- "Adicionar mais contexto" - coletar mais sintomas, invocar novamente
|
|
147
|
+
|
|
148
|
+
## 5. Invocar Agente de Continuação (Após Checkpoint)
|
|
149
|
+
|
|
150
|
+
Quando usuário responde ao checkpoint, invocar agente fresco:
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
<objective>
|
|
154
|
+
Continuar depuração de {slug}. Evidências estão no arquivo de depuração.
|
|
155
|
+
</objective>
|
|
156
|
+
|
|
157
|
+
<prior_state>
|
|
158
|
+
<files_to_read>
|
|
159
|
+
- .planning/debug/{slug}.md (Estado da sessão de depuração)
|
|
160
|
+
</files_to_read>
|
|
161
|
+
</prior_state>
|
|
162
|
+
|
|
163
|
+
<checkpoint_response>
|
|
164
|
+
**Tipo:** {checkpoint_type}
|
|
165
|
+
**Resposta:** {user_response}
|
|
166
|
+
</checkpoint_response>
|
|
167
|
+
|
|
168
|
+
<mode>
|
|
169
|
+
goal: find_and_fix
|
|
170
|
+
</mode>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Task(
|
|
175
|
+
prompt=continuation_prompt,
|
|
176
|
+
subagent_type="debugger",
|
|
177
|
+
model="{debugger_model}",
|
|
178
|
+
description="Continuar depuração {slug}"
|
|
179
|
+
)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
</process>
|
|
183
|
+
|
|
184
|
+
<success_criteria>
|
|
185
|
+
- [ ] Sessões ativas verificadas
|
|
186
|
+
- [ ] Sintomas coletados (se novo)
|
|
187
|
+
- [ ] debugger invocado com contexto
|
|
188
|
+
- [ ] Checkpoints tratados corretamente
|
|
189
|
+
- [ ] Causa raiz confirmada antes de corrigir
|
|
190
|
+
</success_criteria>
|
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: discutir-fase
|
|
3
|
-
description: Reúne contexto da fase por questionamento adaptativo antes do planejamento. Use --auto para pular perguntas interativas (Claude escolhe os padrões recomendados).
|
|
4
|
-
argument-hint: "<phase> [--auto] [--batch] [--analyze] [--text]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- AskUserQuestion
|
|
12
|
-
- Task
|
|
13
|
-
- mcp__context7__resolve-library-id
|
|
14
|
-
- mcp__context7__query-docs
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
<objective>
|
|
18
|
-
Extrair decisões de implementação que os agentes subsequentes precisam — o pesquisador e o planejador usarão o CONTEXT.md para saber o que investigar e quais escolhas estão travadas.
|
|
19
|
-
|
|
20
|
-
**Como funciona:**
|
|
21
|
-
1. Carregar contexto anterior (PROJECT.md, REQUIREMENTS.md, STATE.md, arquivos CONTEXT.md anteriores)
|
|
22
|
-
2. Explorar base de código em busca de recursos e padrões reutilizáveis
|
|
23
|
-
3. Analisar a fase — pular áreas cinzentas já decididas em fases anteriores
|
|
24
|
-
4. Apresentar áreas cinzentas restantes — usuário seleciona quais discutir
|
|
25
|
-
5. Aprofundar cada área selecionada até satisfação
|
|
26
|
-
6. Criar CONTEXT.md com decisões que guiam pesquisa e planejamento
|
|
27
|
-
|
|
28
|
-
**Saída:** `{phase_num}-CONTEXT.md` — decisões claras o suficiente para que agentes subsequentes possam agir sem perguntar ao usuário novamente
|
|
29
|
-
</objective>
|
|
30
|
-
|
|
31
|
-
<execution_context>
|
|
32
|
-
@./.claude/framework/workflows/discuss-phase.md
|
|
33
|
-
@./.claude/framework/workflows/discuss-phase-assumptions.md
|
|
34
|
-
@./.claude/framework/templates/context.md
|
|
35
|
-
</execution_context>
|
|
36
|
-
|
|
37
|
-
<context>
|
|
38
|
-
Número da fase: $ARGUMENTS (obrigatório)
|
|
39
|
-
|
|
40
|
-
Arquivos de contexto são resolvidos no workflow usando `init phase-op` e chamadas de ferramentas de roadmap/estado.
|
|
41
|
-
</context>
|
|
42
|
-
|
|
43
|
-
<process>
|
|
44
|
-
**Roteamento de modo:**
|
|
45
|
-
```bash
|
|
46
|
-
DISCUSS_MODE=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Se `DISCUSS_MODE` for `"assumptions"`: Ler e executar @./.claude/framework/workflows/discuss-phase-assumptions.md do início ao fim.
|
|
50
|
-
|
|
51
|
-
Se `DISCUSS_MODE` for `"discuss"` (ou não definido, ou qualquer outro valor): Ler e executar @./.claude/framework/workflows/discuss-phase.md do início ao fim.
|
|
52
|
-
|
|
53
|
-
**OBRIGATÓRIO:** Os arquivos execution_context listados acima SÃO as instruções. Ler o arquivo de workflow ANTES de tomar qualquer ação. As seções de objective e success_criteria neste arquivo de comando são resumos — o arquivo de workflow contém o processo completo passo a passo com todos os comportamentos obrigatórios, verificações de configuração e padrões de interação. Não improvisar a partir do resumo.
|
|
54
|
-
</process>
|
|
55
|
-
|
|
56
|
-
<success_criteria>
|
|
57
|
-
- Contexto anterior carregado e aplicado (sem re-perguntar questões já decididas)
|
|
58
|
-
- Áreas cinzentas identificadas através de análise inteligente
|
|
59
|
-
- Usuário escolheu quais áreas discutir
|
|
60
|
-
- Cada área selecionada explorada até satisfação
|
|
61
|
-
- Expansão de escopo redirecionada para ideias adiadas
|
|
62
|
-
- CONTEXT.md captura decisões, não visão vaga
|
|
63
|
-
- Usuário conhece os próximos passos
|
|
64
|
-
</success_criteria>
|
|
65
|
-
|
|
66
|
-
<observability_integration>
|
|
67
|
-
**Integração com Observability-Driven Development (v1.9):**
|
|
68
|
-
|
|
69
|
-
Quando o workflow.observability_phase_questions = true (default), o workflow inclui pergunta canônica de ODD na sessão de discussão:
|
|
70
|
-
|
|
71
|
-
> "Quais SLIs essa fase impacta? O que precisa ser instrumentado para responder às 4 perguntas pré-PR?"
|
|
72
|
-
|
|
73
|
-
A pergunta é resolvida consultando a skill [`observability-driven-development`](../skills/observability-driven-development/SKILL.md) e o resultado é registrado na seção `<observability>` do CONTEXT.md gerado:
|
|
74
|
-
|
|
75
|
-
```markdown
|
|
76
|
-
<observability>
|
|
77
|
-
## SLIs impactados
|
|
78
|
-
- [SLI ou "nenhum — fase puramente interna"]
|
|
79
|
-
|
|
80
|
-
## Instrumentação necessária
|
|
81
|
-
- Spans novos: [lista]
|
|
82
|
-
- Atributos canônicos: [user.id, tenant_id, ...]
|
|
83
|
-
- error.type enum esperado: [validation, timeout, ...]
|
|
84
|
-
</observability>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
O `plan-checker` invocado pelo `/planejar-fase` (Phase 33 — INT-FW-02) lê esta seção e bloqueia o plano se ODD ausente para fases voltadas ao usuário (skip silenciosamente para fases de infraestrutura — ver detecção em `discuss-phase.md`).
|
|
88
|
-
|
|
89
|
-
**REQ:** INT-FW-01.
|
|
90
|
-
</observability_integration>
|
|
91
|
-
|
|
92
|
-
<legacy_refactor_integration>
|
|
93
|
-
**Integração com Suíte Legacy Code (Feathers):**
|
|
94
|
-
|
|
95
|
-
Quando o workflow detecta intent de **refactor** (palavras-chave em descrição da fase: "refator", "refactor", "extrair", "limpar", "reorganizar", "split", "quebrar classe/módulo"), inclui pergunta canônica:
|
|
96
|
-
|
|
97
|
-
> "Esta fase envolve refactor de arquivo existente? Se sim, qual é o arquivo alvo?"
|
|
98
|
-
|
|
99
|
-
Para cada arquivo identificado:
|
|
100
|
-
1. Coleta line count + checa se path matches contrato externo (supabase/functions, src/api, webhooks, pages/api)
|
|
101
|
-
2. Invoca [`refactor-safety-auditor`](../agents/refactor-safety-auditor.md) **em modo dry-run** para coletar evidências sem bloquear
|
|
102
|
-
3. Resultado registrado em CONTEXT.md em seção `<refactor_safety>`:
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
<refactor_safety>
|
|
106
|
-
## Arquivos alvo de refactor
|
|
107
|
-
|
|
108
|
-
| Arquivo | Linhas | Contrato externo | Cobertura | Char tests | Veredito do gate |
|
|
109
|
-
|---|---|---|---|---|---|
|
|
110
|
-
| src/orders/handler.ts | 724 | true | 12% | absent | BLOCK |
|
|
111
|
-
| src/orders/utils.ts | 89 | false | 78% | absent | GO |
|
|
112
|
-
|
|
113
|
-
## Recomendação
|
|
114
|
-
|
|
115
|
-
Para `src/orders/handler.ts`:
|
|
116
|
-
- Caminho preferido: /caracterizar antes de refactor (custo: 8-16h)
|
|
117
|
-
- Alternativa: /refactor-seguro --mode=sprout (se mudança ADICIONA, não modifica)
|
|
118
|
-
- Para safe-extract: assinar checklist canônico de safe extraction
|
|
119
|
-
- Override possível com ticket + reason
|
|
120
|
-
|
|
121
|
-
Para `src/orders/utils.ts`:
|
|
122
|
-
- Refactor pode prosseguir; cobertura adequada existe.
|
|
123
|
-
</refactor_safety>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
`plan-checker` consume essa seção. Se gate retorna BLOCK e mode=blocking, plano não é aprovado até user escolher caminho explícito.
|
|
127
|
-
|
|
128
|
-
**Skill canônica:** [`pre-refactor-characterization`](../skills/pre-refactor-characterization/SKILL.md)
|
|
129
|
-
|
|
130
|
-
**Quando skip:** fase puramente de infraestrutura (markdown, config, tooling), fase greenfield (sem arquivos existentes a modificar), OR `workflow.legacy_refactor_questions=false` em config.
|
|
131
|
-
</legacy_refactor_integration>
|
|
1
|
+
---
|
|
2
|
+
name: discutir-fase
|
|
3
|
+
description: Reúne contexto da fase por questionamento adaptativo antes do planejamento. Use --auto para pular perguntas interativas (Claude escolhe os padrões recomendados).
|
|
4
|
+
argument-hint: "<phase> [--auto] [--batch] [--analyze] [--text]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- Task
|
|
13
|
+
- mcp__context7__resolve-library-id
|
|
14
|
+
- mcp__context7__query-docs
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<objective>
|
|
18
|
+
Extrair decisões de implementação que os agentes subsequentes precisam — o pesquisador e o planejador usarão o CONTEXT.md para saber o que investigar e quais escolhas estão travadas.
|
|
19
|
+
|
|
20
|
+
**Como funciona:**
|
|
21
|
+
1. Carregar contexto anterior (PROJECT.md, REQUIREMENTS.md, STATE.md, arquivos CONTEXT.md anteriores)
|
|
22
|
+
2. Explorar base de código em busca de recursos e padrões reutilizáveis
|
|
23
|
+
3. Analisar a fase — pular áreas cinzentas já decididas em fases anteriores
|
|
24
|
+
4. Apresentar áreas cinzentas restantes — usuário seleciona quais discutir
|
|
25
|
+
5. Aprofundar cada área selecionada até satisfação
|
|
26
|
+
6. Criar CONTEXT.md com decisões que guiam pesquisa e planejamento
|
|
27
|
+
|
|
28
|
+
**Saída:** `{phase_num}-CONTEXT.md` — decisões claras o suficiente para que agentes subsequentes possam agir sem perguntar ao usuário novamente
|
|
29
|
+
</objective>
|
|
30
|
+
|
|
31
|
+
<execution_context>
|
|
32
|
+
@./.claude/framework/workflows/discuss-phase.md
|
|
33
|
+
@./.claude/framework/workflows/discuss-phase-assumptions.md
|
|
34
|
+
@./.claude/framework/templates/context.md
|
|
35
|
+
</execution_context>
|
|
36
|
+
|
|
37
|
+
<context>
|
|
38
|
+
Número da fase: $ARGUMENTS (obrigatório)
|
|
39
|
+
|
|
40
|
+
Arquivos de contexto são resolvidos no workflow usando `init phase-op` e chamadas de ferramentas de roadmap/estado.
|
|
41
|
+
</context>
|
|
42
|
+
|
|
43
|
+
<process>
|
|
44
|
+
**Roteamento de modo:**
|
|
45
|
+
```bash
|
|
46
|
+
DISCUSS_MODE=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Se `DISCUSS_MODE` for `"assumptions"`: Ler e executar @./.claude/framework/workflows/discuss-phase-assumptions.md do início ao fim.
|
|
50
|
+
|
|
51
|
+
Se `DISCUSS_MODE` for `"discuss"` (ou não definido, ou qualquer outro valor): Ler e executar @./.claude/framework/workflows/discuss-phase.md do início ao fim.
|
|
52
|
+
|
|
53
|
+
**OBRIGATÓRIO:** Os arquivos execution_context listados acima SÃO as instruções. Ler o arquivo de workflow ANTES de tomar qualquer ação. As seções de objective e success_criteria neste arquivo de comando são resumos — o arquivo de workflow contém o processo completo passo a passo com todos os comportamentos obrigatórios, verificações de configuração e padrões de interação. Não improvisar a partir do resumo.
|
|
54
|
+
</process>
|
|
55
|
+
|
|
56
|
+
<success_criteria>
|
|
57
|
+
- Contexto anterior carregado e aplicado (sem re-perguntar questões já decididas)
|
|
58
|
+
- Áreas cinzentas identificadas através de análise inteligente
|
|
59
|
+
- Usuário escolheu quais áreas discutir
|
|
60
|
+
- Cada área selecionada explorada até satisfação
|
|
61
|
+
- Expansão de escopo redirecionada para ideias adiadas
|
|
62
|
+
- CONTEXT.md captura decisões, não visão vaga
|
|
63
|
+
- Usuário conhece os próximos passos
|
|
64
|
+
</success_criteria>
|
|
65
|
+
|
|
66
|
+
<observability_integration>
|
|
67
|
+
**Integração com Observability-Driven Development (v1.9):**
|
|
68
|
+
|
|
69
|
+
Quando o workflow.observability_phase_questions = true (default), o workflow inclui pergunta canônica de ODD na sessão de discussão:
|
|
70
|
+
|
|
71
|
+
> "Quais SLIs essa fase impacta? O que precisa ser instrumentado para responder às 4 perguntas pré-PR?"
|
|
72
|
+
|
|
73
|
+
A pergunta é resolvida consultando a skill [`observability-driven-development`](../skills/observability-driven-development/SKILL.md) e o resultado é registrado na seção `<observability>` do CONTEXT.md gerado:
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
<observability>
|
|
77
|
+
## SLIs impactados
|
|
78
|
+
- [SLI ou "nenhum — fase puramente interna"]
|
|
79
|
+
|
|
80
|
+
## Instrumentação necessária
|
|
81
|
+
- Spans novos: [lista]
|
|
82
|
+
- Atributos canônicos: [user.id, tenant_id, ...]
|
|
83
|
+
- error.type enum esperado: [validation, timeout, ...]
|
|
84
|
+
</observability>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
O `plan-checker` invocado pelo `/planejar-fase` (Phase 33 — INT-FW-02) lê esta seção e bloqueia o plano se ODD ausente para fases voltadas ao usuário (skip silenciosamente para fases de infraestrutura — ver detecção em `discuss-phase.md`).
|
|
88
|
+
|
|
89
|
+
**REQ:** INT-FW-01.
|
|
90
|
+
</observability_integration>
|
|
91
|
+
|
|
92
|
+
<legacy_refactor_integration>
|
|
93
|
+
**Integração com Suíte Legacy Code (Feathers):**
|
|
94
|
+
|
|
95
|
+
Quando o workflow detecta intent de **refactor** (palavras-chave em descrição da fase: "refator", "refactor", "extrair", "limpar", "reorganizar", "split", "quebrar classe/módulo"), inclui pergunta canônica:
|
|
96
|
+
|
|
97
|
+
> "Esta fase envolve refactor de arquivo existente? Se sim, qual é o arquivo alvo?"
|
|
98
|
+
|
|
99
|
+
Para cada arquivo identificado:
|
|
100
|
+
1. Coleta line count + checa se path matches contrato externo (supabase/functions, src/api, webhooks, pages/api)
|
|
101
|
+
2. Invoca [`refactor-safety-auditor`](../agents/refactor-safety-auditor.md) **em modo dry-run** para coletar evidências sem bloquear
|
|
102
|
+
3. Resultado registrado em CONTEXT.md em seção `<refactor_safety>`:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
<refactor_safety>
|
|
106
|
+
## Arquivos alvo de refactor
|
|
107
|
+
|
|
108
|
+
| Arquivo | Linhas | Contrato externo | Cobertura | Char tests | Veredito do gate |
|
|
109
|
+
|---|---|---|---|---|---|
|
|
110
|
+
| src/orders/handler.ts | 724 | true | 12% | absent | BLOCK |
|
|
111
|
+
| src/orders/utils.ts | 89 | false | 78% | absent | GO |
|
|
112
|
+
|
|
113
|
+
## Recomendação
|
|
114
|
+
|
|
115
|
+
Para `src/orders/handler.ts`:
|
|
116
|
+
- Caminho preferido: /caracterizar antes de refactor (custo: 8-16h)
|
|
117
|
+
- Alternativa: /refactor-seguro --mode=sprout (se mudança ADICIONA, não modifica)
|
|
118
|
+
- Para safe-extract: assinar checklist canônico de safe extraction
|
|
119
|
+
- Override possível com ticket + reason
|
|
120
|
+
|
|
121
|
+
Para `src/orders/utils.ts`:
|
|
122
|
+
- Refactor pode prosseguir; cobertura adequada existe.
|
|
123
|
+
</refactor_safety>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
`plan-checker` consume essa seção. Se gate retorna BLOCK e mode=blocking, plano não é aprovado até user escolher caminho explícito.
|
|
127
|
+
|
|
128
|
+
**Skill canônica:** [`pre-refactor-characterization`](../skills/pre-refactor-characterization/SKILL.md)
|
|
129
|
+
|
|
130
|
+
**Quando skip:** fase puramente de infraestrutura (markdown, config, tooling), fase greenfield (sem arquivos existentes a modificar), OR `workflow.legacy_refactor_questions=false` em config.
|
|
131
|
+
</legacy_refactor_integration>
|