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,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>
|