@brunosps00/dev-workflow 2.0.0 → 2.2.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 (84) hide show
  1. package/.claude-plugin/marketplace.json +1 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +176 -0
  4. package/README.md +10 -5
  5. package/lib/build-plugin.js +4 -1
  6. package/lib/constants.js +8 -2
  7. package/lib/init.js +26 -0
  8. package/lib/validate.js +21 -0
  9. package/package.json +1 -1
  10. package/scaffold/en/agent-instructions.md +2 -0
  11. package/scaffold/en/commands/dw-autopilot.md +2 -0
  12. package/scaffold/en/commands/dw-brainstorm.md +12 -8
  13. package/scaffold/en/commands/dw-bugfix.md +4 -2
  14. package/scaffold/en/commands/dw-claude-run.md +1 -1
  15. package/scaffold/en/commands/dw-codex-run.md +1 -1
  16. package/scaffold/en/commands/dw-copilot-run.md +1 -1
  17. package/scaffold/en/commands/dw-harness-audit.md +2 -0
  18. package/scaffold/en/commands/dw-help.md +6 -2
  19. package/scaffold/en/commands/dw-pause.md +1 -0
  20. package/scaffold/en/commands/dw-plan.md +2 -2
  21. package/scaffold/en/commands/dw-refactor.md +1 -0
  22. package/scaffold/en/commands/dw-report.md +169 -0
  23. package/scaffold/en/commands/dw-review.md +33 -2
  24. package/scaffold/en/commands/dw-run.md +3 -1
  25. package/scaffold/en/commands/dw-triage.md +220 -0
  26. package/scaffold/en/commands/dw-worktree.md +100 -0
  27. package/scaffold/en/templates/idea-onepager.md +28 -0
  28. package/scaffold/en/templates/task-template.md +1 -0
  29. package/scaffold/en/templates/tasks-template.md +9 -8
  30. package/scaffold/en/templates/triage-needs-info-template.md +23 -0
  31. package/scaffold/en/templates/triage-out-of-scope-template.md +36 -0
  32. package/scaffold/en/templates/triage-record-template.md +88 -0
  33. package/scaffold/pt-br/agent-instructions.md +2 -0
  34. package/scaffold/pt-br/commands/dw-autopilot.md +83 -81
  35. package/scaffold/pt-br/commands/dw-brainstorm.md +12 -9
  36. package/scaffold/pt-br/commands/dw-bugfix.md +4 -2
  37. package/scaffold/pt-br/commands/dw-claude-run.md +20 -20
  38. package/scaffold/pt-br/commands/dw-codex-run.md +20 -20
  39. package/scaffold/pt-br/commands/dw-context-budget.md +10 -10
  40. package/scaffold/pt-br/commands/dw-copilot-run.md +21 -21
  41. package/scaffold/pt-br/commands/dw-dockerize.md +102 -102
  42. package/scaffold/pt-br/commands/dw-find-skills.md +52 -52
  43. package/scaffold/pt-br/commands/dw-goal.md +41 -41
  44. package/scaffold/pt-br/commands/dw-harness-audit.md +13 -11
  45. package/scaffold/pt-br/commands/dw-help.md +6 -2
  46. package/scaffold/pt-br/commands/dw-intel.md +70 -70
  47. package/scaffold/pt-br/commands/dw-learn.md +24 -24
  48. package/scaffold/pt-br/commands/dw-new-project.md +88 -88
  49. package/scaffold/pt-br/commands/dw-open-design.md +53 -53
  50. package/scaffold/pt-br/commands/dw-opportunities.md +45 -45
  51. package/scaffold/pt-br/commands/dw-pause.md +40 -39
  52. package/scaffold/pt-br/commands/dw-plan.md +2 -2
  53. package/scaffold/pt-br/commands/dw-refactor.md +31 -30
  54. package/scaffold/pt-br/commands/dw-report.md +169 -0
  55. package/scaffold/pt-br/commands/dw-resume.md +22 -22
  56. package/scaffold/pt-br/commands/dw-review.md +33 -2
  57. package/scaffold/pt-br/commands/dw-run.md +3 -1
  58. package/scaffold/pt-br/commands/dw-skill-health.md +10 -10
  59. package/scaffold/pt-br/commands/dw-subtask-complete.md +4 -4
  60. package/scaffold/pt-br/commands/dw-subtask-start.md +4 -4
  61. package/scaffold/pt-br/commands/dw-triage.md +220 -0
  62. package/scaffold/pt-br/commands/dw-worktree.md +100 -0
  63. package/scaffold/pt-br/templates/bugfix-summary-template.md +20 -20
  64. package/scaffold/pt-br/templates/concerns-template.md +20 -20
  65. package/scaffold/pt-br/templates/idea-onepager.md +28 -0
  66. package/scaffold/pt-br/templates/project-onepager.md +32 -32
  67. package/scaffold/pt-br/templates/state-template.md +13 -13
  68. package/scaffold/pt-br/templates/task-template.md +1 -0
  69. package/scaffold/pt-br/templates/tasks-template.md +9 -8
  70. package/scaffold/pt-br/templates/triage-needs-info-template.md +23 -0
  71. package/scaffold/pt-br/templates/triage-out-of-scope-template.md +36 -0
  72. package/scaffold/pt-br/templates/triage-record-template.md +88 -0
  73. package/scaffold/scripts/hooks/git-guardrails.mjs +42 -24
  74. package/scaffold/scripts/lib/worktree-gc.mjs +460 -0
  75. package/scaffold/skill-registry.json +1 -1
  76. package/scaffold/skills/dw-cli-run/SKILL.md +10 -1
  77. package/scaffold/skills/dw-debug-protocol/SKILL.md +2 -0
  78. package/scaffold/skills/dw-debug-protocol/references/six-step-triage.md +60 -1
  79. package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +14 -14
  80. package/scaffold/skills/dw-grilling/SKILL.md +17 -7
  81. package/scaffold/skills/dw-grilling/references/decision-tree.md +30 -7
  82. package/scaffold/skills/dw-simplification/references/deep-modules.md +50 -0
  83. package/scaffold/skills/dw-testing-discipline/SKILL.md +3 -1
  84. package/scaffold/skills/dw-testing-discipline/references/tdd-loop.md +83 -0
@@ -93,6 +93,34 @@ Ideally 2-4 stories. If it's more than 5, it's probably not MVP.]
93
93
 
94
94
  _(schema 1.1 — filled by a `/dw-brainstorm` grill session; consumed by `/dw-plan`, which does NOT re-ask resolved decisions. Leave empty for a non-grilled one-pager.)_
95
95
 
96
+ ### Decision Map
97
+
98
+ [Durable Grill tree. This records structure and resume state only; keep the decision outcome, recommendation,
99
+ alternative, and evidence in **Resolved Decisions** below.]
100
+
101
+ **Frontier:** [comma-separated node IDs with `State: open-ready`, or `none`]
102
+
103
+ | ID | Decision node | State | Depends on: | Frontier? | Notes |
104
+ |----|---------------|-------|-------------|-----------|-------|
105
+ | D1 | [upstream decision] | resolved | none | no | [structure note; outcome lives in Resolved Decisions] |
106
+ | D2 | [open decision that can be asked next] | open-ready | D1 | yes | [why this is ready] |
107
+ | D3 | [open decision still blocked] | open-blocked | D2 | no | [what blocks it] |
108
+
109
+ `State` is the source of truth. `Frontier?` and the `**Frontier:**` line are derived from it for
110
+ readability — if they ever disagree with `State`, `State` wins and the derived values are rewritten.
111
+
112
+ Allowed `State` values:
113
+ - `resolved` — the user settled the node; details live in **Resolved Decisions**.
114
+ - `open-ready` — open and decidable now; this node is in the **Frontier**.
115
+ - `open-blocked` — open but waiting on one or more `Depends on:` nodes.
116
+
117
+ #### Decision Fog
118
+
119
+ [Known unresolved areas that are not yet clear enough to phrase as decision nodes. Keep this short; each item
120
+ graduates into **Decision Map** when it becomes a concrete decision.]
121
+
122
+ - [unknown area] — [why it is not yet formulable as a decision]
123
+
96
124
  ### Resolved Decisions
97
125
 
98
126
  | Decision | Recommended | Chosen | Alternative rejected | Evidence |
@@ -13,6 +13,7 @@ status: pending
13
13
  [Brief task description]
14
14
 
15
15
  **Functional Requirements covered**: FR-X.Y, FR-X.Z (maximum 2 per task)
16
+ Depends on: none
16
17
 
17
18
  <requirements>
18
19
  [List of mandatory requirements]
@@ -19,19 +19,20 @@ feat/prd-[feature-name]
19
19
 
20
20
  ## Tasks
21
21
 
22
- | Task | Description | FRs | Status | Commit |
23
- |------|-------------|-----|--------|--------|
24
- | 1.0 | [Title] | FR-1.1, FR-1.2 | Pending | — |
25
- | 2.0 | [Title] | FR-2.1 | Pending | — |
26
- | 3.0 | [Title] | FR-3.1, FR-3.2 | Pending | — |
22
+ | Task | Description | Depends on | FRs | Status | Commit |
23
+ |------|-------------|------------|-----|--------|--------|
24
+ | 1.0 | [Title] | none | FR-1.1, FR-1.2 | Pending | — |
25
+ | 2.0 | [Title] | 1.0 | FR-2.1 | Pending | — |
26
+ | 3.0 | [Title] | 1.0, 2.0 | FR-3.1, FR-3.2 | Pending | — |
27
27
 
28
28
  `Commit` holds the short SHA written back by `/dw-run` when the task closes (step 6). It is what makes a task's diff findable later — leave `—` until the task commits.
29
+ `Depends on` is the dependency graph consumed by `/dw-run`; write `none` when a task has no dependency.
29
30
 
30
31
  ## Progress
31
32
 
32
- - [ ] 1.0 Main Task Title
33
- - [ ] 2.0 Main Task Title
34
- - [ ] 3.0 Main Task Title
33
+ - [ ] 1.0 Main Task Title Depends on: none
34
+ - [ ] 2.0 Main Task Title Depends on: 1.0
35
+ - [ ] 3.0 Main Task Title Depends on: 1.0, 2.0
35
36
 
36
37
  ## Workflow
37
38
 
@@ -0,0 +1,23 @@
1
+ # Needs Info: <title>
2
+
3
+ ## Blocking Questions
4
+
5
+ - [ ] <question 1>
6
+ - [ ] <question 2>
7
+ - [ ] <question 3>
8
+
9
+ ## Why This Blocks Triage
10
+
11
+ <Explain why the missing information prevents category/state confidence or verification.>
12
+
13
+ ## Author Response
14
+
15
+ <Paste or summarize the author's response. When the author responds, move the triage state from `needs-info` to `needs-triage` and re-run the recommendation step.>
16
+
17
+ ## Requested Evidence
18
+
19
+ - Reproduction steps:
20
+ - Expected vs actual behavior:
21
+ - Environment or test data:
22
+ - PR diff or branch/ref:
23
+ - Screenshots/logs/traces:
@@ -0,0 +1,36 @@
1
+ ---
2
+ type: out-of-scope
3
+ schema_version: "1.0"
4
+ concept: "<concept-slug>"
5
+ created_at: "YYYY-MM-DD"
6
+ updated_at: "YYYY-MM-DD"
7
+ ---
8
+
9
+ # Out of Scope: <Concept Name>
10
+
11
+ ## Decision
12
+
13
+ Rejected on YYYY-MM-DD.
14
+
15
+ ## Reason
16
+
17
+ <Record the durable reason. Do not write only "wontfix"; explain the product, technical, operational, or policy boundary.>
18
+
19
+ ## Applies To
20
+
21
+ - <Domain phrasing of requests this decision covers>
22
+ - <Known alternate wording that maps to the same concept>
23
+
24
+ ## Evidence
25
+
26
+ - Triage record: `.dw/triage/NNN-<slug>.md`
27
+ - Codebase search:
28
+ - Prior decisions:
29
+
30
+ ## Revisit Conditions
31
+
32
+ <What would need to change for this concept to be reconsidered?>
33
+
34
+ ## History
35
+
36
+ - YYYY-MM-DD — rejected — <actor> — <reason>
@@ -0,0 +1,88 @@
1
+ ---
2
+ type: triage-record
3
+ schema_version: "1.0"
4
+ id: "NNN-<slug>"
5
+ category: "bug | enhancement"
6
+ state: "needs-triage | needs-info | ready-for-work | needs-human | wontfix"
7
+ created_at: "YYYY-MM-DD"
8
+ updated_at: "YYYY-MM-DD"
9
+ ---
10
+
11
+ # Triage: <title>
12
+
13
+ ## Source
14
+
15
+ | Field | Value |
16
+ |-------|-------|
17
+ | Source Type | paste / file / github-issue / github-pr / other |
18
+ | Source Ref | <path, URL, issue number, PR number, or pasted-session marker> |
19
+ | Author | <name or unknown> |
20
+ | Reported At | <date or unknown> |
21
+ | Retrieved By | local / gh / pasted / owner-provided |
22
+
23
+ ## Intake Summary
24
+
25
+ <Short summary of the request in domain language.>
26
+
27
+ ## Classification
28
+
29
+ | Field | Value |
30
+ |-------|-------|
31
+ | Category | bug / enhancement |
32
+ | State | needs-triage / needs-info / ready-for-work / needs-human / wontfix |
33
+ | Domain Concept | <concept slug and human name> |
34
+ | Disposition Reason | <why this state was chosen> |
35
+
36
+ ## Codebase Checks
37
+
38
+ ### Redundancy Search
39
+
40
+ | Area Searched | Query / Concept | Result |
41
+ |---------------|-----------------|--------|
42
+ | `.dw/domain/**` | <concept> | <match / no match / missing> |
43
+ | `.dw/spec/**` | <concept> | <match / no match / missing> |
44
+ | `.dw/bugfixes/**` | <concept> | <match / no match / missing> |
45
+ | `.dw/rules/**` | <concept> | <match / no match / missing> |
46
+ | Code / tests / docs | <concept> | <match / no match> |
47
+
48
+ ### Prior Rejection Search
49
+
50
+ | Record | Similarity | Decision |
51
+ |--------|------------|----------|
52
+ | `.dw/out-of-scope/<concept>.md` | <why similar> | applies / does not apply / reopened |
53
+
54
+ ## Verification
55
+
56
+ | Field | Value |
57
+ |-------|-------|
58
+ | Verification Status | confirmed / failed-to-reproduce / insufficient-detail |
59
+ | Verification Method | reproduce steps / PR diff review / relevant tests / product inventory check |
60
+ | Commands Run | <commands or n/a> |
61
+ | Files Inspected | <paths> |
62
+ | Evidence | <what was observed> |
63
+
64
+ ## Needs Info
65
+
66
+ <!-- If state is needs-info, paste the body from triage-needs-info-template.md here. Otherwise write "n/a". -->
67
+
68
+ n/a
69
+
70
+ ## Routing
71
+
72
+ | Condition | Route |
73
+ |-----------|-------|
74
+ | ready-for-work + bug | `/dw-bugfix` |
75
+ | ready-for-work + enhancement | `/dw-plan prd` |
76
+ | malformed request | `/dw-brainstorm --mode=grill` |
77
+ | needs-human | owner action |
78
+ | wontfix | no downstream work |
79
+
80
+ Selected route: <route or n/a>
81
+
82
+ ## Out-of-Scope Link
83
+
84
+ <If rejected, link `.dw/out-of-scope/<concept>.md`. If already implemented, link the implementation and state that no out-of-scope record was written.>
85
+
86
+ ## History
87
+
88
+ - YYYY-MM-DD — needs-triage -> <state> — <actor> — <reason>
@@ -37,6 +37,8 @@ Antes de escolher um comando da Trigger Map, dimensione o escopo real da mudanç
37
37
  | "Roda isso como goal" / "objetivo durável" / "long-running objective" | `/dw-goal "<objetivo>"` |
38
38
  | "Continue de onde parei" | `/dw-run --resume` |
39
39
  | "Pausa o trabalho" / "Encerra a sessão" / "Salva onde paramos" | `/dw-pause` |
40
+ | "Report de N em N minutos" / "Me mantém informado enquanto isso roda" / "Quero status periódico" | `/dw-report [--every <N>m]` |
41
+ | "Cria uma worktree pra X" / "Limpa as worktrees" / "Mergeia a worktree X" / "Quantas worktrees sobraram?" | `/dw-worktree create <slug>` / `/dw-worktree clean --apply` / `/dw-worktree merge <slug>` / `/dw-worktree list` |
40
42
  | "Retoma" / "Onde paramos?" / "Volta de onde parei" | `/dw-resume` |
41
43
  | "QA dessa feature" / "Roda o test plan" | `/dw-qa` |
42
44
  | "Corrige os bugs do QA" | `/dw-qa --fix` |
@@ -1,130 +1,130 @@
1
1
  <system_instructions>
2
- Voce e o orquestrador de pipeline completo. Este comando recebe um desejo do usuario e conduz o workflow PRD-ao-PR em duas invocacoes:
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:
3
3
 
4
- 1. **Invocacao de planejamento:** pesquisa/brainstorm quando necessario, PRD, TechSpec, Tasks, depois PARA.
5
- 2. **Invocacao de execucao:** retoma de `autopilot-state.json`, roda `/dw-goal --from-autopilot <prd-slug>`, depois commit e gate de PR.
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.
6
6
 
7
- <critical>A primeira invocacao DEVE parar depois que os artefatos de planejamento estiverem completos. Nao rode implementacao, QA, review, commit ou PR na primeira invocacao.</critical>
8
- <critical>A segunda invocacao 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 instrucoes completas de `.dw/commands/`. Leia e execute o comando inteiro, nao uma versao resumida.</critical>
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>
10
10
 
11
11
  ## Quando Usar
12
- - Use quando quiser ir de uma ideia ate um PR com minima intervencao manual, mas com parada obrigatoria apos o planejamento.
13
- - Use para features completas que exigem planejamento, execucao, qualidade e prontidao de PR.
14
- - NAO use para tasks pequenas e bem-escopadas; use `/dw-run` com um plano existente.
15
- - NAO use para bugfix cirurgico; use `/dw-bugfix`.
16
- - NAO use quando o usuario quer controle manual entre cada fase; use comandos individuais.
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.
17
17
 
18
- ## Posicao no Pipeline
19
- **Antecessor:** desejo do usuario | **Sucessor:** `/dw-goal`, `/dw-commit`, `/dw-generate-pr`
18
+ ## Posição no Pipeline
19
+ **Antecessor:** desejo do usuário | **Sucessor:** `/dw-goal`, `/dw-commit`, `/dw-generate-pr`
20
20
 
21
21
  ## Skills / Comandos Complementares
22
22
 
23
23
  | Skill ou comando | Gatilho |
24
24
  |------------------|---------|
25
- | `dw-memory` | SEMPRE — preserva decisoes entre planejamento, goal de execucao, QA, review e PR. |
26
- | `dw-verify` | SEMPRE — invocado por gates e comandos downstream antes de claims de aprovacao/commit/PR. |
27
- | `/dw-goal` | SEMPRE na segunda invocacao — objetivo duravel de execucao/qualidade. |
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. |
28
28
 
29
- ## Variaveis de Entrada
29
+ ## Variáveis de Entrada
30
30
 
31
- | Variavel | Descricao | Exemplo |
31
+ | Variável | Descrição | Exemplo |
32
32
  |----------|-----------|---------|
33
- | `{{WISH}}` | Descricao do que o usuario quer construir no modo padrao. | `"preferencias de notificacao push"` |
34
- | `{{PRD_SLUG}}` | Slug de PRD existente quando `--from-prd` e usado. | `prd-bugfix-stripe-webhook-retry` |
35
- | `{{MODE}}` | Flag opcional de invocacao. | `--from-prd <slug>` |
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>` |
36
36
 
37
- ## Modos de Invocacao
37
+ ## Modos de Invocação
38
38
 
39
- | Invocacao | Comportamento |
39
+ | Invocação | Comportamento |
40
40
  |-----------|---------------|
41
- | `/dw-autopilot "<wish>"` | Invocacao de planejamento do zero. Roda Inteligencia do Codebase → Pesquisa opcional → Brainstorm → PRD → TechSpec → Tasks, salva estado e para. |
42
- | `/dw-autopilot --from-prd <slug>` | Invocacao de planejamento a partir de PRD existente. Comeca em aprovacao do PRD, depois TechSpec → Tasks, salva estado e para. |
43
- | `/dw-autopilot` em PRD com `autopilot-state.json status=plan_complete` | Invocacao de execucao. Roda `/dw-goal --from-autopilot <slug>`, depois commit e gate de PR. |
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. |
44
44
 
45
- ## Pontos de Pausa Obrigatorios
45
+ ## Pontos de Pausa Obrigatórios
46
46
 
47
47
  Autopilot pausa em:
48
48
 
49
- 1. **Aprovacao do PRD** antes do TechSpec.
50
- 2. **Aprovacao das Tasks** antes de marcar planejamento completo.
51
- 3. **Parada obrigatoria de planejamento** depois que Tasks forem aprovadas e estado salvo.
52
- 4. **Gate de PR** depois que o goal de execucao e commit completarem.
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
53
 
54
54
  Entre estes pontos, execute automaticamente respeitando perguntas bloqueantes exigidas pelo comando chamado.
55
55
 
56
- ## Retomada de Sessao
56
+ ## Retomada de Sessão
57
57
 
58
58
  Se este comando for re-invocado no mesmo PRD:
59
59
 
60
- <critical>Leia `.dw/spec/<prd-slug>/autopilot-state.json` primeiro. Se `status` for `plan_complete`, nao repita planejamento. Inicie a invocacao de execucao chamando formalmente `/dw-goal --from-autopilot <prd-slug>`.</critical>
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
61
 
62
62
  Significados de estado:
63
63
 
64
- | Status | Acao |
64
+ | Status | Ação |
65
65
  |--------|------|
66
- | estado ausente | Iniciar invocacao de planejamento normal. |
66
+ | estado ausente | Iniciar invocação de planejamento normal. |
67
67
  | `planning` | Retomar de `current_step`, respeitando etapas completas/puladas. |
68
- | `plan_complete` | Iniciar invocacao de execucao via `/dw-goal --from-autopilot <prd-slug>`. |
68
+ | `plan_complete` | Iniciar invocação de execução via `/dw-goal --from-autopilot <prd-slug>`. |
69
69
  | `goal_active` | Continuar `/dw-goal resume` ou `/dw-goal --from-autopilot <prd-slug>` conforme `.dw/goals/autopilot-<prd-slug>/status.json`. |
70
70
  | `goal_complete` | Continuar para commit e gate de PR. |
71
- | `completed` | Reportar que ja foi concluido e mostrar resumo de PR/commit se disponivel. |
71
+ | `completed` | Reportar que já foi concluído e mostrar resumo de PR/commit se disponível. |
72
72
 
73
- ## Invocacao de Planejamento
73
+ ## Invocação de Planejamento
74
74
 
75
- ### Etapa 0: Resolver modo de invocacao
75
+ ### Etapa 0: Resolver modo de invocação
76
76
 
77
77
  1. Se `--from-prd <slug>` aparece:
78
78
  - Resolva para `.dw/spec/<slug>/`.
79
- - Verifique que `prd.md` existe; senao PARE com: `Alvo de --from-prd .dw/spec/<slug>/prd.md nao encontrado. Rode /dw-plan prd ou corrija o 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
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 aprovacao do PRD usando o PRD existente.
82
- 2. Caso contrario:
81
+ - Pule para aprovação do PRD usando o PRD existente.
82
+ 2. Caso contrário:
83
83
  - Crie ou atualize `autopilot-state.json` com `mode: "autopilot"`, `status: "planning"`, wish original e `current_step: 1`.
84
84
 
85
- ### Etapa 1: Inteligencia do Codebase
85
+ ### Etapa 1: Inteligência do Codebase
86
86
 
87
87
  <critical>Se `.dw/intel/` existir, consulte via `/dw-intel` antes de planejar. Caia para `.dw/rules/` e grep direto se ausente.</critical>
88
88
 
89
- - Identifique stack, padroes existentes, features relacionadas e restricoes do projeto.
90
- - Se `.dw/intel/` estiver ausente, sugira `/dw-intel --build` para contexto futuro mais rico, mas continue com `.dw/rules/` e inspecao direta.
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
91
 
92
92
  ### Etapa 2: Pesquisa (Condicional)
93
93
 
94
- Rode `/dw-brainstorm --research` quando a feature envolver tecnologia nova, dominio desconhecido, APIs externas, regulacao ou arquitetura de alto impacto. Caso contrario, pule e registre o motivo em `skip_reasons`.
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
95
 
96
96
  ### Etapa 3: Brainstorm (Interativo)
97
97
 
98
- Rode `/dw-brainstorm` com o contexto acumulado. Apresente tres direcoes e espere o usuario escolher uma antes de continuar.
98
+ Rode `/dw-brainstorm` com o contexto acumulado. Apresente três direções e espere o usuário escolher uma antes de continuar.
99
99
 
100
100
  ### Etapa 4: PRD
101
101
 
102
102
  Rode `/dw-plan prd` usando findings de brainstorm/research.
103
103
 
104
- <critical>O estagio PRD deve usar a ferramenta de entrevista estruturada quando disponivel. Se indisponivel, faca as perguntas obrigatorias no chat e registre o fallback. O usuario deve responder; nao infira respostas.</critical>
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
105
 
106
- Depois que `prd.md` existir, apresente resumo do PRD e aguarde aprovacao explicita. Se o usuario pedir edits, atualize e reapresente.
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
107
 
108
108
  ### Etapa 5: TechSpec
109
109
 
110
110
  Rode `/dw-plan techspec` a partir do PRD aprovado.
111
111
 
112
- <critical>O estagio TechSpec deve usar a ferramenta de entrevista estruturada quando disponivel. Se indisponivel, faca as perguntas obrigatorias no chat e registre o fallback. O usuario deve responder; nao infira respostas.</critical>
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
113
 
114
- Depois que `techspec.md` existir, apresente resumo do TechSpec e aguarde aprovacao explicita.
114
+ Depois que `techspec.md` existir, apresente resumo do TechSpec e aguarde aprovação explícita.
115
115
 
116
116
  ### Etapa 6: Tasks
117
117
 
118
118
  Rode `/dw-plan tasks` a partir de PRD + TechSpec. Verifique:
119
119
  - `tasks.md` existe.
120
120
  - arquivos per-task existem.
121
- - `tasks-validation.md` existe e passou ou tem override explicito do usuario.
121
+ - `tasks-validation.md` existe e passou ou tem override explícito do usuário.
122
122
 
123
- ### Etapa 7: Aprovacao das Tasks e Parada Obrigatoria
123
+ ### Etapa 7: Aprovação das Tasks e Parada Obrigatória
124
124
 
125
- Apresente resumo das tasks, dependencias e esforco total. Aguarde aprovacao explicita.
125
+ Apresente resumo das tasks, dependências e esforço total. Aguarde aprovação explícita.
126
126
 
127
- Apos aprovacao:
127
+ Após aprovação:
128
128
 
129
129
  1. Salve `.dw/spec/<prd-slug>/autopilot-state.json` com:
130
130
 
@@ -137,11 +137,13 @@ Apos aprovacao:
137
137
  ```
138
138
 
139
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 usuario que a fase de planejamento esta completa. Nao rode implementacao nesta invocacao.
140
+ 3. PARE e diga ao usuário que a fase de planejamento está completa. Não rode implementação nesta invocação.
141
141
 
142
- ## Invocacao de Execucao
142
+ ## Invocação de Execução
143
143
 
144
- ### Etapa 8: Goal Duravel de Execucao
144
+ ### Etapa 8: Goal Durável de Execução
145
+
146
+ Primeiro arme o loop de progresso: invoque `/dw-report` (contrato de auto-arme — idempotente, pulado quando `DW_REPORT_AUTO=off`). Ele reporta feito / fazendo / falta a cada 10 minutos ao longo do goal, do Security Gate, do commit e do PR, e se desarma sozinho com um report final no gate de PR.
145
147
 
146
148
  Quando `autopilot-state.json status=plan_complete`, invoque formalmente:
147
149
 
@@ -149,50 +151,50 @@ Quando `autopilot-state.json status=plan_complete`, invoque formalmente:
149
151
  /dw-goal --from-autopilot <prd-slug>
150
152
  ```
151
153
 
152
- O goal e dono desta sequencia:
154
+ O goal é dono desta sequência:
153
155
 
154
156
  1. `/dw-run <prd-path>`
155
- 2. `/dw-review <prd-path>` (review completo: cobertura, qualidade, convencoes, constitution, verify)
157
+ 2. `/dw-review <prd-path>` (review completo: cobertura, qualidade, convenções, constitution, verify)
156
158
  3. `/dw-qa <prd-path>`
157
159
  4. `/dw-qa --fix <prd-path>` se QA encontrou bugs Open
158
- 5. `/dw-review <prd-path>` novamente apos QA/fixes
160
+ 5. `/dw-review <prd-path>` novamente após QA/fixes
159
161
  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
162
 
161
- <critical>Nao 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>
163
+ <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
164
 
163
- Depois que `/dw-goal` completar, verifique que `.dw/goals/autopilot-<prd-slug>/status.json` tem `status: "complete"`, entao defina `autopilot-state.json status: "goal_complete"`.
165
+ 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
166
 
165
167
  ### Etapa 9: Fechar Loop de Bugfix (Condicional)
166
168
 
167
- Se `mode == "from-prd"` e o slug do PRD casar com `prd-bugfix-*`, feche o indice de bugfix antes do commit:
168
- - Encontre `.dw/bugfixes/*/escalated.md` que referencia o slug do PRD.
169
- - Se `SUMMARY.md` estiver ausente, escreva usando evidencias disponiveis de PRD, TechSpec, QA e diff com `.dw/templates/bugfix-summary-template.md`.
170
- - Nunca fabrique evidencia de verificacao.
169
+ Se `mode == "from-prd"` e o slug do PRD casar com `prd-bugfix-*`, feche o índice de bugfix antes do commit:
170
+ - Encontre `.dw/bugfixes/*/escalated.md` que referência o slug do PRD.
171
+ - Se `SUMMARY.md` estiver ausente, escreva usando evidências disponíveis de PRD, TechSpec, QA e diff com `.dw/templates/bugfix-summary-template.md`.
172
+ - Nunca fabrique evidência de verificação.
171
173
  - Registre artefatos em `autopilot-state.json`.
172
174
 
173
175
  ### Etapa 10: Auditoria Pre-Commit
174
176
 
175
177
  Antes de `/dw-commit`, verifique:
176
- - `.dw/goals/autopilot-<prd-slug>/status.json` esta completo.
177
- - `<prd-path>/QA/review-consolidated.md` existe a partir do review final pos-QA.
178
+ - `.dw/goals/autopilot-<prd-slug>/status.json` está completo.
179
+ - `<prd-path>/QA/review-consolidated.md` existe a partir do review final pós-QA.
178
180
  - `<prd-path>/QA/qa-report.md` e `<prd-path>/QA/bugs.md` existem.
179
- - **Security Gate passou:** `.dw/secure-audit/audit-summary.md` existe, esta fresco (pos-ultima-edicao) e status APROVADO. Se ausente/desatualizado/REPROVADO → PARE (nao commite).
181
+ - **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
182
  - `autopilot-state.json` registra artefatos de planejamento e o goal completo.
181
183
 
182
- Se algo estiver faltando, PARE e re-execute o comando formal ausente. Nao faca commit parcial.
184
+ Se algo estiver faltando, PARE e re-execute o comando formal ausente. Não faça commit parcial.
183
185
 
184
186
  ### Etapa 11: Commit
185
187
 
186
- Rode `/dw-commit` automaticamente. Nao aguarde aprovacao depois que o goal estiver completo.
188
+ Rode `/dw-commit` automaticamente. Não aguarde aprovação depois que o goal estiver completo.
187
189
 
188
190
  ### Etapa 12: Gate de Pull Request
189
191
 
190
192
  Pergunte: **"Commits realizados. Deseja gerar o Pull Request?"**
191
193
 
192
194
  - SIM: rode `/dw-generate-pr`.
193
- - NAO: informe que os commits estao prontos e o PR pode ser gerado depois.
195
+ - NÃO: informe que os commits estão prontos e o PR pode ser gerado depois.
194
196
 
195
- Marque `autopilot-state.json status: "completed"` apos commit, e inclua link do PR se gerado.
197
+ Marque `autopilot-state.json status: "completed"` após commit, e inclua link do PR se gerado.
196
198
 
197
199
  ## Persistencia de Estado
198
200
 
@@ -218,7 +220,7 @@ Marque `autopilot-state.json status: "completed"` apos commit, e inclua link do
218
220
  }
219
221
  ```
220
222
 
221
- Atualize estado depois de cada etapa completa ou pulada. Uma etapa so esta completa depois que artefatos obrigatorios existem.
223
+ Atualize estado depois de cada etapa completa ou pulada. Uma etapa só está completa depois que artefatos obrigatórios existem.
222
224
 
223
225
  ## Formato de Progresso
224
226
 
@@ -236,7 +238,7 @@ Reporte progresso depois de cada etapa:
236
238
  ===================================================
237
239
  ```
238
240
 
239
- Durante a invocacao de execucao:
241
+ Durante a invocação de execução:
240
242
 
241
243
  ```text
242
244
  === AUTOPILOT =====================================
@@ -248,10 +250,10 @@ Durante a invocacao de execucao:
248
250
 
249
251
  ## Anti-patterns
250
252
 
251
- - Nao continue para implementacao durante a primeira invocacao.
252
- - Nao pule `/dw-goal` durante a segunda invocacao.
253
- - Nao substitua `/dw-review` completo por review mais estreito no goal de execucao.
254
- - Nao marque estado completo a partir de validacao manual.
255
- - Nao reexecute planejamento quando `status=plan_complete`; retome o goal.
253
+ - Não continue para implementação durante a primeira invocação.
254
+ - Não pule `/dw-goal` durante a segunda invocação.
255
+ - Não substitua `/dw-review` completo por review mais estreito no goal de execução.
256
+ - Não marque estado completo a partir de validação manual.
257
+ - Não reexecute planejamento quando `status=plan_complete`; retome o goal.
256
258
 
257
259
  </system_instructions>
@@ -181,7 +181,7 @@ Ao final, sempre deixe o usuario em uma destas situacoes:
181
181
  - com perguntas melhores para decidir
182
182
  - com um proximo comando do workspace para seguir
183
183
  - com o one-pager em `.dw/spec/ideas/<slug>.md` (se modo **onepager** disparou)
184
- - com o relatório de research em `~/Documents/<Tópico>_Research_<data>/` (se modo **research** disparou)
184
+ - com o relatório de research em `.dw/spec/<prd-slug>/research/<topic-slug>-<YYYYMMDD>/research.md` quando houver PRD ativa, `.dw/spec/ideas/<idea-slug>-research-<YYYYMMDD>/research.md` quando houver one-pager de ideia ativo, ou `.dw/spec/research/<topic-slug>-<YYYYMMDD>/research.md` para research avulso (se modo **research** disparou)
185
185
  - com o plano de refactor em `<target>/refactor-plan.md` (se modo **refactor-audit** disparou)
186
186
  - com entradas de glossário canônico em `.dw/domain/**` e um one-pager de ideia alinhado (se **grill** rodou com autorização)
187
187
  - com um protótipo throwaway rodável + template de verdict (se modo **prototype** disparou)
@@ -237,7 +237,7 @@ Skill complementar **`dw-source-grounding`**: **SEMPRE** — aplica protocolo De
237
237
 
238
238
  ### Output
239
239
 
240
- Salvo em `~/Documents/<Tópico>_Research_<YYYYMMDD>/`. Seções obrigatórias:
240
+ Salve `research.md` dentro do repo: `.dw/spec/<prd-slug>/research/<topic-slug>-<YYYYMMDD>/research.md` quando houver PRD ativa, `.dw/spec/ideas/<idea-slug>-research-<YYYYMMDD>/research.md` quando houver one-pager de ideia ativo, ou `.dw/spec/research/<topic-slug>-<YYYYMMDD>/research.md` para research avulso. Seções obrigatórias:
241
241
  1. Sumário Executivo (200-400 palavras)
242
242
  2. Introdução (escopo, metodologia, premissas)
243
243
  3. Análise Principal (4-8 achados, 600-2000 palavras cada, todos citados)
@@ -365,10 +365,12 @@ Quando esses sinais aparecem no auto-dispatch, **recomende** Grill em uma linha
365
365
 
366
366
  ### A sessão (após autorização)
367
367
 
368
- 1. **Construa a árvore de decisão primeiro.** Antes da primeira pergunta, inspecione os fatos do projeto —
369
- PRDs/TechSpecs atuais, `.dw/rules/`, `.dw/intel/` (via `/dw-intel`), `.dw/constitution.md`, `.dw/domain/**` e
370
- git recente — e monte uma árvore de decisão **ordenada por dependências** (nunca pergunte uma decisão
371
- downstream antes do seu bloqueador).
368
+ 1. **Retome ou construa a árvore de decisão primeiro.** Antes da primeira pergunta, leia o one-pager ativo em
369
+ busca de um **Decision Map** existente. Se houver, retome pelo grafo `Depends on:`, valores de `State`,
370
+ **Frontier** explícita e `Decision Fog`; não re-pergunte nós já `resolved`. Se não houver mapa, inspecione os
371
+ fatos do projeto — PRDs/TechSpecs atuais, `.dw/rules/`, `.dw/intel/` (via `/dw-intel`), `.dw/constitution.md`,
372
+ `.dw/domain/**` e git recente — e monte uma árvore de decisão **ordenada por dependências** (nunca pergunte
373
+ uma decisão downstream antes do seu bloqueador).
372
374
  2. **Pergunte exatamente uma decisão não-resolvida por interação e espere.** Cada pergunta inclui: evidência
373
375
  quando disponível (com fonte), a resposta recomendada, uma rationale curta, e uma alternativa/trade-off
374
376
  significativa. Siga `dw-grilling` (`references/interview-loop.md`, `references/decision-tree.md`).
@@ -405,9 +407,10 @@ lê e linka `.dw/domain/**` e deve preservá-lo, nunca regenerá-lo.
405
407
 
406
408
  ### Handoff alinhado — o one-pager de ideia (schema `1.1`)
407
409
 
408
- Grill estende `.dw/spec/ideas/<slug>.md` para o schema `1.1`, adicionando: **Resolved Decisions** (cada uma com a
409
- resposta recomendada, a escolha do usuário e a alternativa rejeitada), **Evidence** (fatos descobertos com fontes),
410
- **Canonical Vocabulary** (links para `.dw/domain/**`), **Remaining Decisions** e **Alignment State**.
410
+ Grill estende `.dw/spec/ideas/<slug>.md` para o schema `1.1`, adicionando: **Decision Map** (nós, `Depends on:`,
411
+ `State`, **Frontier** explícita e `Decision Fog` para futuros nós ainda nebulosos), **Resolved Decisions** (cada
412
+ uma com a resposta recomendada, a escolha do usuário e a alternativa rejeitada), **Evidence** (fatos descobertos
413
+ com fontes), **Canonical Vocabulary** (links para `.dw/domain/**`), **Remaining Decisions** e **Alignment State**.
411
414
 
412
415
  Defina `status: aligned` **só quando todas** valem: cada branch de dependência resolvida, contradições
413
416
  glossário/código fechadas, nenhuma decisão bloqueante aberta, E o usuário **confirma explicitamente** o shared
@@ -38,7 +38,7 @@
38
38
 
39
39
  Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como suporte contextual sem substituir este comando:
40
40
 
41
- - `dw-debug-protocol`: **SEMPRE** — conduz o bug pelo six-step triage (Reproduzir → Localizar → Reduzir → Fix Root Cause → Guardar → Verificar End-to-End). Stop-the-line discipline; root-cause sobre symptom; regression test commitado no mesmo commit atômico. Bugs não-reprodutíveis seguem o sub-protocolo instrument-first — sem fix por palpite a não ser com acknowledgement explícito.
41
+ - `dw-debug-protocol`: **SEMPRE** — conduz o bug pelo six-step triage (Reproduzir → Localizar → Reduzir → Fix Root Cause → Guardar → Verificar End-to-End). Stop-the-line discipline; root-cause sobre symptom; regression test commitado no mesmo commit atômico. Para bugs não triviais, ou depois que a primeira tentativa de fix falhar, o Passo 1 precisa estabelecer um loop de feedback red-capable antes de teorizar. Bugs não-reprodutíveis seguem o sub-protocolo instrument-first — sem fix por palpite a não ser com acknowledgement explícito.
42
42
  - `dw-verify`: **SEMPRE** — em modo Direto, invocada antes do commit da correção. O VERIFICATION REPORT deve mostrar que o sintoma original do bug não se reproduz mais (não apenas que os testes passam).
43
43
  - `vercel-react-best-practices`: use quando o bug afeta React/Next.js e há suspeita de problemas de render, hidratação, fetching, waterfall, bundle ou re-render
44
44
  - `dw-testing-discipline`: use quando a correção requer fluxo E2E/reteste reproduzível em web app — `references/playwright-recipes.md` pra recipes, core rules + 6 agent guardrails pra qualquer teste que o fix adicione, flaky-discipline se o bug aparece de forma intermitente.
@@ -208,6 +208,7 @@
208
208
  - Stack traces
209
209
  - Arquivos modificados recentemente
210
210
  - Se o bug for relacionado a UI ou depender de fluxo no navegador, complemente a coleta com `dw-testing-discipline` (playwright-recipes + three-workflow-patterns pra escolher o modo certo de verificação)
211
+ - Para bugs não triviais, ou quando a primeira tentativa de fix falhou, construa o loop de feedback red-capable do `dw-debug-protocol` antes de propor uma causa: um comando/artefato de loop, suficientemente determinístico, rápido, executável pelo agente e com vermelho observado. Se nenhum loop executável pelo agente for possível, registre as tentativas e peça ao usuário o artefato/acesso ausente com o template HITL de `references/six-step-triage.md`.
211
212
 
212
213
  ### 3. Perguntas de Clarificação (OBRIGATÓRIO - EXATAMENTE 3)
213
214
 
@@ -322,7 +323,7 @@
322
323
  1. Descubra o próximo `NNN` (ver seção Localização dos Arquivos).
323
324
  2. Crie `.dw/bugfixes/NNN-<slug>/` se ainda não foi criado no passo 5.0.
324
325
  3. Escreva `TASK.md` com a triagem, clarificações, causa raiz e plano aprovado como executado (use `.dw/templates/bugfix-template.md` como base).
325
- 4. Escreva `fix-report.md` com o VERIFICATION REPORT verbatim do `dw-verify` mais o trace antes/depois da reprodução.
326
+ 4. Escreva `fix-report.md` com o VERIFICATION REPORT verbatim do `dw-verify` mais o trace antes/depois da reprodução. O relatório DEVE incluir `Loop command before fix` e `Loop command after fix` (ou o bloqueio HITL exato, tentativas feitas e artefato/acesso solicitado quando nenhum loop foi possível).
326
327
  5. Escreva `SUMMARY.md` usando `.dw/templates/bugfix-summary-template.md`. Preencha slug, data, status `Fixed`, severidade, related_concerns (do passo 1.5), Sintoma (verbatim), Causa Raiz (uma frase), Resolução (2-4 bullets), Arquivos Tocados, Verificação, Relacionado, Followups.
327
328
  6. Se o fix tocou uma concern listada em `.dw/rules/concerns.md`, anexe uma linha à coluna `Last incident` da row daquela concern (ou adicione uma row nova sob Histórico de Bugs Conhecidos) — preserve entradas escritas a mão entre `<!-- preserved:start -->`.
328
329
  7. Reporte os paths dos três arquivos no chat antes do passo de commit.
@@ -431,6 +432,7 @@
431
432
  - [ ] **Máximo 5 arquivos afetados**
432
433
  - [ ] **Sem migrations**
433
434
  - [ ] **Tarefa de teste incluída (framework correto do projeto)**
435
+ - [ ] **Loop de bug não trivial registrado: comando antes do fix + comando depois do fix, ou bloqueio HITL com tentativas + artefato/acesso solicitado**
434
436
  - [ ] Aguardando aprovação antes de executar
435
437
  - [ ] **`.dw/bugfixes/NNN-<slug>/{TASK,fix-report,SUMMARY}.md` escritos após verify PASS**
436
438