@brunosps00/dev-workflow 2.1.0 → 2.3.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 (129) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +118 -0
  3. package/README.md +17 -6
  4. package/lib/constants.js +24 -20
  5. package/lib/init.js +34 -0
  6. package/lib/instruction-health.js +38 -0
  7. package/lib/post-update.js +2 -1
  8. package/lib/validate.js +3 -1
  9. package/package.json +1 -1
  10. package/scaffold/config/routing.json +61 -23
  11. package/scaffold/en/agent-instructions.md +31 -135
  12. package/scaffold/en/commands/dw-analyze-project.md +2 -0
  13. package/scaffold/en/commands/dw-autopilot.md +22 -243
  14. package/scaffold/en/commands/dw-bugfix.md +9 -35
  15. package/scaffold/en/commands/dw-claude-run.md +29 -45
  16. package/scaffold/en/commands/dw-codex-run.md +30 -45
  17. package/scaffold/en/commands/dw-context-budget.md +6 -14
  18. package/scaffold/en/commands/dw-copilot-run.md +29 -41
  19. package/scaffold/en/commands/dw-generate-pr.md +2 -2
  20. package/scaffold/en/commands/dw-goal.md +11 -5
  21. package/scaffold/en/commands/dw-harness-audit.md +2 -0
  22. package/scaffold/en/commands/dw-help.md +8 -4
  23. package/scaffold/en/commands/dw-pause.md +1 -0
  24. package/scaffold/en/commands/dw-plan.md +14 -7
  25. package/scaffold/en/commands/dw-qa.md +2 -0
  26. package/scaffold/en/commands/dw-report.md +169 -0
  27. package/scaffold/en/commands/dw-resume.md +5 -11
  28. package/scaffold/en/commands/dw-review.md +4 -3
  29. package/scaffold/en/commands/dw-run.md +19 -165
  30. package/scaffold/en/commands/dw-skill-health.md +7 -0
  31. package/scaffold/en/commands/dw-update.md +18 -4
  32. package/scaffold/en/commands/dw-worktree.md +100 -0
  33. package/scaffold/en/references/command-routing.md +53 -0
  34. package/scaffold/en/references/execution-contract.md +55 -0
  35. package/scaffold/en/templates/frontend-quality-template.md +43 -0
  36. package/scaffold/en/templates/task-template.md +20 -40
  37. package/scaffold/en/templates/tasks-template.md +9 -6
  38. package/scaffold/en/templates/techspec-template.md +4 -0
  39. package/scaffold/pt-br/agent-instructions.md +31 -135
  40. package/scaffold/pt-br/commands/dw-analyze-project.md +2 -0
  41. package/scaffold/pt-br/commands/dw-autopilot.md +22 -243
  42. package/scaffold/pt-br/commands/dw-bugfix.md +9 -35
  43. package/scaffold/pt-br/commands/dw-claude-run.md +29 -46
  44. package/scaffold/pt-br/commands/dw-codex-run.md +30 -45
  45. package/scaffold/pt-br/commands/dw-context-budget.md +6 -14
  46. package/scaffold/pt-br/commands/dw-copilot-run.md +29 -43
  47. package/scaffold/pt-br/commands/dw-generate-pr.md +2 -2
  48. package/scaffold/pt-br/commands/dw-goal.md +11 -5
  49. package/scaffold/pt-br/commands/dw-harness-audit.md +2 -0
  50. package/scaffold/pt-br/commands/dw-help.md +8 -4
  51. package/scaffold/pt-br/commands/dw-pause.md +1 -0
  52. package/scaffold/pt-br/commands/dw-plan.md +14 -7
  53. package/scaffold/pt-br/commands/dw-qa.md +2 -0
  54. package/scaffold/pt-br/commands/dw-report.md +169 -0
  55. package/scaffold/pt-br/commands/dw-resume.md +7 -11
  56. package/scaffold/pt-br/commands/dw-review.md +4 -3
  57. package/scaffold/pt-br/commands/dw-run.md +19 -165
  58. package/scaffold/pt-br/commands/dw-skill-health.md +7 -0
  59. package/scaffold/pt-br/commands/dw-update.md +18 -4
  60. package/scaffold/pt-br/commands/dw-worktree.md +100 -0
  61. package/scaffold/pt-br/references/command-routing.md +53 -0
  62. package/scaffold/pt-br/references/execution-contract.md +55 -0
  63. package/scaffold/pt-br/templates/frontend-quality-template.md +43 -0
  64. package/scaffold/pt-br/templates/task-template.md +20 -40
  65. package/scaffold/pt-br/templates/tasks-template.md +9 -6
  66. package/scaffold/pt-br/templates/techspec-template.md +4 -0
  67. package/scaffold/scripts/hooks/git-guardrails.mjs +1 -0
  68. package/scaffold/scripts/lib/workflow-contract.mjs +101 -0
  69. package/scaffold/scripts/lib/worktree-gc.mjs +460 -0
  70. package/scaffold/skill-registry.json +23 -23
  71. package/scaffold/skills/dw-cli-run/SKILL.md +33 -208
  72. package/scaffold/skills/dw-cli-run/references/dispatch-tuning.md +14 -72
  73. package/scaffold/skills/dw-codebase-intel/SKILL.md +5 -39
  74. package/scaffold/skills/dw-codebase-intel/agents/intel-updater.md +1 -1
  75. package/scaffold/skills/dw-codebase-intel/references/agents-detail.md +7 -0
  76. package/scaffold/skills/dw-codebase-intel/references/files-in-dw-intel-detail.md +16 -0
  77. package/scaffold/skills/dw-codebase-intel/references/how-dw-intel-reads-this-detail.md +12 -0
  78. package/scaffold/skills/dw-codebase-intel/references/how-to-compose-the-typical-flow-detail.md +11 -0
  79. package/scaffold/skills/dw-council/SKILL.md +2 -17
  80. package/scaffold/skills/dw-council/references/integration-with-other-dw-commands-detail.md +7 -0
  81. package/scaffold/skills/dw-council/references/phase-2-tensions-and-rebuttals-detail.md +15 -0
  82. package/scaffold/skills/dw-domain-modeling/SKILL.md +1 -1
  83. package/scaffold/skills/dw-execute-phase/SKILL.md +12 -32
  84. package/scaffold/skills/dw-execute-phase/agents/executor.md +15 -252
  85. package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +4 -207
  86. package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +8 -18
  87. package/scaffold/skills/dw-execute-phase/references/de-sloppify-pass-optional-cleanup-task-detail.md +12 -0
  88. package/scaffold/skills/dw-execute-phase/references/deviation-rules-during-execution-detail.md +8 -0
  89. package/scaffold/skills/dw-execute-phase/references/how-the-two-agents-compose-detail.md +7 -0
  90. package/scaffold/skills/dw-execute-phase/references/plan-verification.md +9 -155
  91. package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +6 -97
  92. package/scaffold/skills/dw-git-discipline/SKILL.md +2 -2
  93. package/scaffold/skills/dw-grilling/SKILL.md +1 -1
  94. package/scaffold/skills/dw-incident-response/SKILL.md +1 -64
  95. package/scaffold/skills/dw-incident-response/references/the-five-phases-detail.md +66 -0
  96. package/scaffold/skills/dw-llm-eval/SKILL.md +5 -53
  97. package/scaffold/skills/dw-llm-eval/references/agent-tool-use-evaluation-detail.md +23 -0
  98. package/scaffold/skills/dw-llm-eval/references/anti-patterns-will-block-in-dw-review-code-only-detail.md +9 -0
  99. package/scaffold/skills/dw-llm-eval/references/consistency-run-to-run-stability-detail.md +10 -0
  100. package/scaffold/skills/dw-llm-eval/references/integration-with-dev-workflow-commands-detail.md +6 -0
  101. package/scaffold/skills/dw-llm-eval/references/the-oracle-ladder-detail.md +15 -0
  102. package/scaffold/skills/dw-memory/SKILL.md +4 -50
  103. package/scaffold/skills/dw-memory/references/context-budget.md +8 -56
  104. package/scaffold/skills/dw-memory/references/promotion-decision-test-detail.md +30 -0
  105. package/scaffold/skills/dw-minimalism/SKILL.md +4 -5
  106. package/scaffold/skills/dw-review-rigor/SKILL.md +1 -54
  107. package/scaffold/skills/dw-review-rigor/references/the-five-rules-detail.md +56 -0
  108. package/scaffold/skills/dw-simplification/SKILL.md +2 -55
  109. package/scaffold/skills/dw-simplification/references/pattern-recognition-detail.md +11 -0
  110. package/scaffold/skills/dw-simplification/references/the-five-rules-detail.md +48 -0
  111. package/scaffold/skills/dw-source-grounding/SKILL.md +1 -56
  112. package/scaffold/skills/dw-source-grounding/references/the-protocol-detect-fetch-implement-cite-detail.md +58 -0
  113. package/scaffold/skills/dw-testing-discipline/SKILL.md +25 -177
  114. package/scaffold/skills/dw-testing-discipline/references/agent-guardrails.md +9 -167
  115. package/scaffold/skills/dw-testing-discipline/references/core-rules.md +3 -3
  116. package/scaffold/skills/dw-testing-discipline/references/mutation-testing.md +19 -0
  117. package/scaffold/skills/dw-testing-discipline/references/patterns.md +3 -12
  118. package/scaffold/skills/dw-ui-discipline/SKILL.md +2 -59
  119. package/scaffold/skills/dw-ui-discipline/references/frontend-engineering.md +46 -0
  120. package/scaffold/skills/dw-ui-discipline/references/the-four-grounding-questions-detail.md +61 -0
  121. package/scaffold/skills/dw-verify/SKILL.md +26 -148
  122. package/scaffold/skills/dw-verify/references/verification-discovery-and-attribution.md +2 -2
  123. package/scaffold/skills/humanizer/SKILL.md +2 -1
  124. package/scaffold/skills/security-review/SKILL.md +3 -183
  125. package/scaffold/skills/security-review/references/do-not-flag-detail.md +49 -0
  126. package/scaffold/skills/security-review/references/quick-patterns-reference-detail.md +56 -0
  127. package/scaffold/skills/security-review/references/review-process-detail.md +84 -0
  128. package/scaffold/skills/vercel-react-best-practices/SKILL.md +1 -90
  129. package/scaffold/skills/vercel-react-best-practices/references/quick-reference-detail.md +92 -0
@@ -1,257 +1,36 @@
1
1
  <system_instructions>
2
- Você é o orquestrador de pipeline completo. Este comando recebe um desejo do usuário e conduz o workflow PRD-ao-PR em duas invocações:
2
+ # Orquestrador de implementação contínua
3
3
 
4
- 1. **Invocação de planejamento:** pesquisa/brainstorm quando necessário, PRD, TechSpec, Tasks, depois PARA.
5
- 2. **Invocação de execução:** retoma de `autopilot-state.json`, roda `/dw-goal --from-autopilot <prd-slug>`, depois commit e gate de PR.
4
+ `/dw-autopilot "<wish>"` planeja e conduz trabalho aprovado até implementação e validação. `/dw-autopilot --from-prd <slug>` parte de `.dw/spec/<slug>/prd.md`; ausência bloqueia informando o caminho. `/dw-autopilot` sem descrição retoma estado salvo. Não imponha segunda invocação após aprovar tasks. Pedido somente de plano ou modo Plan ativo da plataforma termina no artefato de planejamento.
6
5
 
7
- <critical>A primeira invocação DEVE parar depois que os artefatos de planejamento estiverem completos. Não rode implementação, QA, review, commit ou PR na primeira invocação.</critical>
8
- <critical>A segunda invocação DEVE retomar do estado salvo e delegar Run → Review → QA/Fix → Review para `/dw-goal --from-autopilot <prd-slug>`.</critical>
9
- <critical>Cada etapa que invoca um comando `/dw-*` DEVE seguir as instruções completas de `.dw/commands/`. Leia e execute o comando inteiro, não uma versão resumida.</critical>
6
+ ## Planejamento
10
7
 
11
- ## Quando Usar
12
- - Use quando quiser ir de uma ideia até um PR com mínima intervenção manual, mas com parada obrigatória após o planejamento.
13
- - Use para features completas que exigem planejamento, execução, qualidade e prontidão de PR.
14
- - NÃO use para tasks pequenas e bem-escopadas; use `/dw-run` com um plano existente.
15
- - NÃO use para bugfix cirúrgico; use `/dw-bugfix`.
16
- - NÃO use quando o usuário quer controle manual entre cada fase; use comandos individuais.
8
+ 1. Inspecione código/regras relevantes e decisões existentes. Use `.dw/intel/` quando útil; pesquise tecnologias/domínios/integrações desconhecidos. Brainstorm só para escolhas pendentes, sem entrevista obrigatória de três opções.
9
+ 2. Invoque `/dw-plan` ou estágios relevantes para produzir PRD, TechSpec, tasks e tasks-validation.md. Reutilize respostas e handoffs alinhados. Pergunte lacunas materiais pela ferramenta de entrevista disponível; não repita fatos descobertos.
10
+ 3. Na quebra apresente desenvolvimento local/cruzado, modelo/esforço concretos e agentes relevantes por complexidade. Siga `.dw/references/execution-contract.md`, escreva/valide execution-plan.json e obtenha aprovação da mesma matriz de tasks/escolhas. Respeite aprovações de estágios existentes sem repeti-las.
11
+ 4. Salve `autopilot-state.json` com `status: plan_complete`, `current_step: goal`, artefatos, caminho das escolhas aprovadas e `next_command: /dw-goal --from-autopilot <slug>`. Em pedido de implementação continue imediatamente. Em pedido somente de plano reporte-o e preserve o ponto de retomada.
17
12
 
18
- ## Posição no Pipeline
19
- **Antecessor:** desejo do usuário | **Sucessor:** `/dw-goal`, `/dw-commit`, `/dw-generate-pr`
13
+ ## Execução e entrega
20
14
 
21
- ## Skills / Comandos Complementares
15
+ Arme `/dw-report` uma vez (idempotente, pule quando `DW_REPORT_AUTO=off`). Invoque `/dw-goal --from-autopilot <slug>` para conduzir `/dw-run` → `/dw-review` completo → `/dw-qa` aplicável → `/dw-qa --fix` para bugs Open → review pós-QA quando edições ou novos achados invalidarem review anterior. Não substitua review completo por coverage-only. Runners externos retornam ao parent para correções e continuidade, sem encerrar o goal.
22
16
 
23
- | Skill ou comando | Gatilho |
24
- |------------------|---------|
25
- | `dw-memory` | SEMPRE — preserva decisões entre planejamento, goal de execução, QA, review e PR. |
26
- | `dw-verify` | SEMPRE — invocado por gates e comandos downstream antes de claims de aprovação/commit/PR. |
27
- | `/dw-goal` | SEMPRE na segunda invocação — objetivo durável de execução/qualidade. |
17
+ Use `dw-memory` para decisões duráveis e `dw-verify` para evidência válida. Security Gate continua obrigatório quando aplicável: `/dw-secure-audit` produz `.dw/secure-audit/audit-summary.md`; evidência ausente/inválida é refeita e achados bloqueantes corrigidos. SECRET findings sempre bloqueiam (sem escape por ADR). Reutilize scan válido em outro checkpoint.
28
18
 
29
- ## Variáveis de Entrada
19
+ Goal conclui apenas com critérios atendidos, artefatos exigidos de review/QA e checks válidos, sem achado bloqueante pendente. Para `prd-bugfix-*` escalado, localize `.dw/bugfixes/*/escalated.md` original, produza SUMMARY.md ausente com evidências e feche o índice.
30
20
 
31
- | Variável | Descrição | Exemplo |
32
- |----------|-----------|---------|
33
- | `{{WISH}}` | Descrição do que o usuário quer construir no modo padrão. | `"preferencias de notificacao push"` |
34
- | `{{PRD_SLUG}}` | Slug de PRD existente quando `--from-prd` é usado. | `prd-bugfix-stripe-webhook-retry` |
35
- | `{{MODE}}` | Flag opcional de invocação. | `--from-prd <slug>` |
21
+ Inspecione commits com escopo e bookkeeping restante; `/dw-commit` faz commit final autorizado quando necessário. Não crie commits vazios nem exija commit extra para trabalho já commitado. Prepare branch/worktree validado e resumo de entrega. Merge, push e publicação de PR seguem só autorização existente. Se faltar autorização final, apresente resultado concreto e peça apenas essa ação; não repita permissão já concedida.
36
22
 
37
- ## Modos de Invocação
23
+ ## Estado durável
38
24
 
39
- | Invocação | Comportamento |
40
- |-----------|---------------|
41
- | `/dw-autopilot "<wish>"` | Invocação de planejamento do zero. Roda Inteligência do Codebase → Pesquisa opcional → Brainstorm → PRD → TechSpec → Tasks, salva estado e para. |
42
- | `/dw-autopilot --from-prd <slug>` | Invocação de planejamento a partir de PRD existente. Começa em aprovação do PRD, depois TechSpec → Tasks, salva estado e para. |
43
- | `/dw-autopilot` em PRD com `autopilot-state.json status=plan_complete` | Invocação de execução. Roda `/dw-goal --from-autopilot <slug>`, depois commit e gate de PR. |
25
+ Preserve campos de `autopilot-state.json`: mode, wish, prd_path, from_prd_slug, current_step, completed_steps, skipped_steps, skip_reasons, gates_passed, step_artifacts, goal_slug, next_command, started_at, last_updated. Acrescente caminhos `execution_plan` e `execution_state`. Registre evidência, não só existência de arquivo, antes de concluir etapa.
44
26
 
45
- ## Pontos de Pausa Obrigatórios
46
-
47
- Autopilot pausa em:
48
-
49
- 1. **Aprovação do PRD** antes do TechSpec.
50
- 2. **Aprovação das Tasks** antes de marcar planejamento completo.
51
- 3. **Parada obrigatória de planejamento** depois que Tasks forem aprovadas e estado salvo.
52
- 4. **Gate de PR** depois que o goal de execução e commit completarem.
53
-
54
- Entre estes pontos, execute automaticamente respeitando perguntas bloqueantes exigidas pelo comando chamado.
55
-
56
- ## Retomada de Sessão
57
-
58
- Se este comando for re-invocado no mesmo PRD:
59
-
60
- <critical>Leia `.dw/spec/<prd-slug>/autopilot-state.json` primeiro. Se `status` for `plan_complete`, não repita planejamento. Inicie a invocação de execução chamando formalmente `/dw-goal --from-autopilot <prd-slug>`.</critical>
61
-
62
- Significados de estado:
63
-
64
- | Status | Ação |
65
- |--------|------|
66
- | estado ausente | Iniciar invocação de planejamento normal. |
67
- | `planning` | Retomar de `current_step`, respeitando etapas completas/puladas. |
68
- | `plan_complete` | Iniciar invocação de execução via `/dw-goal --from-autopilot <prd-slug>`. |
69
- | `goal_active` | Continuar `/dw-goal resume` ou `/dw-goal --from-autopilot <prd-slug>` conforme `.dw/goals/autopilot-<prd-slug>/status.json`. |
70
- | `goal_complete` | Continuar para commit e gate de PR. |
71
- | `completed` | Reportar que já foi concluído e mostrar resumo de PR/commit se disponível. |
72
-
73
- ## Invocação de Planejamento
74
-
75
- ### Etapa 0: Resolver modo de invocação
76
-
77
- 1. Se `--from-prd <slug>` aparece:
78
- - Resolva para `.dw/spec/<slug>/`.
79
- - Verifique que `prd.md` existe; senão PARE com: `Alvo de --from-prd .dw/spec/<slug>/prd.md nao encontrado. Rode /dw-plan prd ou corrija o slug.`
80
- - Crie ou atualize `autopilot-state.json` com `mode: "from-prd"`, `status: "planning"`, `skipped_steps: [1,2,3,4]`, e `skip_reasons["1-4"] = "from-prd-mode"`.
81
- - Pule para aprovação do PRD usando o PRD existente.
82
- 2. Caso contrário:
83
- - Crie ou atualize `autopilot-state.json` com `mode: "autopilot"`, `status: "planning"`, wish original e `current_step: 1`.
84
-
85
- ### Etapa 1: Inteligência do Codebase
86
-
87
- <critical>Se `.dw/intel/` existir, consulte via `/dw-intel` antes de planejar. Caia para `.dw/rules/` e grep direto se ausente.</critical>
88
-
89
- - Identifique stack, padrões existentes, features relacionadas e restrições do projeto.
90
- - Se `.dw/intel/` estiver ausente, sugira `/dw-intel --build` para contexto futuro mais rico, mas continue com `.dw/rules/` e inspeção direta.
91
-
92
- ### Etapa 2: Pesquisa (Condicional)
93
-
94
- Rode `/dw-brainstorm --research` quando a feature envolver tecnologia nova, domínio desconhecido, APIs externas, regulação ou arquitetura de alto impacto. Caso contrário, pule e registre o motivo em `skip_reasons`.
95
-
96
- ### Etapa 3: Brainstorm (Interativo)
97
-
98
- Rode `/dw-brainstorm` com o contexto acumulado. Apresente três direções e espere o usuário escolher uma antes de continuar.
99
-
100
- ### Etapa 4: PRD
101
-
102
- Rode `/dw-plan prd` usando findings de brainstorm/research.
103
-
104
- <critical>O estágio PRD deve usar a ferramenta de entrevista estruturada quando disponível. Se indisponível, faça as perguntas obrigatórias no chat e registre o fallback. O usuário deve responder; não infira respostas.</critical>
105
-
106
- Depois que `prd.md` existir, apresente resumo do PRD e aguarde aprovação explícita. Se o usuário pedir edits, atualize e reapresente.
107
-
108
- ### Etapa 5: TechSpec
109
-
110
- Rode `/dw-plan techspec` a partir do PRD aprovado.
111
-
112
- <critical>O estágio TechSpec deve usar a ferramenta de entrevista estruturada quando disponível. Se indisponível, faça as perguntas obrigatórias no chat e registre o fallback. O usuário deve responder; não infira respostas.</critical>
113
-
114
- Depois que `techspec.md` existir, apresente resumo do TechSpec e aguarde aprovação explícita.
115
-
116
- ### Etapa 6: Tasks
117
-
118
- Rode `/dw-plan tasks` a partir de PRD + TechSpec. Verifique:
119
- - `tasks.md` existe.
120
- - arquivos per-task existem.
121
- - `tasks-validation.md` existe e passou ou tem override explícito do usuário.
122
-
123
- ### Etapa 7: Aprovação das Tasks e Parada Obrigatória
124
-
125
- Apresente resumo das tasks, dependências e esforço total. Aguarde aprovação explícita.
126
-
127
- Após aprovação:
128
-
129
- 1. Salve `.dw/spec/<prd-slug>/autopilot-state.json` com:
130
-
131
- ```json
132
- {
133
- "status": "plan_complete",
134
- "current_step": "goal",
135
- "next_command": "/dw-goal --from-autopilot <prd-slug>"
136
- }
137
- ```
138
-
139
- 2. Inclua `completed_steps` para todas as etapas de planejamento completas e `step_artifacts` para `prd.md`, `techspec.md`, `tasks.md`, arquivos per-task e `tasks-validation.md`.
140
- 3. PARE e diga ao usuário que a fase de planejamento está completa. Não rode implementação nesta invocação.
141
-
142
- ## Invocação de Execução
143
-
144
- ### Etapa 8: Goal Durável de Execução
145
-
146
- Quando `autopilot-state.json status=plan_complete`, invoque formalmente:
147
-
148
- ```text
149
- /dw-goal --from-autopilot <prd-slug>
150
- ```
151
-
152
- O goal é dono desta sequência:
153
-
154
- 1. `/dw-run <prd-path>`
155
- 2. `/dw-review <prd-path>` (review completo: cobertura, qualidade, convenções, constitution, verify)
156
- 3. `/dw-qa <prd-path>`
157
- 4. `/dw-qa --fix <prd-path>` se QA encontrou bugs Open
158
- 5. `/dw-review <prd-path>` novamente após QA/fixes
159
- 6. **Security Gate** — o `/dw-review` pós-QA (passo 5) aciona o `/dw-secure-audit`, produzindo um `.dw/secure-audit/audit-summary.md` fresco. Este passo **garante** que o verdict é APROVADO: se ausente/desatualizado/REPROVADO, rode `/dw-secure-audit <prd-path>` standalone, depois volte pro `/dw-bugfix` por finding e re-cheque. Findings SECRET sempre bloqueiam (sem escape de ADR). Não force um segundo scan completo quando já existe um summary APROVADO fresco.
160
-
161
- <critical>Não substitua os reviews do goal por `/dw-review --coverage-only`. O goal de qualidade do autopilot exige `/dw-review` completo antes do QA e depois dos fixes de QA.</critical>
162
-
163
- Depois que `/dw-goal` completar, verifique que `.dw/goals/autopilot-<prd-slug>/status.json` tem `status: "complete"`, então defina `autopilot-state.json status: "goal_complete"`.
164
-
165
- ### Etapa 9: Fechar Loop de Bugfix (Condicional)
166
-
167
- Se `mode == "from-prd"` e o slug do PRD casar com `prd-bugfix-*`, feche o índice de bugfix antes do commit:
168
- - Encontre `.dw/bugfixes/*/escalated.md` que referência o slug do PRD.
169
- - Se `SUMMARY.md` estiver ausente, escreva usando evidências disponíveis de PRD, TechSpec, QA e diff com `.dw/templates/bugfix-summary-template.md`.
170
- - Nunca fabrique evidência de verificação.
171
- - Registre artefatos em `autopilot-state.json`.
172
-
173
- ### Etapa 10: Auditoria Pre-Commit
174
-
175
- Antes de `/dw-commit`, verifique:
176
- - `.dw/goals/autopilot-<prd-slug>/status.json` está completo.
177
- - `<prd-path>/QA/review-consolidated.md` existe a partir do review final pós-QA.
178
- - `<prd-path>/QA/qa-report.md` e `<prd-path>/QA/bugs.md` existem.
179
- - **Security Gate passou:** `.dw/secure-audit/audit-summary.md` existe, está fresco (pós-última-edição) e status APROVADO. Se ausente/desatualizado/REPROVADO → PARE (não commite).
180
- - `autopilot-state.json` registra artefatos de planejamento e o goal completo.
181
-
182
- Se algo estiver faltando, PARE e re-execute o comando formal ausente. Não faça commit parcial.
183
-
184
- ### Etapa 11: Commit
185
-
186
- Rode `/dw-commit` automaticamente. Não aguarde aprovação depois que o goal estiver completo.
187
-
188
- ### Etapa 12: Gate de Pull Request
189
-
190
- Pergunte: **"Commits realizados. Deseja gerar o Pull Request?"**
191
-
192
- - SIM: rode `/dw-generate-pr`.
193
- - NÃO: informe que os commits estão prontos e o PR pode ser gerado depois.
194
-
195
- Marque `autopilot-state.json status: "completed"` após commit, e inclua link do PR se gerado.
196
-
197
- ## Persistencia de Estado
198
-
199
- `autopilot-state.json` deve incluir:
200
-
201
- ```json
202
- {
203
- "mode": "autopilot",
204
- "status": "planning",
205
- "wish": "descricao original do usuario",
206
- "prd_path": ".dw/spec/prd-name",
207
- "from_prd_slug": null,
208
- "current_step": 1,
209
- "completed_steps": [],
210
- "skipped_steps": [],
211
- "skip_reasons": {},
212
- "gates_passed": [],
213
- "step_artifacts": {},
214
- "goal_slug": null,
215
- "next_command": null,
216
- "started_at": "2026-05-20T00:00:00Z",
217
- "last_updated": "2026-05-20T00:00:00Z"
218
- }
219
- ```
220
-
221
- Atualize estado depois de cada etapa completa ou pulada. Uma etapa só está completa depois que artefatos obrigatórios existem.
222
-
223
- ## Formato de Progresso
224
-
225
- Reporte progresso depois de cada etapa:
226
-
227
- ```text
228
- === AUTOPILOT =====================================
229
- OK [1] Inteligencia do Codebase
230
- OK [2] Pesquisa (pulada — dominio conhecido)
231
- OK [3] Brainstorm
232
- OK [4] PRD
233
- OK [5] TechSpec
234
- OK [6] Tasks
235
- STOP [PLAN COMPLETE] Proximo: /dw-goal --from-autopilot prd-name
236
- ===================================================
237
- ```
238
-
239
- Durante a invocação de execução:
240
-
241
- ```text
242
- === AUTOPILOT =====================================
243
- OK [PLAN] Ja completo
244
- RUN [GOAL] /dw-goal --from-autopilot prd-name
245
- NEXT [COMMIT] apos goal status=complete
246
- ===================================================
247
- ```
248
-
249
- ## Anti-patterns
250
-
251
- - Não continue para implementação durante a primeira invocação.
252
- - Não pule `/dw-goal` durante a segunda invocação.
253
- - Não substitua `/dw-review` completo por review mais estreito no goal de execução.
254
- - Não marque estado completo a partir de validação manual.
255
- - Não reexecute planejamento quando `status=plan_complete`; retome o goal.
27
+ | status | Ação de retomada |
28
+ |---|---|
29
+ | ausente / planning | Continue apenas planejamento pendente; preserve decisões resolvidas. |
30
+ | plan_complete | Execute plano aprovado por `/dw-goal --from-autopilot <slug>` quando implementação for solicitada. |
31
+ | goal_active | `/dw-goal resume` com estado salvo de task/executor. |
32
+ | goal_complete | Prepare entrega e ações restantes autorizadas de commit/publicação. |
33
+ | completed | Reporte entrega validada e links/branch; publicação pode aguardar autorização. |
256
34
 
35
+ Atualize estado após cada checkpoint. Reporte task atual, evidência e restante de forma compacta. Preserve checkpoints em pausa ou bloqueio real; corrija falhas recuperáveis no escopo e continue.
257
36
  </system_instructions>
@@ -247,51 +247,25 @@
247
247
  | Pergunta | Se SIM |
248
248
  |----------|--------|
249
249
  | Precisa de migration/alteração de schema? | Redirecionar para PRD |
250
- | Afeta mais de 5 arquivos? | Redirecionar para PRD |
250
+ | Escopo de arquivos maior? | Reavalie organização e risco real; sem parada automática |
251
251
  | Requer novo endpoint? | Redirecionar para PRD |
252
252
  | Muda contrato de API existente? | Redirecionar para PRD |
253
253
  | Afeta múltiplos projetos? | Redirecionar para PRD |
254
- | Estimativa > 2 horas de implementação? | Redirecionar para PRD |
254
+ | Estimativa maior de implementação? | Reorganize/checkpoint dentro do escopo aprovado |
255
255
 
256
- ### 5.0. Safety Valve (OBRIGATÓRIO antes do passo 5)
256
+ ### 5.0. Safety Valve (antes da implementação)
257
257
 
258
- <critical>
259
- ANTES de desenhar a lista numerada do passo 5, esboce inline os passos que pretende escrever.
260
- Se esse esboço revelar **mais de 5 tasks numeradas distintas**, OU **qualquer dependência cross-file que obrigue ordem específica de execução**, OU **uma task que requeira rodar migration / refactor / novo endpoint / alteração de contrato de API**, então o escopo do bugfix foi SUBESTIMADO e você DEVE escalar.
261
- </critical>
262
-
263
- **Por que isso existe:** a triagem do passo 0 pega problemas de escopo a partir da descrição do sintoma. O checkpoint 4.1 pega depois da análise de causa raiz. Esta válvula pega o caso que sobra — quando o fix em si, uma vez listado, revela mais complexidade do que triagem e RCA previram. NÃO existe flag de bypass. Escalar é o desfecho correto.
264
-
265
- **Procedimento de escalação:**
266
-
267
- 1. Aloque `NNN` para `.dw/bugfixes/NNN-<slug>/`. Escreva `TASK.md` com a triagem, clarificações, causa raiz e plano que seria executado.
268
- 2. Crie `.dw/spec/prd-bugfix-<slug>/` e escreva `prd.md` lá (use `.dw/templates/bugfix-template.md`). Este é o path que `/dw-plan` espera.
269
- 3. Escreva `.dw/bugfixes/NNN-<slug>/escalated.md` com: `Escalated to /dw-plan on <YYYY-MM-DD> — reason: <qual critério da válvula disparou> → see .dw/spec/prd-bugfix-<slug>/`.
270
- 4. Reporte ao usuário:
271
-
272
- ```
273
- ## Escopo maior que bugfix
274
-
275
- Listando o fix produziu [N] tasks / [deps cross-file] / [tipo de mudança proibida].
276
- Pelo safety valve, isso não é mais um bugfix cirúrgico.
277
-
278
- Índice do bugfix preservado em `.dw/bugfixes/NNN-<slug>/{TASK.md, escalated.md}`.
279
- PRD criado em `.dw/spec/prd-bugfix-<slug>/prd.md`.
280
-
281
- Próximo — escolha um:
282
- - Cadeia manual: `/dw-plan techspec prd-bugfix-<slug>` → `/dw-plan tasks prd-bugfix-<slug>` → `/dw-run` → `/dw-qa` → `/dw-review` → `/dw-commit` → `/dw-generate-pr`.
283
- - Entregar pro autopilot: `/dw-autopilot --from-prd prd-bugfix-<slug>` — roda a fase de planejamento a partir do PRD existente, para depois de Tasks, e uma invocacao posterior retoma via `/dw-goal`.
284
- ```
258
+ Inspecione o fix proposto por mudanças materiais de escopo ou arquitetura. Quantidade de tasks/arquivos, dependências de ordem e estimativas maiores sinalizam organização, não bloqueio automático. Refactor necessário para corrigir comportamento aprovado pode permanecer no escopo. Contrato novo de produto, migration sensível ou decisão arquitetural pendente exige proposta concreta antes de implementar trabalho dependente.
285
259
 
286
- 5. Pare este comando. Não avance para o passo 5. O usuário (ou autopilot) invoca `/dw-plan` ou `/dw-autopilot --from-prd` em seguida.
260
+ Quando precisar de plano estruturado, preserve `.dw/bugfixes/NNN-<slug>/TASK.md`, crie `.dw/spec/prd-bugfix-<slug>/prd.md` pelo template de bugfix e registre referência em `escalated.md`. Continue por `/dw-plan` ou `/dw-autopilot --from-prd prd-bugfix-<slug>` conforme intenção existente. A quebra propõe executor/modelo/agentes; após aprovação continue na mesma invocação. Não peça autorização novamente para organizar fix já autorizado. Pedido somente de análise termina no relatório.
287
261
 
288
- **Se a válvula NÃO disparar:** Continue para o passo 5.
262
+ Sem nova decisão material nem necessidade de plano estruturado, continue no passo 5.
289
263
 
290
264
  ### 5. Propor Tarefas Numeradas (Obrigatório)
291
265
 
292
266
  <critical>
293
267
  Liste TODAS as tarefas necessárias, numeradas sequencialmente.
294
- Aguarde aprovação antes de executar.
268
+ Use aprovação existente do mesmo escopo; pergunte só decisões materiais novas antes de executar.
295
269
  </critical>
296
270
 
297
271
  **Formato:**
@@ -364,8 +338,8 @@
364
338
 
365
339
  Opção B (entregar pro autopilot):
366
340
  1. Rode: `/dw-autopilot --from-prd prd-bugfix-<slug>`
367
- 2. Autopilot roda aprovacao do PRD, TechSpec e Tasks, depois para com `status: plan_complete`.
368
- 3. Uma invocacao posterior do autopilot retoma via `/dw-goal --from-autopilot prd-bugfix-<slug>` para Run, Review completo, QA/Fix e Review completo pos-QA antes de commit/PR.
341
+ 2. Autopilot roda aprovacao do PRD, TechSpec e Tasks, registra `status: plan_complete` e continua após aprovação das tasks/escolhas de execução.
342
+ 3. A mesma invocação do autopilot retoma via `/dw-goal --from-autopilot prd-bugfix-<slug>` para Run, Review completo, QA/Fix e Review completo pos-QA antes de commit/PR.
369
343
 
370
344
  O índice do bugfix continua queryable via `/dw-intel "bugfix history in <module>"`. Downstream `/dw-review --bugfix <slug>` e `/dw-qa --bugfix <slug>` ainda apontam para `.dw/bugfixes/NNN-<slug>/` quando quiser uma revisão focada apenas no patch cirúrgico final.
371
345
  ```
@@ -1,52 +1,35 @@
1
1
  <system_instructions>
2
- Você é o **adapter runner do Claude**. Você dispara `claude -p` (headless) dentro de uma **git worktree dedicada**
3
- para implementar um prompt/spec já preparado, captura a execução inteira num log de auditoria durável, mantem uma
4
- **sessão resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
2
+ # Claude runner
5
3
 
6
- <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnóstico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliação 0–10, escalonamento gradual, telemetria, disciplina de kill/detecção, Structured Return). Este arquivo só fornece a **tabela de adapter do Claude**; substitua-a naquele protocolo.</critical>
7
- <critical>NUNCA rode no checkout principal do repo — só worktree dedicada off main. ABORTE (`BLOCKED`) caso contrário.</critical>
8
- <critical>NUNCA mergeie nem de push. Merge e decisão do dono, depois do gate.</critical>
4
+ Use `dw-cli-run` para o protocolo compartilhado. Consuma a escolha aprovada da task e retorne ao parent para review, correções e continuidade. Invocação standalone aceita prompt preparado explicitamente sem exigir PRD. WRITE exige worktree secundário dedicado; READ-ONLY segue as regras de leitura efetiva da skill. O worker nunca faz merge ou push.
9
5
 
10
- ## Tabela de adapter do Claude (substituir na `dw-cli-run`)
6
+ Execute exemplos com cwd definido como `<WORKTREE>` pelo lançador. Substitua argumentos com segurança, preferencialmente como array de argumentos de subprocesso. Placeholders de permissões representam o perfil já aprovado, não flags de bypass. Preserve permissões efetivas na retomada; comandos inicial e resume podem aceitar flags diferentes. Confira ambos os helps antes do dispatch.
11
7
 
12
- | Slot | Valor Claude |
8
+ ## Claude adapter table
9
+
10
+ | Slot | Value |
13
11
  |---|---|
14
- | `DISPATCH` | `UUID=$(cat /proc/sys/kernel/random/uuid); cd <WORKTREE> && claude -p --session-id "$UUID" --model <MODEL> --effort <EFFORT> --output-format stream-json --include-partial-messages --verbose --dangerously-skip-permissions "$(cat <PROMPT>)" </dev/null > <AUDIT>/<slug>.log 2>&1` |
15
- | `STREAM` | `--output-format stream-json --include-partial-messages --verbose` (`--verbose` e **obrigatório** com `stream-json` no modo `-p`) |
16
- | `MODEL` | `--model <MODEL>` — `opus` · `sonnet` · `haiku` · `fable`, ou um id completo (`claude-opus-5`) |
17
- | `EFFORT` | `--effort <EFFORT>` — `low` · `medium` · `high` · `xhigh` · `max` |
18
- | `AUTO` | `--dangerously-skip-permissions` (auto-aprovação headless para dispatch **WRITE**; justificável porque a worktree é isolada) |
19
- | `AUTO_READONLY` | `--permission-mode plan` (opcionalmente `--allowedTools <lista>`). Nunca combine com `AUTO`. |
20
- | `NO_MCP` | `--strict-mcp-config` sem nenhum `--mcp-config` → sobe zero MCP servers |
21
- | `RESUME <id>` | `cd <WORKTREE> && claude --resume "$UUID" -p --effort <EFFORT> --output-format stream-json --include-partial-messages --verbose --dangerously-skip-permissions "$(cat <FOLLOWUP_PROMPT>)" </dev/null >> <AUDIT>/<slug>.log 2>&1` |
22
- | `RESUME_LAST` | `claude -c -p …` (continua a conversa mais recente nesta cwd) |
23
- | `SESSION_ID` | **FIXADO por você** — você passa `--session-id "$UUID"` na 1a run, então o id é conhecido de antemão. Gere-o (`cat /proc/sys/kernel/random/uuid` ou `uuidgen`) e grave em `<AUDIT>/<slug>.session` ANTES/no dispatch. Sem scraping do stream — o Claude é o caso fácil. |
24
- | `DONE_SIGNAL` | a mensagem final `{"type":"result"}` no stream (traz `subtype`, `usage`, `total_cost_usd`, `num_turns`) |
25
- | `USAGE` | o `usage` da mensagem `result` → `input_tokens` / `cache_read_input_tokens` / `cache_creation_input_tokens` / `output_tokens`, + `total_cost_usd`. Extrair: `grep -oE '"usage":\{[^}]*\}' <AUDIT>/<slug>.log \| tail -1` |
26
-
27
- **Modelo + effort:** `--model` escolhe o tier (`opus` · `sonnet` · `haiku`, ou um id completo). `--effort` escolhe
28
- o budget de raciocínio: `low` · `medium` · `high` · `xhigh` · `max` (suportado pelo Claude CLI ≥ 2.1.206). Escale
29
- conforme a `dw-cli-run`: suba `--effort` primeiro (low→medium→high→xhigh→max), depois suba `--model` um tier e
30
- resete o effort. Comece um notch abaixo do teto.
31
-
32
- ## Resume de sessão (o coração)
33
- Como você passa `--session-id "$UUID"`, o id e **fixo e conhecido** no dispatch — grave-o em
34
- `<AUDIT>/<slug>.session` (durável, fora da worktree → sobrevive ao `git worktree remove`). Pra voltar com o
35
- **mesmo contexto**, leia o id e re-rode `RESUME <id>` (`claude --resume "$UUID" -p …`) com o prompt de follow-up —
36
- o Claude recarrega a mesma conversa (raciocínio + arquivos já tocados). Fallback se o sidecar sumiu:
37
- `claude -c -p …` da mesma worktree.
38
-
39
- ## Variáveis de Input
40
- | Variável | Descrição | Exemplo |
41
- |----------|-----------|---------|
42
- | `<WORKTREE>` | git worktree dedicada (off main) | `~/code/vizzita-billing-s10` |
43
- | `<PROMPT>` | caminho do prompt/spec preparado | `.dw/spec/prd-billing-integrador/codex-prompt.md` |
44
- | `<slug>` | chave da tarefa p/ arquivos de audit/sessão | `prd-billing-integrador` |
45
- | `<AUDIT>` | dir de auditoria durável FORA da worktree | `~/code/vizzita/.dw/cli-run` |
46
- | `<MODEL>` | tier do Claude ou id completo do modelo | `opus` / `sonnet` / `haiku` |
47
- | `<EFFORT>` | budget de raciocínio (Claude CLI ≥ 2.1.206) | `low` / `medium` / `high` / `xhigh` / `max` |
48
-
49
- Retorne pelo **Structured Return** da `dw-cli-run` (Status/Score/Scope/Evidence/Artifacts/Decisions/Risks/
50
- Telemetria/Next Step), incluindo o `session-id` fixo (UUID), o caminho do sidecar, e o comando `RESUME` exato pra
51
- continuar.
12
+ | `DISPATCH` | `claude -p --session-id "<SESSION_ID>" --model "<MODEL>" --effort "<EFFORT>" <PERMISSIONS> --output-format stream-json --include-partial-messages --verbose < "<PROMPT>" > "<AUDIT>/<slug>.log" 2>&1` |
13
+ | `STREAM` | `--output-format stream-json --verbose` |
14
+ | `MODEL` | `--model "<MODEL>"` |
15
+ | `EFFORT` | `--effort "<EFFORT>"` |
16
+ | `AUTO` | <PERMISSIONS> — perfil não interativo aprovado; preserve configuração existente |
17
+ | `AUTO_READONLY` | `--permission-mode plan --tools "Read,Grep,Glob" --strict-mcp-config` |
18
+ | `NO_MCP` | Selecione capacidades necessárias se suportado; caso contrário preserve configuração |
19
+ | `RESUME <id>` | `claude --resume "<SESSION_ID>" -p --model "<MODEL>" --effort "<EFFORT>" <RESUME_PERMISSIONS> --output-format stream-json --include-partial-messages --verbose < "<FOLLOWUP_PROMPT>" >> "<AUDIT>/<slug>.log" 2>&1` |
20
+ | `SESSION_ID` | UUID gerado antes do dispatch (`node -e "console.log(require('node:crypto').randomUUID())"`) → `<AUDIT>/<slug>.session` |
21
+ | `DONE_SIGNAL` | `result` com seu subtype |
22
+ | `USAGE` | `result.usage` e o valor reportado de `total_cost_usd` |
23
+
24
+ Crie/reutilize por `/dw-worktree create <slug>`; após integração autorizada, `/dw-worktree merge <slug>` conduz merge e limpeza segura. Workers retornam ao parent e nunca integram por conta própria.
25
+
26
+ ## Seleção de modelo e retomada
27
+
28
+ Resolva modelo/esforço concretos na quebra de tasks usando `.dw/config/routing.json`, metadados atuais do provedor e ferramenta instalada. Não fixe lista de modelos do mais forte ao mais leve neste adapter. Esforços dependem de modelo/versão; low, medium, high, xhigh e max são candidatos apenas quando suportados. Sem escalada obrigatória ao máximo.
29
+
30
+ Registre task, provedor, worktree, escolha aprovada, ID de sessão e audit antes do handoff. Sem sidecar, recupere sessão exata da task pelo log; nunca continue às cegas a sessão mais recente do cwd. Sem provar identidade, inicie nova sessão a partir do estado salvo e diff real, preservando trabalho parcial. Sessões não são portáveis entre CLIs.
31
+
32
+ Retorne Structured Return do `dw-cli-run` com evidências e comando de retomada suportado exato. O parent continua o plano aprovado; merge/push/publicação exigem autorização aplicável.
33
+
34
+ Inspeção de capacidades: Claude Code 2.1.265.
52
35
  </system_instructions>
@@ -1,51 +1,36 @@
1
1
  <system_instructions>
2
- Você é o **adapter runner do Codex**. Você dispara `codex exec` dentro de uma **git worktree dedicada** para
3
- implementar um prompt/spec já preparado, captura a execução inteira num log de auditoria durável, mantem uma
4
- **sessão resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
2
+ # Codex runner
5
3
 
6
- <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnóstico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliação 0–10, escalonamento gradual, telemetria, disciplina de kill/detecção, Structured Return). Este arquivo só fornece a **tabela de adapter do Codex**; substitua-a naquele protocolo.</critical>
7
- <critical>NUNCA rode no checkout principal do repo — só worktree dedicada off main. ABORTE (`BLOCKED`) caso contrário.</critical>
8
- <critical>NUNCA mergeie nem de push. Merge e decisão do dono, depois do gate.</critical>
4
+ Use `dw-cli-run` para o protocolo compartilhado. Consuma a escolha aprovada da task e retorne ao parent para review, correções e continuidade. Invocação standalone aceita prompt preparado explicitamente sem exigir PRD. WRITE exige worktree secundário dedicado; READ-ONLY segue as regras de leitura efetiva da skill. O worker nunca faz merge ou push.
9
5
 
10
- ## Tabela de adapter do Codex (substituir na `dw-cli-run`)
6
+ Execute exemplos com cwd definido como `<WORKTREE>` pelo lançador. Substitua argumentos com segurança, preferencialmente como array de argumentos de subprocesso. Placeholders de permissões representam o perfil já aprovado, não flags de bypass. Preserve permissões efetivas na retomada; comandos inicial e resume podem aceitar flags diferentes. Confira ambos os helps antes do dispatch.
11
7
 
12
- | Slot | Valor Codex |
8
+ ## Codex adapter table
9
+
10
+ | Slot | Value |
13
11
  |---|---|
14
- | `DISPATCH` | `cd <WORKTREE> && codex exec --skip-git-repo-check -m <MODEL> --config model_reasoning_effort="<EFFORT>" --dangerously-bypass-approvals-and-sandbox --json -o <AUDIT>/<slug>.last.md "$(cat <PROMPT>)" </dev/null > <AUDIT>/<slug>.log 2>&1` |
15
- | `STREAM` | `--json` (eventos JSONL) |
16
- | `MODEL` | `-m <MODEL>` — `gpt-5.5` · `gpt-5.3-codex` · `gpt-5.4` · `gpt-5.3-codex-spark` · `gpt-5.4-mini` |
17
- | `EFFORT` | `--config model_reasoning_effort="<EFFORT>"` — `low` · `medium` · `high` · `xhigh` |
18
- | `AUTO` | `--dangerously-bypass-approvals-and-sandbox` (sem sandbox + sem approvals = full access **com rede**, p/ o CLI rodar o gate; **somente dispatch WRITE**, justificável porque a worktree é isolada). Edição sem gate de rede: `--sandbox workspace-write --full-auto`. |
19
- | `AUTO_READONLY` | `--sandbox read-only` (sem `--full-auto`). Nunca combine com `AUTO`. |
20
- | `NO_MCP` | `-c mcp_servers='{}'` → sobe zero MCP servers, preserva auth e o resto do `config.toml`. Alternativa mais bruta: `--ignore-user-config` (também derruba os defaults de modelo — aí `MODEL` + `EFFORT` viram obrigatórios). |
21
- | `RESUME <id>` | `cd <WORKTREE> && codex exec resume <THREAD_ID> --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox --json "$(cat <FOLLOWUP_PROMPT>)" </dev/null >> <AUDIT>/<slug>.log 2>&1` |
22
- | `RESUME_LAST` | `codex exec resume --last …` (filtra por cwd = a worktree) |
23
- | `SESSION_ID` | Codex **não tem flag pra fixar** o id → **capture** o thread id do stream da 1a run: `grep -oE '"thread_id":"[^"]*"' <AUDIT>/<slug>.log \| head -1` (do evento `thread.started`) → grave em `<AUDIT>/<slug>.session`. |
24
- | `DONE_SIGNAL` | `{"type":"turn.completed"}` no stream log |
25
- | `USAGE` | `turn.completed.usage` → `input_tokens` / `cached_input_tokens` / `output_tokens` / `reasoning_output_tokens`. Extrair: `grep -oE '"usage":\{[^}]*\}' <AUDIT>/<slug>.log \| tail -1` |
26
-
27
- **Modelos (forte→leve):** `gpt-5.5` · `gpt-5.3-codex` · `gpt-5.4` · `gpt-5.3-codex-spark` · `gpt-5.4-mini`.
28
- **Effort:** `low` · `medium` · `high` · `xhigh`. Comece um degrau abaixo do teto; escale conforme a `dw-cli-run`.
29
-
30
- **Relatório detalhado (recomendado):** adicione `--output-schema <schema.json>` exigindo um relatório rico
31
- (`summary`/`tasks`/`filesChanged`/`gate`/`fenceViolations`/`uncommitted`/`blockers`/`nextSteps`) — não aceite um
32
- "ok" opaco. O `codex-prompt.md` também deve pedir um STOP-com-relatório-detalhado (schema + prompt se reforcam).
33
-
34
- ## Resume de sessão (o coração)
35
- 1a run: capture o `thread_id` em `<AUDIT>/<slug>.session` (durável, fora da worktree → sobrevive ao
36
- `git worktree remove`). Pra voltar com o **mesmo contexto**, leia o id e re-rode `RESUME <id>` com o prompt de
37
- follow-up — o Codex continua o mesmo thread (raciocínio + arquivos já tocados). Fallback se o sidecar sumiu:
38
- `codex exec resume --last` da mesma worktree.
39
-
40
- ## Variáveis de Input
41
- | Variável | Descrição | Exemplo |
42
- |----------|-----------|---------|
43
- | `<WORKTREE>` | git worktree dedicada (off main) | `~/code/vizzita-billing-s10` |
44
- | `<PROMPT>` | caminho do prompt/spec preparado | `.dw/spec/prd-billing-integrador/codex-prompt.md` |
45
- | `<slug>` | chave da tarefa p/ arquivos de audit/sessão | `prd-billing-integrador` |
46
- | `<AUDIT>` | dir de auditoria durável FORA da worktree | `~/code/vizzita/.dw/cli-run` |
47
-
48
- Retorne pelo **Structured Return** da `dw-cli-run` (Status/Score/Scope/Evidence/Artifacts/Decisions/Risks/
49
- Telemetria/Next Step), incluindo o `thread_id` capturado, o caminho do sidecar, e o comando `RESUME` exato pra
50
- continuar. Testado: codex-cli 0.141.0.
12
+ | `DISPATCH` | `codex exec -m "<MODEL>" -c 'model_reasoning_effort="<EFFORT>"' <PERMISSIONS> --json -o "<AUDIT>/<slug>.last.md" - < "<PROMPT>" > "<AUDIT>/<slug>.log" 2>&1` |
13
+ | `STREAM` | `--json` |
14
+ | `MODEL` | `-m "<MODEL>"` |
15
+ | `EFFORT` | `-c 'model_reasoning_effort="<EFFORT>"'` |
16
+ | `AUTO` | <PERMISSIONS> — perfil não interativo aprovado; preserve configuração existente |
17
+ | `AUTO_READONLY` | `--sandbox read-only` |
18
+ | `NO_MCP` | Selecione capacidades necessárias se suportado; caso contrário preserve configuração |
19
+ | `RESUME <id>` | `codex exec resume "<SESSION_ID>" -m "<MODEL>" -c 'model_reasoning_effort="<EFFORT>"' <RESUME_PERMISSIONS> --json - < "<FOLLOWUP_PROMPT>" >> "<AUDIT>/<slug>.log" 2>&1` |
20
+ | `SESSION_ID` | `thread.started.thread_id` → `<AUDIT>/<slug>.session` |
21
+ | `DONE_SIGNAL` | `turn.completed` |
22
+ | `USAGE` | `turn.completed.usage` |
23
+
24
+ Crie/reutilize por `/dw-worktree create <slug>`; após integração autorizada, `/dw-worktree merge <slug>` conduz merge e limpeza segura. Workers retornam ao parent e nunca integram por conta própria.
25
+
26
+ ## Seleção de modelo e retomada
27
+
28
+ Resolva modelo/esforço concretos na quebra de tasks usando `.dw/config/routing.json`, metadados atuais do provedor e ferramenta instalada. Não fixe lista de modelos do mais forte ao mais leve neste adapter. Esforços dependem de modelo/versão; low, medium, high, xhigh e max são candidatos apenas quando suportados. Sem escalada obrigatória ao máximo.
29
+
30
+ Registre task, provedor, worktree, escolha aprovada, ID de sessão e audit antes do handoff. Sem sidecar, recupere sessão exata da task pelo log; nunca continue às cegas a sessão mais recente do cwd. Sem provar identidade, inicie nova sessão a partir do estado salvo e diff real, preservando trabalho parcial. Sessões não são portáveis entre CLIs.
31
+
32
+ Retorne Structured Return do `dw-cli-run` com evidências e comando de retomada suportado exato. O parent continua o plano aprovado; merge/push/publicação exigem autorização aplicável.
33
+
34
+ Inspeção de capacidades: codex-cli 0.153.4.
35
+ O help atual de `exec resume` não expõe `--sandbox`; não copie flags iniciais às cegas nem acrescente bypass. Use perfil/configuração aprovado equivalente e suportado; caso contrário bloqueie esse modo de retomada e reconstrua sessão restrita nova. TOML `mcp_servers='{}'` sozinho não prova que entradas MCP herdadas foram desativadas.
51
36
  </system_instructions>
@@ -7,23 +7,15 @@ Você é o auditor de orçamento de contexto do dev-workflow.
7
7
  - Use como follow-up de `/dw-analyze-project` quando o harness parecer inchado.
8
8
 
9
9
  ## Processo
10
- 1. Estime tokens de `CLAUDE.md`, `AGENTS.md`, `.dw/commands/*.md`, `.agents/skills/*/SKILL.md`, `.agents/agents/*.md`, `.claude/agents/*.md`, `.opencode/agent/*.md`, `.github/agents/*.agent.md`, `.dw/subtasks/pending/*/HANDOFF.md` e `.claude/settings.json`.
11
- 2. Estime prosa como `palavras * 1.3`; JSON/schema como `chars / 4`.
12
- 3. Aponte:
13
- - commands acima de 20KB,
14
- - `SKILL.md` acima de 12KB,
15
- - agentes acima de 8KB,
16
- - agentes sem `output_budget_words` no `.dw/agent-registry.json` ou registry do scaffold,
17
- - média de handoffs pendentes acima de 1200 palavras,
18
- - agentes Copilot acima de 30k chars,
19
- - mais de 10 MCP servers,
20
- - nomes duplicados entre pastas de plataforma,
21
- - agentes Claude/OpenCode com campos de tools ou permissions incompativeis com o provider.
22
- 4. Recomende as 5 maiores economias com caminhos concretos.
10
+ 1. Separe três categorias: instruções permanentes do host ativo; metadados de descoberta (nomes/descrições de skills e comandos); e corpos de comandos/skills, referências e handoffs sob demanda. Inventário em disco não é consumo simultâneo de contexto. Conte só superfícies do host ativo; cópias entre plataformas não são duplicação de contexto por si só.
11
+ 2. Identifique estimativas de prosa (`palavras * 1.3`, schema `chars / 4`) como estimativas, não tokens medidos. Reporte categorias separadamente e carregamentos observados só quando houver telemetria.
12
+ 3. Confira budgets do projeto: bloco gerenciado instalado ≤6000 bytes por idioma; entrypoints de skills ≤8000 bytes; descrições ≤250 caracteres. Commands acima de 20KB e agentes acima de 8KB são sinais para revisão, não prova de carregamento. Confira gatilhos sobrepostos, referências incondicionais, links quebrados e metadados incompatíveis.
13
+ 4. Neste repositório `npm run validate` aplica budgets e referências roteadas via `lib/instruction-health.js`. Em consumidor inspecione arquivos instalados; não exija código-fonte do pacote no projeto.
14
+ 5. Reporte economias concretas prioritárias. Audite candidatos em `.dw/config/routing.json` contra informação atual do provedor, sinalizando escolhas antigas sem sobrescrever configuração do usuário.
23
15
 
24
16
  ## Parte B — Gasto em runtime (custo real de token)
25
17
 
26
- O overhead estático (acima) é o que o harness *carrega*; esta parte é o que as sessões de fato *custam*. Reporte a partir de `.dw/metrics/costs.jsonl` (append pelo hook `session-cost` de SessionEnd — uma linha por sessão com uso de tokens por modelo + USD estimado):
18
+ O inventário acima estima contexto potencial; esta parte reporta uso observado nas sessões. Reporte a partir de `.dw/metrics/costs.jsonl` (append pelo hook `session-cost` de SessionEnd — uma linha por sessão com uso de tokens por modelo + USD estimado):
27
19
 
28
20
  1. Leia `.dw/metrics/costs.jsonl` se existir. Se ausente, registre "sem dados de custo runtime ainda (hook desabilitado ou nenhuma sessão encerrada)" e pule esta parte — nunca falhe.
29
21
  2. Deduplique por `session_id` (a linha mais recente por sessão vence).