@polymorphism-tech/morph-spec 4.10.0 → 4.10.2

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 (71) hide show
  1. package/README.md +2 -2
  2. package/claude-plugin.json +1 -1
  3. package/docs/CHEATSHEET.md +1 -1
  4. package/docs/QUICKSTART.md +1 -1
  5. package/framework/CLAUDE.md +5 -69
  6. package/framework/agents/backend/api-designer.md +3 -0
  7. package/framework/agents/backend/dotnet-senior.md +3 -0
  8. package/framework/agents/backend/ef-modeler.md +2 -0
  9. package/framework/agents/backend/hangfire-orchestrator.md +2 -0
  10. package/framework/agents/backend/ms-agent-expert.md +2 -0
  11. package/framework/agents/frontend/blazor-builder.md +2 -0
  12. package/framework/agents/frontend/nextjs-expert.md +2 -0
  13. package/framework/agents/infrastructure/azure-architect.md +2 -0
  14. package/framework/agents/infrastructure/azure-deploy-specialist.md +2 -0
  15. package/framework/agents/infrastructure/bicep-architect.md +2 -0
  16. package/framework/agents/infrastructure/container-specialist.md +2 -0
  17. package/framework/agents/infrastructure/devops-engineer.md +3 -0
  18. package/framework/agents/infrastructure/infra-architect.md +3 -0
  19. package/framework/agents/integrations/asaas-financial.md +2 -0
  20. package/framework/agents/integrations/azure-identity.md +2 -0
  21. package/framework/agents/integrations/clerk-auth.md +3 -0
  22. package/framework/agents/integrations/hangfire-integration.md +2 -0
  23. package/framework/agents/integrations/resend-email.md +2 -0
  24. package/framework/commands/morph-apply.md +151 -161
  25. package/framework/commands/morph-archive.md +28 -28
  26. package/framework/commands/morph-infra.md +79 -79
  27. package/framework/commands/morph-preflight.md +92 -56
  28. package/framework/commands/morph-proposal.md +94 -70
  29. package/framework/commands/morph-status.md +31 -31
  30. package/framework/commands/morph-troubleshoot.md +63 -60
  31. package/framework/rules/csharp-standards.md +3 -0
  32. package/framework/rules/frontend-standards.md +2 -0
  33. package/framework/rules/infrastructure-standards.md +3 -0
  34. package/framework/rules/morph-workflow.md +57 -2
  35. package/framework/rules/nextjs-standards.md +2 -0
  36. package/framework/rules/testing-standards.md +3 -0
  37. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +54 -49
  38. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +42 -19
  39. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +8 -5
  40. package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +7 -5
  41. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +139 -136
  42. package/framework/skills/level-0-meta/morph-init/SKILL.md +42 -13
  43. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +130 -130
  44. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +95 -87
  45. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +24 -0
  46. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +42 -41
  47. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +22 -11
  48. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +123 -114
  49. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +120 -102
  50. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +206 -214
  51. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
  52. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +241 -360
  53. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +107 -115
  54. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +135 -135
  55. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
  56. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +143 -139
  57. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +168 -165
  58. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +57 -8
  59. package/package.json +3 -3
  60. package/src/commands/project/doctor.js +7 -2
  61. package/src/commands/project/update.js +4 -4
  62. package/src/lib/stack-filter.js +58 -0
  63. package/src/scripts/setup-infra.js +53 -18
  64. package/src/utils/agents-installer.js +19 -5
  65. package/src/utils/claude-md-injector.js +90 -0
  66. package/src/utils/hooks-installer.js +1 -4
  67. package/src/utils/skills-installer.js +67 -7
  68. package/CLAUDE.md +0 -98
  69. package/framework/memory/patterns-learned.md +0 -766
  70. package/framework/skills/level-0-meta/morph-terminal-title/SKILL.md +0 -61
  71. package/framework/skills/level-0-meta/morph-terminal-title/scripts/set_title.sh +0 -65
@@ -4,305 +4,309 @@ description: MORPH-SPEC Phase 4 (Tasks). Breaks approved spec into bottom-up ord
4
4
  argument-hint: "[feature-name]"
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
7
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep
8
- cliVersion: "4.10.0"
7
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
8
+ cliVersion: "4.10.2"
9
9
  ---
10
10
 
11
- # MORPH Tasks - FASE 4
11
+ # MORPH Tasks Phase 4
12
12
 
13
13
  > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
14
14
 
15
- Quebre a especificação em tasks executáveis, defina ordem de execução e estabeleça checkpoints.
15
+ Break the approved specification into executable tasks, define execution order, and establish checkpoints.
16
16
 
17
- ## Pré-requisitos
17
+ ## Prerequisites
18
18
 
19
- - [ ] FASE 3 (Clarify) concluída
20
- - [ ] `spec.md` atualizado com clarificações
21
- - [ ] Todos os edge cases documentados
19
+ - [ ] Phase 3 (Clarify) completed
20
+ - [ ] `spec.md` updated with clarifications
21
+ - [ ] All edge cases documented
22
22
 
23
- ## Ferramentas Recomendadas
23
+ ## Recommended Tools
24
24
 
25
- > **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md` para guia completo.
26
- > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
25
+ > **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md` for complete guide.
26
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` for MCP reference.
27
27
  > **Example:** `references/tasks-example.md` — filled-in tasks.md showing expected granularity and format.
28
28
  > **Script:** `scripts/validate-tasks.mjs` — validates tasks.md structure, T### IDs, and required fields.
29
29
 
30
- | Ação | Ferramenta | Alternativa |
31
- |------|------------|-------------|
32
- | Ler spec + contracts + decisions | **Read** todos os outputs | — |
33
- | Analisar complexidade de implementação | **Grep** padrões no código existente | — |
34
- | Contar padrões similares existentes | **Glob** `**/Services/**/*.cs` | — |
35
- | Consultar padrões de implementação | **Context7 MCP** `query_docs()` | **WebSearch** |
36
- | Criar issues no GitHub a partir das tasks | **GitHub MCP** `create_issue()` | **Bash** `gh issue create ...` |
37
- | Renderizar template de tasks | **Bash** `npx morph-spec template render docs/tasks ...` | — |
38
- | Atualizar state com total de tasks | **Bash** `npx morph-spec state set ... tasks.total N` | — |
39
-
40
- **MCPs desta fase:** Context7 (estimar complexidade), GitHub (criar issues).
41
-
42
- **Anti-padrões:**
43
- - Task agent para quebrar spec simples de 1 domínio (faça diretamente)
44
- - Task agent para specs multi-domínio (backend + frontend + infra = 3 planners em paralelo)
45
- - Task agent quando spec tem 20+ requisitos em múltiplos bounded contexts
46
- - Criar tasks.json sem ler todos os outputs primeiro
47
- - **(VSA)** Criar tasks separadas para Handler, Validator e Endpoint um slice = uma task
48
- - **(VSA)** Usar categorias DDD (`domain`, `application`, `infrastructure`) em projetos VSA
49
- - **(VSA)** Criar task de "Implementar Service layer" não existe em VSA
30
+ | Action | Tool | Alternative |
31
+ |--------|------|-------------|
32
+ | Read spec + contracts + decisions | **Read** all outputs | — |
33
+ | Analyze implementation complexity | **Grep** patterns in existing code | — |
34
+ | Count similar existing patterns | **Glob** `**/Services/**/*.cs` | — |
35
+ | Look up implementation patterns | **Context7 MCP** `query_docs()` | **WebSearch** |
36
+ | Create GitHub issues from tasks | **GitHub MCP** `create_issue()` | **Bash** `gh issue create ...` |
37
+ | Render tasks template | **Bash** `npx morph-spec template render docs/tasks ...` | — |
38
+ | Update state with task count | **Bash** `npx morph-spec state set ... tasks.total N` | — |
39
+
40
+ **Phase MCPs:** Context7 (estimate complexity), GitHub (create issues).
41
+
42
+ **Anti-patterns:**
43
+ - Task agent to break down a simple single-domain spec (do it directly)
44
+ - Creating tasks without reading all design outputs first
45
+ - **(VSA)** Creating separate tasks for Handler, Validator, and Endpoint one slice = one task
46
+ - **(VSA)** Using DDD categories (`domain`, `application`, `infrastructure`) in VSA projects — use VSA categories: `entity`, `errors`, `tags`, `migration`, `slice`, `frontend`, `tests`
47
+ - **(VSA)** Creating a "Implement Service layer" task there is no Service layer in VSA
48
+ - Using vague effort labels ("Low", "Medium", "S/M") always use specific minute estimates
49
+ - Using non-standard task IDs (TASK-001, T01) always use **T001** format (T + 3 digits)
50
50
 
51
51
  ---
52
52
 
53
- ## PRÉ-VOO OBRIGATÓRIO (antes de iniciar breakdown de tasks)
53
+ ## Pre-flight (before starting task breakdown)
54
54
 
55
- ### 0. Garantir fase tasks
55
+ ### 0. Ensure tasks phase
56
56
 
57
57
  ```bash
58
58
  npx morph-spec state get $ARGUMENTS
59
59
  ```
60
60
 
61
- Verifique o campo `"phase"` no output:
61
+ Check the `"phase"` field:
62
62
 
63
- **Se `"phase": "tasks"`** → fase correta, prossiga.
63
+ **If `"phase": "tasks"`** → correct phase, proceed.
64
64
 
65
- **Se `"phase": "clarify"`** → execute em sequência:
65
+ **If `"phase": "clarify"`** → run in sequence:
66
66
  1. `npx morph-spec state mark-output $ARGUMENTS clarifications`
67
67
  2. `npx morph-spec phase advance $ARGUMENTS` (→ tasks)
68
68
 
69
- **Qualquer outro valor** → não prossiga estado inconsistente, reporte ao usuário.
69
+ **Any other value** → STOPinconsistent state, report to user.
70
70
 
71
- > **Regra:** Nunca escreva em `4-tasks/` enquanto a fase não for `tasks`. O hook bloqueará a escrita.
71
+ > **Rule:** Never write to `4-tasks/` until the phase is `tasks`. The hook will block writes.
72
72
 
73
73
  ---
74
74
 
75
- ### 1. Ler todos os prerequisitos em PARALELO
75
+ ### 1. Read all prerequisites in PARALLEL
76
76
 
77
77
  ```
78
- # Uma única chamada, não sequencial:
78
+ # Single parallel call, not sequential:
79
79
  Read: .morph/features/{feature}/1-design/spec.md
80
- + Read: .morph/features/{feature}/1-design/contracts.cs
80
+ + Read: .morph/features/{feature}/1-design/contracts.cs (or contracts.ts for TypeScript projects)
81
81
  + Read: .morph/features/{feature}/1-design/decisions.md
82
- + Read: .morph/features/{feature}/1-design/schema-analysis.md (se existir)
82
+ + Read: .morph/features/{feature}/1-design/schema-analysis.md (if exists)
83
83
  + Read: .morph/config/config.json (→ architecture.style)
84
84
  ```
85
85
 
86
- ### 2. Criar tasks de sessão para visibilidade
86
+ ### 2. Create session tasks for visibility
87
87
 
88
88
  ```
89
- TaskCreate: "Analisar spec e definir tasks" → activeForm: "Analisando spec"
90
- TaskCreate: "Gerar tasks.md" → activeForm: "Gerando tasks.md"
91
- TaskCreate: "Avanço de fase" → activeForm: "Avançando fase"
89
+ TaskCreate: "Analyze spec and define tasks" → activeForm: "Analyzing spec"
90
+ TaskCreate: "Generate tasks.md" → activeForm: "Generating tasks.md"
91
+ TaskCreate: "Phase advance" → activeForm: "Advancing phase"
92
92
  ```
93
93
 
94
- > **Nota:** As tasks individuais T001-T00N serão criadas como native tasks durante a fase de implementação (`phase-implement`). Aqui mantemos apenas as 3 tasks de alto nível desta sessão de planejamento.
94
+ > **Note:** Individual T001-T00N tasks are created as native tasks during the implementation phase (`phase-implement`). Here we only keep the 3 high-level tasks for this planning session.
95
95
 
96
96
  ---
97
97
 
98
- ## Workflow
99
-
100
- ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
98
+ ### 3. Entry checkpoint — verify prerequisites
101
99
 
102
- **⏸️ PAUSE - Antes de iniciar o breakdown de tasks:**
100
+ Before starting the breakdown:
103
101
 
104
- - [ ] `spec.md` existe e foi aprovado pelo usuário?
105
- - [ ] `contracts.cs` existe e corresponde ao schema real?
106
- - [ ] `schema-analysis.md` foi validado (se aplicável)?
107
- - [ ] `decisions.md` contém ADRs para todas as escolhas críticas?
108
- - [ ] Design gate (`morph-spec approve $ARGUMENTS design`) foi aprovado?
109
- - [ ] Clarificações (FASE 3) foram resolvidas e spec atualizado?
102
+ - [ ] `spec.md` exists and approved by user?
103
+ - [ ] `contracts.cs`/`.ts` exists and matches real schema?
104
+ - [ ] `schema-analysis.md` validated (if applicable)?
105
+ - [ ] `decisions.md` contains ADRs for all critical choices?
106
+ - [ ] Design gate (`morph-spec approve $ARGUMENTS design`) approved?
107
+ - [ ] Clarifications (Phase 3) resolved and spec updated?
110
108
 
111
- **❌ Se alguma checkbox NÃO estiver marcada:**
112
- → Voltar para a fase correspondente e resolver
113
-
114
- **✅ Se TODAS as checkboxes estiverem marcadas:**
115
- → Prosseguir para análise e breakdown
109
+ If any checkbox is NOT checked → return to corresponding phase and resolve.
116
110
 
117
111
  ```bash
118
- # Verificar estado atual:
119
112
  npx morph-spec state get $ARGUMENTS
120
- # Verificar se design foi aprovado:
121
113
  npx morph-spec approval-status $ARGUMENTS
122
114
  ```
123
115
 
124
116
  ---
125
117
 
126
- ### Passo 0: Detectar Estilo de Arquitetura
118
+ ## Workflow
119
+
120
+ ### Step 0: Detect Architecture Style
127
121
 
128
- Antes de tudo, determine se o projeto é VSA ou DDD:
122
+ Before anything else, determine if the project is VSA or DDD:
129
123
 
130
124
  ```bash
131
125
  cat .morph/config/config.json | grep -A3 '"architecture"'
132
126
  ```
133
127
 
134
- **Se `config.architecture.style === "vertical-slice"`** → siga o **Passo 0.5 (VSA)** e pule o Passo 0 DDD.
135
- **Caso contrário** → siga o **Passo 0.6 (DDD)** abaixo.
128
+ **If `config.architecture.style === "vertical-slice"`** → follow **Step 0.5 (VSA)** and skip DDD path.
129
+ **Otherwise** → follow **Step 0.6 (DDD)** below.
136
130
 
137
131
  ---
138
132
 
139
- ### Passo 0.5: Plano de Tasks — VSA
133
+ ### Step 0.5: VSA Task Plan
140
134
 
141
- > Para padrões de tarefas VSA e mapeamento DDD por nível, veja `references/task-planning-patterns.md`
135
+ > For VSA task patterns and DDD-level mappings, see `references/task-planning-patterns.md`
142
136
 
143
- Leia a seção `## Architecture Style: Vertical Slice` do spec.md para o **VSA Blueprint**:
137
+ Read the `## Architecture Style: Vertical Slice` section from spec.md for the **VSA Blueprint**:
144
138
 
145
139
  ```bash
146
140
  grep -A30 "## Architecture Style" ".morph/features/$ARGUMENTS/1-design/spec.md"
147
141
  ```
148
142
 
149
- Crie uma task por slice (entity → errors → tags → migration → slices CRUD → slices custom → tests). Cada slice = Handler + Validator + Endpoint numa única task. `GetAll` não tem Validator.
143
+ Create one task per slice following this order: entity → errors → tags → migration → CRUD slices → custom slices frontend → tests. Each slice = Handler + Validator + Endpoint in a **single task**. `GetAll` operations do NOT have a Validator (no input parameters to validate).
144
+
145
+ Use VSA-specific categories: `entity`, `errors`, `tags`, `migration`, `slice`, `frontend`, `tests`.
150
146
 
151
- **Após definir tasks VSA, pule direto para o Passo 3 (Dependências).**
147
+ **After defining VSA tasks, skip directly to Step 3 (Dependencies).**
152
148
 
153
149
  ---
154
150
 
155
- ### Passo 0.6: Ler Nível de Domínio — DDD
151
+ ### Step 0.6: Read Domain Level — DDD
156
152
 
157
- Leia a seção `## Domain Complexity` do spec.md:
153
+ Read the `## Domain Complexity` section from spec.md:
158
154
 
159
155
  ```bash
160
156
  grep -A15 "## Domain Complexity" ".morph/features/$ARGUMENTS/1-design/spec.md"
161
157
  ```
162
158
 
163
- > Se a seção não existir, assuma **Nível 1 (CRUD)**.
159
+ > If the section doesn't exist, assume **Level 1 (CRUD)**.
164
160
 
165
- Use o nível para restringir categorias (Nível 1: domain→infra→application→presentation→tests; Nível 2: adiciona AggregateRoot, ValueObjects, DomainEvents, CQRS handlers; Nível 3: adiciona BC setup, Integration Events). Ver `references/task-planning-patterns.md` para tabela completa.
161
+ Use the level to constrain categories:
162
+ - **Level 1**: domain → infrastructure → application → presentation → tests
163
+ - **Level 2**: adds AggregateRoot, ValueObjects, DomainEvents, CQRS handlers
164
+ - **Level 3**: adds BC setup, Integration Events
165
+
166
+ See `references/task-planning-patterns.md` for the complete table.
166
167
 
167
168
  ---
168
169
 
169
- ### Passo 1: Analisar Spec
170
+ ### Step 1: Analyze Spec
171
+
172
+ > **VSA:** If coming from Step 0.5, the task breakdown was already defined — use the generated examples as a base and skip to Step 3 (Dependencies).
170
173
 
171
- > **VSA:** Se veio do Passo 0.5, o breakdown de tasks já foi definido — use os exemplos gerados como base e pule para o Passo 3 (Dependências).
174
+ Read `.morph/features/$ARGUMENTS/1-design/spec.md` and identify:
172
175
 
173
- Leia `.morph/features/$ARGUMENTS/1-design/spec.md` e identifique:
176
+ 1. **Functional requirements** (FR001, FR002, ...)
177
+ 2. **Technical components** (Entities, Services/Slices, Controllers/Endpoints, Pages)
178
+ 3. **Infrastructure** (Bicep, migrations, configs)
179
+ 4. **Tests** (Unit tests, integration tests)
174
180
 
175
- 1. **Requisitos funcionais** (FR001, FR002, ...)
176
- 2. **Componentes técnicos** (Entities, Services/Slices, Controllers/Endpoints, Pages)
177
- 3. **Infraestrutura** (Bicep, migrations, configs)
178
- 4. **Testes** (Unit tests, integration tests)
181
+ ### Step 2: Break Into Tasks
179
182
 
180
- ### Passo 2: Quebrar em Tasks
183
+ > For structure, categories, and implementation order, see `references/task-planning-patterns.md`
181
184
 
182
- > Para estrutura JSON, categorias e ordem de implementação, veja `references/task-planning-patterns.md`
185
+ Create tasks using the **T{NNN}** format (T001, T002, ...) following bottom-up order: domain → infrastructure → application → presentation → tests → infra → docs.
183
186
 
184
- Crie tasks no formato **T{NNN}** seguindo bottom-up: domain infrastructure application presentation tests infra docs.
187
+ The T### format is mandatory it is used by `morph-spec task start/done` commands and the validate-tasks script. Do not use TASK-001, T01, or other formats.
185
188
 
186
- ### Passo 3: Definir Dependências
189
+ ### Step 3: Define Dependencies
187
190
 
188
- Para cada task, especifique dependências:
191
+ For each task, specify dependencies:
189
192
 
190
193
  ```json
191
194
  {
192
195
  "id": "T005",
193
- "title": "Criar {Nome}Service",
196
+ "title": "Create {Name}Service",
194
197
  "dependencies": ["T001", "T002"],
195
198
  "status": "pending"
196
199
  }
197
200
  ```
198
201
 
199
- **Regra:** Task pode ser executada quando todas as dependências estão `completed`.
202
+ **Rule:** A task can only be executed when all its dependencies are `completed`.
200
203
 
201
- ### Passo 4: Estabelecer Checkpoints
204
+ ### Step 4: Establish Checkpoints
202
205
 
203
- Defina checkpoints a cada **3 tasks** ou **marcos significativos**:
206
+ Define checkpoints after every **3 tasks** this cadence matches the implementation phase's checkpoint-save frequency. Regular checkpoints catch integration issues early rather than at the end.
204
207
 
205
208
  ```json
206
209
  {
207
210
  "id": "CHECKPOINT_001",
208
- "title": "Domain Layer Completo",
211
+ "title": "Domain Layer Complete",
209
212
  "afterTasks": ["T001", "T002", "T003"],
210
213
  "validations": [
211
- "Todas as entities criadas",
212
- "Migrations aplicadas",
213
- "Testes de domain passando"
214
+ "All entities created",
215
+ "Migrations applied",
216
+ "Domain tests passing"
214
217
  ]
215
218
  }
216
219
  ```
217
220
 
218
- ### Passo 5: Estimar Esforço
221
+ ### Step 5: Estimate Effort
219
222
 
220
- Para cada task, estime tempo em minutos:
223
+ For each task, estimate time **in minutes** (not vague labels like "Low/Medium"). Specific estimates help the plan phase determine execution strategy and parallelization.
221
224
 
222
- | Complexidade | Tempo Estimado |
223
- |--------------|----------------|
224
- | Trivial (CRUD básico) | 15-30 min |
225
- | Simples (Service, Controller) | 30-60 min |
226
- | Média (Business logic, validações) | 60-120 min |
227
- | Complexa (Integrações, AI) | 120-240 min |
225
+ | Complexity | Estimated Time |
226
+ |------------|----------------|
227
+ | Trivial (basic CRUD) | 15-30 min |
228
+ | Simple (Service, Controller) | 30-60 min |
229
+ | Medium (Business logic, validations) | 60-120 min |
230
+ | Complex (Integrations, AI) | 120-240 min |
228
231
 
229
- ### Passo 6: Gerar `tasks.md`
232
+ ### Step 6: Generate `tasks.md`
230
233
 
231
- Crie `.morph/features/$ARGUMENTS/4-tasks/tasks.md` com a estrutura completa de tasks, checkpoints e estimativas.
234
+ Create `.morph/features/$ARGUMENTS/4-tasks/tasks.md` with the complete task structure, checkpoints, and estimates.
232
235
 
233
- ### Passo 7: Incluir Tasks de IaC (se necessário)
236
+ ### Step 7: Include IaC Tasks (if needed)
234
237
 
235
- Se houver recursos Azure, adicionar tasks de Bicep e migrations.
238
+ If there are Azure resources, add Bicep and migration tasks.
236
239
 
237
- ### Passo 8: Atualizar State
240
+ ### Step 8: Update State
238
241
 
239
242
  ```bash
240
243
  npx morph-spec state set $ARGUMENTS tasks.total {N}
241
244
  npx morph-spec state mark-output $ARGUMENTS tasks
242
245
  ```
243
246
 
244
- ## Outputs Gerados
247
+ ## Outputs
245
248
 
246
- - `.morph/features/$ARGUMENTS/4-tasks/tasks.md` - Breakdown completo de tasks
249
+ - `.morph/features/$ARGUMENTS/4-tasks/tasks.md` Complete task breakdown
247
250
 
248
- ## PAUSA OBRIGATÓRIA
251
+ ## Mandatory Approval Pause
249
252
 
250
- Use `AskUserQuestion` para capturar aprovação explícita antes de avançar:
253
+ Use `AskUserQuestion` to capture explicit approval before advancing. This gate prevents implementation from starting with an unapproved task list.
251
254
 
252
255
  ```json
253
256
  {
254
257
  "questions": [{
255
- "header": "Aprovação",
256
- "question": "Tasks geradas. Aprovar para iniciar implementação?",
258
+ "header": "Approval",
259
+ "question": "Tasks generated. Approve to start implementation?",
257
260
  "multiSelect": false,
258
261
  "options": [
259
- { "label": "Aprovar e implementar", "description": "Avançar para fase de implementação" },
260
- { "label": "Tenho feedback", "description": "Digite o que deseja mudar no campo abaixo (Other)" }
262
+ { "label": "Approve and implement", "description": "Advance to implementation phase" },
263
+ { "label": "I have feedback", "description": "Type what you want to change" }
261
264
  ]
262
265
  }]
263
266
  }
264
267
  ```
265
268
 
266
- - **"Aprovar e implementar"** →
269
+ - **"Approve and implement"** →
267
270
  ```bash
268
271
  npx morph-spec approve $ARGUMENTS tasks
269
272
  npx morph-spec phase advance $ARGUMENTS
270
273
  ```
271
- - **"Tenho feedback" ou "Other"** → aplique o feedback recebido e repita esta PAUSA
274
+ - **"I have feedback" or "Other"** → apply the feedback and repeat this PAUSE
272
275
 
273
- ## Critérios de Avanço
276
+ ## Completion Criteria
274
277
 
275
- - [x] `tasks.json` criado com todas as tasks
276
- - [x] Tasks categorizadas corretamente
277
- - [x] Dependências mapeadas
278
- - [x] Checkpoints definidos (a cada 3 tasks)
279
- - [x] Esforço estimado por task
280
- - [x] Ordem de execução clara
281
- - [x] Tasks de IaC incluídas (se aplicável)
282
- - [x] State atualizado com total de tasks
283
- - [x] Usuário aprovou breakdown
278
+ - [x] `tasks.md` created with all tasks
279
+ - [x] Tasks use T### format (T001, T002, ...) consistently
280
+ - [x] Tasks categorized correctly (DDD layers or VSA categories)
281
+ - [x] Dependencies mapped
282
+ - [x] Checkpoints defined (every 3 tasks)
283
+ - [x] Effort estimated in minutes per task
284
+ - [x] Execution order clear
285
+ - [x] IaC tasks included (if applicable)
286
+ - [x] State updated with total tasks (`state set tasks.total`)
287
+ - [x] User approved breakdown via `AskUserQuestion`
284
288
 
285
289
  ---
286
290
 
287
- ## Integração com Superpowers
291
+ ## Superpowers Integration
288
292
 
289
- > Disponível quando o plugin `superpowers` está instalado.
293
+ > Available when the `superpowers` plugin is installed.
290
294
 
291
- | Skill | Quando Usar | Invocação |
295
+ | Skill | When to Use | Invocation |
292
296
  |-------|-------------|-----------|
293
- | `writing-plans` | Após breakdown de tasks, para planejar sequência de implementação | `Skill(superpowers:writing-plans)` |
294
- | `executing-plans` | Para executar o plano de tasks em sessão separada | `Skill(superpowers:executing-plans)` |
297
+ | `writing-plans` | After task breakdown, to plan implementation sequence | `Skill(superpowers:writing-plans)` |
298
+ | `executing-plans` | To execute the task plan in a separate session | `Skill(superpowers:executing-plans)` |
295
299
 
296
300
  ---
297
301
 
298
- ## Outputs desta Fase
302
+ ## Phase Outputs
299
303
 
300
304
  <!-- morph:outputs:tasks -->
301
- | Output | Caminho |
302
- |--------|---------|
305
+ | Output | Path |
306
+ |--------|------|
303
307
  | `tasks` | `.morph/features/{feature}/4-tasks/tasks.md` |
304
308
  <!-- /morph:outputs -->
305
309
 
306
310
  ---
307
311
 
308
- Após aprovação: "Planejamento completo! Execute `/morph-apply $ARGUMENTS` para iniciar implementação."
312
+ After approval: "Planning complete! Run `/morph-apply $ARGUMENTS` to start implementation."