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.
Files changed (63) hide show
  1. package/README.md +72 -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 +19 -16
  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,382 +0,0 @@
1
- <purpose>
2
- Continue or deepen understanding of a feature through targeted discussion. Can be called **many times** — context accumulates across sessions.
3
-
4
- **Key behaviors:**
5
- - Idempotent: calling multiple times builds on previous discussions
6
- - Shows what's already been discussed to avoid repetition
7
- - Gray areas are feature-specific, not generic categories
8
- - Scope guardrail: clarify HOW, not whether to add more
9
- - Deferred ideas captured but not acted on
10
-
11
- **Output:** Updated CONTEXT.md and DECISIONS.md with new resolutions and decisions.
12
- </purpose>
13
-
14
- <philosophy>
15
-
16
- ## Accumulating Context
17
-
18
- Each discussion session adds to the shared understanding. CONTEXT.md grows with resolved questions. DECISIONS.md grows with new decisions. Nothing is lost between sessions.
19
-
20
- ## Feature-Specific Gray Areas
21
-
22
- Don't use generic categories like "UI" or "API". Identify actual unclear aspects of THIS feature:
23
- - "How should the validation feedback appear?"
24
- - "What happens when the connection drops mid-operation?"
25
- - "Should this support bulk operations?"
26
-
27
- ## Scope Guardrail
28
-
29
- The feature scope was defined in FEATURE.md. Discussion clarifies HOW to build what's scoped, not whether to add more scope.
30
-
31
- **Good:** "For the error handling you mentioned, should we use toasts or inline messages?"
32
- **Bad:** "Should we also add a feature for X?" (unless user brings it up)
33
-
34
- If user suggests scope changes, capture in DECISIONS.md with rationale rather than expanding FEATURE.md automatically.
35
-
36
- ## Four Questions Then Check
37
-
38
- When probing a gray area:
39
- 1. Ask up to 4 clarifying questions
40
- 2. Summarize understanding
41
- 3. Confirm or continue
42
-
43
- Don't interrogate endlessly. Get enough clarity to implement, then move on.
44
-
45
- </philosophy>
46
-
47
- <process>
48
-
49
- <step name="validate">
50
- Validate feature exists and has required files.
51
-
52
- ```bash
53
- # Check feature exists
54
- [ -d ".specd/features/$ARGUMENTS" ] || { echo "Feature not found"; exit 1; }
55
-
56
- # Check required files
57
- [ -f ".specd/features/$ARGUMENTS/FEATURE.md" ] || { echo "Missing FEATURE.md"; exit 1; }
58
- [ -f ".specd/features/$ARGUMENTS/CONTEXT.md" ] || { echo "Missing CONTEXT.md"; exit 1; }
59
- [ -f ".specd/features/$ARGUMENTS/DECISIONS.md" ] || { echo "Missing DECISIONS.md"; exit 1; }
60
- ```
61
-
62
- **If feature not found:**
63
- ```
64
- Feature '{name}' not found.
65
-
66
- Did you mean to run /specd:feature:new {name} first?
67
- ```
68
-
69
- Continue to load_context.
70
- </step>
71
-
72
- <step name="load_context">
73
- Load all existing context.
74
-
75
- **Read:**
76
- - `FEATURE.md` — What the feature does, technical requirements
77
- - `CONTEXT.md` — Previous discussion resolutions
78
- - `DECISIONS.md` — Previous decisions
79
- - `STATE.md` — Current stage and progress
80
- - `RESEARCH.md` — If exists, research findings
81
-
82
- **Parse:**
83
- - Extract resolved questions from CONTEXT.md
84
- - Extract active decisions from DECISIONS.md
85
- - Extract gray areas remaining from CONTEXT.md
86
- - Count discussion sessions from STATE.md
87
-
88
- Continue to show_state.
89
- </step>
90
-
91
- <step name="show_state">
92
- Present current understanding to user.
93
-
94
- ```
95
- ## Discussion: {feature-name}
96
-
97
- **Session {N+1}** (previous sessions: {N})
98
-
99
- ### What We've Established
100
-
101
- {Summary from FEATURE.md — 2-3 sentences on what this builds}
102
-
103
- ### Previous Discussions Resolved
104
-
105
- {List of resolved questions from CONTEXT.md, grouped by topic}
106
-
107
- - **{Topic}:** {Resolution summary}
108
- - **{Topic}:** {Resolution summary}
109
-
110
- ### Active Decisions
111
-
112
- {Count} decisions recorded:
113
- - DEC-XXX: {Title} — {One-liner}
114
- - DEC-YYY: {Title} — {One-liner}
115
-
116
- {If RESEARCH.md exists:}
117
- ### Research Findings
118
-
119
- Research has been conducted. Key findings:
120
- - {Finding 1}
121
- - {Finding 2}
122
- ```
123
-
124
- Continue to identify_gray_areas.
125
- </step>
126
-
127
- <step name="identify_gray_areas">
128
- Identify areas that need discussion based on feature type and current state.
129
-
130
- **Derive gray areas from:**
131
- 1. Explicit "Gray Areas Remaining" in CONTEXT.md
132
- 2. Implicit gaps in FEATURE.md (vague requirements, unclear integrations)
133
- 3. Feature-type-specific concerns (see below)
134
- 4. Questions raised but not resolved in previous discussions
135
-
136
- **Feature-type-specific gray areas:**
137
-
138
- *If feature involves UI:*
139
- - Error state presentation
140
- - Loading state behavior
141
- - Empty state content
142
- - Responsive breakpoints
143
- - Accessibility requirements
144
-
145
- *If feature involves API:*
146
- - Error response format
147
- - Pagination approach
148
- - Authentication requirements
149
- - Rate limiting
150
- - Versioning
151
-
152
- *If feature involves data:*
153
- - Validation rules
154
- - Default values
155
- - Migration approach
156
- - Backup/recovery
157
-
158
- *If feature involves integration:*
159
- - Failure handling
160
- - Retry logic
161
- - Timeout behavior
162
- - Fallback behavior
163
-
164
- **Present to user:**
165
- ```
166
- ### Areas to Discuss
167
-
168
- Based on the feature and what we've covered, these areas could use more clarity:
169
-
170
- 1. **{Gray area}** — {Why it matters}
171
- 2. **{Gray area}** — {Why it matters}
172
- 3. **{Gray area}** — {Why it matters}
173
- 4. **{Gray area}** — {Why it matters}
174
-
175
- Which would you like to discuss? (Or describe something else)
176
- ```
177
-
178
- Use AskUserQuestion:
179
- - header: "Discussion Focus"
180
- - question: "Which area would you like to discuss first?"
181
- - options: List the identified gray areas (up to 4)
182
- - Add "Something else" as final option
183
-
184
- Continue to probe_area.
185
- </step>
186
-
187
- <step name="probe_area">
188
- Probe the selected gray area until clear.
189
-
190
- **For each selected area:**
191
-
192
- **Question 1:** Open-ended exploration
193
- "Tell me more about how you see {area} working..."
194
-
195
- **Question 2:** Clarify based on response
196
- "When you say X, do you mean Y or Z?"
197
-
198
- **Question 3:** Edge cases
199
- "What should happen when {edge case}?"
200
-
201
- **Question 4:** Confirm approach
202
- "So the approach would be {summary}. Is that right?"
203
-
204
- **After 4 questions (or earlier if clear):**
205
- ```
206
- Let me capture what we've resolved:
207
-
208
- **{Area}:**
209
- - {Key point 1}
210
- - {Key point 2}
211
- - {Any code pattern implied}
212
-
213
- Does that capture it correctly?
214
- ```
215
-
216
- **If user confirms:** Record in CONTEXT.md
217
- **If user corrects:** Continue probing, then record
218
-
219
- **If user wants to discuss another area:**
220
- Return to identify_gray_areas step with updated context.
221
-
222
- Continue to record_decisions.
223
- </step>
224
-
225
- <step name="record_decisions">
226
- Record any NEW decisions made during this session.
227
-
228
- **Identify decisions from discussion:**
229
- - Technology/library choices
230
- - Approach choices between alternatives
231
- - Scope inclusions/exclusions
232
- - Pattern choices
233
-
234
- **For each new decision:**
235
-
236
- Get the next decision number from DECISIONS.md.
237
-
238
- Add to DECISIONS.md:
239
- ```markdown
240
- ### DEC-{NNN}: {Title}
241
-
242
- **Date:** {today}
243
- **Status:** Active
244
- **Context:** {What situation required this decision — from discussion}
245
- **Decision:** {What was decided}
246
- **Rationale:**
247
- - {Why this choice}
248
- **Implications:**
249
- - {What this means for implementation}
250
- **References:**
251
- - {Any code paths or docs referenced}
252
- ```
253
-
254
- Continue to update_context.
255
- </step>
256
-
257
- <step name="update_context">
258
- Update CONTEXT.md with newly resolved questions.
259
-
260
- **Add to Resolved Questions section:**
261
-
262
- ```markdown
263
- ### {Question title}
264
-
265
- **Question:** {What was unclear}
266
-
267
- **Resolution:** {The answer/decision}
268
-
269
- **Details:**
270
- - {Detail 1}
271
- - {Detail 2}
272
-
273
- **Code Pattern:** (if applicable)
274
- ```{language}
275
- {code example}
276
- ```
277
-
278
- **Related Decisions:** DEC-XXX
279
- ```
280
-
281
- **Update Gray Areas Remaining:**
282
- Remove any areas that were resolved.
283
- Add any new areas that were identified.
284
-
285
- **Update Discussion History:**
286
- ```markdown
287
- | {today} | {Topics covered} | {Key outcomes} |
288
- ```
289
-
290
- Continue to update_state.
291
- </step>
292
-
293
- <step name="update_state">
294
- Update STATE.md with session information.
295
-
296
- **Update:**
297
- - Last Updated: today
298
- - Discussion sessions: increment
299
- - Gray areas remaining count
300
-
301
- **Update config.json:**
302
- ```json
303
- {
304
- "discussion_sessions": {N+1},
305
- "decisions_count": {new count}
306
- }
307
- ```
308
-
309
- Continue to commit.
310
- </step>
311
-
312
- <step name="commit">
313
- Commit the discussion updates.
314
-
315
- @~/.claude/specdacular/references/commit-docs.md
316
-
317
- - **$FILES:** `.specd/features/{feature-name}/CONTEXT.md .specd/features/{feature-name}/DECISIONS.md .specd/features/{feature-name}/STATE.md .specd/features/{feature-name}/config.json`
318
- - **$MESSAGE:** `docs({feature-name}): discussion session {N}` with resolved areas and new decisions
319
- - **$LABEL:** `discussion updates`
320
-
321
- Continue to completion.
322
- </step>
323
-
324
- <step name="completion">
325
- Present session summary and next options.
326
-
327
- ```
328
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
329
- DISCUSSION SESSION COMPLETE
330
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
-
332
- **Feature:** {feature-name}
333
- **Session:** {N}
334
-
335
- ## Resolved This Session
336
-
337
- - **{Area 1}:** {Brief resolution}
338
- - **{Area 2}:** {Brief resolution}
339
-
340
- ## New Decisions
341
-
342
- - DEC-XXX: {Title}
343
- - DEC-YYY: {Title}
344
-
345
- {If gray areas remain:}
346
- ## Still to Discuss
347
-
348
- - {Remaining area 1}
349
- - {Remaining area 2}
350
-
351
- ───────────────────────────────────────────────────────
352
-
353
- ## What's Next
354
-
355
- **/specd:feature:discuss {feature-name}** — Continue discussing
356
- {Recommended if gray areas remain}
357
-
358
- **/specd:feature:research {feature-name}** — Research implementation
359
- {Recommended if technical questions need investigation}
360
-
361
- **/specd:feature:plan {feature-name}** — Create roadmap with phase overview
362
- {Recommended when discussion is sufficient}
363
-
364
- Or just **keep talking** — this conversation continues naturally.
365
- ```
366
-
367
- End workflow.
368
- </step>
369
-
370
- </process>
371
-
372
- <success_criteria>
373
- - Feature validated and context loaded
374
- - Current state shown to user (previous resolutions, decisions)
375
- - Gray areas identified specific to this feature
376
- - User-selected areas probed (4 questions, then check)
377
- - Decisions recorded with full context (date, rationale, implications)
378
- - CONTEXT.md updated with resolved questions
379
- - STATE.md updated with session info
380
- - Committed to git
381
- - User knows next options
382
- </success_criteria>