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,691 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Create a roadmap with phase overview and empty phase directories. Detailed PLAN.md files are created later per-phase with `/specd:phase:plan`.
|
|
3
|
-
|
|
4
|
-
**Key principles:**
|
|
5
|
-
- Roadmap defines phases with goals, deliverables, and dependencies
|
|
6
|
-
- Phases follow natural code dependencies (types->API->UI)
|
|
7
|
-
- Empty phase directories are created as scaffolding
|
|
8
|
-
- No PLAN.md files — those are created just-in-time per phase
|
|
9
|
-
|
|
10
|
-
**Output:** ROADMAP.md + empty `plans/phase-XX/` directories
|
|
11
|
-
</purpose>
|
|
12
|
-
|
|
13
|
-
<philosophy>
|
|
14
|
-
|
|
15
|
-
## Roadmap, Not Plans
|
|
16
|
-
|
|
17
|
-
The roadmap defines WHAT each phase does and WHY it's ordered that way. The HOW (detailed plans) comes later, per phase, when context is freshest.
|
|
18
|
-
|
|
19
|
-
## Dependency-Driven Phases
|
|
20
|
-
|
|
21
|
-
Phases follow natural code dependencies:
|
|
22
|
-
1. **Types first** — Shared type definitions
|
|
23
|
-
2. **Data layer** — Database schemas, API routes
|
|
24
|
-
3. **Business logic** — Hooks, utilities, services
|
|
25
|
-
4. **UI** — Components that consume the above
|
|
26
|
-
|
|
27
|
-
Each phase's output is input for the next.
|
|
28
|
-
|
|
29
|
-
## Just-in-Time Detail
|
|
30
|
-
|
|
31
|
-
Creating detailed plans for all phases upfront means later plans go stale as earlier phases deviate. Instead:
|
|
32
|
-
1. Create the roadmap (this workflow)
|
|
33
|
-
2. For each phase: prepare -> plan -> execute
|
|
34
|
-
3. Each phase's plans use the latest context
|
|
35
|
-
|
|
36
|
-
</philosophy>
|
|
37
|
-
|
|
38
|
-
<process>
|
|
39
|
-
|
|
40
|
-
<step name="validate">
|
|
41
|
-
Validate feature exists and has required context.
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Check feature exists
|
|
45
|
-
[ -d ".specd/features/$ARGUMENTS" ] || { echo "not found"; exit 1; }
|
|
46
|
-
|
|
47
|
-
# Check required files
|
|
48
|
-
[ -f ".specd/features/$ARGUMENTS/FEATURE.md" ] || { echo "missing FEATURE.md"; exit 1; }
|
|
49
|
-
[ -f ".specd/features/$ARGUMENTS/CONTEXT.md" ] || { echo "missing CONTEXT.md"; exit 1; }
|
|
50
|
-
[ -f ".specd/features/$ARGUMENTS/DECISIONS.md" ] || { echo "missing DECISIONS.md"; exit 1; }
|
|
51
|
-
|
|
52
|
-
# Check optional files
|
|
53
|
-
[ -f ".specd/features/$ARGUMENTS/RESEARCH.md" ] && echo "has_research"
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**If feature not found:**
|
|
57
|
-
```
|
|
58
|
-
Feature '{name}' not found.
|
|
59
|
-
|
|
60
|
-
Run /specd:feature:new {name} to create it.
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**If missing required files:**
|
|
64
|
-
```
|
|
65
|
-
Feature '{name}' is missing required context for planning:
|
|
66
|
-
- {missing file}
|
|
67
|
-
|
|
68
|
-
Run /specd:feature:discuss {name} to build more context.
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Continue to load_context.
|
|
72
|
-
</step>
|
|
73
|
-
|
|
74
|
-
<step name="load_context">
|
|
75
|
-
Load ALL context.
|
|
76
|
-
|
|
77
|
-
**Read feature context:**
|
|
78
|
-
- `FEATURE.md` — Technical requirements, files to create
|
|
79
|
-
- `CONTEXT.md` — Resolved gray areas, code patterns discussed
|
|
80
|
-
- `DECISIONS.md` — All active decisions
|
|
81
|
-
- `RESEARCH.md` — If exists, implementation patterns and pitfalls
|
|
82
|
-
|
|
83
|
-
**Read codebase context (if available):**
|
|
84
|
-
- `PATTERNS.md` — Code patterns to follow
|
|
85
|
-
- `STRUCTURE.md` — Where files go
|
|
86
|
-
- `MAP.md` — System overview, integration points
|
|
87
|
-
|
|
88
|
-
**Extract key information:**
|
|
89
|
-
- Files that must be created (from FEATURE.md)
|
|
90
|
-
- Integration points (from FEATURE.md)
|
|
91
|
-
- Patterns to follow (from CONTEXT.md, RESEARCH.md, codebase)
|
|
92
|
-
- Decisions that affect implementation
|
|
93
|
-
- Pitfalls to avoid (from RESEARCH.md)
|
|
94
|
-
|
|
95
|
-
**Check for orchestrator mode:**
|
|
96
|
-
|
|
97
|
-
Read feature's `config.json`. If `"orchestrator": true`:
|
|
98
|
-
|
|
99
|
-
Set mode = "orchestrator".
|
|
100
|
-
|
|
101
|
-
**Load orchestrator-level context:**
|
|
102
|
-
- Orchestrator FEATURE.md — System-level requirements, project responsibilities
|
|
103
|
-
- Orchestrator CONTEXT.md — Cross-project discussion, resolved questions
|
|
104
|
-
- Orchestrator DECISIONS.md — System-level decisions
|
|
105
|
-
|
|
106
|
-
**Load system-level codebase docs:**
|
|
107
|
-
- `.specd/codebase/PROJECTS.md` — Project registry
|
|
108
|
-
- `.specd/codebase/TOPOLOGY.md` — Communication patterns
|
|
109
|
-
- `.specd/codebase/CONTRACTS.md` — Shared interfaces
|
|
110
|
-
|
|
111
|
-
**Load sub-project feature context:**
|
|
112
|
-
From feature config.json `"projects"` array, for each project:
|
|
113
|
-
- Read `{project-path}/.specd/features/{feature-name}/FEATURE.md` — Project-specific requirements
|
|
114
|
-
- Read `{project-path}/.specd/codebase/MAP.md` — Project code overview (if exists)
|
|
115
|
-
- Read `{project-path}/.specd/codebase/PATTERNS.md` — Project patterns (if exists)
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
Orchestrator mode: {N} projects involved in this feature.
|
|
119
|
-
Loading cross-project context for phase derivation.
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Continue to orchestrator_derive_phases.
|
|
123
|
-
|
|
124
|
-
**If not orchestrator:**
|
|
125
|
-
Set mode = "project".
|
|
126
|
-
Continue to assess_readiness.
|
|
127
|
-
</step>
|
|
128
|
-
|
|
129
|
-
<step name="orchestrator_derive_phases">
|
|
130
|
-
Derive phases for all involved projects in a single orchestrator pass.
|
|
131
|
-
|
|
132
|
-
**For each involved project, analyze:**
|
|
133
|
-
- Project's FEATURE.md requirements (what it must create)
|
|
134
|
-
- Project's codebase patterns (how code is organized)
|
|
135
|
-
- Cross-project dependencies (from CONTRACTS.md, TOPOLOGY.md)
|
|
136
|
-
|
|
137
|
-
**Derive per-project phases:**
|
|
138
|
-
Apply the same dependency-driven phasing as single-project mode, but for each project:
|
|
139
|
-
1. Types/interfaces needed by this project
|
|
140
|
-
2. Data layer changes
|
|
141
|
-
3. Business logic
|
|
142
|
-
4. UI components (if applicable)
|
|
143
|
-
5. Integration/wiring
|
|
144
|
-
|
|
145
|
-
Adjust per project — not all projects need all phases. A backend API project may have 3 phases while a UI project has 4.
|
|
146
|
-
|
|
147
|
-
**Consider cross-project ordering:**
|
|
148
|
-
- Which project phases produce outputs that other project phases consume?
|
|
149
|
-
- Which phases can run independently?
|
|
150
|
-
- Reference CONTRACTS.md for interface dependencies
|
|
151
|
-
|
|
152
|
-
**Present consolidated view:**
|
|
153
|
-
```
|
|
154
|
-
Here's the proposed phase structure across all projects:
|
|
155
|
-
|
|
156
|
-
**{project-1}** ({N} phases):
|
|
157
|
-
Phase 1: {Name} — {Goal}
|
|
158
|
-
Phase 2: {Name} — {Goal}
|
|
159
|
-
...
|
|
160
|
-
|
|
161
|
-
**{project-2}** ({N} phases):
|
|
162
|
-
Phase 1: {Name} — {Goal}
|
|
163
|
-
Phase 2: {Name} — {Goal}
|
|
164
|
-
...
|
|
165
|
-
|
|
166
|
-
**Cross-project dependencies (preliminary):**
|
|
167
|
-
- {project-1}/phase-1 → no cross-project deps
|
|
168
|
-
- {project-2}/phase-2 → after {project-1}/phase-2
|
|
169
|
-
|
|
170
|
-
Does this phasing make sense? Any adjustments?
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Use AskUserQuestion:
|
|
174
|
-
- header: "Phases"
|
|
175
|
-
- question: "Does this phase structure look right?"
|
|
176
|
-
- options:
|
|
177
|
-
- "Yes, looks good" — Continue with this structure
|
|
178
|
-
- "I want to adjust" — Modify phases or ordering
|
|
179
|
-
|
|
180
|
-
**If "I want to adjust":**
|
|
181
|
-
Ask user for specific changes. Apply adjustments.
|
|
182
|
-
|
|
183
|
-
Continue to write_project_roadmaps.
|
|
184
|
-
</step>
|
|
185
|
-
|
|
186
|
-
<step name="write_project_roadmaps">
|
|
187
|
-
Write ROADMAP.md for each involved sub-project.
|
|
188
|
-
|
|
189
|
-
For each project:
|
|
190
|
-
|
|
191
|
-
**Write ROADMAP.md:**
|
|
192
|
-
Use template at `~/.claude/specdacular/templates/features/ROADMAP.md`
|
|
193
|
-
|
|
194
|
-
Fill in with project-specific phases:
|
|
195
|
-
- Overview table: total phases, current phase 1, not started
|
|
196
|
-
- Phase list with one-liners
|
|
197
|
-
- Phase details: goal, creates, modifies, success criteria, dependencies (within this project only)
|
|
198
|
-
- Execution order
|
|
199
|
-
- Key decisions affecting this project's roadmap
|
|
200
|
-
|
|
201
|
-
**IMPORTANT (DEC-001):** Sub-project ROADMAP.md must be self-contained. Dependencies listed are intra-project only. No references to other projects or cross-project phases.
|
|
202
|
-
|
|
203
|
-
**Create phase directories:**
|
|
204
|
-
```bash
|
|
205
|
-
{For each project:}
|
|
206
|
-
mkdir -p {project-path}/.specd/features/{feature-name}/plans/phase-01
|
|
207
|
-
mkdir -p {project-path}/.specd/features/{feature-name}/plans/phase-02
|
|
208
|
-
# ... for each phase
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**Update sub-project STATE.md:**
|
|
212
|
-
- Stage: discussion -> planned
|
|
213
|
-
- Add phases info
|
|
214
|
-
|
|
215
|
-
**Update sub-project config.json:**
|
|
216
|
-
```json
|
|
217
|
-
{
|
|
218
|
-
"stage": "planned",
|
|
219
|
-
"phases": {
|
|
220
|
-
"total": {N},
|
|
221
|
-
"completed": 0,
|
|
222
|
-
"current": 1
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
After all projects processed, verify:
|
|
228
|
-
```bash
|
|
229
|
-
for project in {project-paths}; do
|
|
230
|
-
echo "Checking $project..."
|
|
231
|
-
ls "$project/.specd/features/{feature-name}/ROADMAP.md"
|
|
232
|
-
ls "$project/.specd/features/{feature-name}/plans/"
|
|
233
|
-
done
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
Continue to build_dependency_graph.
|
|
237
|
-
</step>
|
|
238
|
-
|
|
239
|
-
<step name="build_dependency_graph">
|
|
240
|
-
Build cross-project phase dependency graph.
|
|
241
|
-
|
|
242
|
-
**Analyze cross-project dependencies:**
|
|
243
|
-
For each phase across all projects, determine:
|
|
244
|
-
- Does this phase produce outputs consumed by phases in other projects?
|
|
245
|
-
- Does this phase require outputs from phases in other projects?
|
|
246
|
-
|
|
247
|
-
Use these sources to infer dependencies:
|
|
248
|
-
- CONTRACTS.md — Which projects share interfaces? Phase that creates an interface must precede phase that consumes it.
|
|
249
|
-
- TOPOLOGY.md — Communication patterns indicate dependency direction.
|
|
250
|
-
- Per-project FEATURE.md — Integration points reveal cross-project needs.
|
|
251
|
-
- Per-project ROADMAP.md — Phase goals indicate what each phase produces.
|
|
252
|
-
|
|
253
|
-
**Build dependency table:**
|
|
254
|
-
```
|
|
255
|
-
| Phase | Depends On | Reason |
|
|
256
|
-
|-------|------------|--------|
|
|
257
|
-
| {project-1}/phase-1 | — | No cross-project deps |
|
|
258
|
-
| {project-2}/phase-1 | — | No cross-project deps |
|
|
259
|
-
| {project-1}/phase-2 | {project-2}/phase-1 | Needs {interface} from {project-2} |
|
|
260
|
-
| {project-2}/phase-2 | {project-1}/phase-2 | Consumes {output} from {project-1} |
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
**Present proposed dependencies:**
|
|
264
|
-
```
|
|
265
|
-
Here are the cross-project phase dependencies I've identified:
|
|
266
|
-
|
|
267
|
-
{dependency table}
|
|
268
|
-
|
|
269
|
-
Phases with no cross-project deps can start independently.
|
|
270
|
-
Phases with dependencies must wait for their prerequisites.
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Use AskUserQuestion:
|
|
274
|
-
- header: "Dependencies"
|
|
275
|
-
- question: "Do these cross-project dependencies look right?"
|
|
276
|
-
- options:
|
|
277
|
-
- "Yes, looks right" — Continue with these dependencies
|
|
278
|
-
- "I need to adjust" — Modify dependencies
|
|
279
|
-
|
|
280
|
-
**If "I need to adjust":**
|
|
281
|
-
Ask user for specific changes. Apply adjustments.
|
|
282
|
-
|
|
283
|
-
Continue to validate_dependencies.
|
|
284
|
-
</step>
|
|
285
|
-
|
|
286
|
-
<step name="validate_dependencies">
|
|
287
|
-
Validate the dependency graph has no cycles (DEC-009).
|
|
288
|
-
|
|
289
|
-
**Perform topological sort:**
|
|
290
|
-
|
|
291
|
-
Build a directed graph from the dependency table. For each phase node:
|
|
292
|
-
1. Calculate in-degree (number of dependencies)
|
|
293
|
-
2. Start with all nodes that have in-degree 0 (no dependencies)
|
|
294
|
-
3. Process each node: remove its edges, decrement in-degrees of dependent nodes
|
|
295
|
-
4. If any new nodes reach in-degree 0, add them to the queue
|
|
296
|
-
5. If all nodes are processed: graph is valid (no cycles)
|
|
297
|
-
6. If unprocessed nodes remain: cycle detected
|
|
298
|
-
|
|
299
|
-
**If no cycles:**
|
|
300
|
-
```
|
|
301
|
-
Dependency graph validated — no cycles detected.
|
|
302
|
-
{N} phases can start independently.
|
|
303
|
-
{M} phases have cross-project dependencies.
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
Continue to write_dependencies.
|
|
307
|
-
|
|
308
|
-
**If cycle detected:**
|
|
309
|
-
Identify the cycle path from the unprocessed nodes.
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
Cycle detected in cross-project dependencies:
|
|
313
|
-
|
|
314
|
-
{project-1}/phase-{X} → {project-2}/phase-{Y} → {project-1}/phase-{X}
|
|
315
|
-
|
|
316
|
-
This means these phases depend on each other, creating a deadlock.
|
|
317
|
-
|
|
318
|
-
To resolve:
|
|
319
|
-
- Split one of the phases so part can run earlier
|
|
320
|
-
- Remove one direction of the dependency
|
|
321
|
-
- Merge the dependent work into a single phase
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
Use AskUserQuestion:
|
|
325
|
-
- header: "Cycle"
|
|
326
|
-
- question: "How would you like to resolve this cycle?"
|
|
327
|
-
- options:
|
|
328
|
-
- "I'll restructure" — Go back to adjust dependencies
|
|
329
|
-
- "Split a phase" — Break a phase into sub-phases
|
|
330
|
-
- "Help me decide" — Get a recommendation
|
|
331
|
-
|
|
332
|
-
**If "I'll restructure":** Return to build_dependency_graph.
|
|
333
|
-
**If "Split a phase":** Discuss which phase to split, update project roadmap, return to validate_dependencies.
|
|
334
|
-
**If "Help me decide":** Analyze the cycle and recommend the simplest resolution. Apply after user confirms.
|
|
335
|
-
</step>
|
|
336
|
-
|
|
337
|
-
<step name="write_dependencies">
|
|
338
|
-
Write DEPENDENCIES.md in the orchestrator's feature folder.
|
|
339
|
-
|
|
340
|
-
**Write DEPENDENCIES.md:**
|
|
341
|
-
Use template at `~/.claude/specdacular/templates/features/DEPENDENCIES.md`
|
|
342
|
-
|
|
343
|
-
Fill in:
|
|
344
|
-
- **Project Involvement table:** Each project with its role, phase count, and feature path
|
|
345
|
-
- **Phase Dependencies table:** All cross-project dependencies with status (all "pending" initially)
|
|
346
|
-
- **Mermaid DAG:** Visual representation of the dependency graph
|
|
347
|
-
|
|
348
|
-
```mermaid
|
|
349
|
-
graph TD
|
|
350
|
-
A["{project-1}/phase-1"] --> C["{project-1}/phase-2"]
|
|
351
|
-
B["{project-2}/phase-1"] --> D["{project-2}/phase-2"]
|
|
352
|
-
C --> D
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
- **Scheduling Notes:** Which phases can start immediately, which are blocked
|
|
356
|
-
|
|
357
|
-
**Also update orchestrator STATE.md and config.json:**
|
|
358
|
-
|
|
359
|
-
Update STATE.md:
|
|
360
|
-
- Stage: discussion -> planned
|
|
361
|
-
- Add phases info (total phases across all projects)
|
|
362
|
-
|
|
363
|
-
Update config.json:
|
|
364
|
-
```json
|
|
365
|
-
{
|
|
366
|
-
"stage": "planned",
|
|
367
|
-
"phases": {
|
|
368
|
-
"total": {sum of all project phases},
|
|
369
|
-
"completed": 0,
|
|
370
|
-
"current": 1
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
Continue to orchestrator_plan_commit.
|
|
376
|
-
</step>
|
|
377
|
-
|
|
378
|
-
<step name="orchestrator_plan_commit">
|
|
379
|
-
Commit all roadmaps and dependency graph.
|
|
380
|
-
|
|
381
|
-
```bash
|
|
382
|
-
# Add orchestrator feature updates
|
|
383
|
-
git add .specd/features/{feature-name}/DEPENDENCIES.md
|
|
384
|
-
git add .specd/features/{feature-name}/STATE.md
|
|
385
|
-
git add .specd/features/{feature-name}/config.json
|
|
386
|
-
|
|
387
|
-
# Add per-project roadmaps, state, and phase directories
|
|
388
|
-
{For each project:}
|
|
389
|
-
git add {project-path}/.specd/features/{feature-name}/ROADMAP.md
|
|
390
|
-
git add {project-path}/.specd/features/{feature-name}/plans/
|
|
391
|
-
git add {project-path}/.specd/features/{feature-name}/STATE.md
|
|
392
|
-
git add {project-path}/.specd/features/{feature-name}/config.json
|
|
393
|
-
|
|
394
|
-
git commit -m "docs({feature-name}): create multi-project roadmap
|
|
395
|
-
|
|
396
|
-
Orchestrator:
|
|
397
|
-
- DEPENDENCIES.md: Cross-project phase dependency graph
|
|
398
|
-
|
|
399
|
-
Projects:
|
|
400
|
-
{For each project:}
|
|
401
|
-
- {project-name}: {N} phases — ROADMAP.md + phase directories
|
|
402
|
-
|
|
403
|
-
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
Continue to orchestrator_plan_completion.
|
|
407
|
-
</step>
|
|
408
|
-
|
|
409
|
-
<step name="orchestrator_plan_completion">
|
|
410
|
-
Present multi-project roadmap summary.
|
|
411
|
-
|
|
412
|
-
```
|
|
413
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
414
|
-
MULTI-PROJECT ROADMAP CREATED
|
|
415
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
416
|
-
|
|
417
|
-
**Feature:** {feature-name}
|
|
418
|
-
|
|
419
|
-
## Per-Project Phases
|
|
420
|
-
|
|
421
|
-
{For each project:}
|
|
422
|
-
**{project-name}** ({N} phases):
|
|
423
|
-
Phase 1: {Name} — {Goal}
|
|
424
|
-
Phase 2: {Name} — {Goal}
|
|
425
|
-
...
|
|
426
|
-
|
|
427
|
-
## Cross-Project Dependencies
|
|
428
|
-
|
|
429
|
-
{dependency summary — which phases block which}
|
|
430
|
-
{N} independent phases, {M} dependent phases
|
|
431
|
-
No cycles detected.
|
|
432
|
-
|
|
433
|
-
## Files Created
|
|
434
|
-
|
|
435
|
-
- `.specd/features/{feature-name}/DEPENDENCIES.md` — Dependency graph
|
|
436
|
-
{For each project:}
|
|
437
|
-
- `{project-path}/.specd/features/{feature-name}/ROADMAP.md`
|
|
438
|
-
- `{project-path}/.specd/features/{feature-name}/plans/phase-{NN}/`
|
|
439
|
-
|
|
440
|
-
───────────────────────────────────────────────────────
|
|
441
|
-
|
|
442
|
-
## What's Next — Phase by Phase
|
|
443
|
-
|
|
444
|
-
The orchestrator will guide you through phases respecting cross-project dependencies.
|
|
445
|
-
|
|
446
|
-
/specd:feature:continue {feature-name} — Start executing phases
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
End workflow.
|
|
450
|
-
</step>
|
|
451
|
-
|
|
452
|
-
<step name="assess_readiness">
|
|
453
|
-
Check if there's enough context to create a good roadmap.
|
|
454
|
-
|
|
455
|
-
**Required for planning:**
|
|
456
|
-
- [ ] Clear list of files to create
|
|
457
|
-
- [ ] Integration points identified
|
|
458
|
-
- [ ] Key decisions made (at least technology choices)
|
|
459
|
-
|
|
460
|
-
**Warning signs (insufficient context):**
|
|
461
|
-
- FEATURE.md has placeholder text
|
|
462
|
-
- CONTEXT.md has many unresolved gray areas
|
|
463
|
-
- No decisions in DECISIONS.md
|
|
464
|
-
- Major technical questions unanswered
|
|
465
|
-
|
|
466
|
-
**If insufficient:**
|
|
467
|
-
```
|
|
468
|
-
Feature '{name}' might benefit from more discussion before planning.
|
|
469
|
-
|
|
470
|
-
**Current state:**
|
|
471
|
-
- Files to create: {count or "unclear"}
|
|
472
|
-
- Integration points: {count or "unclear"}
|
|
473
|
-
- Decisions made: {count}
|
|
474
|
-
- Gray areas remaining: {count}
|
|
475
|
-
|
|
476
|
-
**Recommendation:**
|
|
477
|
-
/specd:feature:discuss {name} — Resolve remaining gray areas
|
|
478
|
-
/specd:feature:research {name} — Research implementation approach
|
|
479
|
-
|
|
480
|
-
Continue anyway? (Roadmap may need revision)
|
|
481
|
-
```
|
|
482
|
-
|
|
483
|
-
Use AskUserQuestion:
|
|
484
|
-
- header: "Plan Readiness"
|
|
485
|
-
- question: "How would you like to proceed?"
|
|
486
|
-
- options:
|
|
487
|
-
- "Continue planning" — Create roadmap with current context
|
|
488
|
-
- "Discuss first" — Run feature:discuss
|
|
489
|
-
- "Research first" — Run feature:research
|
|
490
|
-
|
|
491
|
-
**If sufficient or user chooses to continue:**
|
|
492
|
-
Continue to derive_phases.
|
|
493
|
-
</step>
|
|
494
|
-
|
|
495
|
-
<step name="derive_phases">
|
|
496
|
-
Derive phases from dependency analysis.
|
|
497
|
-
|
|
498
|
-
**Analyze dependencies:**
|
|
499
|
-
1. What types/interfaces are needed? (Phase: Types)
|
|
500
|
-
2. What data layer changes are needed? (Phase: Data/API)
|
|
501
|
-
3. What business logic is needed? (Phase: Logic/Hooks)
|
|
502
|
-
4. What UI is needed? (Phase: Components)
|
|
503
|
-
5. What integration/wiring is needed? (Phase: Integration)
|
|
504
|
-
|
|
505
|
-
**Standard phase pattern:**
|
|
506
|
-
```
|
|
507
|
-
Phase 1: Foundation (types, schemas)
|
|
508
|
-
Phase 2: Data Layer (API routes, database)
|
|
509
|
-
Phase 3: Business Logic (hooks, services)
|
|
510
|
-
Phase 4: UI (components)
|
|
511
|
-
Phase 5: Integration (wiring, entry points)
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
**Adjust based on feature:**
|
|
515
|
-
- Small feature: might be 2-3 phases
|
|
516
|
-
- Large feature: might be 5+ phases
|
|
517
|
-
- Some features skip phases (no UI, no API, etc.)
|
|
518
|
-
|
|
519
|
-
**For each phase, identify:**
|
|
520
|
-
- Goal: What this phase achieves
|
|
521
|
-
- Creates: New files
|
|
522
|
-
- Modifies: Existing files
|
|
523
|
-
- Depends on: Previous phases or external dependencies
|
|
524
|
-
|
|
525
|
-
**Present to user:**
|
|
526
|
-
```
|
|
527
|
-
Based on the requirements, here's the proposed phase structure:
|
|
528
|
-
|
|
529
|
-
**Phase 1: {Name}** — {Goal}
|
|
530
|
-
Creates: {file list}
|
|
531
|
-
Depends on: None
|
|
532
|
-
|
|
533
|
-
**Phase 2: {Name}** — {Goal}
|
|
534
|
-
Creates: {file list}
|
|
535
|
-
Depends on: Phase 1
|
|
536
|
-
|
|
537
|
-
...
|
|
538
|
-
|
|
539
|
-
Does this phasing make sense? Any adjustments?
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
Continue to write_roadmap.
|
|
543
|
-
</step>
|
|
544
|
-
|
|
545
|
-
<step name="write_roadmap">
|
|
546
|
-
Write ROADMAP.md with phase overview.
|
|
547
|
-
|
|
548
|
-
**Use template at `~/.claude/specdacular/templates/features/ROADMAP.md`**
|
|
549
|
-
|
|
550
|
-
**Fill in:**
|
|
551
|
-
|
|
552
|
-
**Overview table:**
|
|
553
|
-
- Total phases
|
|
554
|
-
- Current phase: 1
|
|
555
|
-
- Status: Not Started
|
|
556
|
-
|
|
557
|
-
**Phase list:** Quick overview with one-liners
|
|
558
|
-
|
|
559
|
-
**Phase details:** For each phase:
|
|
560
|
-
- Goal
|
|
561
|
-
- Creates (file list)
|
|
562
|
-
- Modifies (file list)
|
|
563
|
-
- Success criteria
|
|
564
|
-
- Dependencies
|
|
565
|
-
|
|
566
|
-
**Execution order:** Visual representation
|
|
567
|
-
|
|
568
|
-
**Key decisions affecting roadmap:**
|
|
569
|
-
Reference decisions from DECISIONS.md that affect phase ordering
|
|
570
|
-
|
|
571
|
-
Continue to create_directories.
|
|
572
|
-
</step>
|
|
573
|
-
|
|
574
|
-
<step name="create_directories">
|
|
575
|
-
Create empty phase directories.
|
|
576
|
-
|
|
577
|
-
```bash
|
|
578
|
-
mkdir -p .specd/features/{feature-name}/plans/phase-01
|
|
579
|
-
mkdir -p .specd/features/{feature-name}/plans/phase-02
|
|
580
|
-
# ... for each phase
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
Continue to update_state.
|
|
584
|
-
</step>
|
|
585
|
-
|
|
586
|
-
<step name="update_state">
|
|
587
|
-
Update STATE.md with planning status.
|
|
588
|
-
|
|
589
|
-
**Update STATE.md:**
|
|
590
|
-
- Stage: discussion -> planned
|
|
591
|
-
- Roadmap created: yes
|
|
592
|
-
- Add planning session to history
|
|
593
|
-
|
|
594
|
-
**Update config.json:**
|
|
595
|
-
```json
|
|
596
|
-
{
|
|
597
|
-
"stage": "planned",
|
|
598
|
-
"phases": {
|
|
599
|
-
"total": {N},
|
|
600
|
-
"completed": 0,
|
|
601
|
-
"current": 1
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
Continue to commit.
|
|
607
|
-
</step>
|
|
608
|
-
|
|
609
|
-
<step name="commit">
|
|
610
|
-
Commit the roadmap.
|
|
611
|
-
|
|
612
|
-
@~/.claude/specdacular/references/commit-docs.md
|
|
613
|
-
|
|
614
|
-
- **$FILES:** `.specd/features/{feature-name}/ROADMAP.md .specd/features/{feature-name}/plans/ .specd/features/{feature-name}/STATE.md .specd/features/{feature-name}/config.json`
|
|
615
|
-
- **$MESSAGE:** `docs({feature-name}): create roadmap` with phase count and structure
|
|
616
|
-
- **$LABEL:** `roadmap creation`
|
|
617
|
-
|
|
618
|
-
Continue to completion.
|
|
619
|
-
</step>
|
|
620
|
-
|
|
621
|
-
<step name="completion">
|
|
622
|
-
Present what was created and how to proceed.
|
|
623
|
-
|
|
624
|
-
```
|
|
625
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
626
|
-
ROADMAP CREATED
|
|
627
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
628
|
-
|
|
629
|
-
**Feature:** {feature-name}
|
|
630
|
-
|
|
631
|
-
## Phases
|
|
632
|
-
|
|
633
|
-
**Phase 1:** {Name} — {Goal}
|
|
634
|
-
**Phase 2:** {Name} — {Goal}
|
|
635
|
-
...
|
|
636
|
-
|
|
637
|
-
## Files Created
|
|
638
|
-
|
|
639
|
-
- `.specd/features/{feature-name}/ROADMAP.md`
|
|
640
|
-
- `.specd/features/{feature-name}/plans/phase-01/`
|
|
641
|
-
- `.specd/features/{feature-name}/plans/phase-02/`
|
|
642
|
-
...
|
|
643
|
-
|
|
644
|
-
───────────────────────────────────────────────────────
|
|
645
|
-
|
|
646
|
-
## What's Next — Phase by Phase
|
|
647
|
-
|
|
648
|
-
For each phase, the flow is:
|
|
649
|
-
|
|
650
|
-
1. `/specd:phase:prepare {feature} {N}` — Discuss gray areas + optional research
|
|
651
|
-
2. `/specd:phase:plan {feature} {N}` — Create detailed task plans
|
|
652
|
-
3. `/specd:phase:execute {feature}` — Execute with progress tracking
|
|
653
|
-
|
|
654
|
-
**Start with Phase 1:**
|
|
655
|
-
|
|
656
|
-
/specd:phase:prepare {feature} 1 — Prepare the first phase
|
|
657
|
-
|
|
658
|
-
<sub>/clear first — fresh context window</sub>
|
|
659
|
-
```
|
|
660
|
-
|
|
661
|
-
End workflow.
|
|
662
|
-
</step>
|
|
663
|
-
|
|
664
|
-
</process>
|
|
665
|
-
|
|
666
|
-
<success_criteria>
|
|
667
|
-
|
|
668
|
-
## Single-Project Mode
|
|
669
|
-
- Feature validated with sufficient context
|
|
670
|
-
- All context loaded and analyzed
|
|
671
|
-
- Phases derived from dependency analysis
|
|
672
|
-
- ROADMAP.md provides clear phase overview
|
|
673
|
-
- Empty phase directories created
|
|
674
|
-
- No PLAN.md files created
|
|
675
|
-
- STATE.md updated to "planned" stage
|
|
676
|
-
- Committed to git
|
|
677
|
-
- User knows the per-phase flow: prepare -> plan -> execute
|
|
678
|
-
|
|
679
|
-
## Multi-Project Mode (Orchestrator)
|
|
680
|
-
- Orchestrator mode detected from feature config.json
|
|
681
|
-
- System-level and sub-project context loaded
|
|
682
|
-
- Per-project phases derived in single orchestrator pass
|
|
683
|
-
- User confirms/adjusts consolidated phase view
|
|
684
|
-
- Per-project ROADMAP.md files self-contained (DEC-001)
|
|
685
|
-
- Cross-project dependency graph built and confirmed by user
|
|
686
|
-
- Topological sort validates no cycles (DEC-009)
|
|
687
|
-
- DEPENDENCIES.md written with table + Mermaid DAG
|
|
688
|
-
- All roadmaps, state, and config committed
|
|
689
|
-
- User knows to use /specd:feature:continue for execution
|
|
690
|
-
|
|
691
|
-
</success_criteria>
|