specdacular 0.7.1 → 0.8.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.
- package/README.md +72 -74
- package/commands/specd/continue.md +59 -0
- package/commands/specd/new.md +65 -0
- package/commands/specd/status.md +1 -1
- package/commands/specd/toolbox.md +59 -0
- package/package.json +1 -1
- package/specdacular/HELP.md +19 -16
- package/specdacular/agents/feature-researcher.md +4 -4
- package/specdacular/references/load-context.md +83 -0
- package/specdacular/references/record-decision.md +61 -0
- package/specdacular/references/select-feature.md +20 -20
- package/specdacular/references/select-phase.md +3 -3
- package/specdacular/references/spawn-research-agents.md +180 -0
- package/specdacular/references/synthesize-research.md +127 -0
- package/specdacular/references/validate-task.md +64 -0
- package/specdacular/templates/{features → tasks}/CHANGELOG.md +2 -8
- package/specdacular/templates/{features → tasks}/CONTEXT.md +6 -17
- package/specdacular/templates/tasks/DECISIONS.md +46 -0
- package/specdacular/templates/{features → tasks}/FEATURE.md +3 -3
- package/specdacular/templates/tasks/PLAN.md +91 -0
- package/specdacular/templates/tasks/RESEARCH.md +121 -0
- package/specdacular/templates/{features → tasks}/ROADMAP.md +6 -43
- package/specdacular/templates/tasks/STATE.md +93 -0
- package/specdacular/templates/tasks/config.json +15 -0
- package/specdacular/workflows/continue.md +275 -0
- package/specdacular/workflows/discuss.md +184 -0
- package/specdacular/workflows/execute.md +174 -0
- package/specdacular/workflows/new.md +299 -0
- package/specdacular/workflows/orchestrator/new.md +265 -0
- package/specdacular/workflows/orchestrator/plan.md +169 -0
- package/specdacular/workflows/plan.md +201 -0
- package/specdacular/workflows/research.md +166 -0
- package/specdacular/workflows/review.md +289 -0
- package/specdacular/workflows/status.md +17 -17
- package/commands/specd/blueprint.md +0 -64
- package/commands/specd/feature/continue.md +0 -84
- package/commands/specd/feature/new.md +0 -67
- package/commands/specd/feature/toolbox.md +0 -49
- package/specdacular/templates/blueprint/index.html +0 -110
- package/specdacular/templates/blueprint/scripts.js +0 -71
- package/specdacular/templates/blueprint/styles.css +0 -429
- package/specdacular/templates/features/DECISIONS.md +0 -109
- package/specdacular/templates/features/DEPENDENCIES.md +0 -47
- package/specdacular/templates/features/PLAN.md +0 -180
- package/specdacular/templates/features/RESEARCH.md +0 -183
- package/specdacular/templates/features/STATE.md +0 -110
- package/specdacular/templates/features/config.json +0 -20
- package/specdacular/workflows/blueprint-diagrams.md +0 -273
- package/specdacular/workflows/blueprint-wireframes.md +0 -312
- package/specdacular/workflows/blueprint.md +0 -372
- package/specdacular/workflows/continue-feature.md +0 -621
- package/specdacular/workflows/discuss-feature.md +0 -382
- package/specdacular/workflows/execute-plan.md +0 -636
- package/specdacular/workflows/insert-phase.md +0 -246
- package/specdacular/workflows/new-feature.md +0 -760
- package/specdacular/workflows/plan-feature.md +0 -691
- package/specdacular/workflows/plan-phase.md +0 -355
- package/specdacular/workflows/prepare-phase.md +0 -745
- package/specdacular/workflows/renumber-phases.md +0 -273
- package/specdacular/workflows/research-feature.md +0 -252
- package/specdacular/workflows/research-phase.md +0 -576
- package/specdacular/workflows/review-feature.md +0 -316
- package/specdacular/workflows/review-phase.md +0 -545
|
@@ -1,636 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Execute a plan from a feature, tracking progress and logging deviations.
|
|
3
|
-
|
|
4
|
-
**Key principles:**
|
|
5
|
-
- Execute tasks in order with verification
|
|
6
|
-
- Auto-fix bugs/blockers, log to CHANGELOG.md
|
|
7
|
-
- Ask before architectural changes
|
|
8
|
-
- Stop on verification failure, let user decide
|
|
9
|
-
- Commit after each successful task
|
|
10
|
-
|
|
11
|
-
**Output:** Completed tasks, updated STATE.md, CHANGELOG.md entries
|
|
12
|
-
</purpose>
|
|
13
|
-
|
|
14
|
-
<philosophy>
|
|
15
|
-
|
|
16
|
-
## Deviations Are Normal
|
|
17
|
-
|
|
18
|
-
Plans are written in advance. Reality differs. The goal is controlled deviation:
|
|
19
|
-
- Small fixes: Just do it, log it
|
|
20
|
-
- Big changes: Ask first
|
|
21
|
-
|
|
22
|
-
## Auto-fix vs Ask First
|
|
23
|
-
|
|
24
|
-
**Auto-fix (log to CHANGELOG.md):**
|
|
25
|
-
- Bugs — Code doesn't work, logic errors, crashes
|
|
26
|
-
- Blockers — Missing imports, wrong paths, missing deps
|
|
27
|
-
- Missing critical — Error handling, validation needed for correctness
|
|
28
|
-
|
|
29
|
-
**Ask first:**
|
|
30
|
-
- New files not specified in plan
|
|
31
|
-
- Different approach than specified
|
|
32
|
-
- Architectural changes — new patterns, new dependencies
|
|
33
|
-
|
|
34
|
-
## Verification Is Non-Negotiable
|
|
35
|
-
|
|
36
|
-
Every task has verification. If it fails:
|
|
37
|
-
1. Show the output
|
|
38
|
-
2. Ask user: Retry / Skip / Stop
|
|
39
|
-
3. Log skips to CHANGELOG.md
|
|
40
|
-
|
|
41
|
-
## Progress Is Persistent
|
|
42
|
-
|
|
43
|
-
STATE.md tracks exactly where we are. If interrupted, we can resume.
|
|
44
|
-
|
|
45
|
-
</philosophy>
|
|
46
|
-
|
|
47
|
-
<process>
|
|
48
|
-
|
|
49
|
-
<step name="validate">
|
|
50
|
-
Validate feature exists and has plans.
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Check feature exists
|
|
54
|
-
[ -d ".specd/features/$ARGUMENTS" ] || { echo "not found"; exit 1; }
|
|
55
|
-
|
|
56
|
-
# Check plans exist
|
|
57
|
-
[ -d ".specd/features/$ARGUMENTS/plans" ] || { echo "no plans"; exit 1; }
|
|
58
|
-
|
|
59
|
-
# Check ROADMAP exists
|
|
60
|
-
[ -f ".specd/features/$ARGUMENTS/ROADMAP.md" ] || { echo "no roadmap"; exit 1; }
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**If feature not found:**
|
|
64
|
-
```
|
|
65
|
-
Feature '{name}' not found.
|
|
66
|
-
|
|
67
|
-
Run /specd:feature:new {name} to create it.
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**If no plans:**
|
|
71
|
-
```
|
|
72
|
-
Feature '{name}' has no plans yet.
|
|
73
|
-
|
|
74
|
-
Run /specd:feature:plan {name} to create a roadmap, then /specd:phase:plan {name} {N} to create plans.
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Continue to load_context.
|
|
78
|
-
</step>
|
|
79
|
-
|
|
80
|
-
<step name="load_context">
|
|
81
|
-
Load ALL context needed for execution.
|
|
82
|
-
|
|
83
|
-
**Read feature context:**
|
|
84
|
-
- `config.json` — Feature settings
|
|
85
|
-
- `.specd/config.json` — Global settings (check `auto_commit_code` and `auto_commit_docs`)
|
|
86
|
-
- `STATE.md` — Current progress, completed plans
|
|
87
|
-
- `DECISIONS.md` — Constraints to follow during implementation
|
|
88
|
-
- `RESEARCH.md` — Implementation notes, pitfalls (if exists)
|
|
89
|
-
- `ROADMAP.md` — Phase overview, plan order
|
|
90
|
-
|
|
91
|
-
**Read phase context (if available):**
|
|
92
|
-
- `plans/phase-{NN}/CONTEXT.md` — Phase-specific discussion resolutions
|
|
93
|
-
- `plans/phase-{NN}/RESEARCH.md` — Phase-specific research findings
|
|
94
|
-
|
|
95
|
-
**Read codebase context (if available):**
|
|
96
|
-
- `PATTERNS.md` — Code patterns to follow
|
|
97
|
-
- `STRUCTURE.md` — Where files go
|
|
98
|
-
- `MAP.md` — System overview
|
|
99
|
-
|
|
100
|
-
**Check for orchestrator mode:**
|
|
101
|
-
|
|
102
|
-
Read feature's `config.json`. If `"orchestrator": true`:
|
|
103
|
-
|
|
104
|
-
Set mode = "orchestrator".
|
|
105
|
-
|
|
106
|
-
**Load orchestrator context:**
|
|
107
|
-
- Orchestrator FEATURE.md — System-level expectations (used for contract validation)
|
|
108
|
-
- Orchestrator DEPENDENCIES.md — Cross-project dependency graph
|
|
109
|
-
- Orchestrator STATE.md — Which project/phase to execute
|
|
110
|
-
|
|
111
|
-
**Determine target project:**
|
|
112
|
-
From orchestrator STATE.md or arguments, identify which project and phase to execute.
|
|
113
|
-
Read the target project's feature context:
|
|
114
|
-
- `{project-path}/.specd/features/{feature-name}/config.json`
|
|
115
|
-
- `{project-path}/.specd/features/{feature-name}/STATE.md`
|
|
116
|
-
- `{project-path}/.specd/features/{feature-name}/ROADMAP.md`
|
|
117
|
-
- `{project-path}/.specd/features/{feature-name}/DECISIONS.md`
|
|
118
|
-
|
|
119
|
-
Read the project's codebase context:
|
|
120
|
-
- `{project-path}/.specd/codebase/PATTERNS.md`
|
|
121
|
-
- `{project-path}/.specd/codebase/STRUCTURE.md`
|
|
122
|
-
- `{project-path}/.specd/codebase/MAP.md`
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
Orchestrator mode: executing in {project-name} ({project-path}).
|
|
126
|
-
Feature: {feature-name}, Phase {N}.
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Continue to find_plan (with project-path-prefixed plan lookup).
|
|
130
|
-
|
|
131
|
-
**If not orchestrator:**
|
|
132
|
-
Set mode = "project".
|
|
133
|
-
|
|
134
|
-
**Internalize:**
|
|
135
|
-
- Which plans are complete (from STATE.md)
|
|
136
|
-
- Which phase we're in
|
|
137
|
-
- Key decisions affecting implementation
|
|
138
|
-
- Patterns to follow
|
|
139
|
-
- Phase-specific context and research (if phase:prepare/phase:research were run)
|
|
140
|
-
|
|
141
|
-
**Record phase start commit (DEC-012, DEC-013):**
|
|
142
|
-
|
|
143
|
-
Check `phases.current_status` from config.json:
|
|
144
|
-
|
|
145
|
-
**If `current_status` is `"pending"` or missing:**
|
|
146
|
-
This is the first plan execution for this phase. Record the starting point:
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
git rev-parse HEAD
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Update config.json:
|
|
153
|
-
- Set `phases.phase_start_commit` to the commit hash
|
|
154
|
-
- Set `phases.current_status` to `"executing"`
|
|
155
|
-
|
|
156
|
-
Commit the config update:
|
|
157
|
-
```bash
|
|
158
|
-
git add .specd/features/{feature}/config.json
|
|
159
|
-
git commit -m "docs({feature}): start phase {N} execution"
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
**If `current_status` is already `"executing"`:**
|
|
163
|
-
Phase execution is resuming after a context reset. No changes needed — `phase_start_commit` is already recorded.
|
|
164
|
-
|
|
165
|
-
Continue to find_plan.
|
|
166
|
-
</step>
|
|
167
|
-
|
|
168
|
-
<step name="find_plan">
|
|
169
|
-
Determine which plan to execute.
|
|
170
|
-
|
|
171
|
-
**If plan path provided in arguments:**
|
|
172
|
-
- Use that plan directly
|
|
173
|
-
- Verify it exists
|
|
174
|
-
|
|
175
|
-
**Else find next plan:**
|
|
176
|
-
1. Read STATE.md for current progress
|
|
177
|
-
2. Read ROADMAP.md for plan order
|
|
178
|
-
3. Find first plan without completion marker in STATE.md
|
|
179
|
-
4. Or first plan file in current phase directory
|
|
180
|
-
|
|
181
|
-
**If no plan found:**
|
|
182
|
-
```
|
|
183
|
-
All plans complete for '{name}'!
|
|
184
|
-
|
|
185
|
-
Feature execution finished. Review:
|
|
186
|
-
- STATE.md for summary
|
|
187
|
-
- CHANGELOG.md for deviations
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Present plan to execute:**
|
|
191
|
-
```
|
|
192
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
193
|
-
EXECUTE PLAN
|
|
194
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
195
|
-
|
|
196
|
-
**Feature:** {feature-name}
|
|
197
|
-
|
|
198
|
-
**Context loaded:**
|
|
199
|
-
- STATE.md: {phase X, N plans executed}
|
|
200
|
-
- DECISIONS.md: {N} decisions
|
|
201
|
-
- ROADMAP.md: {N} phases, {M} plans total
|
|
202
|
-
{If phase CONTEXT.md exists:}
|
|
203
|
-
- Phase CONTEXT.md: {N} gray areas resolved
|
|
204
|
-
{If phase RESEARCH.md exists:}
|
|
205
|
-
- Phase RESEARCH.md: patterns identified
|
|
206
|
-
|
|
207
|
-
**Settings:**
|
|
208
|
-
- Auto-commit code: {yes | no} (from .specd/config.json, default: yes)
|
|
209
|
-
- Auto-commit docs: {yes | no} (from .specd/config.json, default: yes)
|
|
210
|
-
|
|
211
|
-
**Next plan:** {plans/phase-XX/YY-PLAN.md}
|
|
212
|
-
**Objective:** {one-line from plan}
|
|
213
|
-
|
|
214
|
-
Proceed? [Y/n]
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
Use AskUserQuestion:
|
|
218
|
-
- header: "Execute"
|
|
219
|
-
- question: "Proceed with this plan?"
|
|
220
|
-
- options:
|
|
221
|
-
- "Yes, execute" — Continue to execute_tasks
|
|
222
|
-
- "Show plan first" — Read and display plan content, then ask again
|
|
223
|
-
- "Skip to different plan" — Ask for plan path
|
|
224
|
-
- "Cancel" — Exit workflow
|
|
225
|
-
|
|
226
|
-
Continue to execute_tasks.
|
|
227
|
-
</step>
|
|
228
|
-
|
|
229
|
-
<step name="execute_tasks">
|
|
230
|
-
Execute each task in the plan.
|
|
231
|
-
|
|
232
|
-
**Read plan file:**
|
|
233
|
-
Parse the plan to extract:
|
|
234
|
-
- Objective
|
|
235
|
-
- Tasks (numbered)
|
|
236
|
-
- For each task: files, action, pattern, verification, done criteria
|
|
237
|
-
|
|
238
|
-
**Update STATE.md:**
|
|
239
|
-
Set current plan and task:
|
|
240
|
-
```markdown
|
|
241
|
-
### Current Plan
|
|
242
|
-
- Plan: {path to current plan}
|
|
243
|
-
- Task: 1 of {N}
|
|
244
|
-
- Started: {YYYY-MM-DD HH:MM}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
**For each task:**
|
|
248
|
-
|
|
249
|
-
### 1. Announce task
|
|
250
|
-
```
|
|
251
|
-
───────────────────────────────────────────────────────
|
|
252
|
-
Executing Task {N}: {Title}
|
|
253
|
-
Files: {file list}
|
|
254
|
-
───────────────────────────────────────────────────────
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### 2. Implement task
|
|
258
|
-
Follow the plan's instructions:
|
|
259
|
-
- Create/modify specified files
|
|
260
|
-
- Follow patterns from codebase docs
|
|
261
|
-
- Reference DECISIONS.md for constraints
|
|
262
|
-
- Use code patterns from PATTERNS.md
|
|
263
|
-
|
|
264
|
-
### 3. Handle deviations during implementation
|
|
265
|
-
|
|
266
|
-
**If bug/blocker discovered:**
|
|
267
|
-
- Fix it immediately
|
|
268
|
-
- Log to CHANGELOG.md:
|
|
269
|
-
```markdown
|
|
270
|
-
### {YYYY-MM-DD} - Plan {phase-XX/YY}
|
|
271
|
-
|
|
272
|
-
**[Auto-fix] {Short description}**
|
|
273
|
-
- **What:** {What was fixed}
|
|
274
|
-
- **Why:** {Why it was needed}
|
|
275
|
-
- **Files:** `{affected files}`
|
|
276
|
-
```
|
|
277
|
-
- Continue implementation
|
|
278
|
-
|
|
279
|
-
**If architectural change needed:**
|
|
280
|
-
- Stop implementation
|
|
281
|
-
- Present to user:
|
|
282
|
-
```
|
|
283
|
-
Architectural change needed:
|
|
284
|
-
|
|
285
|
-
**What:** {Description of change}
|
|
286
|
-
**Why:** {Why plan approach won't work}
|
|
287
|
-
**Proposed:** {Alternative approach}
|
|
288
|
-
|
|
289
|
-
This differs from the plan. How to proceed?
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
Use AskUserQuestion:
|
|
293
|
-
- header: "Change"
|
|
294
|
-
- question: "This requires a change from the plan. Approve?"
|
|
295
|
-
- options:
|
|
296
|
-
- "Approve change" — Implement and log to CHANGELOG.md
|
|
297
|
-
- "Try plan approach" — Attempt original approach
|
|
298
|
-
- "Stop and discuss" — Pause execution
|
|
299
|
-
|
|
300
|
-
**If user approves change:**
|
|
301
|
-
- Implement the change
|
|
302
|
-
- Log to CHANGELOG.md:
|
|
303
|
-
```markdown
|
|
304
|
-
### {YYYY-MM-DD} - Plan {phase-XX/YY}
|
|
305
|
-
|
|
306
|
-
**[User-approved] {Short description}**
|
|
307
|
-
- **What:** {What was changed}
|
|
308
|
-
- **Why:** {Why plan approach didn't work}
|
|
309
|
-
- **Decision:** User approved alternative
|
|
310
|
-
- **Files:** `{affected files}`
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
### 4. Run verification
|
|
314
|
-
Execute the verification command from the task:
|
|
315
|
-
```bash
|
|
316
|
-
{verification command from plan}
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
**If verification passes:**
|
|
320
|
-
- Show: `Verification: {command} ✓`
|
|
321
|
-
- Continue to commit
|
|
322
|
-
|
|
323
|
-
**If verification fails:**
|
|
324
|
-
- Show output:
|
|
325
|
-
```
|
|
326
|
-
Verification failed for Task {N}: {Title}
|
|
327
|
-
|
|
328
|
-
Command: {verification command}
|
|
329
|
-
Output:
|
|
330
|
-
{actual output}
|
|
331
|
-
|
|
332
|
-
How to proceed?
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
Use AskUserQuestion:
|
|
336
|
-
- header: "Failed"
|
|
337
|
-
- question: "Verification failed. How to proceed?"
|
|
338
|
-
- options:
|
|
339
|
-
- "Retry task" — Go back to step 2 for this task
|
|
340
|
-
- "Skip task" — Log to CHANGELOG.md and continue
|
|
341
|
-
- "Stop execution" — Pause, save progress
|
|
342
|
-
|
|
343
|
-
**If skip:**
|
|
344
|
-
- Log to CHANGELOG.md:
|
|
345
|
-
```markdown
|
|
346
|
-
### {YYYY-MM-DD} - Plan {phase-XX/YY}
|
|
347
|
-
|
|
348
|
-
**[Skipped] Task {N}: {Title}**
|
|
349
|
-
- **Reason:** Verification failed, user chose to skip
|
|
350
|
-
- **Command:** `{verification command}`
|
|
351
|
-
- **Output:** {truncated output}
|
|
352
|
-
- **Files:** `{affected files}`
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### 5. Commit task (if auto_commit enabled)
|
|
356
|
-
|
|
357
|
-
@~/.claude/specdacular/references/commit-code.md
|
|
358
|
-
|
|
359
|
-
- **$FILES:** `{files from task}`
|
|
360
|
-
- **$MESSAGE:** `feat({feature}): {task description}`
|
|
361
|
-
|
|
362
|
-
### 6. Update STATE.md
|
|
363
|
-
Update current task number:
|
|
364
|
-
```markdown
|
|
365
|
-
- Task: {N+1} of {M}
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
**Continue to next task.**
|
|
369
|
-
|
|
370
|
-
After all tasks, continue to complete_plan.
|
|
371
|
-
</step>
|
|
372
|
-
|
|
373
|
-
<step name="complete_plan">
|
|
374
|
-
Mark plan complete and suggest next.
|
|
375
|
-
|
|
376
|
-
**Update STATE.md:**
|
|
377
|
-
|
|
378
|
-
1. Clear current plan section:
|
|
379
|
-
```markdown
|
|
380
|
-
### Current Plan
|
|
381
|
-
- Plan: none
|
|
382
|
-
- Task: —
|
|
383
|
-
- Started: —
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
2. Add to completed plans table:
|
|
387
|
-
```markdown
|
|
388
|
-
### Completed Plans
|
|
389
|
-
| Plan | Completed | Tasks | Deviations |
|
|
390
|
-
|------|-----------|-------|------------|
|
|
391
|
-
| {path} | {YYYY-MM-DD} | {N} | {count} |
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
3. Update stage progress checkboxes
|
|
395
|
-
|
|
396
|
-
**Commit STATE.md update:**
|
|
397
|
-
|
|
398
|
-
@~/.claude/specdacular/references/commit-docs.md
|
|
399
|
-
|
|
400
|
-
- **$FILES:** `.specd/features/{feature}/STATE.md`
|
|
401
|
-
- **$MESSAGE:** `docs({feature}): complete plan {phase-XX/YY}`
|
|
402
|
-
- **$LABEL:** `plan completion`
|
|
403
|
-
|
|
404
|
-
**Find next plan:**
|
|
405
|
-
- Check ROADMAP.md for next plan in sequence within the current phase
|
|
406
|
-
- Include any decimal-numbered fix phases (e.g., phase-{N}.1, phase-{N}.2)
|
|
407
|
-
|
|
408
|
-
**If next plan exists in current phase:**
|
|
409
|
-
|
|
410
|
-
**Present summary:**
|
|
411
|
-
```
|
|
412
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
413
|
-
PLAN COMPLETE
|
|
414
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
415
|
-
|
|
416
|
-
**Plan:** {path}
|
|
417
|
-
**Tasks executed:** {N}
|
|
418
|
-
**Deviations logged:** {count}
|
|
419
|
-
|
|
420
|
-
{If deviations:}
|
|
421
|
-
## Deviations
|
|
422
|
-
|
|
423
|
-
{List from CHANGELOG.md for this plan}
|
|
424
|
-
|
|
425
|
-
───────────────────────────────────────────────────────
|
|
426
|
-
|
|
427
|
-
**Next plan:** {path}
|
|
428
|
-
|
|
429
|
-
Run `/specd:feature:continue {feature}` to continue.
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
End workflow (continue-feature will pick up the next plan).
|
|
433
|
-
|
|
434
|
-
**If no more plans in current phase (phase execution complete):**
|
|
435
|
-
|
|
436
|
-
**Mark phase as executed (DEC-009, DEC-013):**
|
|
437
|
-
|
|
438
|
-
Update config.json:
|
|
439
|
-
- Set `phases.current_status` to `"executed"`
|
|
440
|
-
- Do NOT increment `phases.completed`
|
|
441
|
-
- Do NOT advance `phases.current`
|
|
442
|
-
|
|
443
|
-
Update STATE.md: note phase is executed, pending review.
|
|
444
|
-
|
|
445
|
-
Commit state changes:
|
|
446
|
-
```bash
|
|
447
|
-
git add .specd/features/{feature}/config.json .specd/features/{feature}/STATE.md
|
|
448
|
-
git commit -m "docs({feature}): phase {N} executed — pending review"
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
**Present summary:**
|
|
452
|
-
```
|
|
453
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
454
|
-
PHASE {N} EXECUTED
|
|
455
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
456
|
-
|
|
457
|
-
**Plan:** {path}
|
|
458
|
-
**Tasks executed:** {N}
|
|
459
|
-
**Deviations logged:** {count}
|
|
460
|
-
|
|
461
|
-
All plans for Phase {N} have been executed.
|
|
462
|
-
Phase is pending review before advancing to Phase {N+1}.
|
|
463
|
-
|
|
464
|
-
───────────────────────────────────────────────────────
|
|
465
|
-
|
|
466
|
-
Resume with /specd:feature:continue {feature} for review.
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
**If orchestrator mode:**
|
|
470
|
-
Continue to contract_review.
|
|
471
|
-
|
|
472
|
-
**If single-project mode:**
|
|
473
|
-
End workflow.
|
|
474
|
-
</step>
|
|
475
|
-
|
|
476
|
-
<step name="contract_review">
|
|
477
|
-
Review completed phase against cross-project contract expectations (orchestrator mode only).
|
|
478
|
-
|
|
479
|
-
**Only runs in orchestrator mode, after a plan completes in a sub-project.**
|
|
480
|
-
|
|
481
|
-
**Gather what was implemented:**
|
|
482
|
-
1. Read the sub-project's CHANGELOG.md for this plan — deviations and changes
|
|
483
|
-
2. Review files created/modified during this plan
|
|
484
|
-
3. Understand what the phase actually produced
|
|
485
|
-
|
|
486
|
-
**Compare against expectations:**
|
|
487
|
-
1. Read orchestrator FEATURE.md — system-level requirements and cross-project contracts
|
|
488
|
-
2. Read DEPENDENCIES.md — which other project phases depend on this phase's output
|
|
489
|
-
3. For each downstream dependency, check: does the actual output match what the dependent phase expects?
|
|
490
|
-
|
|
491
|
-
**Assessment:**
|
|
492
|
-
```
|
|
493
|
-
### Contract Review: {project-name}/phase-{N}
|
|
494
|
-
|
|
495
|
-
**Implemented:** {brief summary of what was built}
|
|
496
|
-
|
|
497
|
-
**Cross-project impact:**
|
|
498
|
-
{For each dependent phase:}
|
|
499
|
-
- {other-project}/phase-{M}: {expects X} → {actual output matches / deviates}
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
**If no deviations:**
|
|
503
|
-
```
|
|
504
|
-
No contract deviations detected. Downstream phases can proceed as planned.
|
|
505
|
-
```
|
|
506
|
-
|
|
507
|
-
Update orchestrator STATE.md: mark this project phase as complete.
|
|
508
|
-
Continue to orchestrator_phase_complete.
|
|
509
|
-
|
|
510
|
-
**If deviations detected:**
|
|
511
|
-
```
|
|
512
|
-
Contract deviation detected:
|
|
513
|
-
|
|
514
|
-
**What changed:** {description of deviation}
|
|
515
|
-
**Expected by:** {list of dependent project phases}
|
|
516
|
-
**Impact:** {what breaks or needs updating}
|
|
517
|
-
|
|
518
|
-
For example:
|
|
519
|
-
"API changed /auth/login response from {token: string} to {accessToken: string, refreshToken: string}.
|
|
520
|
-
UI phase 2 expects {token: string}. Will need to update token handling."
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
Use AskUserQuestion:
|
|
524
|
-
- header: "Deviation"
|
|
525
|
-
- question: "How would you like to handle this contract deviation?"
|
|
526
|
-
- options:
|
|
527
|
-
- "Accept and update" — Accept the deviation, update orchestrator notes, continue
|
|
528
|
-
- "Trigger replan" — Replan affected project phases to accommodate the change
|
|
529
|
-
- "Investigate" — Look deeper before deciding
|
|
530
|
-
|
|
531
|
-
**If "Accept and update":**
|
|
532
|
-
- Log deviation to orchestrator CHANGELOG.md
|
|
533
|
-
- Note that downstream phases should account for the change
|
|
534
|
-
- Continue to orchestrator_phase_complete
|
|
535
|
-
|
|
536
|
-
**If "Trigger replan":**
|
|
537
|
-
- Check cascade depth (DEC-010)
|
|
538
|
-
- If depth < 2: trigger replan for affected project phases
|
|
539
|
-
- Update affected project's ROADMAP.md phase description
|
|
540
|
-
- Regenerate affected PLAN.md files
|
|
541
|
-
- Log to orchestrator CHANGELOG.md
|
|
542
|
-
- Increment cascade depth
|
|
543
|
-
- If depth >= 2: force pause
|
|
544
|
-
```
|
|
545
|
-
Multiple cascading replans detected (depth {N}).
|
|
546
|
-
|
|
547
|
-
This suggests a significant architectural mismatch.
|
|
548
|
-
Before continuing, review the overall approach:
|
|
549
|
-
- Are the project responsibilities correctly divided?
|
|
550
|
-
- Should the feature be restructured?
|
|
551
|
-
|
|
552
|
-
Recommend: /specd:feature:discuss {feature-name} to reassess.
|
|
553
|
-
```
|
|
554
|
-
End workflow (user must explicitly resume).
|
|
555
|
-
</step>
|
|
556
|
-
|
|
557
|
-
<step name="orchestrator_phase_complete">
|
|
558
|
-
Update orchestrator state and present summary after contract review.
|
|
559
|
-
|
|
560
|
-
**Update orchestrator STATE.md:**
|
|
561
|
-
- Mark this project's phase as complete in Sub-Project Features table
|
|
562
|
-
- Update orchestrator progress
|
|
563
|
-
|
|
564
|
-
**Update orchestrator config.json:**
|
|
565
|
-
- Increment completed phase count if all plans for this project phase are done
|
|
566
|
-
|
|
567
|
-
**Present summary:**
|
|
568
|
-
```
|
|
569
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
570
|
-
PHASE COMPLETE (ORCHESTRATOR)
|
|
571
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
572
|
-
|
|
573
|
-
**Feature:** {feature-name}
|
|
574
|
-
**Project:** {project-name}
|
|
575
|
-
**Phase:** {N}
|
|
576
|
-
**Contract review:** {passed / deviations accepted / replanned}
|
|
577
|
-
|
|
578
|
-
**Next unblocked work:**
|
|
579
|
-
{From DEPENDENCIES.md — which phases are now unblocked by this completion}
|
|
580
|
-
|
|
581
|
-
───────────────────────────────────────────────────────
|
|
582
|
-
|
|
583
|
-
Resume with /specd:feature:continue {feature-name}
|
|
584
|
-
```
|
|
585
|
-
|
|
586
|
-
End workflow (returns to orchestrator scheduling via next).
|
|
587
|
-
</step>
|
|
588
|
-
|
|
589
|
-
</process>
|
|
590
|
-
|
|
591
|
-
<changelog_format>
|
|
592
|
-
When logging to CHANGELOG.md, use this format:
|
|
593
|
-
|
|
594
|
-
```markdown
|
|
595
|
-
### {YYYY-MM-DD} - Plan {phase-XX/YY}
|
|
596
|
-
|
|
597
|
-
**[{Type}] {Short description}**
|
|
598
|
-
- **What:** {Description of change}
|
|
599
|
-
- **Why:** {Reason for deviation}
|
|
600
|
-
- **Files:** `{comma-separated file paths}`
|
|
601
|
-
|
|
602
|
-
{If relevant:}
|
|
603
|
-
- **Decision:** {User decision if asked}
|
|
604
|
-
- **Output:** {Truncated verification output if skipped}
|
|
605
|
-
```
|
|
606
|
-
|
|
607
|
-
Types:
|
|
608
|
-
- `[Auto-fix]` — Bug, blocker, or missing critical item fixed automatically
|
|
609
|
-
- `[User-approved]` — Architectural change approved by user
|
|
610
|
-
- `[Skipped]` — Task skipped due to verification failure
|
|
611
|
-
</changelog_format>
|
|
612
|
-
|
|
613
|
-
<success_criteria>
|
|
614
|
-
|
|
615
|
-
## Single-Project Mode
|
|
616
|
-
- Feature validated with plans
|
|
617
|
-
- All context loaded and internalized
|
|
618
|
-
- Tasks executed in plan order
|
|
619
|
-
- Verification run after each task
|
|
620
|
-
- Deviations logged appropriately
|
|
621
|
-
- Commits made with proper format
|
|
622
|
-
- STATE.md updated with progress
|
|
623
|
-
- Next plan identified or completion announced
|
|
624
|
-
|
|
625
|
-
## Multi-Project Mode (Orchestrator)
|
|
626
|
-
- Orchestrator mode detected from feature config.json
|
|
627
|
-
- Sub-project context loaded with path-prefixed file access
|
|
628
|
-
- Plans executed inline in sub-project context
|
|
629
|
-
- Contract review performed after phase completion (DEC-004)
|
|
630
|
-
- Deviations flagged with cross-project impact analysis
|
|
631
|
-
- User can accept deviation or trigger replan
|
|
632
|
-
- Replan cascade depth limited to 2 (DEC-010)
|
|
633
|
-
- Orchestrator STATE.md updated after each phase
|
|
634
|
-
- Summary shows next unblocked work
|
|
635
|
-
|
|
636
|
-
</success_criteria>
|