@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.
- package/README.md +2 -2
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +5 -69
- package/framework/agents/backend/api-designer.md +3 -0
- package/framework/agents/backend/dotnet-senior.md +3 -0
- package/framework/agents/backend/ef-modeler.md +2 -0
- package/framework/agents/backend/hangfire-orchestrator.md +2 -0
- package/framework/agents/backend/ms-agent-expert.md +2 -0
- package/framework/agents/frontend/blazor-builder.md +2 -0
- package/framework/agents/frontend/nextjs-expert.md +2 -0
- package/framework/agents/infrastructure/azure-architect.md +2 -0
- package/framework/agents/infrastructure/azure-deploy-specialist.md +2 -0
- package/framework/agents/infrastructure/bicep-architect.md +2 -0
- package/framework/agents/infrastructure/container-specialist.md +2 -0
- package/framework/agents/infrastructure/devops-engineer.md +3 -0
- package/framework/agents/infrastructure/infra-architect.md +3 -0
- package/framework/agents/integrations/asaas-financial.md +2 -0
- package/framework/agents/integrations/azure-identity.md +2 -0
- package/framework/agents/integrations/clerk-auth.md +3 -0
- package/framework/agents/integrations/hangfire-integration.md +2 -0
- package/framework/agents/integrations/resend-email.md +2 -0
- package/framework/commands/morph-apply.md +151 -161
- package/framework/commands/morph-archive.md +28 -28
- package/framework/commands/morph-infra.md +79 -79
- package/framework/commands/morph-preflight.md +92 -56
- package/framework/commands/morph-proposal.md +94 -70
- package/framework/commands/morph-status.md +31 -31
- package/framework/commands/morph-troubleshoot.md +63 -60
- package/framework/rules/csharp-standards.md +3 -0
- package/framework/rules/frontend-standards.md +2 -0
- package/framework/rules/infrastructure-standards.md +3 -0
- package/framework/rules/morph-workflow.md +57 -2
- package/framework/rules/nextjs-standards.md +2 -0
- package/framework/rules/testing-standards.md +3 -0
- package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +54 -49
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +42 -19
- package/framework/skills/level-0-meta/morph-code-review/SKILL.md +8 -5
- package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +7 -5
- package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +139 -136
- package/framework/skills/level-0-meta/morph-init/SKILL.md +42 -13
- package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +130 -130
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +95 -87
- package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +24 -0
- package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +42 -41
- package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +22 -11
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +123 -114
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +120 -102
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +206 -214
- package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +241 -360
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +107 -115
- package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +135 -135
- package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +143 -139
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +168 -165
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +57 -8
- package/package.json +3 -3
- package/src/commands/project/doctor.js +7 -2
- package/src/commands/project/update.js +4 -4
- package/src/lib/stack-filter.js +58 -0
- package/src/scripts/setup-infra.js +53 -18
- package/src/utils/agents-installer.js +19 -5
- package/src/utils/claude-md-injector.js +90 -0
- package/src/utils/hooks-installer.js +1 -4
- package/src/utils/skills-installer.js +67 -7
- package/CLAUDE.md +0 -98
- package/framework/memory/patterns-learned.md +0 -766
- package/framework/skills/level-0-meta/morph-terminal-title/SKILL.md +0 -61
- 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.
|
|
7
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
8
|
+
cliVersion: "4.10.2"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# MORPH Tasks
|
|
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
|
-
|
|
15
|
+
Break the approved specification into executable tasks, define execution order, and establish checkpoints.
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Prerequisites
|
|
18
18
|
|
|
19
|
-
- [ ]
|
|
20
|
-
- [ ] `spec.md`
|
|
21
|
-
- [ ]
|
|
19
|
+
- [ ] Phase 3 (Clarify) completed
|
|
20
|
+
- [ ] `spec.md` updated with clarifications
|
|
21
|
+
- [ ] All edge cases documented
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Recommended Tools
|
|
24
24
|
|
|
25
|
-
> **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md`
|
|
26
|
-
> **Ref:** `framework/standards/integration/mcp/mcp-tools.md`
|
|
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
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
40
|
-
**MCPs
|
|
41
|
-
|
|
42
|
-
**Anti-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
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
|
-
##
|
|
53
|
+
## Pre-flight (before starting task breakdown)
|
|
54
54
|
|
|
55
|
-
### 0.
|
|
55
|
+
### 0. Ensure tasks phase
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
npx morph-spec state get $ARGUMENTS
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Check the `"phase"` field:
|
|
62
62
|
|
|
63
|
-
**
|
|
63
|
+
**If `"phase": "tasks"`** → correct phase, proceed.
|
|
64
64
|
|
|
65
|
-
**
|
|
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
|
-
**
|
|
69
|
+
**Any other value** → STOP — inconsistent state, report to user.
|
|
70
70
|
|
|
71
|
-
> **
|
|
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.
|
|
75
|
+
### 1. Read all prerequisites in PARALLEL
|
|
76
76
|
|
|
77
77
|
```
|
|
78
|
-
#
|
|
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 (
|
|
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.
|
|
86
|
+
### 2. Create session tasks for visibility
|
|
87
87
|
|
|
88
88
|
```
|
|
89
|
-
TaskCreate: "
|
|
90
|
-
TaskCreate: "
|
|
91
|
-
TaskCreate: "
|
|
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
|
-
> **
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
|
|
98
|
+
### 3. Entry checkpoint — verify prerequisites
|
|
101
99
|
|
|
102
|
-
|
|
100
|
+
Before starting the breakdown:
|
|
103
101
|
|
|
104
|
-
- [ ] `spec.md`
|
|
105
|
-
- [ ] `contracts.cs`
|
|
106
|
-
- [ ] `schema-analysis.md`
|
|
107
|
-
- [ ] `decisions.md`
|
|
108
|
-
- [ ] Design gate (`morph-spec approve $ARGUMENTS design`)
|
|
109
|
-
- [ ]
|
|
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
|
-
|
|
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
|
-
|
|
118
|
+
## Workflow
|
|
119
|
+
|
|
120
|
+
### Step 0: Detect Architecture Style
|
|
127
121
|
|
|
128
|
-
|
|
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
|
-
**
|
|
135
|
-
**
|
|
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
|
-
###
|
|
133
|
+
### Step 0.5: VSA Task Plan
|
|
140
134
|
|
|
141
|
-
>
|
|
135
|
+
> For VSA task patterns and DDD-level mappings, see `references/task-planning-patterns.md`
|
|
142
136
|
|
|
143
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
147
|
+
**After defining VSA tasks, skip directly to Step 3 (Dependencies).**
|
|
152
148
|
|
|
153
149
|
---
|
|
154
150
|
|
|
155
|
-
###
|
|
151
|
+
### Step 0.6: Read Domain Level — DDD
|
|
156
152
|
|
|
157
|
-
|
|
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
|
-
>
|
|
159
|
+
> If the section doesn't exist, assume **Level 1 (CRUD)**.
|
|
164
160
|
|
|
165
|
-
Use
|
|
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
|
-
###
|
|
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
|
-
|
|
174
|
+
Read `.morph/features/$ARGUMENTS/1-design/spec.md` and identify:
|
|
172
175
|
|
|
173
|
-
|
|
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
|
-
|
|
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
|
-
|
|
183
|
+
> For structure, categories, and implementation order, see `references/task-planning-patterns.md`
|
|
181
184
|
|
|
182
|
-
|
|
185
|
+
Create tasks using the **T{NNN}** format (T001, T002, ...) following bottom-up order: domain → infrastructure → application → presentation → tests → infra → docs.
|
|
183
186
|
|
|
184
|
-
|
|
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
|
-
###
|
|
189
|
+
### Step 3: Define Dependencies
|
|
187
190
|
|
|
188
|
-
|
|
191
|
+
For each task, specify dependencies:
|
|
189
192
|
|
|
190
193
|
```json
|
|
191
194
|
{
|
|
192
195
|
"id": "T005",
|
|
193
|
-
"title": "
|
|
196
|
+
"title": "Create {Name}Service",
|
|
194
197
|
"dependencies": ["T001", "T002"],
|
|
195
198
|
"status": "pending"
|
|
196
199
|
}
|
|
197
200
|
```
|
|
198
201
|
|
|
199
|
-
**
|
|
202
|
+
**Rule:** A task can only be executed when all its dependencies are `completed`.
|
|
200
203
|
|
|
201
|
-
###
|
|
204
|
+
### Step 4: Establish Checkpoints
|
|
202
205
|
|
|
203
|
-
|
|
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
|
|
211
|
+
"title": "Domain Layer Complete",
|
|
209
212
|
"afterTasks": ["T001", "T002", "T003"],
|
|
210
213
|
"validations": [
|
|
211
|
-
"
|
|
212
|
-
"Migrations
|
|
213
|
-
"
|
|
214
|
+
"All entities created",
|
|
215
|
+
"Migrations applied",
|
|
216
|
+
"Domain tests passing"
|
|
214
217
|
]
|
|
215
218
|
}
|
|
216
219
|
```
|
|
217
220
|
|
|
218
|
-
###
|
|
221
|
+
### Step 5: Estimate Effort
|
|
219
222
|
|
|
220
|
-
|
|
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
|
-
|
|
|
223
|
-
|
|
224
|
-
| Trivial (CRUD
|
|
225
|
-
|
|
|
226
|
-
|
|
|
227
|
-
|
|
|
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
|
-
###
|
|
232
|
+
### Step 6: Generate `tasks.md`
|
|
230
233
|
|
|
231
|
-
|
|
234
|
+
Create `.morph/features/$ARGUMENTS/4-tasks/tasks.md` with the complete task structure, checkpoints, and estimates.
|
|
232
235
|
|
|
233
|
-
###
|
|
236
|
+
### Step 7: Include IaC Tasks (if needed)
|
|
234
237
|
|
|
235
|
-
|
|
238
|
+
If there are Azure resources, add Bicep and migration tasks.
|
|
236
239
|
|
|
237
|
-
###
|
|
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
|
|
247
|
+
## Outputs
|
|
245
248
|
|
|
246
|
-
- `.morph/features/$ARGUMENTS/4-tasks/tasks.md`
|
|
249
|
+
- `.morph/features/$ARGUMENTS/4-tasks/tasks.md` — Complete task breakdown
|
|
247
250
|
|
|
248
|
-
##
|
|
251
|
+
## Mandatory Approval Pause
|
|
249
252
|
|
|
250
|
-
Use `AskUserQuestion`
|
|
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": "
|
|
256
|
-
"question": "Tasks
|
|
258
|
+
"header": "Approval",
|
|
259
|
+
"question": "Tasks generated. Approve to start implementation?",
|
|
257
260
|
"multiSelect": false,
|
|
258
261
|
"options": [
|
|
259
|
-
{ "label": "
|
|
260
|
-
{ "label": "
|
|
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
|
-
- **"
|
|
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
|
-
- **"
|
|
274
|
+
- **"I have feedback" or "Other"** → apply the feedback and repeat this PAUSE
|
|
272
275
|
|
|
273
|
-
##
|
|
276
|
+
## Completion Criteria
|
|
274
277
|
|
|
275
|
-
- [x] `tasks.
|
|
276
|
-
- [x] Tasks
|
|
277
|
-
- [x]
|
|
278
|
-
- [x]
|
|
279
|
-
- [x]
|
|
280
|
-
- [x]
|
|
281
|
-
- [x]
|
|
282
|
-
- [x]
|
|
283
|
-
- [x]
|
|
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
|
-
##
|
|
291
|
+
## Superpowers Integration
|
|
288
292
|
|
|
289
|
-
>
|
|
293
|
+
> Available when the `superpowers` plugin is installed.
|
|
290
294
|
|
|
291
|
-
| Skill |
|
|
295
|
+
| Skill | When to Use | Invocation |
|
|
292
296
|
|-------|-------------|-----------|
|
|
293
|
-
| `writing-plans` |
|
|
294
|
-
| `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
|
|
302
|
+
## Phase Outputs
|
|
299
303
|
|
|
300
304
|
<!-- morph:outputs:tasks -->
|
|
301
|
-
| Output |
|
|
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
|
-
|
|
312
|
+
After approval: "Planning complete! Run `/morph-apply $ARGUMENTS` to start implementation."
|