specdacular 0.9.2 → 0.10.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 +40 -36
- package/agents/specd-codebase-mapper.md +1 -1
- package/bin/install.js +46 -12
- package/commands/{specd/map-codebase.md → specd.codebase.map.md} +1 -1
- package/commands/specd.codebase.review.md +39 -0
- package/commands/{specd/config.md → specd.config.md} +1 -1
- package/commands/{specd/continue.md → specd.continue.md} +1 -1
- package/commands/{specd/help.md → specd.help.md} +1 -1
- package/commands/{specd/new.md → specd.new.md} +4 -4
- package/commands/{specd/status.md → specd.status.md} +1 -1
- package/commands/specd.toolbox.md +63 -0
- package/commands/{specd/update.md → specd.update.md} +1 -1
- package/hooks/specd-statusline.js +1 -1
- package/package.json +1 -1
- package/specdacular/HELP.md +18 -20
- package/specdacular/agents/feature-researcher.md +4 -4
- package/specdacular/references/execute-hooks.md +1 -1
- package/specdacular/references/select-feature.md +1 -1
- package/specdacular/references/select-phase.md +1 -1
- package/specdacular/references/validate-task.md +3 -3
- package/specdacular/templates/tasks/STATE.md +1 -1
- package/specdacular/workflows/brain.md +2 -2
- package/specdacular/workflows/config.md +1 -1
- package/specdacular/workflows/context-add.md +1 -1
- package/specdacular/workflows/context-manual-review.md +1 -1
- package/specdacular/workflows/new.md +6 -6
- package/specdacular/workflows/orchestrator/new.md +3 -3
- package/specdacular/workflows/orchestrator/plan.md +1 -1
- package/specdacular/workflows/plan.md +3 -3
- package/specdacular/workflows/status.md +3 -3
- package/commands/specd/toolbox.md +0 -103
package/README.md
CHANGED
|
@@ -59,14 +59,14 @@ For monorepos and multi-repo setups, it maps each sub-project in parallel, then
|
|
|
59
59
|
Three commands drive the entire task lifecycle:
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
/specd
|
|
63
|
-
/specd
|
|
64
|
-
/specd
|
|
62
|
+
/specd.new my-feature # Initialize + first discussion
|
|
63
|
+
/specd.continue my-feature # Everything else — discussion, research, planning, execution, review
|
|
64
|
+
/specd.toolbox my-feature # Advanced operations menu
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
`continue` reads your task's current state and offers the natural next step. You never need to remember which command comes next.
|
|
68
68
|
|
|
69
|
-
`toolbox` gives you direct access to advanced operations — discuss, research, plan, execute, review
|
|
69
|
+
`toolbox` gives you direct access to advanced task operations — discuss, research, plan, execute, review. Use `/specd.codebase.review` for section-by-section context file review with edit/re-map/add.
|
|
70
70
|
|
|
71
71
|
Works with single projects and multi-project setups (monorepos, multi-repo). In multi-project mode, features are discussed at the system level and routed to the relevant sub-projects, with cross-project dependency tracking and contract validation.
|
|
72
72
|
|
|
@@ -94,7 +94,7 @@ Choose:
|
|
|
94
94
|
|
|
95
95
|
In Claude Code:
|
|
96
96
|
```
|
|
97
|
-
/specd
|
|
97
|
+
/specd.help
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
---
|
|
@@ -104,7 +104,7 @@ In Claude Code:
|
|
|
104
104
|
### Map a Codebase
|
|
105
105
|
|
|
106
106
|
```
|
|
107
|
-
/specd
|
|
107
|
+
/specd.codebase.map
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Creates `.specd/codebase/` with 4 AI-optimized documents. This gives Claude context about your codebase's architecture, patterns, structure, and gotchas. For multi-project setups, it detects sub-projects automatically and maps each one in parallel before producing system-level documentation.
|
|
@@ -114,7 +114,7 @@ Creates `.specd/codebase/` with 4 AI-optimized documents. This gives Claude cont
|
|
|
114
114
|
**Step 1: Initialize**
|
|
115
115
|
|
|
116
116
|
```
|
|
117
|
-
/specd
|
|
117
|
+
/specd.new user-dashboard
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
Creates `.specd/tasks/user-dashboard/` and starts the first discussion. Claude asks what you're building, follows the thread, and captures technical requirements. When done, offers to continue discussing or stop.
|
|
@@ -122,7 +122,7 @@ Creates `.specd/tasks/user-dashboard/` and starts the first discussion. Claude a
|
|
|
122
122
|
**Step 2: Drive the lifecycle**
|
|
123
123
|
|
|
124
124
|
```
|
|
125
|
-
/specd
|
|
125
|
+
/specd.continue user-dashboard
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
That's it. `continue` reads the current state and guides you through each stage:
|
|
@@ -133,20 +133,20 @@ That's it. `continue` reads the current state and guides you through each stage:
|
|
|
133
133
|
4. **Phase execution** — Plans each phase just-in-time, then implements with progress tracking
|
|
134
134
|
5. **Phase review** — Code review agent compares plans against actual code
|
|
135
135
|
|
|
136
|
-
After each step, you can continue or stop. Resume anytime with `/specd
|
|
136
|
+
After each step, you can continue or stop. Resume anytime with `/specd.continue`.
|
|
137
137
|
|
|
138
138
|
**Execution modes:**
|
|
139
139
|
|
|
140
140
|
```
|
|
141
|
-
/specd
|
|
142
|
-
/specd
|
|
143
|
-
/specd
|
|
141
|
+
/specd.continue user-dashboard # Default — auto-runs, pauses at phase steps
|
|
142
|
+
/specd.continue user-dashboard --interactive # Prompt at every step with skip/jump options
|
|
143
|
+
/specd.continue user-dashboard --auto # Run everything, stop only on review issues
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
**No argument? It picks for you:**
|
|
147
147
|
|
|
148
148
|
```
|
|
149
|
-
/specd
|
|
149
|
+
/specd.continue
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
Scans for in-progress tasks and shows a picker.
|
|
@@ -154,10 +154,18 @@ Scans for in-progress tasks and shows a picker.
|
|
|
154
154
|
**Need a specific operation?**
|
|
155
155
|
|
|
156
156
|
```
|
|
157
|
-
/specd
|
|
157
|
+
/specd.toolbox user-dashboard
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
-
Opens a menu with task operations (Discuss, Research, Plan, Execute, Review)
|
|
160
|
+
Opens a menu with task operations (Discuss, Research, Plan, Execute, Review). Useful when you want to jump to a specific action outside the normal flow.
|
|
161
|
+
|
|
162
|
+
**Need to review codebase context?**
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
/specd.codebase.review
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Section-by-section review of any context file: confirm, edit, remove, re-map, or add new content.
|
|
161
169
|
|
|
162
170
|
---
|
|
163
171
|
|
|
@@ -167,25 +175,25 @@ Opens a menu with task operations (Discuss, Research, Plan, Execute, Review) and
|
|
|
167
175
|
|
|
168
176
|
| Command | Description |
|
|
169
177
|
|---------|-------------|
|
|
170
|
-
| `/specd
|
|
171
|
-
| `/specd
|
|
172
|
-
| `/specd
|
|
178
|
+
| `/specd.new [name]` | Initialize a task, start first discussion |
|
|
179
|
+
| `/specd.continue [name] [--interactive\|--auto]` | **Drive the entire lifecycle** — picks up where you left off |
|
|
180
|
+
| `/specd.toolbox [name]` | Advanced task operations |
|
|
173
181
|
|
|
174
182
|
### Codebase Documentation
|
|
175
183
|
|
|
176
184
|
| Command | Description |
|
|
177
185
|
|---------|-------------|
|
|
178
|
-
| `/specd
|
|
179
|
-
| `/specd
|
|
186
|
+
| `/specd.codebase.map` | Analyze codebase with parallel agents |
|
|
187
|
+
| `/specd.codebase.review` | Review and edit codebase context files section by section |
|
|
180
188
|
|
|
181
189
|
### Utilities
|
|
182
190
|
|
|
183
191
|
| Command | Description |
|
|
184
192
|
|---------|-------------|
|
|
185
|
-
| `/specd
|
|
186
|
-
| `/specd
|
|
187
|
-
| `/specd
|
|
188
|
-
| `/specd
|
|
193
|
+
| `/specd.config` | Configure auto-commit settings for docs and code |
|
|
194
|
+
| `/specd.status [--all]` | Show task status dashboard |
|
|
195
|
+
| `/specd.help` | Show available commands |
|
|
196
|
+
| `/specd.update` | Update to latest version |
|
|
189
197
|
|
|
190
198
|
---
|
|
191
199
|
|
|
@@ -207,18 +215,14 @@ Opens a menu with task operations (Discuss, Research, Plan, Execute, Review) and
|
|
|
207
215
|
- **Phase review** — Code review agent inspects executed code against plan intent. Generates fix plans (decimal phases like `phase-01.1`) if needed.
|
|
208
216
|
- **Revise** — Collects feedback from review, creates fix plans, signals brain to re-execute.
|
|
209
217
|
|
|
210
|
-
**`toolbox`** provides direct access to
|
|
211
|
-
|
|
212
|
-
**Tasks** (`/specd:toolbox tasks my-feature`):
|
|
218
|
+
**`toolbox`** (`/specd.toolbox my-feature`) provides direct access to task operations outside the normal flow:
|
|
213
219
|
- **Discuss** — Explore open questions, record decisions
|
|
214
220
|
- **Research** — Spawn parallel agents for patterns/pitfalls
|
|
215
221
|
- **Plan** — Create execution phases from task context
|
|
216
222
|
- **Execute** — Execute the next phase's plan
|
|
217
223
|
- **Review** — Review executed phase, approve or request fixes
|
|
218
224
|
|
|
219
|
-
|
|
220
|
-
- **Status** — Dashboard showing all context files with freshness indicators
|
|
221
|
-
- **Review** — Section-by-section review of any context file: confirm, edit, remove, re-map (spawns a mapper agent to regenerate a section), or add new content. Sections are tracked with `AUTO_GENERATED` and `USER_MODIFIED` tags with dates.
|
|
225
|
+
**`codebase.review`** (`/specd.codebase.review`) — Section-by-section review of any codebase context file: confirm, edit, remove, re-map (spawns a mapper agent to regenerate a section), or add new content. Sections are tracked with `AUTO_GENERATED` and `USER_MODIFIED` tags with dates.
|
|
222
226
|
|
|
223
227
|
---
|
|
224
228
|
|
|
@@ -368,7 +372,7 @@ Specdacular spawns specialized agents that run simultaneously:
|
|
|
368
372
|
|
|
369
373
|
```
|
|
370
374
|
┌─────────────────────────────────────────────────────────┐
|
|
371
|
-
│ /specd
|
|
375
|
+
│ /specd.codebase.map │
|
|
372
376
|
└─────────────────────────────────────────────────────────┘
|
|
373
377
|
│
|
|
374
378
|
┌───────────────┼───────────────┐
|
|
@@ -396,7 +400,7 @@ Specdacular supports monorepos and multi-repo setups through an orchestrator lay
|
|
|
396
400
|
### Setup
|
|
397
401
|
|
|
398
402
|
```
|
|
399
|
-
/specd
|
|
403
|
+
/specd.codebase.map
|
|
400
404
|
```
|
|
401
405
|
|
|
402
406
|
When it detects multiple projects (via `package.json`, `go.mod`, `Cargo.toml`, etc.), it offers to enable multi-project mode. This:
|
|
@@ -423,8 +427,8 @@ Planning creates per-project roadmaps plus a cross-project dependency graph (`DE
|
|
|
423
427
|
`continue` schedules across projects, respecting cross-project dependencies. After each phase, it performs contract review — comparing what was implemented against system-level expectations and flagging deviations before they cascade to downstream projects.
|
|
424
428
|
|
|
425
429
|
```
|
|
426
|
-
/specd
|
|
427
|
-
/specd
|
|
430
|
+
/specd.continue auth-system # Auto-picks next unblocked phase across projects
|
|
431
|
+
/specd.continue auth-system api # Target a specific sub-project
|
|
428
432
|
```
|
|
429
433
|
|
|
430
434
|
---
|
|
@@ -441,7 +445,7 @@ your-project/
|
|
|
441
445
|
│ │ ├── pre-execute.md
|
|
442
446
|
│ │ └── post-review.md
|
|
443
447
|
│ │
|
|
444
|
-
│ ├── codebase/ # From /specd
|
|
448
|
+
│ ├── codebase/ # From /specd.codebase.map
|
|
445
449
|
│ │ ├── MAP.md
|
|
446
450
|
│ │ ├── PATTERNS.md
|
|
447
451
|
│ │ ├── STRUCTURE.md
|
|
@@ -537,7 +541,7 @@ npx specdacular@latest
|
|
|
537
541
|
|
|
538
542
|
Or in Claude Code:
|
|
539
543
|
```
|
|
540
|
-
/specd
|
|
544
|
+
/specd.update
|
|
541
545
|
```
|
|
542
546
|
|
|
543
547
|
---
|
|
@@ -8,7 +8,7 @@ color: cyan
|
|
|
8
8
|
<role>
|
|
9
9
|
You are a codebase mapper optimized for AI consumption. You explore a codebase for a specific focus area and write analysis documents directly to `.specd/codebase/`.
|
|
10
10
|
|
|
11
|
-
You are spawned by `/specd
|
|
11
|
+
You are spawned by `/specd.codebase.map` with one of four focus areas:
|
|
12
12
|
- **map**: Create navigation map → write MAP.md
|
|
13
13
|
- **patterns**: Extract code patterns → write PATTERNS.md
|
|
14
14
|
- **structure**: Document organization → write STRUCTURE.md
|
package/bin/install.js
CHANGED
|
@@ -166,13 +166,27 @@ function uninstall(isGlobal) {
|
|
|
166
166
|
|
|
167
167
|
let removedCount = 0;
|
|
168
168
|
|
|
169
|
-
// Remove specd commands
|
|
169
|
+
// Remove specd commands (both old directory format and new flat format)
|
|
170
170
|
const specCommandsDir = path.join(targetDir, 'commands', 'specd');
|
|
171
171
|
if (fs.existsSync(specCommandsDir)) {
|
|
172
172
|
fs.rmSync(specCommandsDir, { recursive: true });
|
|
173
173
|
removedCount++;
|
|
174
174
|
console.log(` ${green}✓${reset} Removed commands/specd/`);
|
|
175
175
|
}
|
|
176
|
+
const commandsDir = path.join(targetDir, 'commands');
|
|
177
|
+
if (fs.existsSync(commandsDir)) {
|
|
178
|
+
let cmdCount = 0;
|
|
179
|
+
for (const file of fs.readdirSync(commandsDir)) {
|
|
180
|
+
if (file.startsWith('specd.') && file.endsWith('.md')) {
|
|
181
|
+
fs.unlinkSync(path.join(commandsDir, file));
|
|
182
|
+
cmdCount++;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (cmdCount > 0) {
|
|
186
|
+
removedCount++;
|
|
187
|
+
console.log(` ${green}✓${reset} Removed ${cmdCount} specd commands`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
176
190
|
|
|
177
191
|
// Remove specdacular directory
|
|
178
192
|
const specDir = path.join(targetDir, 'specdacular');
|
|
@@ -292,14 +306,34 @@ function install(isGlobal) {
|
|
|
292
306
|
const commandsDir = path.join(targetDir, 'commands');
|
|
293
307
|
fs.mkdirSync(commandsDir, { recursive: true });
|
|
294
308
|
|
|
295
|
-
|
|
296
|
-
const
|
|
297
|
-
if (fs.existsSync(
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
309
|
+
// Remove old commands/specd/ directory if it exists (pre-0.10.0 format)
|
|
310
|
+
const oldSpecDir = path.join(commandsDir, 'specd');
|
|
311
|
+
if (fs.existsSync(oldSpecDir)) {
|
|
312
|
+
fs.rmSync(oldSpecDir, { recursive: true });
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Remove old specd.*.md command files before copying new ones
|
|
316
|
+
for (const file of fs.readdirSync(commandsDir)) {
|
|
317
|
+
if (file.startsWith('specd.') && file.endsWith('.md')) {
|
|
318
|
+
fs.unlinkSync(path.join(commandsDir, file));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const commandsSrc = path.join(src, 'commands');
|
|
323
|
+
if (fs.existsSync(commandsSrc)) {
|
|
324
|
+
let commandCount = 0;
|
|
325
|
+
for (const file of fs.readdirSync(commandsSrc)) {
|
|
326
|
+
if (file.startsWith('specd.') && file.endsWith('.md')) {
|
|
327
|
+
let content = fs.readFileSync(path.join(commandsSrc, file), 'utf8');
|
|
328
|
+
content = content.replace(/~\/\.claude\//g, pathPrefix);
|
|
329
|
+
fs.writeFileSync(path.join(commandsDir, file), content);
|
|
330
|
+
commandCount++;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
if (commandCount > 0) {
|
|
334
|
+
console.log(` ${green}✓${reset} Installed ${commandCount} specd commands`);
|
|
301
335
|
} else {
|
|
302
|
-
failures.push('commands
|
|
336
|
+
failures.push('commands');
|
|
303
337
|
}
|
|
304
338
|
}
|
|
305
339
|
|
|
@@ -430,12 +464,12 @@ function install(isGlobal) {
|
|
|
430
464
|
}
|
|
431
465
|
|
|
432
466
|
console.log(`
|
|
433
|
-
${green}Done!${reset} Launch Claude Code and run ${cyan}/specd
|
|
467
|
+
${green}Done!${reset} Launch Claude Code and run ${cyan}/specd.help${reset}.
|
|
434
468
|
|
|
435
469
|
${yellow}Commands:${reset}
|
|
436
|
-
/specd
|
|
437
|
-
/specd
|
|
438
|
-
/specd
|
|
470
|
+
/specd.codebase.map - Analyze and document your codebase
|
|
471
|
+
/specd.update - Update to latest version
|
|
472
|
+
/specd.help - Show all commands
|
|
439
473
|
`);
|
|
440
474
|
}
|
|
441
475
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specd.codebase.review
|
|
3
|
+
description: "Review and edit codebase context files section by section"
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<objective>
|
|
17
|
+
Walk through and review a codebase context file (.specd/codebase/*.md) section by section. Confirm, edit, remove, or re-map individual sections.
|
|
18
|
+
|
|
19
|
+
Output: Updated context file with reviewed/edited sections and updated timestamps.
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<execution_context>
|
|
23
|
+
Follow the context-manual-review workflow:
|
|
24
|
+
@~/.claude/specdacular/workflows/context-manual-review.md
|
|
25
|
+
</execution_context>
|
|
26
|
+
|
|
27
|
+
<context>
|
|
28
|
+
**Context workflows:**
|
|
29
|
+
@~/.claude/specdacular/workflows/context-manual-review.md
|
|
30
|
+
@~/.claude/specdacular/workflows/context-add.md
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<success_criteria>
|
|
34
|
+
- [ ] User selects a context file to review
|
|
35
|
+
- [ ] Section list shown with tag status
|
|
36
|
+
- [ ] User can confirm, edit, remove, or re-map each section
|
|
37
|
+
- [ ] Timestamps updated after review
|
|
38
|
+
- [ ] Changes committed
|
|
39
|
+
</success_criteria>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: specd
|
|
2
|
+
name: specd.new
|
|
3
3
|
description: Initialize a new task and start the first discussion
|
|
4
4
|
argument-hint: "[task-name]"
|
|
5
5
|
allowed-tools:
|
|
@@ -22,7 +22,7 @@ Initialize a task folder and start the first discussion. Creates structure, asks
|
|
|
22
22
|
- `.specd/tasks/{name}/STATE.md` — Progress tracking
|
|
23
23
|
- `.specd/tasks/{name}/config.json` — Task configuration
|
|
24
24
|
|
|
25
|
-
**This is the entry point.** After this, continue with `/specd
|
|
25
|
+
**This is the entry point.** After this, continue with `/specd.continue` to drive the entire lifecycle.
|
|
26
26
|
</objective>
|
|
27
27
|
|
|
28
28
|
<execution_context>
|
|
@@ -35,7 +35,7 @@ Task name: $ARGUMENTS
|
|
|
35
35
|
**Codebase context discovery:**
|
|
36
36
|
1. Check for `.specd/config.json` — if exists, read `codebase_docs` path
|
|
37
37
|
2. If no config, check for `.specd/codebase/` (default location)
|
|
38
|
-
3. If neither found, offer `/specd
|
|
38
|
+
3. If neither found, offer `/specd.codebase.map`
|
|
39
39
|
|
|
40
40
|
**Referenced docs (when available):**
|
|
41
41
|
- `MAP.md` — System structure
|
|
@@ -61,5 +61,5 @@ Task name: $ARGUMENTS
|
|
|
61
61
|
- [ ] STATE.md tracks current position
|
|
62
62
|
- [ ] config.json created
|
|
63
63
|
- [ ] Committed to git
|
|
64
|
-
- [ ] User offered to continue with `/specd
|
|
64
|
+
- [ ] User offered to continue with `/specd.continue`
|
|
65
65
|
</success_criteria>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specd.toolbox
|
|
3
|
+
description: "Advanced task operations"
|
|
4
|
+
argument-hint: "[<task-name>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
- WebSearch
|
|
15
|
+
- WebFetch
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Task lifecycle operations: discuss, research, plan, execute, review.
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<execution_context>
|
|
23
|
+
**Parse $ARGUMENTS as task name.**
|
|
24
|
+
|
|
25
|
+
- If a bare word that matches a directory in `.specd/tasks/` or `.specd/features/` → use as task name
|
|
26
|
+
- If empty → check `.specd/tasks/` for available tasks. If only one task exists, use it automatically. If multiple, ask.
|
|
27
|
+
|
|
28
|
+
Validate using:
|
|
29
|
+
@~/.claude/specdacular/references/validate-task.md
|
|
30
|
+
|
|
31
|
+
Then present the menu using AskUserQuestion:
|
|
32
|
+
- header: "Operation"
|
|
33
|
+
- question: "What would you like to do with {task-name}?"
|
|
34
|
+
- options:
|
|
35
|
+
- "Discuss" — Explore gray areas and record decisions
|
|
36
|
+
- "Research" — Spawn parallel agents for patterns/pitfalls
|
|
37
|
+
- "Plan" — Create execution phases
|
|
38
|
+
- "Execute" — Execute the next phase
|
|
39
|
+
- "Review" — Review executed phase
|
|
40
|
+
|
|
41
|
+
Based on selection, delegate to the appropriate workflow:
|
|
42
|
+
- Discuss → @~/.claude/specdacular/workflows/discuss.md
|
|
43
|
+
- Research → @~/.claude/specdacular/workflows/research.md
|
|
44
|
+
- Plan → @~/.claude/specdacular/workflows/plan.md
|
|
45
|
+
- Execute → @~/.claude/specdacular/workflows/execute.md
|
|
46
|
+
- Review → @~/.claude/specdacular/workflows/review.md
|
|
47
|
+
|
|
48
|
+
</execution_context>
|
|
49
|
+
|
|
50
|
+
<context>
|
|
51
|
+
Arguments: $ARGUMENTS
|
|
52
|
+
|
|
53
|
+
@~/.claude/specdacular/workflows/discuss.md
|
|
54
|
+
@~/.claude/specdacular/workflows/research.md
|
|
55
|
+
@~/.claude/specdacular/workflows/plan.md
|
|
56
|
+
@~/.claude/specdacular/workflows/execute.md
|
|
57
|
+
@~/.claude/specdacular/workflows/review.md
|
|
58
|
+
</context>
|
|
59
|
+
|
|
60
|
+
<success_criteria>
|
|
61
|
+
- [ ] Task validated and operation menu shown
|
|
62
|
+
- [ ] Selected operation executed via correct workflow
|
|
63
|
+
</success_criteria>
|
|
@@ -49,7 +49,7 @@ process.stdin.on('end', () => {
|
|
|
49
49
|
try {
|
|
50
50
|
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
|
|
51
51
|
if (cache.update_available) {
|
|
52
|
-
specdUpdate = '\x1b[33m⬆ /specd
|
|
52
|
+
specdUpdate = '\x1b[33m⬆ /specd.update\x1b[0m │ ';
|
|
53
53
|
}
|
|
54
54
|
} catch (e) {}
|
|
55
55
|
}
|
package/package.json
CHANGED
package/specdacular/HELP.md
CHANGED
|
@@ -8,48 +8,46 @@
|
|
|
8
8
|
|
|
9
9
|
| Command | Description |
|
|
10
10
|
|---------|-------------|
|
|
11
|
-
| `/specd
|
|
12
|
-
| `/specd
|
|
11
|
+
| `/specd.new [name]` | Initialize a task, start first discussion |
|
|
12
|
+
| `/specd.continue [name] [--interactive\|--auto]` | Continue task lifecycle — picks up where you left off |
|
|
13
13
|
|
|
14
|
-
| `/specd
|
|
14
|
+
| `/specd.toolbox [<name>]` | Advanced task operations |
|
|
15
15
|
|
|
16
16
|
### Utilities
|
|
17
17
|
|
|
18
18
|
| Command | Description |
|
|
19
19
|
|---------|-------------|
|
|
20
|
-
| `/specd
|
|
21
|
-
| `/specd
|
|
22
|
-
| `/specd
|
|
23
|
-
| `/specd
|
|
24
|
-
| `/specd
|
|
20
|
+
| `/specd.codebase.map` | Analyze codebase with parallel agents → AI-optimized docs |
|
|
21
|
+
| `/specd.codebase.review` | Review and edit codebase context files section by section |
|
|
22
|
+
| `/specd.config` | Configure auto-commit settings for docs and code |
|
|
23
|
+
| `/specd.status [--all]` | Show task status dashboard |
|
|
24
|
+
| `/specd.help` | Show this help |
|
|
25
|
+
| `/specd.update` | Update Specdacular to the latest version |
|
|
25
26
|
|
|
26
27
|
---
|
|
27
28
|
|
|
28
29
|
## Task Flow
|
|
29
30
|
|
|
30
31
|
```
|
|
31
|
-
/specd
|
|
32
|
+
/specd.new → /specd.continue → continue → continue → done
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
**You only need three commands:**
|
|
35
36
|
|
|
36
|
-
1. **`/specd
|
|
37
|
-
2. **`/specd
|
|
37
|
+
1. **`/specd.new [name]`** — Start here. Creates task folder, asks initial questions.
|
|
38
|
+
2. **`/specd.continue [name]`** — Picks up where you left off. Drives the entire lifecycle:
|
|
38
39
|
- Discussion → Research → Planning → Phase Execution → Review
|
|
39
40
|
- After each step, offers the next step or "stop for now"
|
|
40
41
|
- Works across context windows — reads state fresh each time
|
|
41
42
|
- Modes: default (auto-runs, pauses at phase steps), `--interactive` (prompt at each step), `--auto` (run everything)
|
|
42
|
-
3. **`/specd
|
|
43
|
-
|
|
44
|
-
- Discuss, Research, Plan, Execute, Review
|
|
45
|
-
- **`/specd:toolbox context`** — Context management:
|
|
46
|
-
- Status, Review, Add
|
|
43
|
+
3. **`/specd.toolbox [name]`** — Direct access to task operations: Discuss, Research, Plan, Execute, Review
|
|
44
|
+
4. **`/specd.codebase.review`** — Review and edit codebase context files section by section
|
|
47
45
|
|
|
48
46
|
### Quick Start
|
|
49
47
|
|
|
50
48
|
```
|
|
51
|
-
/specd
|
|
52
|
-
/specd
|
|
49
|
+
/specd.new user-dashboard
|
|
50
|
+
/specd.continue user-dashboard
|
|
53
51
|
```
|
|
54
52
|
|
|
55
53
|
After initialization, just keep running `continue`. It figures out what's next.
|
|
@@ -121,7 +119,7 @@ Hooks are markdown workflow files that run before and after pipeline steps. They
|
|
|
121
119
|
## Codebase Documentation
|
|
122
120
|
|
|
123
121
|
```
|
|
124
|
-
/specd
|
|
122
|
+
/specd.codebase.map
|
|
125
123
|
```
|
|
126
124
|
|
|
127
125
|
Spawns 4 parallel agents to analyze your codebase and creates `.specd/codebase/`:
|
|
@@ -139,7 +137,7 @@ Spawns 4 parallel agents to analyze your codebase and creates `.specd/codebase/`
|
|
|
139
137
|
|
|
140
138
|
When an update is available, you'll see `update available` in your statusline. Run:
|
|
141
139
|
```
|
|
142
|
-
/specd
|
|
140
|
+
/specd.update
|
|
143
141
|
```
|
|
144
142
|
Or manually: `npx specdacular@latest`
|
|
145
143
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feature-researcher
|
|
3
|
-
description: Researches implementation patterns, libraries, and pitfalls for features. Spawned by /specd
|
|
3
|
+
description: Researches implementation patterns, libraries, and pitfalls for features. Spawned by /specd.research and /specd.research (phase-level).
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,9 +8,9 @@ tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch
|
|
|
8
8
|
You are a feature researcher. You investigate how to implement a specific feature well, producing findings that directly inform planning.
|
|
9
9
|
|
|
10
10
|
You are spawned by:
|
|
11
|
-
- `/specd
|
|
12
|
-
- `/specd
|
|
13
|
-
- `/specd
|
|
11
|
+
- `/specd.research` orchestrator (parallel research)
|
|
12
|
+
- `/specd.research (phase-level)` (when user opts into research)
|
|
13
|
+
- `/specd.research` (standalone phase research)
|
|
14
14
|
|
|
15
15
|
Your job: Answer "What do I need to know to IMPLEMENT this feature well?" Produce structured findings that the synthesizer combines into RESEARCH.md.
|
|
16
16
|
|
|
@@ -92,7 +92,7 @@ After completing the hook instructions, return a brief summary of what you did."
|
|
|
92
92
|
Hook failed: {hook-file-name}
|
|
93
93
|
Error: {description of what went wrong}
|
|
94
94
|
|
|
95
|
-
Pipeline stopped. Resume with /specd
|
|
95
|
+
Pipeline stopped. Resume with /specd.continue {task-name}
|
|
96
96
|
```
|
|
97
97
|
- End workflow
|
|
98
98
|
|
|
@@ -8,7 +8,7 @@ Determine which phase to work on. Requires a task name to be already selected.
|
|
|
8
8
|
Read `.specd/tasks/{task-name}/ROADMAP.md` and extract the phase list with status.
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
[ -f ".specd/tasks/{task-name}/ROADMAP.md" ] || { echo "No roadmap found. Run /specd
|
|
11
|
+
[ -f ".specd/tasks/{task-name}/ROADMAP.md" ] || { echo "No roadmap found. Run /specd.continue to create one."; exit 1; }
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Parse the ROADMAP.md "Phases" section to get:
|
|
@@ -33,7 +33,7 @@ fi
|
|
|
33
33
|
```
|
|
34
34
|
Task '{name}' not found.
|
|
35
35
|
|
|
36
|
-
Run /specd
|
|
36
|
+
Run /specd.new {name} to create it.
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
**If required files missing:**
|
|
@@ -41,7 +41,7 @@ Run /specd:new {name} to create it.
|
|
|
41
41
|
Task '{name}' is missing required files:
|
|
42
42
|
- {missing file}
|
|
43
43
|
|
|
44
|
-
Run /specd
|
|
44
|
+
Run /specd.discuss {name} to rebuild context.
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
**Extended validation (for plan/execute/review):**
|
|
@@ -58,7 +58,7 @@ Run /specd:discuss {name} to rebuild context.
|
|
|
58
58
|
```
|
|
59
59
|
Task '{name}' has no phases yet.
|
|
60
60
|
|
|
61
|
-
Run /specd
|
|
61
|
+
Run /specd.plan {name} to create phases.
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
**Optional file checks (note existence, don't fail):**
|
|
@@ -197,7 +197,7 @@ Save state and exit:
|
|
|
197
197
|
|
|
198
198
|
Progress saved. Pick up where you left off anytime:
|
|
199
199
|
|
|
200
|
-
/specd
|
|
200
|
+
/specd.continue {task-name}
|
|
201
201
|
```
|
|
202
202
|
End workflow.
|
|
203
203
|
|
|
@@ -373,6 +373,6 @@ End workflow.
|
|
|
373
373
|
- Phase-execution sub-pipeline loops correctly per phase
|
|
374
374
|
- Decimal fix phases handled
|
|
375
375
|
- State saved before dispatch for reliable resume
|
|
376
|
-
- Stop/resume works at any point via /specd
|
|
376
|
+
- Stop/resume works at any point via /specd.continue
|
|
377
377
|
- Hook execution points marked for Phase 2
|
|
378
378
|
</success_criteria>
|
|
@@ -96,7 +96,7 @@ Config written to `.specd/config.json`:
|
|
|
96
96
|
- Auto-commit code (implementation): {on|off}
|
|
97
97
|
|
|
98
98
|
These settings apply to all specd workflows in this project.
|
|
99
|
-
To change later, run `/specd
|
|
99
|
+
To change later, run `/specd.config` again.
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
End workflow.
|
|
@@ -31,7 +31,7 @@ Keep asking until you understand:
|
|
|
31
31
|
2. What it integrates with (existing code)
|
|
32
32
|
3. Key constraints (technical, timeline, scope)
|
|
33
33
|
|
|
34
|
-
You don't need to resolve everything — that's what `/specd
|
|
34
|
+
You don't need to resolve everything — that's what `/specd.discuss` is for.
|
|
35
35
|
|
|
36
36
|
## Decisions Get Recorded
|
|
37
37
|
|
|
@@ -63,7 +63,7 @@ Use AskUserQuestion:
|
|
|
63
63
|
- header: "Task Exists"
|
|
64
64
|
- question: "Task '{name}' already exists. What would you like to do?"
|
|
65
65
|
- options:
|
|
66
|
-
- "Resume" — Continue with existing task (suggest /specd
|
|
66
|
+
- "Resume" — Continue with existing task (suggest /specd.continue)
|
|
67
67
|
- "Reset" — Delete and start fresh
|
|
68
68
|
- "Different name" — Use a different name
|
|
69
69
|
|
|
@@ -150,7 +150,7 @@ Does that capture it, or should we dig into anything more?
|
|
|
150
150
|
**When to move on:**
|
|
151
151
|
- User confirms understanding is correct
|
|
152
152
|
- You have enough for initial FEATURE.md
|
|
153
|
-
- Further details can be discussed later with /specd
|
|
153
|
+
- Further details can be discussed later with /specd.discuss
|
|
154
154
|
|
|
155
155
|
Continue to write_feature.
|
|
156
156
|
</step>
|
|
@@ -252,7 +252,7 @@ Use AskUserQuestion:
|
|
|
252
252
|
- question: "Want to keep discussing the open areas, or come back later?"
|
|
253
253
|
- options:
|
|
254
254
|
- "Keep discussing" — Dive into the gray areas now
|
|
255
|
-
- "Stop for now" — Come back with /specd
|
|
255
|
+
- "Stop for now" — Come back with /specd.continue {task-name}
|
|
256
256
|
|
|
257
257
|
**If Keep discussing:**
|
|
258
258
|
Execute the discuss workflow logic:
|
|
@@ -266,7 +266,7 @@ Use AskUserQuestion:
|
|
|
266
266
|
- question: "Discussion looks solid. Want to keep going or come back later?"
|
|
267
267
|
- options:
|
|
268
268
|
- "Continue" — Move to the next step (research or planning)
|
|
269
|
-
- "Stop for now" — Come back with /specd
|
|
269
|
+
- "Stop for now" — Come back with /specd.continue {task-name}
|
|
270
270
|
|
|
271
271
|
**If Continue:**
|
|
272
272
|
Hand off to continue workflow:
|
|
@@ -278,7 +278,7 @@ Hand off to continue workflow:
|
|
|
278
278
|
|
|
279
279
|
Progress saved. Pick up where you left off anytime:
|
|
280
280
|
|
|
281
|
-
/specd
|
|
281
|
+
/specd.continue {task-name}
|
|
282
282
|
```
|
|
283
283
|
|
|
284
284
|
End workflow.
|
|
@@ -234,7 +234,7 @@ Use AskUserQuestion:
|
|
|
234
234
|
- question: "Want to keep discussing the open areas, or come back later?"
|
|
235
235
|
- options:
|
|
236
236
|
- "Keep discussing" — Dive into the gray areas now
|
|
237
|
-
- "Stop for now" — Come back with `/specd
|
|
237
|
+
- "Stop for now" — Come back with `/specd.continue {task-name}`
|
|
238
238
|
|
|
239
239
|
**If Keep discussing:**
|
|
240
240
|
Execute the discuss workflow:
|
|
@@ -248,7 +248,7 @@ Use AskUserQuestion:
|
|
|
248
248
|
- question: "Discussion looks solid. Want to keep going or come back later?"
|
|
249
249
|
- options:
|
|
250
250
|
- "Continue" — Move to next step
|
|
251
|
-
- "Stop for now" — Come back with `/specd
|
|
251
|
+
- "Stop for now" — Come back with `/specd.continue {task-name}`
|
|
252
252
|
|
|
253
253
|
**If Continue:**
|
|
254
254
|
Hand off to continue workflow:
|
|
@@ -258,7 +258,7 @@ Hand off to continue workflow:
|
|
|
258
258
|
```
|
|
259
259
|
Progress saved. Pick up where you left off anytime:
|
|
260
260
|
|
|
261
|
-
/specd
|
|
261
|
+
/specd.continue {task-name}
|
|
262
262
|
```
|
|
263
263
|
|
|
264
264
|
End workflow.
|
|
@@ -63,15 +63,15 @@ Missing:
|
|
|
63
63
|
- {what's missing}
|
|
64
64
|
|
|
65
65
|
Recommended next:
|
|
66
|
-
- /specd
|
|
67
|
-
- /specd
|
|
66
|
+
- /specd.discuss {task-name} — Resolve gray areas
|
|
67
|
+
- /specd.research {task-name} — Research implementation patterns
|
|
68
68
|
```
|
|
69
69
|
End workflow.
|
|
70
70
|
|
|
71
71
|
**If ready but RESEARCH.md missing:**
|
|
72
72
|
```
|
|
73
73
|
Note: No research findings available. Plans will be based on discussion context only.
|
|
74
|
-
Consider running /specd
|
|
74
|
+
Consider running /specd.research {task-name} first for better plans.
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Continue to derive_phases.
|
|
@@ -37,7 +37,7 @@ Also check sub-project features — scan each project path for `{project-path}/.
|
|
|
37
37
|
**If no features found anywhere:** output the following and stop:
|
|
38
38
|
|
|
39
39
|
```
|
|
40
|
-
No tasks found. Start one with `/specd
|
|
40
|
+
No tasks found. Start one with `/specd.new [name]`.
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
### 4. Gather feature data
|
|
@@ -119,7 +119,7 @@ _{total} features, {in_progress} in progress_
|
|
|
119
119
|
**If `--all` flag is NOT set and there are completed tasks:**
|
|
120
120
|
|
|
121
121
|
```
|
|
122
|
-
Run `/specd
|
|
122
|
+
Run `/specd.status --all` to include completed tasks.
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**If `--all` flag IS set and there are completed tasks, add:**
|
|
@@ -190,7 +190,7 @@ Only show active standalone features (not complete/abandoned, unless `--all`).
|
|
|
190
190
|
**If `--all` flag is NOT set and there are completed/abandoned features (root or sub-project):**
|
|
191
191
|
|
|
192
192
|
```
|
|
193
|
-
Run `/specd
|
|
193
|
+
Run `/specd.status --all` to include completed tasks.
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
**If `--all` flag IS set and there are completed/abandoned features, add:**
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specd:toolbox
|
|
3
|
-
description: "Advanced task operations and context management"
|
|
4
|
-
argument-hint: "[tasks <task-name>|context]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Task
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
- WebSearch
|
|
15
|
-
- WebFetch
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
<objective>
|
|
19
|
-
Toolbox with two subdomains:
|
|
20
|
-
|
|
21
|
-
1. **tasks** — Task lifecycle operations (requires task name): discuss, research, plan, execute, review
|
|
22
|
-
2. **context** — Codebase context management (no task name): review, add
|
|
23
|
-
</objective>
|
|
24
|
-
|
|
25
|
-
<execution_context>
|
|
26
|
-
**Parse $ARGUMENTS to determine subdomain:**
|
|
27
|
-
|
|
28
|
-
- If starts with "tasks" → extract remaining words as task name, go to Tasks flow
|
|
29
|
-
- If starts with "context" → go to Context flow
|
|
30
|
-
- If a bare word that matches a directory in `.specd/tasks/` or `.specd/features/` → treat as `tasks {name}`
|
|
31
|
-
- If empty or unrecognized → ask user which subdomain
|
|
32
|
-
|
|
33
|
-
**If subdomain unclear, ask:**
|
|
34
|
-
Use AskUserQuestion:
|
|
35
|
-
- header: "Toolbox"
|
|
36
|
-
- question: "Which toolbox?"
|
|
37
|
-
- options:
|
|
38
|
-
- "Tasks" — Discuss, research, plan, execute, or review a task
|
|
39
|
-
- "Context" — Review or add to codebase context
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Tasks Flow
|
|
44
|
-
|
|
45
|
-
Requires a task name. If not provided after "tasks", check `.specd/tasks/` for available tasks. If only one task exists, use it automatically. If multiple, ask.
|
|
46
|
-
|
|
47
|
-
Validate using:
|
|
48
|
-
@~/.claude/specdacular/references/validate-task.md
|
|
49
|
-
|
|
50
|
-
Then present the menu using AskUserQuestion:
|
|
51
|
-
- header: "Operation"
|
|
52
|
-
- question: "What would you like to do with {task-name}?"
|
|
53
|
-
- options:
|
|
54
|
-
- "Discuss" — Explore gray areas and record decisions
|
|
55
|
-
- "Research" — Spawn parallel agents for patterns/pitfalls
|
|
56
|
-
- "Plan" — Create execution phases
|
|
57
|
-
- "Execute" — Execute the next phase
|
|
58
|
-
- "Review" — Review executed phase
|
|
59
|
-
|
|
60
|
-
Based on selection, delegate to the appropriate workflow:
|
|
61
|
-
- Discuss → @~/.claude/specdacular/workflows/discuss.md
|
|
62
|
-
- Research → @~/.claude/specdacular/workflows/research.md
|
|
63
|
-
- Plan → @~/.claude/specdacular/workflows/plan.md
|
|
64
|
-
- Execute → @~/.claude/specdacular/workflows/execute.md
|
|
65
|
-
- Review → @~/.claude/specdacular/workflows/review.md
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Context Flow
|
|
70
|
-
|
|
71
|
-
No task name needed. Present the menu using AskUserQuestion:
|
|
72
|
-
- header: "Context"
|
|
73
|
-
- question: "What would you like to do with codebase context?"
|
|
74
|
-
- options:
|
|
75
|
-
- "Review" — Walk through and review a context file section by section
|
|
76
|
-
- "Add" — Add new content to a context file
|
|
77
|
-
|
|
78
|
-
Based on selection, delegate to the appropriate workflow:
|
|
79
|
-
- Review → follow the context-manual-review.md workflow
|
|
80
|
-
- Add → follow the context-add.md workflow
|
|
81
|
-
</execution_context>
|
|
82
|
-
|
|
83
|
-
<context>
|
|
84
|
-
Arguments: $ARGUMENTS
|
|
85
|
-
|
|
86
|
-
**Task workflows:**
|
|
87
|
-
@~/.claude/specdacular/workflows/discuss.md
|
|
88
|
-
@~/.claude/specdacular/workflows/research.md
|
|
89
|
-
@~/.claude/specdacular/workflows/plan.md
|
|
90
|
-
@~/.claude/specdacular/workflows/execute.md
|
|
91
|
-
@~/.claude/specdacular/workflows/review.md
|
|
92
|
-
|
|
93
|
-
**Context workflows:**
|
|
94
|
-
@~/.claude/specdacular/workflows/context-manual-review.md
|
|
95
|
-
@~/.claude/specdacular/workflows/context-add.md
|
|
96
|
-
</context>
|
|
97
|
-
|
|
98
|
-
<success_criteria>
|
|
99
|
-
- [ ] Subdomain selected (tasks or context) — from argument or prompt
|
|
100
|
-
- [ ] For tasks: task validated and operation menu shown
|
|
101
|
-
- [ ] For context: context operation menu shown
|
|
102
|
-
- [ ] Selected operation executed via correct workflow
|
|
103
|
-
</success_criteria>
|