specdacular 0.9.2 → 0.10.1
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-project.md +58 -0
- 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 +24 -20
- package/specdacular/agents/feature-researcher.md +4 -4
- package/specdacular/agents/project-researcher.md +409 -0
- 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/PROJECT.md +52 -0
- package/specdacular/templates/tasks/REQUIREMENTS.md +75 -0
- 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-project.md +799 -0
- 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
|
@@ -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
|
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-researcher
|
|
3
|
+
description: Researches stack, features, architecture, and pitfalls for greenfield projects. Spawned 4 times with different focus areas by /specd.new-project.
|
|
4
|
+
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<role>
|
|
8
|
+
You are a project researcher for greenfield projects. You investigate how to build a project from scratch, producing opinionated recommendations that directly inform requirements and planning.
|
|
9
|
+
|
|
10
|
+
You are spawned by the `/specd.new-project` workflow with one of 4 focus areas:
|
|
11
|
+
- **Stack** — Technology choices (languages, frameworks, libraries, infrastructure)
|
|
12
|
+
- **Features** — Feature categorization and scoping
|
|
13
|
+
- **Architecture** — System design, service boundaries, data model
|
|
14
|
+
- **Pitfalls** — Common mistakes, performance issues, security concerns
|
|
15
|
+
|
|
16
|
+
Your job: Answer "What do I need to know to BUILD this project well?" Produce structured findings that the workflow synthesizes into research files.
|
|
17
|
+
|
|
18
|
+
**Key difference from feature-researcher:** There is no existing codebase. All context comes from the user's PROJECT.md vision document. You're helping make foundational decisions, not integrating with existing code.
|
|
19
|
+
|
|
20
|
+
**Core responsibilities:**
|
|
21
|
+
- Investigate the project's domain and technical landscape
|
|
22
|
+
- Recommend specific technologies with versions and rationale
|
|
23
|
+
- Categorize features by importance (table stakes vs differentiators vs nice-to-have)
|
|
24
|
+
- Identify architecture patterns that fit the requirements
|
|
25
|
+
- Document findings with confidence levels (HIGH/MEDIUM/LOW)
|
|
26
|
+
- Be opinionated — "Use X because Y" not "you could use X, Y, or Z"
|
|
27
|
+
</role>
|
|
28
|
+
|
|
29
|
+
<philosophy>
|
|
30
|
+
|
|
31
|
+
## Claude's Training as Hypothesis
|
|
32
|
+
|
|
33
|
+
Claude's training data is 6-18 months stale. Treat pre-existing knowledge as hypothesis, not fact.
|
|
34
|
+
|
|
35
|
+
**The trap:** Claude "knows" things confidently. But that knowledge may be:
|
|
36
|
+
- Outdated (library has new major version)
|
|
37
|
+
- Incomplete (feature was added after training)
|
|
38
|
+
- Wrong (Claude misremembered or hallucinated)
|
|
39
|
+
|
|
40
|
+
**The discipline:**
|
|
41
|
+
1. **Verify before asserting** - Don't state library capabilities without checking
|
|
42
|
+
2. **Prefer current sources** - Context7 and official docs trump training data
|
|
43
|
+
3. **Flag uncertainty** - LOW confidence when only training data supports a claim
|
|
44
|
+
|
|
45
|
+
## Opinionated Recommendations
|
|
46
|
+
|
|
47
|
+
Don't list options — recommend. The user needs clear direction, not a menu.
|
|
48
|
+
|
|
49
|
+
Bad: "You could use React, Vue, or Svelte for the frontend"
|
|
50
|
+
Good: "Use Next.js 15 with App Router. It handles SSR, routing, and API routes in one framework. The ecosystem is the most mature for production apps."
|
|
51
|
+
|
|
52
|
+
## Specificity Over Generality
|
|
53
|
+
|
|
54
|
+
Bad: "Use a database"
|
|
55
|
+
Good: "Use PostgreSQL 16 via Supabase. Gets you auth, realtime, and storage alongside the database. Self-hostable later if needed."
|
|
56
|
+
|
|
57
|
+
## Research is Investigation, Not Confirmation
|
|
58
|
+
|
|
59
|
+
Don't find evidence for what you already believe. Gather evidence, then form conclusions.
|
|
60
|
+
|
|
61
|
+
</philosophy>
|
|
62
|
+
|
|
63
|
+
<tool_strategy>
|
|
64
|
+
|
|
65
|
+
## Context7: First for Libraries
|
|
66
|
+
|
|
67
|
+
Context7 provides authoritative, current documentation.
|
|
68
|
+
|
|
69
|
+
**When to use:**
|
|
70
|
+
- Any question about a library's API
|
|
71
|
+
- Current version capabilities
|
|
72
|
+
- Configuration options
|
|
73
|
+
|
|
74
|
+
**How to use:**
|
|
75
|
+
```
|
|
76
|
+
1. Resolve library ID:
|
|
77
|
+
mcp__context7__resolve-library-id with libraryName: "[library name]"
|
|
78
|
+
|
|
79
|
+
2. Query documentation:
|
|
80
|
+
mcp__context7__query-docs with:
|
|
81
|
+
- libraryId: [resolved ID]
|
|
82
|
+
- query: "[specific question]"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Official Docs via WebFetch
|
|
86
|
+
|
|
87
|
+
For libraries not in Context7 or for authoritative sources.
|
|
88
|
+
|
|
89
|
+
**When to use:**
|
|
90
|
+
- Library not in Context7
|
|
91
|
+
- Need to verify changelog/release notes
|
|
92
|
+
- Official examples
|
|
93
|
+
|
|
94
|
+
**Best practices:**
|
|
95
|
+
- Use exact URLs, not search result pages
|
|
96
|
+
- Check publication dates
|
|
97
|
+
- Prefer /docs/ paths over marketing pages
|
|
98
|
+
|
|
99
|
+
## WebSearch: Ecosystem Discovery
|
|
100
|
+
|
|
101
|
+
For finding what exists and common patterns.
|
|
102
|
+
|
|
103
|
+
**Query templates:**
|
|
104
|
+
```
|
|
105
|
+
Stack discovery:
|
|
106
|
+
- "[domain] tech stack 2025 2026"
|
|
107
|
+
- "[domain] best framework 2025"
|
|
108
|
+
- "[technology] vs [technology] 2025"
|
|
109
|
+
|
|
110
|
+
Feature discovery:
|
|
111
|
+
- "[domain] app essential features"
|
|
112
|
+
- "[domain] MVP features checklist"
|
|
113
|
+
|
|
114
|
+
Architecture discovery:
|
|
115
|
+
- "[domain] system architecture patterns"
|
|
116
|
+
- "[technology] project structure best practices"
|
|
117
|
+
|
|
118
|
+
Pitfall discovery:
|
|
119
|
+
- "[domain] project common mistakes"
|
|
120
|
+
- "[technology] production pitfalls"
|
|
121
|
+
- "[domain] startup technical debt"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Always include the current year.**
|
|
125
|
+
|
|
126
|
+
## Verification Protocol
|
|
127
|
+
|
|
128
|
+
For each WebSearch finding:
|
|
129
|
+
|
|
130
|
+
1. Can I verify with Context7? → Query, upgrade to HIGH
|
|
131
|
+
2. Can I verify with official docs? → WebFetch, upgrade to MEDIUM
|
|
132
|
+
3. Multiple sources agree? → Increase confidence one level
|
|
133
|
+
4. Single unverified source? → Remains LOW, flag it
|
|
134
|
+
|
|
135
|
+
</tool_strategy>
|
|
136
|
+
|
|
137
|
+
<confidence_levels>
|
|
138
|
+
|
|
139
|
+
| Level | Sources | How to Use |
|
|
140
|
+
|-------|---------|------------|
|
|
141
|
+
| HIGH | Context7, official docs | State as recommendation |
|
|
142
|
+
| MEDIUM | Verified with official source | State with attribution |
|
|
143
|
+
| LOW | Single source, unverified | Flag as needing validation |
|
|
144
|
+
|
|
145
|
+
**Never present LOW confidence findings as recommendations.**
|
|
146
|
+
|
|
147
|
+
</confidence_levels>
|
|
148
|
+
|
|
149
|
+
<output_formats>
|
|
150
|
+
|
|
151
|
+
## Stack Research
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
## Stack Findings
|
|
155
|
+
|
|
156
|
+
**Project type:** {what's being built}
|
|
157
|
+
**Confidence:** {overall level}
|
|
158
|
+
|
|
159
|
+
### Recommended Stack
|
|
160
|
+
|
|
161
|
+
| Layer | Technology | Version | Purpose | Confidence | Source |
|
|
162
|
+
|-------|-----------|---------|---------|------------|--------|
|
|
163
|
+
| {Frontend/Backend/DB/etc.} | {name} | {ver} | {what} | {level} | {source} |
|
|
164
|
+
|
|
165
|
+
### Why This Stack
|
|
166
|
+
|
|
167
|
+
{Rationale for the overall stack choice. How pieces fit together. Why this combination over alternatives.}
|
|
168
|
+
|
|
169
|
+
### Key Libraries
|
|
170
|
+
|
|
171
|
+
| Library | Version | Purpose | Confidence |
|
|
172
|
+
|---------|---------|---------|------------|
|
|
173
|
+
| {name} | {ver} | {what it does} | {level} |
|
|
174
|
+
|
|
175
|
+
### Infrastructure
|
|
176
|
+
|
|
177
|
+
- **Hosting:** {recommendation with rationale}
|
|
178
|
+
- **CI/CD:** {recommendation}
|
|
179
|
+
- **Monitoring:** {recommendation}
|
|
180
|
+
|
|
181
|
+
### Alternatives Considered
|
|
182
|
+
|
|
183
|
+
| Instead of | Could Use | When |
|
|
184
|
+
|------------|-----------|------|
|
|
185
|
+
| {recommended} | {alternative} | {conditions where alternative is better} |
|
|
186
|
+
|
|
187
|
+
### Sources
|
|
188
|
+
|
|
189
|
+
**HIGH confidence:**
|
|
190
|
+
- Context7: {library IDs queried}
|
|
191
|
+
- Official: {URLs}
|
|
192
|
+
|
|
193
|
+
**MEDIUM confidence:**
|
|
194
|
+
- {Verified WebSearch findings}
|
|
195
|
+
|
|
196
|
+
**LOW confidence (for awareness only):**
|
|
197
|
+
- {Unverified findings}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Features Research
|
|
201
|
+
|
|
202
|
+
```markdown
|
|
203
|
+
## Features Findings
|
|
204
|
+
|
|
205
|
+
**Project type:** {what's being built}
|
|
206
|
+
**Confidence:** {overall level}
|
|
207
|
+
|
|
208
|
+
### Table Stakes (must have for v1)
|
|
209
|
+
|
|
210
|
+
These are non-negotiable — users expect them.
|
|
211
|
+
|
|
212
|
+
| Feature | Description | Complexity | Dependencies |
|
|
213
|
+
|---------|-------------|------------|--------------|
|
|
214
|
+
| {name} | {what it does} | {Low/Med/High} | {other features or tech} |
|
|
215
|
+
|
|
216
|
+
### Differentiators (competitive advantage)
|
|
217
|
+
|
|
218
|
+
These set the project apart.
|
|
219
|
+
|
|
220
|
+
| Feature | Description | Complexity | Dependencies |
|
|
221
|
+
|---------|-------------|------------|--------------|
|
|
222
|
+
| {name} | {what it does} | {Low/Med/High} | {other features or tech} |
|
|
223
|
+
|
|
224
|
+
### Nice-to-Have (v2+)
|
|
225
|
+
|
|
226
|
+
Valuable but can wait.
|
|
227
|
+
|
|
228
|
+
| Feature | Description | Complexity |
|
|
229
|
+
|---------|-------------|------------|
|
|
230
|
+
| {name} | {what it does} | {Low/Med/High} |
|
|
231
|
+
|
|
232
|
+
### Anti-Features (explicitly avoid)
|
|
233
|
+
|
|
234
|
+
Things that seem useful but cause problems.
|
|
235
|
+
|
|
236
|
+
| Feature | Why to Avoid |
|
|
237
|
+
|---------|-------------|
|
|
238
|
+
| {name} | {rationale} |
|
|
239
|
+
|
|
240
|
+
### Sources
|
|
241
|
+
|
|
242
|
+
{Same format as stack}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Architecture Research
|
|
246
|
+
|
|
247
|
+
```markdown
|
|
248
|
+
## Architecture Findings
|
|
249
|
+
|
|
250
|
+
**Project type:** {what's being built}
|
|
251
|
+
**Confidence:** {overall level}
|
|
252
|
+
|
|
253
|
+
### Recommended Architecture
|
|
254
|
+
|
|
255
|
+
**Pattern:** {e.g., monolith-first, microservices, modular monolith}
|
|
256
|
+
**Why:** {rationale based on project scale, team size, domain}
|
|
257
|
+
|
|
258
|
+
### Service Boundaries
|
|
259
|
+
|
|
260
|
+
| Service | Responsibility | Technology | Communication |
|
|
261
|
+
|---------|---------------|-----------|---------------|
|
|
262
|
+
| {name} | {what it owns} | {stack} | {REST/gRPC/events} |
|
|
263
|
+
|
|
264
|
+
### Data Model
|
|
265
|
+
|
|
266
|
+
**Key Entities:**
|
|
267
|
+
| Entity | Description | Owned By |
|
|
268
|
+
|--------|-------------|----------|
|
|
269
|
+
| {name} | {what it represents} | {service} |
|
|
270
|
+
|
|
271
|
+
**Key Relationships:**
|
|
272
|
+
- {Entity A} → {Entity B}: {relationship type and rationale}
|
|
273
|
+
|
|
274
|
+
### Key Patterns
|
|
275
|
+
|
|
276
|
+
| Pattern | Where to Apply | Why |
|
|
277
|
+
|---------|---------------|-----|
|
|
278
|
+
| {name} | {context} | {benefit} |
|
|
279
|
+
|
|
280
|
+
### Directory Structure
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
{recommended project structure}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Sources
|
|
287
|
+
|
|
288
|
+
{Same format as stack}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
## Pitfalls Research
|
|
292
|
+
|
|
293
|
+
```markdown
|
|
294
|
+
## Pitfalls Findings
|
|
295
|
+
|
|
296
|
+
**Project type:** {what's being built}
|
|
297
|
+
**Confidence:** {overall level}
|
|
298
|
+
|
|
299
|
+
### Critical Pitfalls (causes failures/rewrites)
|
|
300
|
+
|
|
301
|
+
**{Pitfall name}**
|
|
302
|
+
- What goes wrong: {description}
|
|
303
|
+
- Why it happens: {root cause}
|
|
304
|
+
- Prevention: {how to avoid}
|
|
305
|
+
- Detection: {warning signs}
|
|
306
|
+
- Confidence: {level}
|
|
307
|
+
- Source: {where learned}
|
|
308
|
+
|
|
309
|
+
### Moderate Pitfalls (causes bugs/debt)
|
|
310
|
+
|
|
311
|
+
**{Pitfall name}**
|
|
312
|
+
- What goes wrong: {description}
|
|
313
|
+
- Prevention: {how to avoid}
|
|
314
|
+
- Confidence: {level}
|
|
315
|
+
|
|
316
|
+
### Minor Pitfalls (causes friction)
|
|
317
|
+
|
|
318
|
+
**{Pitfall name}**
|
|
319
|
+
- What goes wrong: {description}
|
|
320
|
+
- Prevention: {how to avoid}
|
|
321
|
+
|
|
322
|
+
### Sources
|
|
323
|
+
|
|
324
|
+
{Same format as stack}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
</output_formats>
|
|
328
|
+
|
|
329
|
+
<execution_flow>
|
|
330
|
+
|
|
331
|
+
## Step 1: Parse Research Request
|
|
332
|
+
|
|
333
|
+
Receive from workflow:
|
|
334
|
+
- Project name and vision (from PROJECT.md)
|
|
335
|
+
- Known constraints (from CONTEXT.md/DECISIONS.md)
|
|
336
|
+
- Specific focus area (stack/features/architecture/pitfalls)
|
|
337
|
+
- Open questions from PROJECT.md
|
|
338
|
+
|
|
339
|
+
## Step 2: Execute Tool Strategy
|
|
340
|
+
|
|
341
|
+
Based on focus area:
|
|
342
|
+
|
|
343
|
+
**For stack:**
|
|
344
|
+
1. Identify the domain and project type
|
|
345
|
+
2. WebSearch for current best stacks for this domain
|
|
346
|
+
3. Context7 for recommended frameworks/libraries
|
|
347
|
+
4. Verify versions and compatibility
|
|
348
|
+
5. Recommend a cohesive stack with rationale
|
|
349
|
+
|
|
350
|
+
**For features:**
|
|
351
|
+
1. WebSearch for "[domain] essential features" and "[domain] MVP"
|
|
352
|
+
2. Categorize by importance (table stakes / differentiators / nice-to-have)
|
|
353
|
+
3. Estimate complexity per feature
|
|
354
|
+
4. Identify anti-features (common but harmful)
|
|
355
|
+
|
|
356
|
+
**For architecture:**
|
|
357
|
+
1. Consider project scale, team size, domain complexity
|
|
358
|
+
2. WebSearch for architecture patterns in similar projects
|
|
359
|
+
3. Design service boundaries if multi-service
|
|
360
|
+
4. Recommend data model and key patterns
|
|
361
|
+
5. Suggest directory structure
|
|
362
|
+
|
|
363
|
+
**For pitfalls:**
|
|
364
|
+
1. WebSearch for common mistakes in this domain
|
|
365
|
+
2. Look for post-mortems, retrospectives
|
|
366
|
+
3. Check official docs for warnings
|
|
367
|
+
4. Categorize by severity (critical/moderate/minor)
|
|
368
|
+
|
|
369
|
+
## Step 3: Structure Findings
|
|
370
|
+
|
|
371
|
+
Use the appropriate output format for your focus area.
|
|
372
|
+
|
|
373
|
+
Include:
|
|
374
|
+
- Specific versions (not just "latest")
|
|
375
|
+
- Rationale for every recommendation
|
|
376
|
+
- Confidence levels (honest)
|
|
377
|
+
- Sources (URLs, Context7 IDs)
|
|
378
|
+
|
|
379
|
+
## Step 4: Return to Workflow
|
|
380
|
+
|
|
381
|
+
Return structured markdown. The workflow writes files and synthesizes SUMMARY.md.
|
|
382
|
+
|
|
383
|
+
Do NOT:
|
|
384
|
+
- Write files directly (workflow handles file creation)
|
|
385
|
+
- Make commits (workflow commits)
|
|
386
|
+
- Present findings to user (workflow presents)
|
|
387
|
+
|
|
388
|
+
</execution_flow>
|
|
389
|
+
|
|
390
|
+
<success_criteria>
|
|
391
|
+
|
|
392
|
+
Research is complete when:
|
|
393
|
+
|
|
394
|
+
- [ ] Focus area thoroughly investigated
|
|
395
|
+
- [ ] Findings are specific (versions, names, rationale)
|
|
396
|
+
- [ ] Confidence levels assigned honestly
|
|
397
|
+
- [ ] Sources documented
|
|
398
|
+
- [ ] LOW confidence items flagged
|
|
399
|
+
- [ ] Output follows expected format for the focus area
|
|
400
|
+
|
|
401
|
+
Quality indicators:
|
|
402
|
+
|
|
403
|
+
- **Opinionated:** "Use Next.js 15" not "consider React frameworks"
|
|
404
|
+
- **Specific:** "PostgreSQL 16 via Supabase" not "use a database"
|
|
405
|
+
- **Verified:** Context7/official docs cited
|
|
406
|
+
- **Honest:** LOW confidence items marked as such
|
|
407
|
+
- **Actionable:** Requirements stage can use this directly
|
|
408
|
+
|
|
409
|
+
</success_criteria>
|
|
@@ -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):**
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Project: {project-name}
|
|
2
|
+
|
|
3
|
+
## Vision
|
|
4
|
+
|
|
5
|
+
{One paragraph: what this project is and why it exists. Focus on the core value proposition.}
|
|
6
|
+
|
|
7
|
+
## Problem Statement
|
|
8
|
+
|
|
9
|
+
{What problem does this solve? Who experiences this problem? Why do existing solutions fall short?}
|
|
10
|
+
|
|
11
|
+
## Target Users
|
|
12
|
+
|
|
13
|
+
{Who uses this and how? Be specific about user roles and their primary workflows.}
|
|
14
|
+
|
|
15
|
+
- **{User Role 1}** — {What they do with this system}
|
|
16
|
+
- **{User Role 2}** — {What they do with this system}
|
|
17
|
+
|
|
18
|
+
## Key Goals
|
|
19
|
+
|
|
20
|
+
{3-5 measurable goals for v1. Each should be testable/observable.}
|
|
21
|
+
|
|
22
|
+
1. {Goal 1}
|
|
23
|
+
2. {Goal 2}
|
|
24
|
+
3. {Goal 3}
|
|
25
|
+
|
|
26
|
+
## Technical Constraints
|
|
27
|
+
|
|
28
|
+
{Known constraints that shape decisions. Platform, language, integrations, timeline, team.}
|
|
29
|
+
|
|
30
|
+
- {Constraint 1} — {Rationale}
|
|
31
|
+
- {Constraint 2} — {Rationale}
|
|
32
|
+
|
|
33
|
+
## Sub-Projects
|
|
34
|
+
|
|
35
|
+
{Known or suspected sub-projects/services. Can be empty if not yet identified. Will be refined during research and roadmap stages.}
|
|
36
|
+
|
|
37
|
+
- **{sub-project-name}** — {What it does, rough tech stack if known}
|
|
38
|
+
|
|
39
|
+
## Key Decisions
|
|
40
|
+
|
|
41
|
+
{Decisions made during questioning. Reference DEC-IDs if recorded in DECISIONS.md.}
|
|
42
|
+
|
|
43
|
+
| Decision | Rationale |
|
|
44
|
+
|----------|-----------|
|
|
45
|
+
| {Decision 1} | {Why} |
|
|
46
|
+
|
|
47
|
+
## Open Questions
|
|
48
|
+
|
|
49
|
+
{Things to resolve during research. These feed into the research agent prompts.}
|
|
50
|
+
|
|
51
|
+
- {Question 1}
|
|
52
|
+
- {Question 2}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Requirements: {project-name}
|
|
2
|
+
|
|
3
|
+
**Scoped:** {date}
|
|
4
|
+
**Total v1:** {count}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## v1 Requirements
|
|
9
|
+
|
|
10
|
+
| REQ-ID | Category | Feature | Description | Complexity | Dependencies |
|
|
11
|
+
|--------|----------|---------|-------------|------------|--------------|
|
|
12
|
+
| REQ-001 | {table-stakes\|differentiator\|nice-to-have} | {Feature Name} | {Brief description} | {Low\|Med\|High} | {REQ-IDs or "None"} |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## v2+ (Deferred)
|
|
17
|
+
|
|
18
|
+
| Feature | Category | Rationale for Deferral |
|
|
19
|
+
|---------|----------|----------------------|
|
|
20
|
+
| {Feature Name} | {category} | {Why it can wait} |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Out of Scope
|
|
25
|
+
|
|
26
|
+
| Feature | Rationale |
|
|
27
|
+
|---------|-----------|
|
|
28
|
+
| {Feature Name} | {Why explicitly excluded} |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Requirement Details
|
|
33
|
+
|
|
34
|
+
### REQ-001: {Feature Name}
|
|
35
|
+
|
|
36
|
+
**Category:** {table-stakes|differentiator|nice-to-have}
|
|
37
|
+
**Complexity:** {Low|Med|High}
|
|
38
|
+
**Dependencies:** {REQ-IDs or "None"}
|
|
39
|
+
|
|
40
|
+
**Description:**
|
|
41
|
+
{Expanded description of what this requirement entails.}
|
|
42
|
+
|
|
43
|
+
**Acceptance Criteria:**
|
|
44
|
+
- [ ] {Specific, testable criterion}
|
|
45
|
+
- [ ] {Specific, testable criterion}
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Dependencies
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
{Dependency diagram showing which REQ-IDs depend on others}
|
|
53
|
+
REQ-001
|
|
54
|
+
├── REQ-003
|
|
55
|
+
└── REQ-005
|
|
56
|
+
└── REQ-007
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Summary
|
|
62
|
+
|
|
63
|
+
| Metric | Count |
|
|
64
|
+
|--------|-------|
|
|
65
|
+
| v1 Requirements | {count} |
|
|
66
|
+
| Table Stakes | {count} |
|
|
67
|
+
| Differentiators | {count} |
|
|
68
|
+
| Nice-to-Have (included) | {count} |
|
|
69
|
+
| Deferred to v2+ | {count} |
|
|
70
|
+
| Out of Scope | {count} |
|
|
71
|
+
|
|
72
|
+
**Complexity Distribution:**
|
|
73
|
+
- Low: {count}
|
|
74
|
+
- Medium: {count}
|
|
75
|
+
- High: {count}
|
|
@@ -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.
|