oxe-cc 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +5 -3
  3. package/bin/lib/oxe-agent-install.cjs +125 -24
  4. package/bin/lib/oxe-release.cjs +1 -0
  5. package/bin/oxe-cc.js +87 -39
  6. package/commands/oxe/debug.md +6 -1
  7. package/commands/oxe/discuss.md +7 -2
  8. package/commands/oxe/execute.md +7 -2
  9. package/commands/oxe/plan-agent.md +7 -2
  10. package/commands/oxe/plan.md +7 -2
  11. package/commands/oxe/scan.md +6 -1
  12. package/commands/oxe/spec.md +6 -1
  13. package/commands/oxe/verify.md +6 -1
  14. package/docs/CONTENT-MIGRATION-AUDIT.md +49 -0
  15. package/docs/RUNTIME-SMOKE-MATRIX.md +1 -1
  16. package/lib/runtime/compiler/graph-compiler.js +32 -0
  17. package/lib/runtime/context/context-pack-builder.d.ts +15 -0
  18. package/lib/runtime/context/context-pack-builder.js +78 -0
  19. package/lib/runtime/events/catalog.d.ts +1 -1
  20. package/lib/runtime/events/catalog.js +5 -0
  21. package/lib/runtime/executor/action-tool-map.d.ts +3 -0
  22. package/lib/runtime/executor/action-tool-map.js +41 -0
  23. package/lib/runtime/executor/built-in-tools.d.ts +8 -0
  24. package/lib/runtime/executor/built-in-tools.js +267 -0
  25. package/lib/runtime/executor/index.d.ts +6 -0
  26. package/lib/runtime/executor/index.js +12 -0
  27. package/lib/runtime/executor/llm-task-executor.d.ts +29 -0
  28. package/lib/runtime/executor/llm-task-executor.js +138 -0
  29. package/lib/runtime/executor/node-prompt-builder.d.ts +3 -0
  30. package/lib/runtime/executor/node-prompt-builder.js +36 -0
  31. package/lib/runtime/executor/stream-completion.d.ts +38 -0
  32. package/lib/runtime/executor/stream-completion.js +105 -0
  33. package/lib/runtime/index.d.ts +1 -0
  34. package/lib/runtime/index.js +2 -0
  35. package/lib/runtime/models/failure.d.ts +5 -0
  36. package/lib/runtime/models/failure.js +2 -0
  37. package/lib/runtime/plugins/capability-adapter.d.ts +9 -0
  38. package/lib/runtime/plugins/capability-adapter.js +111 -8
  39. package/lib/runtime/plugins/plugin-abi.d.ts +8 -0
  40. package/lib/runtime/plugins/plugin-registry.d.ts +2 -1
  41. package/lib/runtime/plugins/plugin-registry.js +6 -1
  42. package/lib/runtime/reducers/run-state-reducer.js +39 -2
  43. package/lib/runtime/scheduler/scheduler.d.ts +14 -2
  44. package/lib/runtime/scheduler/scheduler.js +131 -11
  45. package/lib/runtime/verification/verification-manifest.d.ts +5 -2
  46. package/oxe/agents/oxe-assumptions-analyzer.md +136 -0
  47. package/oxe/agents/oxe-codebase-mapper.md +142 -0
  48. package/oxe/agents/oxe-debugger.md +145 -0
  49. package/oxe/agents/oxe-executor.md +139 -0
  50. package/oxe/agents/oxe-integration-checker.md +142 -0
  51. package/oxe/agents/oxe-plan-checker.md +143 -0
  52. package/oxe/agents/oxe-planner.md +151 -0
  53. package/oxe/agents/oxe-research-synthesizer.md +146 -0
  54. package/oxe/agents/oxe-researcher.md +163 -0
  55. package/oxe/agents/oxe-ui-auditor.md +151 -0
  56. package/oxe/agents/oxe-ui-checker.md +157 -0
  57. package/oxe/agents/oxe-ui-researcher.md +179 -0
  58. package/oxe/agents/oxe-validation-auditor.md +154 -0
  59. package/oxe/agents/oxe-verifier.md +132 -0
  60. package/oxe/personas/README.md +91 -39
  61. package/oxe/personas/architect.md +149 -37
  62. package/oxe/personas/db-specialist.md +149 -36
  63. package/oxe/personas/debugger.md +155 -38
  64. package/oxe/personas/executor.md +164 -38
  65. package/oxe/personas/planner.md +165 -36
  66. package/oxe/personas/researcher.md +148 -35
  67. package/oxe/personas/ui-specialist.md +164 -36
  68. package/oxe/personas/verifier.md +174 -39
  69. package/oxe/templates/FIXTURE-PACK.template.json +18 -11
  70. package/oxe/templates/FIXTURE-PACK.template.md +19 -10
  71. package/oxe/templates/IMPLEMENTATION-PACK.template.json +26 -10
  72. package/oxe/templates/IMPLEMENTATION-PACK.template.md +32 -20
  73. package/oxe/templates/PLAN.template.md +62 -31
  74. package/oxe/templates/REFERENCE-ANCHORS.template.md +14 -10
  75. package/oxe/templates/SUMMARY.template.md +50 -20
  76. package/oxe/workflows/debug.md +9 -7
  77. package/oxe/workflows/execute.md +11 -8
  78. package/oxe/workflows/forensics.md +5 -3
  79. package/oxe/workflows/plan.md +277 -0
  80. package/oxe/workflows/scan.md +355 -69
  81. package/oxe/workflows/spec.md +302 -9
  82. package/oxe/workflows/ui-review.md +5 -4
  83. package/oxe/workflows/ui-spec.md +4 -3
  84. package/oxe/workflows/verify.md +8 -5
  85. package/package.json +1 -1
  86. package/packages/runtime/package.json +1 -1
  87. package/packages/runtime/src/compiler/graph-compiler.ts +40 -0
  88. package/packages/runtime/src/context/context-pack-builder.ts +80 -0
  89. package/packages/runtime/src/events/catalog.ts +5 -0
  90. package/packages/runtime/src/executor/action-tool-map.ts +46 -0
  91. package/packages/runtime/src/executor/built-in-tools.ts +276 -0
  92. package/packages/runtime/src/executor/index.ts +6 -0
  93. package/packages/runtime/src/executor/llm-task-executor.ts +194 -0
  94. package/packages/runtime/src/executor/node-prompt-builder.ts +45 -0
  95. package/packages/runtime/src/executor/stream-completion.ts +145 -0
  96. package/packages/runtime/src/index.ts +3 -0
  97. package/packages/runtime/src/models/failure.ts +11 -0
  98. package/packages/runtime/src/plugins/capability-adapter.ts +117 -10
  99. package/packages/runtime/src/plugins/plugin-abi.ts +9 -0
  100. package/packages/runtime/src/plugins/plugin-registry.ts +10 -1
  101. package/packages/runtime/src/reducers/run-state-reducer.ts +59 -2
  102. package/packages/runtime/src/scheduler/scheduler.ts +152 -14
  103. package/packages/runtime/src/verification/verification-manifest.ts +12 -8
  104. package/vscode-extension/oxe-agents-1.7.0.vsix +0 -0
  105. package/vscode-extension/package.json +1 -1
@@ -23,6 +23,8 @@ Se o usuário pedir **--replan** (ou replanejamento implícito após `verify_fai
23
23
  <execution_rational_artifacts>
24
24
  ## Artefatos racionais obrigatórios
25
25
 
26
+ Quando o plano tiver múltiplos domínios, usar os agentes especializados OXE como referência de qualidade: `oxe-planner`, `oxe-plan-checker`, `oxe-codebase-mapper`, `oxe-assumptions-analyzer`, `oxe-researcher`, `oxe-ui-checker` e `oxe-validation-auditor`. Eles não substituem o workflow; apenas ajudam a fechar evidência, contratos e gaps antes da execução.
27
+
26
28
  ### IMPLEMENTATION-PACK
27
29
  Contrato de implementação por tarefa `Tn`, com:
28
30
  - caminhos exatos dos arquivos alvo, sem `...` e sem "arquivos prováveis" vagos;
@@ -30,6 +32,7 @@ Contrato de implementação por tarefa `Tn`, com:
30
32
  - assinatura/shape de entrada e saída;
31
33
  - dependências, invariantes, `not_allowed`, `write_set`, `expected_checks` e `requires_fixture`;
32
34
  - snippets somente quando ancorados em evidência local ou materializada.
35
+ - sequência mínima de implementação, rollback/contensão para risco high/critical e imports/dependências obrigatórias.
33
36
 
34
37
  ### REFERENCE-ANCHORS
35
38
  Materializa referências críticas que hoje ficam frouxas no plano:
@@ -43,6 +46,7 @@ Fixtures mínimos por fluxo/tarefa de risco:
43
46
  - payloads, arquivos exemplo, trechos significativos, offsets/campos críticos;
44
47
  - expected outputs ou checks parciais/completos;
45
48
  - queries/checks de validação e smoke commands.
49
+ - negative cases mínimos para validação de erro, limite ou regressão principal.
46
50
 
47
51
  Regra de readiness:
48
52
  - `IMPLEMENTATION-PACK` precisa estar `ready`;
@@ -180,6 +184,279 @@ Depois do resumo e antes das tarefas, o `PLAN.md` deve conter também:
180
184
  **Comparativo host ↔ cliente (migração / paridade):** pode-se dedicar tarefas a produzir ou atualizar uma **matriz Markdown** (classificações: equivalente / implementação diferente / só host / só cliente) com colunas de artefactos reais no repo — ver secção *Molde de comparativo* em **`oxe/workflows/references/legacy-brownfield.md`**. Cada **Tn** deve manter **Aceite vinculado** aos **A*** que essa matriz satisfaz.
181
185
  </format_plan>
182
186
 
187
+ <executor_node_contract>
188
+ ## Contrato executor — mapeamento tarefa → GraphNode
189
+
190
+ Cada tarefa `Tn` do `PLAN.md` pode ser executada pelo `LlmTaskExecutor` quando convertida em `GraphNode`. O planejador deve pensar em cada tarefa já com essa estrutura em mente para garantir executabilidade direta.
191
+
192
+ ### Campos do GraphNode que o plano deve alimentar
193
+
194
+ | Campo do GraphNode | Equivalente no PLAN.md |
195
+ |--------------------|------------------------|
196
+ | `id` | ID da tarefa (ex.: `T3`) |
197
+ | `title` | Título da tarefa |
198
+ | `mutation_scope` | Arquivos que serão modificados (em **Arquivos prováveis**) |
199
+ | `actions[].type` | Tipo de ação (derivado de **Implementar**) |
200
+ | `verify.must_pass` | Critérios de aceite (de **Verificar** + **Aceite vinculado**) |
201
+ | `verify.command` | Comando em **Verificar → Comando:** |
202
+ | `depends_on` | IDs em **Depende de:** |
203
+
204
+ ### Catálogo de `action_type`
205
+
206
+ Ao escrever o campo **Implementar** de cada tarefa, classificar a ação principal:
207
+
208
+ | `action_type` | Quando usar | Tools disponíveis no executor |
209
+ |---------------|-------------|-------------------------------|
210
+ | `read_code` | Ler, mapear, investigar sem nenhuma mutação | `read_file`, `glob`, `grep` |
211
+ | `generate_patch` | Criar ou modificar arquivos de código | `read_file`, `write_file`, `patch_file` |
212
+ | `run_tests` | Executar suite de testes | `run_command` |
213
+ | `run_lint` | Executar linter, type-check ou análise estática | `run_command` |
214
+ | `collect_evidence` | Coletar artefatos, logs, relatórios | `read_file`, `glob`, `run_command` |
215
+ | `custom` | Combinação arbitrária ou não classificável | todas as tools |
216
+
217
+ **Regra:** tarefas de investigação/leitura devem usar `read_code` ou `collect_evidence`. Tarefas de codificação usam `generate_patch`. Nunca usar `custom` quando uma ação mais específica for suficiente — `custom` desativa otimizações de paralelismo.
218
+
219
+ ### `mutation_scope` e idempotência no scheduler
220
+
221
+ O campo `mutation_scope` lista os arquivos que **serão criados ou modificados**. Ele define:
222
+ 1. Se a tarefa pode rodar em paralelo com outras (sem mutation_scope = idempotente = segura)
223
+ 2. Quais arquivos o executor tem permissão de escrever
224
+ 3. O escopo de rollback em caso de falha
225
+
226
+ **Regras de mutation_scope para ondas:**
227
+ - Tarefas de leitura/investigação: `mutation_scope: []` → podem estar na mesma onda sem conflito
228
+ - Tarefas de escrita com arquivos **disjuntos**: podem estar na mesma onda em paralelo
229
+ - Tarefas de escrita com **algum arquivo em comum**: obrigatoriamente em ondas separadas
230
+ - Tarefas que executam comandos com side effects (migrations, deploys): sempre em série, onda própria
231
+
232
+ **Exemplo de particionamento correto:**
233
+ ```
234
+ T1 — Criar entidade User mutation_scope: [src/users/user.entity.ts] → Onda 1
235
+ T2 — Criar entidade Order mutation_scope: [src/orders/order.entity.ts] → Onda 1 (paralelo)
236
+ T3 — Criar migration inicial mutation_scope: [src/migrations/001-init.ts] → Onda 2 (depende T1, T2)
237
+ T4 — Executar migration mutation_scope: [] (side effect: banco) → Onda 3, serial
238
+ T5 — Rodar suite de testes mutation_scope: [] (idempotente) → Onda 4
239
+ ```
240
+
241
+ ### Verificar como critério executável pelo agente
242
+
243
+ O campo **Verificar → Comando:** deve ser:
244
+ - Executável no ambiente do agente sem input interativo
245
+ - Determinístico: mesmo input → mesmo resultado
246
+ - Rápido o suficiente para feedback em tempo real (< 60s preferível)
247
+
248
+ Se o comando não for possível no agente (ex.: requer browser ou acesso manual), usar **Verificar → Manual:** com checklist de passos observáveis. Nunca deixar **Verificar** vazio em tarefa mutável.
249
+ </executor_node_contract>
250
+
251
+ <wave_design_patterns>
252
+ ## Padrões de design de ondas
253
+
254
+ Ondas definem a ordem de execução e o nível de paralelismo. Use estes padrões como referência ao estruturar o plano.
255
+
256
+ ### Padrão 1: Foundation → Core → Integration → Validation
257
+
258
+ O padrão mais comum para features novas de um único domínio:
259
+
260
+ ```
261
+ Onda 1 — Foundation (sem dependências entre si, mutation_scope disjuntos):
262
+ T1 — Definir tipos e interfaces
263
+ T2 — Criar entidades / models
264
+ T3 — Criar schemas de validação
265
+
266
+ Onda 2 — Core (dependem da Onda 1):
267
+ T4 — Implementar serviço principal
268
+ T5 — Implementar repositório
269
+ T6 — Criar testes unitários do serviço
270
+
271
+ Onda 3 — Integration (dependem da Onda 2):
272
+ T7 — Criar controller / handler
273
+ T8 — Adicionar rota / endpoint
274
+ T9 — Criar testes de integração
275
+
276
+ Onda 4 — Validation (depende de tudo):
277
+ T10 — Executar suite de testes completa
278
+ T11 — Verificar tipagem (typecheck)
279
+ ```
280
+
281
+ ### Padrão 2: Migration-safe (mudanças de schema)
282
+
283
+ Para mudanças que envolvem banco de dados com dados existentes:
284
+
285
+ ```
286
+ Onda 1 — Schema prep (reversível, aditivo apenas):
287
+ T1 — Criar migration de schema (ADD COLUMN nullable ou com default)
288
+ T2 — Criar / atualizar types e DTOs
289
+
290
+ Onda 2 — Code adaptation (código adaptado ao novo schema):
291
+ T3 — Atualizar repositório para usar novos campos
292
+ T4 — Atualizar testes para o novo schema
293
+
294
+ Onda 3 — Gate + Execute:
295
+ T5 — [GATE HUMANO: revisar migration antes de aplicar em staging]
296
+ T6 — Executar migration em staging
297
+ T7 — Validar dados migrados (query de verificação)
298
+
299
+ Onda 4 — Cleanup (após validação aprovada):
300
+ T8 — Remover código de compatibilidade legado
301
+ T9 — Rodar suite completa contra staging
302
+ ```
303
+
304
+ ### Padrão 3: Refactor incremental (sem quebrar o sistema)
305
+
306
+ Para refatorações que não podem causar regressão:
307
+
308
+ ```
309
+ Onda 1 — Nova interface ao lado da antiga (strangler fig):
310
+ T1 — Criar nova abstração / interface
311
+ T2 — Criar testes para nova interface (TDD)
312
+
313
+ Onda 2 — Migração parcial (módulo a módulo, paralela):
314
+ T3 — Migrar módulo A para nova interface
315
+ T4 — Migrar módulo B para nova interface
316
+ (paralelas se mutation_scope disjuntos)
317
+
318
+ Onda 3 — Cutover:
319
+ T5 — Remover interface antiga
320
+ T6 — Verificar que nenhum ponto usa a interface removida (grep)
321
+
322
+ Onda 4 — Validação final:
323
+ T7 — Rodar suite completa
324
+ T8 — Verificar cobertura de testes
325
+ ```
326
+
327
+ ### Padrão 4: Investigação → Gate → Execução
328
+
329
+ Para mudanças em código desconhecido ou de alto risco:
330
+
331
+ ```
332
+ Onda 1 — Investigação (idempotente, action_type: read_code/collect_evidence):
333
+ T1 — Mapear arquivos afetados (read_code)
334
+ T2 — Verificar testes existentes (collect_evidence)
335
+ T3 — Analisar dependências transitivas (read_code)
336
+
337
+ Onda 2 — Gate humano:
338
+ T4 — [GATE: revisar findings de T1-T3 antes de executar qualquer mutação]
339
+
340
+ Onda 3 — Execução (baseada nos findings):
341
+ T5 — Implementar mudança A
342
+ T6 — Implementar mudança B
343
+ T7 — Rodar testes de regressão
344
+ ```
345
+
346
+ ### Regras universais de onda
347
+
348
+ 1. **Sem dependência circular:** T2→T3→T2 é inválido; quebrar em sub-tarefas ou redesenhar.
349
+ 2. **Onda não pode ter tarefas com mutation_scope em comum** — separar em ondas distintas.
350
+ 3. **Gates humanos são tarefas explícitas:** aprovação humana = tarefa `T-GATE` que bloqueia a onda seguinte.
351
+ 4. **Onda de validação sempre ao final:** o último grupo de tarefas deve incluir `run_tests` ou `run_lint`.
352
+ 5. **Respeitar `plan_max_tasks_per_wave`** da config (default: ilimitado) — se configurado, dividir em mais ondas.
353
+ 6. **Ondas sem tarefas são inválidas** — verificar que cada número de onda tem pelo menos uma tarefa (gate 4 do quality gate).
354
+ </wave_design_patterns>
355
+
356
+ <task_granularity_rubric>
357
+ ## Rubrica de granularidade de tarefas
358
+
359
+ ### O que define uma boa tarefa
360
+
361
+ | Dimensão | Boa tarefa | Tarefa problemática |
362
+ |----------|------------|---------------------|
363
+ | **Escopo** | 1-3 arquivos com propósito coeso | "Implementar o módulo inteiro" |
364
+ | **Verificação** | Comando único que passa/falha deterministicamente | "Verificar manualmente se funciona" |
365
+ | **Dependências** | 0-2 dependências explícitas | Cadeia de 5+ em série |
366
+ | **Tempo** | < 2h de trabalho focado | "Será rápido mas depende do ambiente" |
367
+ | **Reversibilidade** | Pode ser revertida sem afetar outras tarefas | Mudança destrutiva sem rollback |
368
+ | **Ação dominante** | Um único `action_type` cobre 80%+ do trabalho | Mistura de leitura, escrita e execução sem sequência clara |
369
+
370
+ ### Tamanhos de referência
371
+
372
+ | Complexidade | Escopo típico | `action_type` típico | Verificar típico | Exemplos |
373
+ |-------------|---------------|----------------------|-----------------|---------|
374
+ | `S` | 1-2 arquivos, mudança localizada | `generate_patch` | `npm test -- auth` | Adicionar campo em DTO; corrigir tipo; nova constante |
375
+ | `M` | 2-5 arquivos, feature pequena | `generate_patch` + `run_tests` | `npm test -- users` | Novo endpoint CRUD; nova migration + model; novo middleware |
376
+ | `L` | 5-10 arquivos, feature completa | múltiplos | `npm test` (suite) | Sistema de auth; módulo de relatórios; integração com terceiro |
377
+ | `XL` | > 10 arquivos, ou impacto arquitetural | múltiplos | Múltiplos comandos + manual | Migração de banco; refactor de módulo core; nova infra |
378
+
379
+ ### Sinais de que uma tarefa deve ser quebrada (XL obrigatório)
380
+
381
+ - `mutation_scope` com mais de 5 arquivos distintos sem relação direta
382
+ - **Verificar** tem 2+ comandos distintos que devem **todos** passar
383
+ - **Implementar** tem 3+ etapas com lógica condicional entre elas
384
+ - A tarefa envolve banco de dados **e** código **e** infraestrutura ao mesmo tempo
385
+ - A tarefa toca área listada em CONCERNS com impacto `high`/`critical` sem contenção explícita
386
+
387
+ **Quando a tarefa XL não pode ser quebrada:** exigir sub-tarefas Tn.1, Tn.2, … como bullets dentro da tarefa, ou justificativa explícita de por que não pode ser dividida. Sem sub-tarefas e sem justificativa = falha do quality gate (item 8).
388
+
389
+ ### Tarefas de investigação (action_type: read_code / collect_evidence)
390
+
391
+ Tarefas de investigação são sempre `S` ou `M` — não escrevem código. Devem:
392
+ - Produzir um artefato observável (ex.: lista de arquivos afetados em OBSERVATIONS.md)
393
+ - Ter verificação por leitura (agente confirma que o artefato foi criado e tem conteúdo)
394
+ - Estar na Onda 1 (sem dependências, idempotentes, paralelas entre si)
395
+ - Nunca bloquear ondas de execução sem um gate de revisão explícito antes
396
+
397
+ ### Anti-padrões de granularidade
398
+
399
+ | Anti-padrão | Por quê é ruim | Solução |
400
+ |-------------|----------------|---------|
401
+ | "Implementar tudo em T1" | XL sem sub-tarefas = sem plano real | Quebrar em S/M |
402
+ | "T2 faz o mesmo que T1 mas melhor" | Redundância sem distinção | Merge ou eliminar |
403
+ | "T5 depende de T1, T2, T3, T4" | Cadeia serial = bottleneck total | Verificar se todas as deps são reais |
404
+ | "Verificar: rodar o sistema e ver se funciona" | Não determinístico, não automatizável | Especificar comando exato |
405
+ | Tarefa `S` com mutation_scope de 10 arquivos | Inconsistente — complexidade subestimada | Elevar para `M` ou `L` |
406
+ </task_granularity_rubric>
407
+
408
+ <plan_anti_patterns>
409
+ ## Anti-padrões de planejamento
410
+
411
+ ### Decisão adiada para a execução
412
+
413
+ **Problema:** "A implementação de T3 dependerá do que T2 decidir sobre a estrutura de dados."
414
+ **Por quê é ruim:** o executor (humano ou `LlmTaskExecutor`) não tem contexto para tomar decisões de design no meio da execução. Decisões abertas viram improviso.
415
+ **Solução:** tomar a decisão antes de finalizar o plano. Se a decisão for complexa, criar tarefa de `read_code` na Onda 1 + gate humano, ou executar `oxe:discuss` antes.
416
+
417
+ ### Verificar escrito depois de Implementar
418
+
419
+ **Problema:** escrever primeiro o que fazer e só depois como verificar.
420
+ **Por quê é ruim:** o executor não sabe o que "pronto" significa até o final — o trabalho pode ir na direção errada.
421
+ **Solução:** o campo **Verificar** deve preceder **Implementar** no texto. A pergunta é "como saberei que está pronto?" — a resposta define o target; **Implementar** é o caminho mínimo até esse target. (Ver também gate item 9.)
422
+
423
+ ### Acoplamento de ondas desnecessário
424
+
425
+ **Problema:** T4 depende de T3 que depende de T2 que depende de T1 — toda a feature em série.
426
+ **Por quê é ruim:** impossibilita paralelismo; um atraso em T1 atrasa tudo; tempo de execução total aumenta linearmente.
427
+ **Solução:** verificar se cada dependência é real. T1 e T2 com `mutation_scope` disjuntos podem rodar em paralelo na mesma onda.
428
+
429
+ ### mutation_scope vazio em tarefa de escrita
430
+
431
+ **Problema:** tarefa com `action_type: generate_patch` sem listar os arquivos afetados em **Arquivos prováveis**.
432
+ **Por quê é ruim:** o executor não sabe o que tem permissão de escrever; pode escrever nos arquivos errados ou duplicar código.
433
+ **Solução:** todo `generate_patch` deve ter `mutation_scope` com pelo menos 1 arquivo. Se o arquivo ainda não existe, listar o path planejado.
434
+
435
+ ### Confiança > 90% sem artefatos racionais íntegros
436
+
437
+ **Problema:** declarar `Confiança: 95%` sem `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` completos.
438
+ **Por quê é ruim:** confiança sem evidência é otimismo sem base — o quality gate item 19 falha explicitamente.
439
+ **Solução:** reduzir para ≤ 90% até os três artefatos racionais estarem íntegros e sem `critical_gap` aberto.
440
+
441
+ ### Risco sem contenção
442
+
443
+ **Problema:** tarefa de migration, mudança de auth, ou alteração de contrato público sem rollback ou fallback explícito.
444
+ **Por quê é ruim:** falha em produção sem plano de recuperação = incident sem saída clara.
445
+ **Solução:** toda tarefa de risco `high`/`critical` deve ter contenção em **Implementar**: ex.: "fazer backup da tabela antes da migration", "manter endpoint legado por uma versão". Ver quality gate item 13.
446
+
447
+ ### "Tarefa de revisão final" no plano
448
+
449
+ **Problema:** última tarefa do plano é "revisar tudo e garantir que está correto".
450
+ **Por quê é ruim:** revisão final sem critério objetivo é o ciclo `verify`, não o `plan`. O plano termina com `run_tests`, não com inspeção manual aberta.
451
+ **Solução:** mover revisão manual para o fluxo `oxe:verify`. O plano termina com uma tarefa de `run_tests` ou `run_lint` determinística.
452
+
453
+ ### Tarefa sem rastreabilidade de entrada
454
+
455
+ **Problema:** `T7 — Adicionar campo de auditoria` sem referência à SPEC, DISCUSS, OBS ou CONCERNS que a originou.
456
+ **Por quê é ruim:** o quality gate item 12 falha; a tarefa parece inventada sem evidência.
457
+ **Solução:** toda tarefa deve ter origem observável: `Aceite vinculado: A5` ou `Decisão vinculada: D-03` ou uma nota inline referenciando CONCERNS/OBS.
458
+ </plan_anti_patterns>
459
+
183
460
  <plan_quality_gate>
184
461
  Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este gate sobre o `PLAN.md` já escrito; se falhar, **corrigir o PLAN** na mesma sessão.
185
462