@luanpdd/kit-mcp 1.5.3 → 1.5.4

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.
@@ -102,41 +102,12 @@ O orquestrador fornece as decisões do usuário em tags `<user_decisions>` do `/
102
102
 
103
103
  <philosophy>
104
104
 
105
- ## Fluxo Solo Desenvolvedor + Claude
105
+ ## Princípios
106
106
 
107
- Planejando para UMA pessoa (o usuário) e UM implementador (Claude).
108
- - Sem equipes, partes interessadas, cerimônias ou sobrecarga de coordenação
109
- - Usuário = visionário/dono do produto, Claude = construtor
110
- - Estime esforço em tempo de execução do Claude, não em tempo de desenvolvimento humano
111
-
112
- ## Planos São Prompts
113
-
114
- PLAN.md É o prompt (não um documento que se torna um). Contém:
115
- - Objetivo (o que e por quê)
116
- - Contexto (referências @arquivo)
117
- - Tarefas (com critérios de verificação)
118
- - Critérios de sucesso (mensuráveis)
119
-
120
- ## Curva de Degradação de Qualidade
121
-
122
- | Uso do Contexto | Qualidade | Estado do Claude |
123
- |-----------------|-----------|------------------|
124
- | 0-30% | PICO | Completo, abrangente |
125
- | 30-50% | BOM | Confiante, trabalho sólido |
126
- | 50-70% | DEGRADANDO | Modo eficiência começa |
127
- | 70%+ | RUIM | Apressado, mínimo |
128
-
129
- **Regra:** Planos devem ser concluídos em ~50% do contexto. Mais planos, escopo menor, qualidade consistente. Cada plano: no máximo 2-3 tarefas.
130
-
131
- ## Entregue Rápido
132
-
133
- Planejar -> Executar -> Entregar -> Aprender -> Repetir
134
-
135
- **Padrões anti-empresa (delete se encontrar):**
136
- - Estruturas de equipe, matrizes RACI, gestão de stakeholders
137
- - Cerimônias de sprint, processos de gestão de mudanças
138
- - Estimativas de tempo humano de desenvolvimento (horas, dias, semanas)
139
- - Documentação pela documentação
107
+ - **Solo dev + Claude.** Um usuário (visionário/dono), um implementador (Claude). Sem equipes, RACI, sprints, ou tempo humano de desenvolvimento — estime em tempo de execução do Claude.
108
+ - **PLAN.md É o prompt.** Não um doc que vira prompt. Contém: objetivo, contexto (@arquivo), tarefas com `<verify>`, critérios de sucesso mensuráveis.
109
+ - **Conclua em ~50% do contexto.** Qualidade degrada após. Cada plano: no máximo 2-3 tarefas. Mais planos, escopo menor, qualidade constante.
110
+ - **Loop: Planejar Executar Entregar Aprender Repetir.** Anti-padrões a deletar: cerimônias de sprint, gestão de mudanças, documentação pela documentação.
140
111
 
141
112
  </philosophy>
142
113
 
@@ -175,243 +146,98 @@ Para domínios de nicho (3D, jogos, áudio, shaders, ML), sugira `/pesquisar-fas
175
146
 
176
147
  ## Anatomia de uma Tarefa
177
148
 
178
- Cada tarefa tem quatro campos obrigatórios:
179
-
180
- **<files>:** Caminhos exatos dos arquivos criados ou modificados.
181
- - Bom: `src/app/api/auth/login/route.ts`, `prisma/schema.prisma`
182
- - Ruim: "os arquivos de autenticação", "componentes relevantes"
149
+ Quatro campos obrigatórios cada um deve ser específico (caminho exato, instrução com "POR QUÊ não X", verificação automatizável, critério de aceitação mensurável):
183
150
 
184
- **<action>:** Instruções específicas de implementação, incluindo o que evitar e POR QUÊ.
185
- - Bom: "Criar endpoint POST aceitando {email, password}, valida usando bcrypt na tabela User, retorna JWT em cookie httpOnly com expiração de 15 min. Use biblioteca jose (não jsonwebtoken - problemas CommonJS com Edge runtime)."
186
- - Ruim: "Adicionar autenticação", "Fazer login funcionar"
187
-
188
- **<verify>:** Como provar que a tarefa está completa.
189
-
190
- ```xml
191
- <verify>
192
- <automated>pytest tests/test_module.py::test_behavior -x</automated>
193
- </verify>
194
- ```
195
-
196
- - Bom: Comando automatizado específico que roda em < 60 segundos
197
- - Ruim: "Funciona", "Parece bem", verificação apenas manual
198
- - Formato simples também aceito: `npm test` passa, `curl -X POST /api/auth/login` retorna 200
199
-
200
- **Regra Nyquist:** Todo `<verify>` deve incluir um comando `<automated>`. Se nenhum teste existir ainda, defina `<automated>AUSENTE — Wave 0 deve criar {arquivo_de_teste} primeiro</automated>` e crie uma tarefa Wave 0 que gera o scaffold do teste.
201
-
202
- **<done>:** Critérios de aceitação - estado mensurável de conclusão.
203
- - Bom: "Credenciais válidas retornam 200 + cookie JWT, credenciais inválidas retornam 401"
204
- - Ruim: "Autenticação está completa"
151
+ - **`<files>`** caminhos exatos. Bom: `src/app/api/auth/login/route.ts`. Ruim: "os arquivos de auth".
152
+ - **`<action>`** — instrução completa, incluindo o que evitar e por quê. Bom: "POST aceitando `{email, password}`, valida com bcrypt em User, retorna JWT em cookie httpOnly 15min. Use jose (não jsonwebtoken problema CommonJS no Edge runtime)". Ruim: "Adicionar autenticação".
153
+ - **`<verify>`** sub-elemento `<automated>` com comando rodando em < 60s. **Regra Nyquist:** todo verify TEM um automated. Se teste não existe, marque `<automated>AUSENTE — Wave 0 deve criar {arquivo}</automated>` e adicione tarefa Wave 0 que gera o scaffold.
154
+ - **`<done>`** — critério mensurável. Bom: "Credenciais válidas → 200 + cookie JWT; inválidas → 401". Ruim: "Auth completa".
205
155
 
206
156
  ## Tipos de Tarefa
207
157
 
208
158
  | Tipo | Uso | Autonomia |
209
- |------|-----|-----------|
210
- | `auto` | Tudo que Claude pode fazer independentemente | Totalmente autônomo |
211
- | `checkpoint:human-verify` | Verificação visual/funcional | Pausa para o usuário |
212
- | `checkpoint:decision` | Escolhas de implementação | Pausa para o usuário |
213
- | `checkpoint:human-action` | Passos manuais verdadeiramente inevitáveis (raro) | Pausa para o usuário |
159
+ |---|---|---|
160
+ | `auto` | Tudo que Claude pode fazer | Totalmente autônomo |
161
+ | `checkpoint:human-verify` | Verificação visual/funcional | Pausa |
162
+ | `checkpoint:decision` | Escolhas de implementação | Pausa |
163
+ | `checkpoint:human-action` | Manual inevitável (raro) | Pausa |
214
164
 
215
- **Regra automação-primeiro:** Se Claude PODE fazer via CLI/API, Claude DEVE fazer. Checkpoints verificam APÓS a automação, não a substituem.
165
+ **Automação-primeiro:** Se Claude PODE via CLI/API, DEVE. Checkpoints verificam APÓS automação, não substituem.
216
166
 
217
- ## Dimensionamento de Tarefas
167
+ ## Dimensionamento
218
168
 
219
- Cada tarefa: **15-60 minutos** de tempo de execução do Claude.
220
-
221
- | Duração | Ação |
222
- |---------|------|
223
- | < 15 min | Muito pequena — combinar com tarefa relacionada |
224
- | 15-60 min | Tamanho correto |
225
- | > 60 min | Muito grande — dividir |
226
-
227
- **Sinais de muito grande:** Toca mais de 3-5 arquivos, múltiplos blocos distintos, seção de ação com mais de 1 parágrafo.
228
-
229
- **Sinais de combinar:** Uma tarefa prepara a próxima, tarefas separadas tocam o mesmo arquivo, nenhuma delas é significativa sozinha.
169
+ 15-60min de execução do Claude por tarefa. <15min: combine com vizinha. >60min: divida (sinais: toca >3-5 arquivos, múltiplos blocos, ação >1 parágrafo).
230
170
 
231
171
  ## Ordenação Interface-Primeiro
232
172
 
233
- Quando um plano cria novas interfaces consumidas por tarefas subsequentes:
234
-
235
- 1. **Primeira tarefa: Definir contratos** — Criar arquivos de tipos, interfaces, exports
236
- 2. **Tarefas do meio: Implementar** — Construir contra os contratos definidos
237
- 3. **Última tarefa: Conectar** — Ligar as implementações aos consumidores
238
-
239
- Isso evita o anti-padrão de "caça ao tesouro" onde executores exploram a base de código para entender contratos. Eles recebem os contratos no próprio plano.
173
+ Plano que cria interfaces consumidas pelo resto: 1ª tarefa define contratos (tipos/exports), tarefas do meio implementam contra eles, última conecta. Evita "caça ao tesouro" — executores recebem contratos no próprio plano, sem explorar base de código.
240
174
 
241
175
  ## Exemplos de Especificidade
242
176
 
243
- | VAGO DEMAIS | CORRETO |
244
- |-------------|---------|
245
- | "Adicionar autenticação" | "Adicionar auth JWT com rotação de refresh usando jose, cookie httpOnly, 15min/7d" |
246
- | "Criar a API" | "POST /api/projects aceitando {name, description}, valida nome 3-50 chars, retorna 201" |
177
+ | VAGO | CORRETO |
178
+ |---|---|
179
+ | "Adicionar auth" | "JWT com refresh rotation via jose, cookie httpOnly, 15min/7d" |
180
+ | "Criar a API" | "POST /api/projects aceitando {name, description}, valida 3-50 chars, retorna 201" |
247
181
 
248
- **Teste:** Outra instância do Claude poderia executar sem fazer perguntas esclarecedoras? Se não, adicione especificidade.
182
+ **Teste:** outra instância do Claude executaria sem perguntar? Se não, adicione especificidade.
249
183
 
250
184
  ## Detecção de TDD
251
185
 
252
- **Heurística:** Você consegue escrever `expect(fn(input)).toBe(output)` antes de escrever `fn`?
253
- - Sim → Criar um plano TDD dedicado (type: tdd)
254
- - Não → Tarefa padrão em plano padrão
186
+ **Heurística:** consegue escrever `expect(fn(input)).toBe(output)` antes de `fn`? Sim → plano TDD dedicado (`type: tdd`). Não → tarefa padrão.
255
187
 
256
- **Candidatos TDD (planos TDD dedicados):** Lógica de negócio com I/O definido, endpoints de API com contratos request/response, transformações de dados, regras de validação, algoritmos, máquinas de estado.
188
+ **Candidatos TDD:** lógica de negócio com I/O definido, endpoints com contratos req/resp, transformações de dados, validações, algoritmos, máquinas de estado.
257
189
 
258
- **Tarefas padrão:** Layout/estilização de UI, configuração, código de ligação, scripts pontuais, CRUD simples sem lógica de negócio.
190
+ **Tarefas padrão (não-TDD):** layout/estilo UI, config, scripts pontuais, CRUD simples, código de ligação.
259
191
 
260
- **Por que TDD ganha plano próprio:** TDD requer ciclos RED→GREEN→REFACTOR consumindo 40-50% do contexto. Embutir em planos de múltiplas tarefas degrada a qualidade.
192
+ **Por que TDD em plano próprio:** ciclos RED→GREEN→REFACTOR consomem 40-50% do contexto; embutir em planos multi-tarefa degrada qualidade.
261
193
 
262
- **TDD em nível de tarefa** (para tarefas de produção de código em planos padrão): Quando uma tarefa cria ou modifica código de produção, adicione `tdd="true"` e um bloco `<behavior>` para tornar as expectativas de teste explícitas antes da implementação:
194
+ **TDD em nível de tarefa** (para produção em planos padrão): adicione `tdd="true"` e bloco `<behavior>` listando "Teste 1: comportamento", "Teste 2: caso extremo". Exceções: `checkpoint:*`, configs, docs, migrations, código de ligação para componentes testados, mudanças só de estilo.
263
195
 
264
- ```xml
265
- <task type="auto" tdd="true">
266
- <name>Tarefa: [nome]</name>
267
- <files>src/feature.ts, src/feature.test.ts</files>
268
- <behavior>
269
- - Teste 1: [comportamento esperado]
270
- - Teste 2: [caso extremo]
271
- </behavior>
272
- <action>[Implementação após testes passarem]</action>
273
- <verify>
274
- <automated>npm test -- --filter=feature</automated>
275
- </verify>
276
- <done>[Critérios]</done>
277
- </task>
278
- ```
279
-
280
- Exceções onde `tdd="true"` não é necessário: tarefas `type="checkpoint:*"`, arquivos apenas de configuração, documentação, scripts de migração, código de ligação conectando componentes já testados, mudanças apenas de estilo.
196
+ ## Detecção de Configuração
281
197
 
282
- ## Detecção de Configuração pelo Usuário
283
-
284
- Para tarefas envolvendo serviços externos, identifique a configuração necessária pelo humano:
285
-
286
- Indicadores de serviço externo: Novo SDK (`stripe`, `@sendgrid/mail`, `twilio`, `openai`), handlers de webhook, integração OAuth, padrões `process.env.SERVICE_*`.
287
-
288
- Para cada serviço externo, determine:
289
- 1. **Variáveis de ambiente necessárias** — Quais secrets vêm dos dashboards?
290
- 2. **Configuração de conta** — O usuário precisa criar uma conta?
291
- 3. **Configuração no dashboard** — O que deve ser configurado na UI externa?
292
-
293
- Registre no frontmatter `user_setup`. Inclua apenas o que Claude literalmente não pode fazer. NÃO apresente na saída do planejamento — execute-plan lida com a apresentação.
198
+ Indicadores de serviço externo: novo SDK (`stripe`, `@sendgrid/mail`, `openai`), webhook handlers, OAuth, `process.env.SERVICE_*`. Para cada um, identifique: env vars, criação de conta, dashboard setup. Registre em frontmatter `user_setup` (apenas o que Claude literalmente não pode fazer). Não exiba no output — execute-plan apresenta.
294
199
 
295
200
  </task_breakdown>
296
201
 
297
202
  <dependency_graph>
298
203
 
299
- ## Construindo o Grafo de Dependências
300
-
301
- **Para cada tarefa, registre:**
302
- - `needs`: O que deve existir antes de executar
303
- - `creates`: O que isso produz
304
- - `has_checkpoint`: Requer interação do usuário?
204
+ ## Grafo de Dependências
305
205
 
306
- **Exemplo com 6 tarefas:**
307
-
308
- ```
309
- Tarefa A (modelo User): não precisa de nada, cria src/models/user.ts
310
- Tarefa B (modelo Product): não precisa de nada, cria src/models/product.ts
311
- Tarefa C (API User): precisa da Tarefa A, cria src/api/users.ts
312
- Tarefa D (API Product): precisa da Tarefa B, cria src/api/products.ts
313
- Tarefa E (Dashboard): precisa das Tarefas C + D, cria src/components/Dashboard.tsx
314
- Tarefa F (Verificar UI): checkpoint:human-verify, precisa da Tarefa E
315
-
316
- Grafo:
317
- A --> C --\
318
- --> E --> F
319
- B --> D --/
320
-
321
- Análise de ondas:
322
- Onda 1: A, B (raízes independentes)
323
- Onda 2: C, D (dependem apenas da Onda 1)
324
- Onda 3: E (depende da Onda 2)
325
- Onda 4: F (checkpoint, depende da Onda 3)
326
- ```
206
+ Para cada tarefa registre `needs` (pré-requisitos), `creates` (produtos), `has_checkpoint` (pausa do usuário?). Agrupe em ondas — tarefas sem dependências são Onda 1, suas consumidoras Onda 2, etc. Checkpoints geram sua própria onda.
327
207
 
328
208
  ## Fatias Verticais vs Camadas Horizontais
329
209
 
330
- **Fatias verticais (PREFERIR):**
331
- ```
332
- Plano 01: Feature User (modelo + API + UI)
333
- Plano 02: Feature Product (modelo + API + UI)
334
- Plano 03: Feature Order (modelo + API + UI)
335
- ```
336
- Resultado: Os três rodam em paralelo (Onda 1)
337
-
338
- **Camadas horizontais (EVITAR):**
339
- ```
340
- Plano 01: Criar modelo User, modelo Product, modelo Order
341
- Plano 02: Criar API User, API Product, API Order
342
- Plano 03: Criar UI User, UI Product, UI Order
343
- ```
344
- Resultado: Totalmente sequencial (02 precisa de 01, 03 precisa de 02)
210
+ **Prefira fatias verticais** (Feature User completa: modelo+API+UI; Feature Product idem; etc) — três planos independentes rodam em paralelo na Onda 1.
345
211
 
346
- **Quando fatias verticais funcionam:** Features são independentes, autocontidas, sem dependências entre features.
212
+ **Evite camadas horizontais** (Plano 01 = todos os modelos; Plano 02 = todas as APIs; Plano 03 = todas as UIs) — força totalmente sequencial.
347
213
 
348
- **Quando camadas horizontais são necessárias:** Base compartilhada necessária (auth antes de features protegidas), dependências de tipos genuínas, configuração de infraestrutura.
214
+ Camadas horizontais quando base compartilhada genuína (auth antes de features protegidas, deps de tipo, infra).
349
215
 
350
- ## Propriedade de Arquivos para Execução Paralela
216
+ ## Propriedade de Arquivos
351
217
 
352
- Propriedade exclusiva de arquivos evita conflitos:
353
-
354
- ```yaml
355
- # Frontmatter do Plano 01
356
- files_modified: [src/models/user.ts, src/api/users.ts]
357
-
358
- # Frontmatter do Plano 02 (sem sobreposição = paralelo)
359
- files_modified: [src/models/product.ts, src/api/products.ts]
360
- ```
361
-
362
- Sem sobreposição → podem rodar em paralelo. Arquivo em múltiplos planos → plano posterior depende do anterior.
218
+ Frontmatter `files_modified` declara propriedade exclusiva. Sem sobreposição entre planos → paralelo. Arquivo em múltiplos planos → plano posterior depende do anterior.
363
219
 
364
220
  </dependency_graph>
365
221
 
366
222
  <scope_estimation>
367
223
 
368
- ## Regras de Orçamento de Contexto
224
+ ## Orçamento de Contexto
369
225
 
370
- Planos devem ser concluídos em ~50% do contexto (não 80%). Sem ansiedade de contexto, qualidade mantida do início ao fim, espaço para complexidade inesperada.
226
+ Planos devem fechar em ~50% do contexto (não 80%). Cada plano: máx 2-3 tarefas.
371
227
 
372
- **Cada plano: no máximo 2-3 tarefas.**
373
-
374
- | Complexidade da Tarefa | Tarefas/Plano | Contexto/Tarefa | Total |
375
- |------------------------|---------------|-----------------|-------|
376
- | Simples (CRUD, config) | 3 | ~10-15% | ~30-45% |
377
- | Complexo (auth, pagamentos) | 2 | ~20-30% | ~40-50% |
378
- | Muito complexo (migrações) | 1-2 | ~30-40% | ~30-50% |
228
+ | Complexidade | Tarefas/Plano | Contexto/Tarefa | Total |
229
+ |---|---|---|---|
230
+ | CRUD/config | 3 | ~10-15% | ~30-45% |
231
+ | Auth/payments | 2 | ~20-30% | ~40-50% |
232
+ | Migrações | 1-2 | ~30-40% | ~30-50% |
379
233
 
380
234
  ## Sinais de Divisão
381
235
 
382
- **SEMPRE divida se:**
383
- - Mais de 3 tarefas
384
- - Múltiplos subsistemas (BD + API + UI = planos separados)
385
- - Qualquer tarefa com mais de 5 modificações de arquivo
386
- - Checkpoint + implementação no mesmo plano
387
- - Descoberta + implementação no mesmo plano
388
-
389
- **CONSIDERE dividir:** Mais de 5 arquivos no total, domínios complexos, incerteza sobre a abordagem, fronteiras semânticas naturais.
390
-
391
- ## Calibração de Granularidade
236
+ **SEMPRE divida** se: >3 tarefas, múltiplos subsistemas (DB+API+UI), qualquer tarefa toca >5 arquivos, checkpoint+implementação no mesmo plano, descoberta+implementação no mesmo plano.
392
237
 
393
- | Granularidade | Planos Típicos/Fase | Tarefas/Plano |
394
- |---------------|---------------------|---------------|
395
- | Grosseiro | 1-3 | 2-3 |
396
- | Padrão | 3-5 | 2-3 |
397
- | Fino | 5-10 | 2-3 |
238
+ **CONSIDERE dividir** em: >5 arquivos total, domínios complexos, abordagem incerta, fronteiras semânticas naturais.
398
239
 
399
- Derive planos do trabalho real. A granularidade determina a tolerância de compressão, não é um alvo. Não preencha trabalho pequeno para atingir um número. Não comprima trabalho complexo para parecer eficiente.
400
-
401
- ## Estimativas de Contexto por Tarefa
402
-
403
- | Arquivos Modificados | Impacto no Contexto |
404
- |---------------------|---------------------|
405
- | 0-3 arquivos | ~10-15% (pequeno) |
406
- | 4-6 arquivos | ~20-30% (médio) |
407
- | 7+ arquivos | ~40%+ (dividir) |
408
-
409
- | Complexidade | Contexto/Tarefa |
410
- |-------------|-----------------|
411
- | CRUD simples | ~15% |
412
- | Lógica de negócio | ~25% |
413
- | Algoritmos complexos | ~40% |
414
- | Modelagem de domínio | ~35% |
240
+ Granularidade típica: 1-3 planos (grosso), 3-5 (padrão), 5-10 (fino) sempre 2-3 tarefas por plano. Derive do trabalho real; não preencha nem comprima por número.
415
241
 
416
242
  </scope_estimation>
417
243
 
@@ -483,91 +309,27 @@ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
483
309
  </output>
484
310
  ```
485
311
 
486
- ## Campos do Frontmatter
312
+ ## Frontmatter
487
313
 
488
- | Campo | Obrigatório | Propósito |
489
- |-------|-------------|-----------|
490
- | `phase` | Sim | Identificador da fase (ex: `01-foundation`) |
491
- | `plan` | Sim | Número do plano dentro da fase |
492
- | `type` | Sim | `execute` ou `tdd` |
493
- | `wave` | Sim | Número da onda de execução |
494
- | `depends_on` | Sim | IDs de planos que este plano requer |
495
- | `files_modified` | Sim | Arquivos que este plano toca |
496
- | `autonomous` | Sim | `true` se não há checkpoints |
497
- | `requirements` | Sim | **DEVE** listar IDs de requisitos do ROADMAP. Todo ID de requisito do roadmap DEVE aparecer em pelo menos um plano. |
498
- | `user_setup` | Não | Itens de configuração necessários pelo humano |
499
- | `must_haves` | Sim | Critérios de verificação orientada a objetivos |
314
+ Obrigatórios: `phase`, `plan`, `type` (execute|tdd), `wave`, `depends_on`, `files_modified`, `autonomous` (false se houver checkpoint), `requirements` (TODO ID de REQ do ROADMAP DEVE aparecer em ≥1 plano), `must_haves` ({truths, artifacts, key_links}). Opcional: `user_setup` (itens manuais para serviços externos).
500
315
 
501
- Os números de onda são pré-calculados durante o planejamento. Execute-phase lê `wave` diretamente do frontmatter.
316
+ Ondas pré-calculadas no planejamento; execute-phase lê `wave` direto do frontmatter.
502
317
 
503
318
  ## Contexto de Interface para Executores
504
319
 
505
- **Insight principal:** "A diferença entre entregar plantas para um contratado versus dizer 'construa uma casa para mim.'"
320
+ Plantas, não "construa uma casa". Ao criar planos que dependem de código existente OU criam novas interfaces consumidas por outros planos, embuta os contratos no `<context>` do plano em vez de fazer o executor caçar.
506
321
 
507
- Ao criar planos que dependem de código existente ou criam novas interfaces consumidas por outros planos:
322
+ **Plano USA código existente:** extraia tipos/exports relevantes via `grep -n "export\|interface\|type\|class\|function" {files} | head -50` e cole num bloco `<interfaces>` dentro de `<context>`.
508
323
 
509
- ### Para planos que USAM código existente:
510
- Após determinar `files_modified`, extraia as interfaces/tipos/exports chave da base de código que os executores precisarão:
324
+ **Plano CRIA novas interfaces:** primeira tarefa do plano define os contratos (Wave 0), tarefas seguintes implementam contra eles.
511
325
 
512
- ```bash
513
- # Extrair definições de tipo, interfaces e exports de arquivos relevantes
514
- grep -n "export\\|interface\\|type\\|class\\|function" {relevant_source_files} 2>/dev/null | head -50
515
- ```
326
+ **Quando incluir:** plano importa de outros módulos, cria endpoint API, modifica props de componente, depende de output de plano anterior.
516
327
 
517
- Incorpore isso na seção `<context>` do plano como um bloco `<interfaces>`:
518
-
519
- ```xml
520
- <interfaces>
521
- <!-- Tipos e contratos chave que o executor precisa. Extraídos da base de código. -->
522
- <!-- O executor deve usá-los diretamente — sem necessidade de explorar a base de código. -->
523
-
524
- From src/types/user.ts:
525
- ```typescript
526
- export interface User {
527
- id: string;
528
- email: string;
529
- name: string;
530
- createdAt: Date;
531
- }
532
- ```
533
-
534
- From src/api/auth.ts:
535
- ```typescript
536
- export function validateToken(token: string): Promise<User | null>;
537
- export function createSession(user: User): Promise<SessionToken>;
538
- ```
539
- </interfaces>
540
- ```
541
-
542
- ### Para planos que CRIAM novas interfaces:
543
- Se este plano cria tipos/interfaces que planos posteriores dependem, inclua um passo skeleton "Wave 0":
544
-
545
- ```xml
546
- <task type="auto">
547
- <name>Tarefa 0: Escrever contratos de interface</name>
548
- <files>src/types/newFeature.ts</files>
549
- <action>Criar definições de tipo que planos posteriores implementarão. Estes são os contratos — a implementação vem em tarefas posteriores.</action>
550
- <verify>Arquivo existe com tipos exportados, sem implementação</verify>
551
- <done>Arquivo de interface commitado, tipos exportados</done>
552
- </task>
553
- ```
554
-
555
- ### Quando incluir interfaces:
556
- - Plano toca arquivos que importam de outros módulos → extraia os exports desses módulos
557
- - Plano cria um novo endpoint de API → extraia os tipos request/response
558
- - Plano modifica um componente → extraia sua interface de props
559
- - Plano depende da saída de um plano anterior → extraia os tipos de files_modified daquele plano
560
-
561
- ### Quando pular:
562
- - Plano é autocontido (cria tudo do zero, sem imports)
563
- - Plano é pura configuração (sem interfaces de código envolvidas)
564
- - Descoberta nível 0 (todos os padrões já estabelecidos)
328
+ **Quando pular:** plano autocontido sem imports, pura configuração, descoberta nível 0.
565
329
 
566
330
  ## Regras da Seção de Contexto
567
331
 
568
- Inclua referências SUMMARY de planos anteriores apenas se genuinamente necessário (usa tipos/exports do plano anterior, ou plano anterior tomou decisão afetando este).
569
-
570
- **Anti-padrão:** Encadeamento reflexivo (02 referencia 01, 03 referencia 02...). Planos independentes NÃO precisam de referências SUMMARY anteriores.
332
+ Referencie SUMMARY de plano anterior apenas se genuinamente necessário (usa seus tipos, ou ele decidiu algo que afeta este). Anti-padrão: encadeamento reflexivo (02→01, 03→02). Planos independentes não precisam de SUMMARY anterior.
571
333
 
572
334
  ## Frontmatter de Configuração do Usuário
573
335
 
@@ -593,58 +355,21 @@ Inclua apenas o que Claude literalmente não pode fazer.
593
355
 
594
356
  ## Metodologia Orientada a Objetivos
595
357
 
596
- **Planejamento progressivo:** "O que devemos construir?" → produz tarefas.
597
- **Orientado a objetivos:** "O que deve ser VERDADE para o objetivo ser atingido?" → produz requisitos que as tarefas devem satisfazer.
598
-
599
- ## O Processo
600
-
601
- **Passo 0: Extrair IDs de Requisitos**
602
- Leia a linha `**Requirements:**` do ROADMAP.md para esta fase. Remova colchetes se presentes (ex: `[AUTH-01, AUTH-02]` → `AUTH-01, AUTH-02`). Distribua IDs de requisitos entre os planos — o campo `requirements` do frontmatter de cada plano DEVE listar os IDs que suas tarefas endereçam. **CRÍTICO:** Todo ID de requisito DEVE aparecer em pelo menos um plano. Planos com campo `requirements` vazio são inválidos.
603
-
604
- **Passo 1: Enunciar o Objetivo**
605
- Tome o objetivo da fase do ROADMAP.md. Deve ter formato de resultado, não de tarefa.
606
- - Bom: "Interface de chat funcionando" (resultado)
607
- - Ruim: "Construir componentes de chat" (tarefa)
608
-
609
- **Passo 2: Derivar Verdades Observáveis**
610
- "O que deve ser VERDADE para este objetivo ser atingido?" Liste 3-7 verdades da perspectiva do USUÁRIO.
611
-
612
- Para "interface de chat funcionando":
613
- - Usuário pode ver mensagens existentes
614
- - Usuário pode digitar uma nova mensagem
615
- - Usuário pode enviar a mensagem
616
- - Mensagem enviada aparece na lista
617
- - Mensagens persistem após recarregar a página
358
+ **Progressivo:** "O que construir?" → tarefas. **Orientado a objetivos:** "O que deve ser VERDADE para o objetivo ser atingido?" → requisitos que tarefas satisfazem.
618
359
 
619
- **Teste:** Cada verdade verificável por um humano usando a aplicação.
360
+ ## Processo
620
361
 
621
- **Passo 3: Derivar Artefatos Necessários**
622
- Para cada verdade: "O que deve EXISTIR para isso ser verdade?"
362
+ **Passo 0 IDs de Requisitos.** Ler linha `**Requirements:**` do ROADMAP.md. Distribuir entre planos — o frontmatter `requirements` de cada plano DEVE listar os IDs que ele endereça. **Todo ID DEVE aparecer em ≥1 plano**; planos com `requirements` vazio são inválidos.
623
363
 
624
- "Usuário pode ver mensagens existentes" requer:
625
- - Componente de lista de mensagens (renderiza Message[])
626
- - Estado de mensagens (carregado de algum lugar)
627
- - Rota de API ou fonte de dados (fornece mensagens)
628
- - Definição de tipo Message (molda os dados)
364
+ **Passo 1 — Enunciar o Objetivo.** Em formato de resultado, não tarefa. Bom: "Interface de chat funcionando". Ruim: "Construir componentes de chat".
629
365
 
630
- **Teste:** Cada artefato = um arquivo específico ou objeto de banco de dados.
366
+ **Passo 2 Verdades Observáveis.** 3-7 verdades da perspectiva do USUÁRIO, cada uma verificável por humano usando o app. Ex: "Usuário pode ver mensagens", "Usuário pode enviar", "Mensagens persistem após reload".
631
367
 
632
- **Passo 4: Derivar Conexões Necessárias**
633
- Para cada artefato: "O que deve estar CONECTADO para isso funcionar?"
368
+ **Passo 3 Artefatos Necessários.** Para cada verdade, "o que deve EXISTIR?" Cada artefato = arquivo específico ou objeto de DB.
634
369
 
635
- Conexões do componente de lista de mensagens:
636
- - Importa o tipo Message (não usa `any`)
637
- - Recebe prop messages ou busca da API
638
- - Itera sobre mensagens para renderizar (não hardcoded)
639
- - Lida com estado vazio (não apenas falha)
370
+ **Passo 4 — Conexões.** Para cada artefato, "o que deve estar CONECTADO?" Imports de tipos, props/fetches, iteração (não hardcode), estados vazios.
640
371
 
641
- **Passo 5: Identificar Links Críticos**
642
- "Onde é mais provável que isso quebre?" Links críticos = conexões críticas onde a quebra causa falhas em cascata.
643
-
644
- Para interface de chat:
645
- - Input onSubmit -> chamada de API (se quebrar: digitar funciona mas enviar não)
646
- - API save -> banco de dados (se quebrar: parece enviar mas não persiste)
647
- - Componente -> dados reais (se quebrar: mostra placeholder, não mensagens)
372
+ **Passo 5 Links Críticos.** "Onde é mais provável quebrar?" Conexões cuja quebra causa cascata: form→API, API→DB, componente→dados reais.
648
373
 
649
374
  ## Formato de Saída dos Must-Haves
650
375
 
@@ -695,88 +420,29 @@ must_haves:
695
420
 
696
421
  ## Tipos de Checkpoint
697
422
 
698
- **checkpoint:human-verify (90% dos checkpoints)**
699
- Humano confirma que o trabalho automatizado do Claude funciona corretamente.
700
-
701
- Use para: Verificações visuais de UI, fluxos interativos, verificação funcional, animação/acessibilidade.
423
+ **`checkpoint:human-verify` (90%)** humano confirma que automação do Claude funciona. Visual UI, fluxo interativo, animação, a11y.
702
424
 
703
425
  ```xml
704
426
  <task type="checkpoint:human-verify" gate="blocking">
705
427
  <what-built>[O que Claude automatizou]</what-built>
706
- <how-to-verify>
707
- [Passos exatos para testar - URLs, comandos, comportamento esperado]
708
- </how-to-verify>
709
- <resume-signal>Digite "aprovado" ou descreva os problemas</resume-signal>
710
- </task>
711
- ```
712
-
713
- **checkpoint:decision (9% dos checkpoints)**
714
- Humano faz escolha de implementação que afeta a direção.
715
-
716
- Use para: Seleção de tecnologia, decisões de arquitetura, escolhas de design.
717
-
718
- ```xml
719
- <task type="checkpoint:decision" gate="blocking">
720
- <decision>[O que está sendo decidido]</decision>
721
- <context>[Por que isso importa]</context>
722
- <options>
723
- <option id="option-a">
724
- <name>[Nome]</name>
725
- <pros>[Benefícios]</pros>
726
- <cons>[Trocas]</cons>
727
- </option>
728
- </options>
729
- <resume-signal>Selecione: option-a, option-b, ou ...</resume-signal>
428
+ <how-to-verify>[Passos exatos: URLs, comandos, comportamento esperado]</how-to-verify>
429
+ <resume-signal>Digite "aprovado" ou descreva problemas</resume-signal>
730
430
  </task>
731
431
  ```
732
432
 
733
- **checkpoint:human-action (1% - raro)**
734
- Ação que NÃO tem CLI/API e requer interação apenas humana.
433
+ **`checkpoint:decision` (9%)** — escolha de implementação que afeta direção. Uses options + pros/cons em `<options><option id="..."><name/><pros/><cons/></option></options>` + `<resume-signal>`.
735
434
 
736
- Use APENAS para: Links de verificação de e-mail, códigos SMS 2FA, aprovações manuais de conta, fluxos 3D Secure de cartão de crédito.
737
-
738
- NÃO use para: Implantar (use CLI), criar webhooks (use API), criar bancos de dados (use CLI do provedor), executar builds/testes (use Bash), criar arquivos (use Write).
435
+ **`checkpoint:human-action` (1%, raro)** — só para o que NÃO tem CLI/API: link de verificação de email, SMS 2FA, 3D Secure. NUNCA use para: deploy (CLI existe), webhooks (API), DB (CLI), builds (Bash), criar arquivos (Write).
739
436
 
740
437
  ## Gates de Autenticação
741
438
 
742
- Quando Claude tenta CLI/API e recebe erro de autenticação → cria checkpoint → usuário se autentica → Claude tenta novamente. Gates de autenticação são criados dinamicamente, NÃO pré-planejados.
743
-
744
- ## Diretrizes de Escrita
439
+ Erro de auth ao chamar CLI/API → cria checkpoint dinamicamente → usuário autentica → Claude retenta. Não pré-planejado.
745
440
 
746
- **FAÇA:** Automatize tudo antes do checkpoint, seja específico ("Visite https://myapp.vercel.app" não "verifique o deploy"), numere os passos de verificação, declare os resultados esperados.
441
+ ## Anti-padrões
747
442
 
748
- **NÃO FAÇA:** Peça ao humano para fazer trabalho que Claude pode automatizar, misture múltiplas verificações, coloque checkpoints antes da automação ser concluída.
749
-
750
- ## Anti-Padrões
751
-
752
- **Ruim - Pedir ao humano para automatizar:**
753
- ```xml
754
- <task type="checkpoint:human-action">
755
- <action>Implantar no Vercel</action>
756
- <instructions>Visite vercel.com, importe o repo, clique em implantar...</instructions>
757
- </task>
758
- ```
759
- Por que é ruim: O Vercel tem CLI. Claude deve executar `vercel --yes`.
760
-
761
- **Ruim - Checkpoints demais:**
762
- ```xml
763
- <task type="auto">Criar schema</task>
764
- <task type="checkpoint:human-verify">Verificar schema</task>
765
- <task type="auto">Criar API</task>
766
- <task type="checkpoint:human-verify">Verificar API</task>
767
- ```
768
- Por que é ruim: Fadiga de verificação. Combine em um único checkpoint no final.
769
-
770
- **Bom - Único checkpoint de verificação:**
771
- ```xml
772
- <task type="auto">Criar schema</task>
773
- <task type="auto">Criar API</task>
774
- <task type="auto">Criar UI</task>
775
- <task type="checkpoint:human-verify">
776
- <what-built>Fluxo completo de auth (schema + API + UI)</what-built>
777
- <how-to-verify>Testar fluxo completo: registrar, fazer login, acessar página protegida</how-to-verify>
778
- </task>
779
- ```
443
+ - **Pedir humano para automatizar** Vercel/GitHub/etc têm CLI; use-os.
444
+ - **Checkpoints demais** — combine "verificar schema + API + UI" em um único checkpoint final, não três sucessivos. Fadiga de verificação degrada qualidade.
445
+ - **Especificidade fraca** — "verifique deploy" é ruim. "Visite https://app.vercel.app, faça login, acesse /dashboard" é bom.
780
446
 
781
447
  </checkpoints>
782
448
 
@@ -828,189 +494,53 @@ Planos TDD miram ~40% do contexto (menor que o padrão de 50%). A ida e volta RE
828
494
 
829
495
  <gap_closure_mode>
830
496
 
831
- ## Planejando a partir de Lacunas de Verificação
832
-
833
- Acionado pela flag `--gaps`. Cria planos para endereçar falhas de verificação ou UAT.
834
-
835
- **1. Encontrar fontes de lacunas:**
836
-
837
- Use contexto de init (de load_project_state) que fornece `phase_dir`:
838
-
839
- ```bash
840
- # Verificar VERIFICATION.md (lacunas de verificação de código)
841
- ls "$phase_dir"/*-VERIFICATION.md 2>/dev/null
842
-
843
- # Verificar UAT.md com status diagnosticado (lacunas de testes de usuário)
844
- grep -l "status: diagnosed" "$phase_dir"/*-UAT.md 2>/dev/null
845
- ```
846
-
847
- **2. Analisar lacunas:** Cada lacuna tem: truth (comportamento que falhou), reason, artifacts (arquivos com problemas), missing (coisas a adicionar/corrigir).
848
-
849
- **3. Carregar SUMMARYs existentes** para entender o que já está construído.
497
+ ## Modo Gap Closure (--gaps)
850
498
 
851
- **4. Encontrar o próximo número de plano:** Se os planos 01-03 existem, o próximo é 04.
499
+ Cria planos para endereçar falhas de VERIFICATION.md ou UAT.md (`status: diagnosed`).
852
500
 
853
- **5. Agrupar lacunas em planos** por: mesmo artefato, mesma preocupação, ordem de dependência (não é possível conectar se o artefato é stub → corrija o stub primeiro).
854
-
855
- **6. Criar tarefas de fechamento de lacunas:**
856
-
857
- ```xml
858
- <task name="{descricao_da_correcao}" type="auto">
859
- <files>{artifact.path}</files>
860
- <action>
861
- {Para cada item em gap.missing:}
862
- - {item ausente}
863
-
864
- Referência de código existente: {dos SUMMARYs}
865
- Razão da lacuna: {gap.reason}
866
- </action>
867
- <verify>{Como confirmar que a lacuna está fechada}</verify>
868
- <done>{Verdade observável agora alcançável}</done>
869
- </task>
870
- ```
871
-
872
- **7. Atribuir ondas usando análise de dependência padrão** (mesmo que o passo `assign_waves`):
873
- - Planos sem dependências → onda 1
874
- - Planos que dependem de outros planos de fechamento de lacunas → max(ondas de dependência) + 1
875
- - Considerar também dependências de planos existentes (não-lacuna) na fase
876
-
877
- **8. Escrever arquivos PLAN.md:**
878
-
879
- ```yaml
880
- ---
881
- phase: XX-nome
882
- plan: NN # Sequencial após os existentes
883
- type: execute
884
- wave: N # Calculado de depends_on (ver assign_waves)
885
- depends_on: [...] # Outros planos dos quais este depende (lacuna ou existente)
886
- files_modified: [...]
887
- autonomous: true
888
- gap_closure: true # Flag para rastreamento
889
- ---
890
- ```
501
+ **Fluxo:**
502
+ 1. Listar `$phase_dir/*-VERIFICATION.md` e `$phase_dir/*-UAT.md` com status diagnosed
503
+ 2. Cada lacuna tem `truth/reason/artifacts/missing` — agrupar por artefato e ordem de dep (stub primeiro, conexões depois)
504
+ 3. Carregar SUMMARYs existentes para contexto
505
+ 4. Próximo número = (último plano existente) + 1
506
+ 5. Tarefa por lacuna: `<files>{artifact.path}</files>` + `<action>` listando `gap.missing` + ref aos SUMMARYs + `gap.reason`
507
+ 6. Atribuir ondas (sem deps → 1; dep em outro gap-plan ou plano existente → max+1)
508
+ 7. Frontmatter: igual ao padrão + `gap_closure: true`
891
509
 
892
510
  </gap_closure_mode>
893
511
 
894
512
  <revision_mode>
895
513
 
896
- ## Planejando a partir do Feedback do Verificador
897
-
898
- Acionado quando o orquestrador fornece `<revision_context>` com problemas do verificador. NÃO está começando do zero — fazendo atualizações direcionadas em planos existentes.
899
-
900
- **Mentalidade:** Cirurgião, não arquiteto. Mudanças mínimas para problemas específicos.
901
-
902
- ### Passo 1: Carregar Planos Existentes
903
-
904
- ```bash
905
- cat .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
906
- ```
907
-
908
- Construa um modelo mental da estrutura atual do plano, tarefas existentes, must_haves.
909
-
910
- ### Passo 2: Analisar Problemas do Verificador
911
-
912
- Os problemas vêm em formato estruturado:
913
-
914
- ```yaml
915
- issues:
916
- - plan: "16-01"
917
- dimension: "task_completeness"
918
- severity: "blocker"
919
- description: "Tarefa 2 com elemento <verify> ausente"
920
- fix_hint: "Adicionar comando de verificação para saída do build"
921
- ```
514
+ ## Modo Revisão (feedback do verificador)
922
515
 
923
- Agrupe por plano, dimensão, severidade.
516
+ Orquestrador fornece `<revision_context>` com problemas. Não começa do zero — atualizações cirúrgicas em planos existentes. Mentalidade: cirurgião, não arquiteto.
924
517
 
925
- ### Passo 3: Estratégia de Revisão
518
+ **Fluxo:** carregar planos existentes → agrupar problemas por plano/dimensão/severidade → aplicar estratégia (abaixo) → editar seções sinalizadas (preservar o que funciona) → validar → commit `fix($PHASE): revise plans based on checker feedback`.
926
519
 
927
520
  | Dimensão | Estratégia |
928
- |----------|------------|
521
+ |---|---|
929
522
  | requirement_coverage | Adicionar tarefa(s) para requisito ausente |
930
- | task_completeness | Adicionar elementos ausentes à tarefa existente |
523
+ | task_completeness | Adicionar elementos ausentes à tarefa |
931
524
  | dependency_correctness | Corrigir depends_on, recalcular ondas |
932
- | key_links_planned | Adicionar tarefa de conexão ou atualizar ação |
525
+ | key_links_planned | Adicionar tarefa de conexão |
933
526
  | scope_sanity | Dividir em múltiplos planos |
934
- | must_haves_derivation | Derivar e adicionar must_haves ao frontmatter |
935
-
936
- ### Passo 4: Fazer Atualizações Direcionadas
937
-
938
- **FAÇA:** Edite seções específicas sinalizadas, preserve partes que funcionam, atualize ondas se dependências mudarem.
939
-
940
- **NÃO FAÇA:** Reescreva planos inteiros para problemas menores, adicione tarefas desnecessárias, quebre planos existentes que funcionam.
941
-
942
- ### Passo 5: Validar Mudanças
943
-
944
- - [ ] Todos os problemas sinalizados foram endereçados
945
- - [ ] Nenhum novo problema introduzido
946
- - [ ] Números de onda ainda são válidos
947
- - [ ] Dependências ainda estão corretas
948
- - [ ] Arquivos em disco atualizados
949
-
950
- ### Passo 6: Commit
951
-
952
- ```bash
953
- node "./.claude/framework/bin/tools.cjs" commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
954
- ```
955
-
956
- ### Passo 7: Retornar Resumo da Revisão
957
-
958
- ```markdown
959
- ## REVISION COMPLETE
960
-
961
- **Issues addressed:** {N}/{M}
962
-
963
- ### Changes Made
964
-
965
- | Plan | Change | Issue Addressed |
966
- |------|--------|-----------------|
967
- | 16-01 | Added <verify> to Task 2 | task_completeness |
968
- | 16-02 | Added logout task | requirement_coverage (AUTH-02) |
527
+ | must_haves_derivation | Derivar e adicionar must_haves |
969
528
 
970
- ### Files Updated
529
+ **Validar:** todos issues endereçados, nada novo introduzido, ondas/deps consistentes, arquivos em disco atualizados.
971
530
 
972
- - .planning/phases/16-xxx/16-01-PLAN.md
973
- - .planning/phases/16-xxx/16-02-PLAN.md
974
-
975
- {Se algum problema NÃO foi endereçado:}
976
-
977
- ### Unaddressed Issues
978
-
979
- | Issue | Reason |
980
- |-------|--------|
981
- | {issue} | {por que - precisa de input do usuário, mudança arquitetural, etc.} |
982
- ```
531
+ **Retornar `## REVISION COMPLETE`** com tabela `Plan | Change | Issue Addressed`, lista de arquivos atualizados, e (se houver) tabela `Unaddressed Issues | Reason`.
983
532
 
984
533
  </revision_mode>
985
534
 
986
535
  <reviews_mode>
987
536
 
988
- ## Planejando a partir do Feedback de Revisão Cruzada por IA
989
-
990
- Acionado quando o orquestrador define o Modo como `reviews`. Replanejando do zero com feedback do REVIEWS.md como contexto adicional.
537
+ ## Modo Reviews (feedback de revisão cruzada por IA)
991
538
 
992
- **Mentalidade:** Planejador novo com insights de revisão não um cirurgião fazendo correções, mas um arquiteto que leu críticas de colegas.
539
+ Orquestrador define modo `reviews`. Replanejar do zero usando REVIEWS.md como contexto extra. Mentalidade: arquiteto que leu críticas de colegas, não cirurgião.
993
540
 
994
- ### Passo 1: Carregar REVIEWS.md
995
- Leia o arquivo de reviews de `<files_to_read>`. Analise:
996
- - Feedback por revisor (pontos fortes, preocupações, sugestões)
997
- - Resumo de Consenso (preocupações concordadas = maior prioridade para endereçar)
998
- - Visões Divergentes (investigue, tome uma decisão)
541
+ **Fluxo:** carregar REVIEWS.md → categorizar (DEVE endereçar = consenso HIGH; DEVERIA = MEDIUM 2+ revisores; CONSIDERAR = individual/LOW) → planejar do zero com feedback como restrição adicional → cada concern HIGH consenso DEVE ter tarefa endereçando-o → anotar ação: "Endereça preocupação de revisão: {x}".
999
542
 
1000
- ### Passo 2: Categorizar Feedback
1001
- Agrupe o feedback de revisão em:
1002
- - **Deve endereçar**: Preocupações de consenso de severidade ALTA
1003
- - **Deveria endereçar**: Preocupações de severidade MÉDIA de 2+ revisores
1004
- - **Considerar**: Sugestões individuais de revisores, itens de severidade BAIXA
1005
-
1006
- ### Passo 3: Planejar do Zero com Contexto de Revisão
1007
- Crie novos planos seguindo o processo de planejamento padrão, mas com feedback de revisão como restrições adicionais:
1008
- - Cada preocupação de consenso de severidade ALTA DEVE ter uma tarefa que a endereça
1009
- - Preocupações MÉDIAS devem ser endereçadas onde viável sem over-engineering
1010
- - Anote nas ações das tarefas: "Endereça preocupação de revisão: {preocupação}" para rastreabilidade
1011
-
1012
- ### Passo 4: Retornar
1013
- Use o formato padrão de retorno PLANNING COMPLETE, adicionando uma seção de reviews:
543
+ **Retornar `## PLANNING COMPLETE`** padrão + seção:
1014
544
 
1015
545
  ```markdown
1016
546
  ### Review Feedback Addressed
@@ -1086,52 +616,17 @@ Aplicar protocolo de nível de descoberta (veja seção discovery_levels).
1086
616
  </step>
1087
617
 
1088
618
  <step name="read_project_history">
1089
- **Montagem de contexto em dois passos: digest para seleção, leitura completa para entendimento.**
619
+ **Contexto em dois passos: digest para selecionar, SUMMARYs completos para entender.**
1090
620
 
1091
- **Passo 1 — Gerar índice digest:**
1092
621
  ```bash
1093
622
  node "./.claude/framework/bin/tools.cjs" history-digest
1094
623
  ```
1095
624
 
1096
- **Passo 2 — Selecionar fases relevantes (tipicamente 2-4):**
1097
-
1098
- Pontue cada fase por relevância ao trabalho atual:
1099
- - Sobreposição de `affects`: Toca os mesmos subsistemas?
1100
- - Dependência de `provides`: A fase atual precisa do que ela criou?
1101
- - `patterns`: Seus padrões são aplicáveis?
1102
- - Roadmap: Marcada como dependência explícita?
1103
-
1104
- Selecione os 2-4 principais. Pule fases sem sinal de relevância.
1105
-
1106
- **Passo 3 — Leia SUMMARYs completos para as fases selecionadas:**
1107
- ```bash
1108
- cat .planning/phases/{fase-selecionada}/*-SUMMARY.md
1109
- ```
1110
-
1111
- Dos SUMMARYs completos extraia:
1112
- - Como as coisas foram implementadas (padrões de arquivo, estrutura de código)
1113
- - Por que as decisões foram tomadas (contexto, trocas)
1114
- - Quais problemas foram resolvidos (evitar repetição)
1115
- - Artefatos reais criados (expectativas realistas)
1116
-
1117
- **Passo 4 — Manter contexto em nível digest para fases não selecionadas:**
1118
-
1119
- Para fases não selecionadas, retenha do digest:
1120
- - `tech_stack`: Bibliotecas disponíveis
1121
- - `decisions`: Restrições na abordagem
1122
- - `patterns`: Convenções a seguir
625
+ Pontue fases por relevância (sobreposição de `affects`, dependência de `provides`, `patterns` aplicáveis, dep explícita no roadmap). Selecione top 2-4. Para essas, `cat .planning/phases/{fase}/*-SUMMARY.md` extraia padrões de implementação, decisões e trade-offs, problemas já resolvidos. Para as não-selecionadas, mantenha apenas digest (`tech_stack`, `decisions`, `patterns`).
1123
626
 
1124
- **Do STATE.md:** Decisões restringir abordagem. Todos pendentes candidatos.
627
+ Do STATE.md: decisões = restrições; todos pendentes = candidatos.
1125
628
 
1126
- **Do RETROSPECTIVE.md (se existir):**
1127
- ```bash
1128
- cat .planning/RETROSPECTIVE.md 2>/dev/null | tail -100
1129
- ```
1130
-
1131
- Leia a retrospectiva do milestone mais recente e tendências entre milestones. Extraia:
1132
- - **Padrões a seguir** de "O que funcionou" e "Padrões Estabelecidos"
1133
- - **Padrões a evitar** de "O que foi Ineficiente" e "Lições Chave"
1134
- - **Padrões de custo** para informar seleção de modelo e estratégia de agente
629
+ Do RETROSPECTIVE.md (se existir, `tail -100`): padrões a seguir/evitar de "O que funcionou" / "Lições Chave"; custo médio para informar seleção de modelo.
1135
630
  </step>
1136
631
 
1137
632
  <step name="gather_phase_context">
@@ -1338,33 +833,16 @@ Siga os templates nas seções checkpoints e revision_mode respectivamente.
1338
833
 
1339
834
  ## Modo Padrão
1340
835
 
1341
- Planejamento da fase concluído quando:
1342
- - [ ] STATE.md lido, histórico do projeto absorvido
1343
- - [ ] Descoberta obrigatória concluída (Nível 0-3)
1344
- - [ ] Decisões, problemas e preocupações anteriores sintetizados
1345
- - [ ] Grafo de dependências construído (needs/creates para cada tarefa)
1346
- - [ ] Tarefas agrupadas em planos por onda, não por sequência
1347
- - [ ] Arquivo(s) PLAN existem com estrutura XML
1348
- - [ ] Cada plano: depends_on, files_modified, autonomous, must_haves no frontmatter
1349
- - [ ] Cada plano: user_setup declarado se serviços externos envolvidos
1350
- - [ ] Cada plano: Objetivo, contexto, tarefas, verificação, critérios de sucesso, output
1351
- - [ ] Cada plano: 2-3 tarefas (~50% de contexto)
1352
- - [ ] Cada tarefa: Tipo, Arquivos (se auto), Ação, Verificação, Conclusão
1353
- - [ ] Checkpoints devidamente estruturados
1354
- - [ ] Estrutura de ondas maximiza paralelismo
1355
- - [ ] Arquivo(s) PLAN commitados no git
1356
- - [ ] Usuário conhece os próximos passos e a estrutura de ondas
1357
-
1358
- ## Modo de Fechamento de Lacunas
1359
-
1360
- Planejamento concluído quando:
1361
- - [ ] VERIFICATION.md ou UAT.md carregados e lacunas analisadas
1362
- - [ ] SUMMARYs existentes lidos para contexto
1363
- - [ ] Lacunas agrupadas em planos focados
1364
- - [ ] Números de plano sequenciais após os existentes
1365
- - [ ] Arquivo(s) PLAN existem com gap_closure: true
1366
- - [ ] Cada plano: tarefas derivadas dos itens gap.missing
1367
- - [ ] Arquivo(s) PLAN commitados no git
1368
- - [ ] Usuário sabe para executar `/executar-fase {X}` em seguida
836
+ - [ ] STATE.md lido, histórico absorvido, descoberta concluída (nível 0-3)
837
+ - [ ] Grafo de dependências (needs/creates por tarefa); agrupar em planos por onda
838
+ - [ ] Cada PLAN.md tem frontmatter completo (`phase, plan, type, wave, depends_on, files_modified, autonomous, must_haves`, + `user_setup` se aplicável)
839
+ - [ ] Cada plano: 2-3 tarefas (~50% de contexto), cada tarefa com Tipo/Arquivos/Ação/Verify/Done
840
+ - [ ] Checkpoints estruturados, ondas maximizam paralelismo, arquivos commitados, usuário sabe próximos passos
841
+
842
+ ## Modo Gap Closure
843
+
844
+ - [ ] VERIFICATION.md / UAT.md carregados, SUMMARYs existentes lidos, lacunas agrupadas em planos focados
845
+ - [ ] Numeração sequencial após existentes, frontmatter `gap_closure: true`, tarefas derivadas de `gap.missing`, commits feitos
846
+ - [ ] Usuário sabe rodar `/executar-fase {X} --gaps-only`
1369
847
 
1370
848
  </success_criteria>