specdacular 0.7.2 → 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.
Files changed (63) hide show
  1. package/README.md +71 -74
  2. package/commands/specd/continue.md +59 -0
  3. package/commands/specd/new.md +65 -0
  4. package/commands/specd/status.md +1 -1
  5. package/commands/specd/toolbox.md +59 -0
  6. package/package.json +1 -1
  7. package/specdacular/HELP.md +17 -15
  8. package/specdacular/agents/feature-researcher.md +4 -4
  9. package/specdacular/references/load-context.md +83 -0
  10. package/specdacular/references/record-decision.md +61 -0
  11. package/specdacular/references/select-feature.md +20 -20
  12. package/specdacular/references/select-phase.md +3 -3
  13. package/specdacular/references/spawn-research-agents.md +180 -0
  14. package/specdacular/references/synthesize-research.md +127 -0
  15. package/specdacular/references/validate-task.md +64 -0
  16. package/specdacular/templates/{features → tasks}/CHANGELOG.md +2 -8
  17. package/specdacular/templates/{features → tasks}/CONTEXT.md +6 -17
  18. package/specdacular/templates/tasks/DECISIONS.md +46 -0
  19. package/specdacular/templates/{features → tasks}/FEATURE.md +3 -3
  20. package/specdacular/templates/tasks/PLAN.md +91 -0
  21. package/specdacular/templates/tasks/RESEARCH.md +121 -0
  22. package/specdacular/templates/{features → tasks}/ROADMAP.md +6 -43
  23. package/specdacular/templates/tasks/STATE.md +93 -0
  24. package/specdacular/templates/tasks/config.json +15 -0
  25. package/specdacular/workflows/continue.md +275 -0
  26. package/specdacular/workflows/discuss.md +184 -0
  27. package/specdacular/workflows/execute.md +174 -0
  28. package/specdacular/workflows/new.md +299 -0
  29. package/specdacular/workflows/orchestrator/new.md +265 -0
  30. package/specdacular/workflows/orchestrator/plan.md +169 -0
  31. package/specdacular/workflows/plan.md +201 -0
  32. package/specdacular/workflows/research.md +166 -0
  33. package/specdacular/workflows/review.md +289 -0
  34. package/specdacular/workflows/status.md +17 -17
  35. package/commands/specd/blueprint.md +0 -64
  36. package/commands/specd/feature/continue.md +0 -84
  37. package/commands/specd/feature/new.md +0 -67
  38. package/commands/specd/feature/toolbox.md +0 -49
  39. package/specdacular/templates/blueprint/index.html +0 -110
  40. package/specdacular/templates/blueprint/scripts.js +0 -71
  41. package/specdacular/templates/blueprint/styles.css +0 -429
  42. package/specdacular/templates/features/DECISIONS.md +0 -109
  43. package/specdacular/templates/features/DEPENDENCIES.md +0 -47
  44. package/specdacular/templates/features/PLAN.md +0 -180
  45. package/specdacular/templates/features/RESEARCH.md +0 -183
  46. package/specdacular/templates/features/STATE.md +0 -110
  47. package/specdacular/templates/features/config.json +0 -20
  48. package/specdacular/workflows/blueprint-diagrams.md +0 -273
  49. package/specdacular/workflows/blueprint-wireframes.md +0 -312
  50. package/specdacular/workflows/blueprint.md +0 -372
  51. package/specdacular/workflows/continue-feature.md +0 -621
  52. package/specdacular/workflows/discuss-feature.md +0 -382
  53. package/specdacular/workflows/execute-plan.md +0 -636
  54. package/specdacular/workflows/insert-phase.md +0 -246
  55. package/specdacular/workflows/new-feature.md +0 -760
  56. package/specdacular/workflows/plan-feature.md +0 -691
  57. package/specdacular/workflows/plan-phase.md +0 -355
  58. package/specdacular/workflows/prepare-phase.md +0 -745
  59. package/specdacular/workflows/renumber-phases.md +0 -273
  60. package/specdacular/workflows/research-feature.md +0 -252
  61. package/specdacular/workflows/research-phase.md +0 -576
  62. package/specdacular/workflows/review-feature.md +0 -316
  63. package/specdacular/workflows/review-phase.md +0 -545
@@ -1,246 +0,0 @@
1
- <purpose>
2
- Insert a new phase after an existing one using decimal numbering (e.g., Phase 03.1).
3
-
4
- **Key principles:**
5
- - Decimal numbering preserves existing phase sequence
6
- - Never renumber existing phases — decimal numbering eliminates renumbering
7
- - Create directory structure but don't create plans — user decides how to plan
8
- - Mark inserted phases with `(INSERTED)` in ROADMAP.md
9
-
10
- **Output:** New phase directory, updated ROADMAP.md, STATE.md, config.json
11
- </purpose>
12
-
13
- <process>
14
-
15
- <step name="select_feature">
16
- @~/.claude/specdacular/references/select-feature.md
17
-
18
- Continue to select_target.
19
- </step>
20
-
21
- <step name="select_target">
22
- Determine where to insert and what the phase is about.
23
-
24
- **If arguments include phase number and description (e.g., direct invocation):**
25
- Parse from arguments:
26
- - Second token: integer phase number to insert after
27
- - Remaining tokens: phase description
28
-
29
- Continue to validate.
30
-
31
- **If arguments are just feature name (e.g., from toolbox dispatch):**
32
-
33
- Read ROADMAP.md and show current phases:
34
- ```
35
- Current phases:
36
- {List each phase with number and name from ROADMAP.md}
37
- ```
38
-
39
- Use AskUserQuestion:
40
- - header: "Insert After"
41
- - question: "Insert new phase after which existing phase?"
42
- - options: List each phase as an option (e.g., "Phase 1: Rename + Toolbox", "Phase 2: Review + State Machine", etc.)
43
-
44
- After selection, ask:
45
- ```
46
- What's this new phase about? Give a brief name and goal.
47
- ```
48
-
49
- Wait for response.
50
-
51
- **Validation:**
52
- - Phase number must be a positive integer (or existing decimal phase)
53
- - Cannot insert before Phase 1 (no Phase 0.x)
54
-
55
- Continue to validate.
56
- </step>
57
-
58
- <step name="validate">
59
- Validate the feature and target phase exist.
60
-
61
- 1. Check feature directory exists:
62
- ```bash
63
- [ -d ".specd/features/$feature" ] || { echo "Feature not found"; exit 1; }
64
- ```
65
-
66
- 2. Check ROADMAP.md exists:
67
- ```bash
68
- [ -f ".specd/features/$feature/ROADMAP.md" ] || { echo "No ROADMAP.md"; exit 1; }
69
- ```
70
-
71
- 3. Check target phase exists in ROADMAP.md:
72
- - Search for phase heading matching the target number (e.g., `## Phase 3:` or `### Phase 3:`)
73
- - If not found, list available phases and exit
74
-
75
- 4. Check config.json exists:
76
- ```bash
77
- [ -f ".specd/features/$feature/config.json" ] || { echo "No config.json"; exit 1; }
78
- ```
79
-
80
- **If feature not found:**
81
- ```
82
- Feature '{name}' not found.
83
-
84
- Available features:
85
- {list .specd/features/*/}
86
-
87
- Run /specd:feature:new {name} to create it.
88
- ```
89
-
90
- **If target phase not found:**
91
- ```
92
- Phase {N} not found in ROADMAP.md.
93
-
94
- Available phases: {list phase numbers from ROADMAP.md}
95
- ```
96
- </step>
97
-
98
- <step name="find_next_decimal">
99
- Scan for existing decimal phases after the target phase.
100
-
101
- 1. List all `phase-*` directories under `plans/`:
102
- ```bash
103
- ls -d .specd/features/$feature/plans/phase-* 2>/dev/null
104
- ```
105
-
106
- 2. Filter for directories matching `phase-{NN}.{M}` where NN matches the target phase (zero-padded to 2 digits):
107
- - Format target phase as two digits: `printf "%02d" $after_phase`
108
- - Look for `phase-{NN}.1/`, `phase-{NN}.2/`, etc.
109
-
110
- 3. Find the highest existing decimal suffix M
111
-
112
- 4. Calculate next decimal: M + 1 (or 1 if no decimals exist)
113
-
114
- Examples:
115
- - Phase 03 with no decimals → next is 03.1
116
- - Phase 03 with 03.1 → next is 03.2
117
- - Phase 03 with 03.1, 03.2 → next is 03.3
118
-
119
- Store the new phase number as: `new_phase = "{NN}.{next_decimal}"`
120
- (e.g., "03.1")
121
- </step>
122
-
123
- <step name="create_phase_directory">
124
- Create the phase directory under the feature's plans folder.
125
-
126
- ```bash
127
- mkdir -p ".specd/features/$feature/plans/phase-${new_phase}"
128
- ```
129
-
130
- Confirm: "Created directory: plans/phase-{new_phase}/"
131
- </step>
132
-
133
- <step name="update_roadmap">
134
- Insert the new phase into ROADMAP.md immediately after the target phase's section.
135
-
136
- 1. Read ROADMAP.md
137
- 2. Find the target phase section (heading and all content until the next phase heading)
138
- 3. Insert new phase section after the target phase's content:
139
-
140
- ```markdown
141
- ## Phase {new_phase}: {Description} (INSERTED)
142
-
143
- **Goal:** {Description}
144
- **Plans:** TBD — discuss and plan this phase
145
-
146
- - [ ] Phase {new_phase} plans created
147
- ```
148
-
149
- 4. Write updated ROADMAP.md
150
-
151
- **Important:**
152
- - Preserve all existing content exactly (formatting, spacing, other phases)
153
- - The `(INSERTED)` marker identifies decimal phases as mid-flight insertions
154
- - Don't modify the target phase content
155
- - Insert before the next integer phase heading
156
- </step>
157
-
158
- <step name="update_state">
159
- Update STATE.md with the insertion.
160
-
161
- 1. Read STATE.md
162
-
163
- 2. Add roadmap evolution note. Find or create "### Roadmap Evolution" section under accumulated context:
164
- ```markdown
165
- - Phase {new_phase} inserted after Phase {after_phase}: {description}
166
- ```
167
-
168
- 3. Add the new phase to the execution tracking section. Find the phase completion checkboxes and insert the new phase after the target phase:
169
- ```markdown
170
- - [ ] Phase {new_phase} complete
171
- ```
172
-
173
- Insert this line after `Phase {after_phase}` checkbox and before `Phase {after_phase + 1}` checkbox.
174
-
175
- 4. Write updated STATE.md
176
- </step>
177
-
178
- <step name="update_config">
179
- Update config.json to reflect the new phase count.
180
-
181
- 1. Read config.json
182
- 2. Increment `phases.total` by 1
183
- 3. Write updated config.json
184
- </step>
185
-
186
- <step name="completion">
187
- Present completion summary:
188
-
189
- ```
190
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
- PHASE INSERTED
192
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
193
-
194
- **Phase {new_phase}: {description}**
195
- - Directory: plans/phase-{new_phase}/
196
- - Inserted after: Phase {after_phase}
197
- - Marker: (INSERTED)
198
-
199
- **Updated:**
200
- - ROADMAP.md — New phase section added
201
- - STATE.md — Evolution note + unchecked checkbox
202
- - config.json — phases.total incremented
203
-
204
- ───────────────────────────────────────────────────────
205
-
206
- ## Next Steps
207
-
208
- `/specd:feature:continue {feature}` — Picks up the new phase automatically
209
- `/specd:feature:toolbox {feature}` — Prepare, plan, or discuss the new phase
210
- ```
211
-
212
- **Commit changes:**
213
-
214
- @~/.claude/specdacular/references/commit-docs.md
215
-
216
- - **$FILES:** `.specd/features/{feature}/ROADMAP.md .specd/features/{feature}/STATE.md .specd/features/{feature}/config.json .specd/features/{feature}/plans/phase-{new_phase}/`
217
- - **$MESSAGE:** `docs({feature}): insert phase {new_phase} — {description}`
218
- - **$LABEL:** `phase insertion`
219
-
220
- End workflow.
221
- </step>
222
-
223
- </process>
224
-
225
- <anti_patterns>
226
- - Don't insert before Phase 1 (Phase 0.x makes no sense)
227
- - Don't renumber existing phases — decimal numbering eliminates renumbering
228
- - Don't modify the target phase content
229
- - Don't create plans yet — user decides how to plan (discuss, research, or manual)
230
- - Don't commit changes — user decides when to commit
231
- </anti_patterns>
232
-
233
- <success_criteria>
234
- Phase insertion is complete when:
235
-
236
- - [ ] Arguments parsed: feature name, after-phase number, description
237
- - [ ] Feature validated: exists with ROADMAP.md
238
- - [ ] Target phase validated: exists in ROADMAP.md
239
- - [ ] Decimal number calculated correctly (based on existing decimals)
240
- - [ ] Phase directory created: `plans/phase-{NN.M}/`
241
- - [ ] ROADMAP.md updated with new phase entry (includes `(INSERTED)` marker)
242
- - [ ] Phase inserted in correct position (after target phase, before next integer phase)
243
- - [ ] STATE.md updated with roadmap evolution note and unchecked checkbox
244
- - [ ] config.json `phases.total` incremented
245
- - [ ] User informed of next steps
246
- </success_criteria>