specdacular 0.2.1 → 0.2.3
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 +160 -56
- package/commands/specd/discuss-feature.md +64 -0
- package/commands/specd/execute-plan.md +68 -0
- package/commands/specd/help.md +64 -6
- package/commands/specd/new-feature.md +32 -40
- package/commands/specd/plan-feature.md +69 -0
- package/commands/specd/research-feature.md +457 -0
- package/package.json +1 -1
- package/specdacular/agents/feature-researcher.md +289 -0
- package/specdacular/templates/features/CHANGELOG.md +34 -0
- package/specdacular/templates/features/CONTEXT.md +81 -0
- package/specdacular/templates/features/DECISIONS.md +109 -0
- package/specdacular/templates/features/FEATURE.md +46 -27
- package/specdacular/templates/features/PLAN.md +180 -0
- package/specdacular/templates/features/RESEARCH.md +183 -0
- package/specdacular/templates/features/ROADMAP.md +59 -26
- package/specdacular/templates/features/STATE.md +73 -30
- package/specdacular/workflows/discuss-feature.md +388 -0
- package/specdacular/workflows/execute-plan.md +395 -0
- package/specdacular/workflows/new-feature.md +210 -257
- package/specdacular/workflows/plan-feature.md +501 -0
- package/specdacular/workflows/research-feature.md +252 -0
- package/specdacular/templates/features/REQUIREMENTS.md +0 -55
|
@@ -1,65 +1,82 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Initialize a new feature folder
|
|
2
|
+
Initialize a new feature folder and start the first discussion. Creates structure, asks initial questions, and writes technical requirements.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
**Core flow:**
|
|
5
|
+
```
|
|
6
|
+
new-feature → (discuss ↔ research)* → plan-feature
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The user controls the rhythm after initialization. This command is just the entry point.
|
|
10
10
|
|
|
11
|
-
Output
|
|
11
|
+
**Output:** `.specd/features/{feature-name}/` folder with FEATURE.md, CONTEXT.md, DECISIONS.md, CHANGELOG.md, STATE.md, config.json
|
|
12
12
|
</purpose>
|
|
13
13
|
|
|
14
14
|
<philosophy>
|
|
15
|
-
**Conversational, not interrogative:**
|
|
16
|
-
Build understanding through natural dialogue. Ask follow-up questions that build on previous answers.
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
## Collaborative, Not Interrogative
|
|
17
|
+
|
|
18
|
+
Follow the thread. Build understanding through natural dialogue. When the user says something interesting, explore it. Don't march through a checklist.
|
|
19
|
+
|
|
20
|
+
**Bad:** "Question 1: What's the feature? Question 2: What's the scope? Question 3: ..."
|
|
21
|
+
**Good:** "Tell me about what you're building... [response] ...Interesting, when you say X, do you mean Y or Z?"
|
|
22
|
+
|
|
23
|
+
## Technical Focus
|
|
24
|
+
|
|
25
|
+
This is about technical requirements, not product specs. Focus on:
|
|
26
|
+
- What code needs to exist
|
|
27
|
+
- What existing code it integrates with
|
|
28
|
+
- Technical constraints
|
|
29
|
+
|
|
30
|
+
## Probe Until Initial Understanding
|
|
31
|
+
|
|
32
|
+
Keep asking until you understand:
|
|
33
|
+
1. What this creates (files, components, APIs)
|
|
34
|
+
2. What it integrates with (existing code)
|
|
35
|
+
3. Key constraints (technical, timeline, scope)
|
|
20
36
|
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
You don't need to resolve everything — that's what `discuss-feature` is for.
|
|
38
|
+
|
|
39
|
+
## Decisions Get Recorded
|
|
40
|
+
|
|
41
|
+
Any decision made during this initial discussion goes into DECISIONS.md with date and rationale.
|
|
23
42
|
|
|
24
|
-
**Traceable requirements:**
|
|
25
|
-
Every requirement gets an ID. Phases map to requirements. Progress is trackable.
|
|
26
43
|
</philosophy>
|
|
27
44
|
|
|
28
45
|
<process>
|
|
29
46
|
|
|
30
|
-
<step name="
|
|
47
|
+
<step name="validate">
|
|
31
48
|
Get feature name and validate.
|
|
32
49
|
|
|
33
50
|
**If $ARGUMENTS provided:**
|
|
34
51
|
Use as feature name. Normalize to kebab-case (lowercase, hyphens).
|
|
35
52
|
|
|
36
53
|
**If no arguments:**
|
|
37
|
-
Ask: "What's the name of this feature?
|
|
54
|
+
Ask: "What's the name of this feature?"
|
|
38
55
|
|
|
39
56
|
**Validate:**
|
|
40
57
|
- Feature name should be kebab-case
|
|
41
58
|
- Check if `.specd/features/{name}/` already exists
|
|
42
59
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Options:
|
|
48
|
-
1. Resume - Continue working with existing feature
|
|
49
|
-
2. Reset - Delete and start fresh
|
|
50
|
-
3. Different name - Use a different feature name
|
|
60
|
+
```bash
|
|
61
|
+
# Check if feature exists
|
|
62
|
+
[ -d ".specd/features/$FEATURE_NAME" ] && echo "exists"
|
|
51
63
|
```
|
|
52
64
|
|
|
53
|
-
|
|
65
|
+
**If feature exists:**
|
|
66
|
+
Use AskUserQuestion:
|
|
67
|
+
- header: "Feature Exists"
|
|
68
|
+
- question: "Feature '{name}' already exists. What would you like to do?"
|
|
69
|
+
- options:
|
|
70
|
+
- "Resume" — Continue with existing feature (suggest /specd:discuss-feature)
|
|
71
|
+
- "Reset" — Delete and start fresh
|
|
72
|
+
- "Different name" — Use a different name
|
|
54
73
|
|
|
55
74
|
**If new feature:**
|
|
56
|
-
Create feature abbreviation for REQ-IDs (e.g., "user-dashboard" → "DASH", "auth-flow" → "AUTH")
|
|
57
|
-
|
|
58
75
|
Continue to codebase_context.
|
|
59
76
|
</step>
|
|
60
77
|
|
|
61
78
|
<step name="codebase_context">
|
|
62
|
-
Look for codebase documentation
|
|
79
|
+
Look for codebase documentation.
|
|
63
80
|
|
|
64
81
|
**Check for existing config:**
|
|
65
82
|
```bash
|
|
@@ -75,105 +92,85 @@ ls .specd/codebase/*.md 2>/dev/null
|
|
|
75
92
|
```
|
|
76
93
|
|
|
77
94
|
**If codebase docs found:**
|
|
78
|
-
Note available context:
|
|
79
95
|
```
|
|
80
|
-
Found codebase documentation
|
|
81
|
-
- ARCHITECTURE.md - System design and patterns
|
|
82
|
-
- CONVENTIONS.md - Code style and patterns
|
|
83
|
-
- STRUCTURE.md - Directory layout
|
|
84
|
-
[etc.]
|
|
85
|
-
|
|
86
|
-
I'll reference these when defining requirements and integration points.
|
|
96
|
+
Found codebase documentation. I'll reference these when defining requirements.
|
|
87
97
|
```
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
Read the available docs to understand:
|
|
100
|
+
- Project structure (where new code goes)
|
|
101
|
+
- Code patterns (how things are done here)
|
|
102
|
+
- Architecture (how systems connect)
|
|
90
103
|
|
|
91
|
-
|
|
92
|
-
Ask user:
|
|
93
|
-
```
|
|
94
|
-
I didn't find codebase documentation at .specd/codebase/
|
|
104
|
+
Continue to first_discussion.
|
|
95
105
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
**If no codebase docs found:**
|
|
107
|
+
Use AskUserQuestion:
|
|
108
|
+
- header: "No Codebase Docs"
|
|
109
|
+
- question: "I didn't find codebase documentation. How should we proceed?"
|
|
110
|
+
- options:
|
|
111
|
+
- "Run map-codebase first" — Creates AI-optimized docs
|
|
112
|
+
- "Continue without" — Proceed without codebase context
|
|
113
|
+
- "Custom location" — Docs are elsewhere
|
|
100
114
|
|
|
101
115
|
**If custom location:**
|
|
102
|
-
Ask for path, then save to `.specd/config.json
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"codebase_docs": "{user-specified-path}",
|
|
106
|
-
"created": "{date}"
|
|
107
|
-
}
|
|
108
|
-
```
|
|
116
|
+
Ask for path, then save to `.specd/config.json`.
|
|
109
117
|
|
|
110
|
-
Continue to
|
|
118
|
+
Continue to first_discussion.
|
|
111
119
|
</step>
|
|
112
120
|
|
|
113
|
-
<step name="
|
|
114
|
-
|
|
121
|
+
<step name="first_discussion">
|
|
122
|
+
Start the conversation.
|
|
115
123
|
|
|
124
|
+
**Opening:**
|
|
116
125
|
```
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
1. Light - Simple addition, straightforward scope
|
|
120
|
-
(I'll ask 2-3 follow-up questions)
|
|
126
|
+
Let's talk about what you're building.
|
|
121
127
|
|
|
122
|
-
|
|
123
|
-
(I'll ask 4-6 follow-up questions)
|
|
124
|
-
|
|
125
|
-
3. Complicated - Major feature, many moving parts
|
|
126
|
-
(I'll probe thoroughly until all gray areas are resolved)
|
|
128
|
+
What's the {feature-name} feature? Give me the quick version — what problem does it solve and roughly how?
|
|
127
129
|
```
|
|
128
130
|
|
|
129
|
-
Wait for
|
|
131
|
+
Wait for response.
|
|
132
|
+
|
|
133
|
+
**Follow the thread:**
|
|
134
|
+
Based on their response, ask follow-up questions that:
|
|
135
|
+
- Clarify what they said ("When you say X, do you mean...?")
|
|
136
|
+
- Explore interesting aspects ("Tell me more about how that would work...")
|
|
137
|
+
- Identify technical implications ("So that would mean creating a...")
|
|
138
|
+
|
|
139
|
+
**Questions to answer (not in order — follow the conversation):**
|
|
140
|
+
1. What does this create? (new files, components, APIs, data)
|
|
141
|
+
2. What does it integrate with? (existing code, external services)
|
|
142
|
+
3. What are the key constraints? (technical, timeline, scope)
|
|
143
|
+
4. What's explicitly out of scope? (scope boundaries)
|
|
144
|
+
|
|
145
|
+
**Conversational probes:**
|
|
146
|
+
- "Walk me through how someone would use this..."
|
|
147
|
+
- "What existing code does this touch?"
|
|
148
|
+
- "What's the simplest version that would be useful?"
|
|
149
|
+
- "Is there anything you've already decided on how to build this?"
|
|
150
|
+
- "What definitely should NOT be part of this?"
|
|
151
|
+
|
|
152
|
+
**Check understanding:**
|
|
153
|
+
After 4-6 exchanges, summarize:
|
|
154
|
+
```
|
|
155
|
+
So if I understand correctly:
|
|
156
|
+
- This feature [does X]
|
|
157
|
+
- It needs to create [files/components]
|
|
158
|
+
- It integrates with [existing code]
|
|
159
|
+
- Key constraint: [constraint]
|
|
130
160
|
|
|
131
|
-
|
|
132
|
-
|
|
161
|
+
Does that capture it, or should we dig into anything more?
|
|
162
|
+
```
|
|
133
163
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
"Tell me about this feature. What problem does it solve and who benefits from it?"
|
|
139
|
-
|
|
140
|
-
**Light complexity (level 1):**
|
|
141
|
-
After initial response, ask 2-3 targeted questions:
|
|
142
|
-
- "What's the ONE thing that must work for this to be useful?"
|
|
143
|
-
- "Are there any constraints I should know about? (tech, timeline, dependencies)"
|
|
144
|
-
|
|
145
|
-
**Moderate complexity (level 2):**
|
|
146
|
-
After initial response, ask 4-6 questions covering:
|
|
147
|
-
- Core value and success criteria
|
|
148
|
-
- User interactions and flows
|
|
149
|
-
- Integration with existing code
|
|
150
|
-
- Edge cases and error handling
|
|
151
|
-
- Any constraints or non-negotiables
|
|
152
|
-
|
|
153
|
-
**Complicated complexity (level 3):**
|
|
154
|
-
Thorough probing until clarity achieved:
|
|
155
|
-
- All moderate questions plus:
|
|
156
|
-
- Data models and state management
|
|
157
|
-
- Performance considerations
|
|
158
|
-
- Security implications
|
|
159
|
-
- Rollback/migration concerns
|
|
160
|
-
- Dependencies and sequencing
|
|
161
|
-
- Continue asking until no ambiguity remains
|
|
162
|
-
|
|
163
|
-
**Question style:**
|
|
164
|
-
- Build on previous answers
|
|
165
|
-
- Ask "what about..." to explore edges
|
|
166
|
-
- Confirm understanding before moving on
|
|
167
|
-
- Use "So if I understand correctly..." to validate
|
|
168
|
-
|
|
169
|
-
**When done:**
|
|
170
|
-
"I think I have a good understanding. Let me capture this in FEATURE.md."
|
|
164
|
+
**When to move on:**
|
|
165
|
+
- User confirms understanding is correct
|
|
166
|
+
- You have enough for initial FEATURE.md
|
|
167
|
+
- Further details can be discussed later with /specd:discuss-feature
|
|
171
168
|
|
|
172
169
|
Continue to write_feature.
|
|
173
170
|
</step>
|
|
174
171
|
|
|
175
172
|
<step name="write_feature">
|
|
176
|
-
Create FEATURE.md
|
|
173
|
+
Create feature directory and FEATURE.md.
|
|
177
174
|
|
|
178
175
|
**Create feature directory:**
|
|
179
176
|
```bash
|
|
@@ -181,206 +178,160 @@ mkdir -p .specd/features/{feature-name}
|
|
|
181
178
|
```
|
|
182
179
|
|
|
183
180
|
**Write FEATURE.md:**
|
|
184
|
-
Use template at `~/.claude/specdacular/templates/features/FEATURE.md`
|
|
181
|
+
Use template at `~/.claude/specdacular/templates/features/FEATURE.md`
|
|
185
182
|
|
|
186
183
|
Fill in based on conversation:
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
- Constraints
|
|
191
|
-
-
|
|
192
|
-
|
|
193
|
-
**
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
git commit -m "docs(feature): initialize {feature-name}"
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Continue to configuration.
|
|
184
|
+
- **What This Is:** 1-2 sentences from discussion
|
|
185
|
+
- **Must Create:** Files/components identified
|
|
186
|
+
- **Must Integrate With:** Existing code mentioned
|
|
187
|
+
- **Constraints:** Any constraints identified
|
|
188
|
+
- **Success Criteria:** Observable behaviors
|
|
189
|
+
- **Out of Scope:** Explicit exclusions
|
|
190
|
+
- **Initial Context:** Notes from discussion
|
|
191
|
+
|
|
192
|
+
Continue to write_context.
|
|
200
193
|
</step>
|
|
201
194
|
|
|
202
|
-
<step name="
|
|
203
|
-
|
|
195
|
+
<step name="write_context">
|
|
196
|
+
Write CONTEXT.md with initial discussion state.
|
|
204
197
|
|
|
205
|
-
|
|
206
|
-
|
|
198
|
+
**Write CONTEXT.md:**
|
|
199
|
+
Use template at `~/.claude/specdacular/templates/features/CONTEXT.md`
|
|
207
200
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
**
|
|
213
|
-
1. Quick - Minimal docs, fast execution
|
|
214
|
-
2. Standard (recommended) - Balanced documentation and execution
|
|
215
|
-
3. Comprehensive - Thorough docs, detailed planning
|
|
216
|
-
```
|
|
201
|
+
Fill in:
|
|
202
|
+
- **Discussion Summary:** Brief summary of what was discussed
|
|
203
|
+
- **Resolved Questions:** Questions that were answered in this session
|
|
204
|
+
- **Deferred Questions:** Things that came up but weren't resolved
|
|
205
|
+
- **Gray Areas Remaining:** Areas that need more discussion
|
|
217
206
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
Continue to define_requirements.
|
|
207
|
+
Continue to initialize_decisions.
|
|
221
208
|
</step>
|
|
222
209
|
|
|
223
|
-
<step name="
|
|
224
|
-
|
|
210
|
+
<step name="initialize_decisions">
|
|
211
|
+
Initialize DECISIONS.md with any decisions made.
|
|
225
212
|
|
|
226
|
-
**
|
|
227
|
-
|
|
228
|
-
- UI - User interface requirements
|
|
229
|
-
- API - Backend/API requirements
|
|
230
|
-
- DATA - Data model requirements
|
|
231
|
-
- INT - Integration requirements
|
|
232
|
-
- SEC - Security requirements
|
|
233
|
-
- PERF - Performance requirements
|
|
213
|
+
**Write DECISIONS.md:**
|
|
214
|
+
Use template at `~/.claude/specdacular/templates/features/DECISIONS.md`
|
|
234
215
|
|
|
235
|
-
|
|
236
|
-
Example: `DASH-UI-01`, `DASH-API-02`
|
|
216
|
+
If any decisions were made during discussion (technology choices, scope decisions, approach decisions), record them:
|
|
237
217
|
|
|
238
|
-
|
|
218
|
+
```markdown
|
|
219
|
+
### DEC-001: {Decision}
|
|
220
|
+
**Date:** {today}
|
|
221
|
+
**Status:** Active
|
|
222
|
+
**Context:** Identified during initial feature discussion
|
|
223
|
+
**Decision:** {What was decided}
|
|
224
|
+
**Rationale:**
|
|
225
|
+
- {Why}
|
|
226
|
+
**Implications:**
|
|
227
|
+
- {What this means}
|
|
239
228
|
```
|
|
240
|
-
Based on our discussion, here are the requirements I identified:
|
|
241
|
-
|
|
242
|
-
**UI Requirements:**
|
|
243
|
-
- DASH-UI-01: [Requirement description]
|
|
244
|
-
- DASH-UI-02: [Requirement description]
|
|
245
|
-
|
|
246
|
-
**API Requirements:**
|
|
247
|
-
- DASH-API-01: [Requirement description]
|
|
248
|
-
|
|
249
|
-
[etc.]
|
|
250
229
|
|
|
251
|
-
|
|
252
|
-
- v1 (must have for initial release)
|
|
253
|
-
- v2 (deferred to later)
|
|
254
|
-
- out (out of scope entirely)
|
|
230
|
+
If no decisions yet, leave with just the template structure.
|
|
255
231
|
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**Iterate until scoped:**
|
|
260
|
-
Continue discussion until all requirements are categorized.
|
|
261
|
-
|
|
262
|
-
**Write REQUIREMENTS.md:**
|
|
263
|
-
Use template at `~/.claude/specdacular/templates/features/REQUIREMENTS.md`
|
|
264
|
-
|
|
265
|
-
**Commit:**
|
|
266
|
-
```bash
|
|
267
|
-
git add .specd/features/{feature-name}/REQUIREMENTS.md
|
|
268
|
-
git commit -m "docs(feature): define requirements for {feature-name}"
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
Continue to create_roadmap.
|
|
232
|
+
Continue to initialize_changelog.
|
|
272
233
|
</step>
|
|
273
234
|
|
|
274
|
-
<step name="
|
|
275
|
-
|
|
235
|
+
<step name="initialize_changelog">
|
|
236
|
+
Initialize CHANGELOG.md (empty, ready for implementation).
|
|
276
237
|
|
|
277
|
-
**
|
|
278
|
-
|
|
279
|
-
- Phase 1 contains core v1 requirements (the minimum viable feature)
|
|
280
|
-
- Subsequent phases add v1 requirements in logical order
|
|
281
|
-
- Final phases contain v2 requirements
|
|
282
|
-
- Each phase has clear success criteria
|
|
238
|
+
**Write CHANGELOG.md:**
|
|
239
|
+
Use template at `~/.claude/specdacular/templates/features/CHANGELOG.md`
|
|
283
240
|
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
Based on the v1 requirements, here's the proposed roadmap:
|
|
287
|
-
|
|
288
|
-
**Phase 1: {Name}** - {Description}
|
|
289
|
-
Requirements: {REQ-IDs}
|
|
290
|
-
Success criteria:
|
|
291
|
-
1. [Observable behavior]
|
|
292
|
-
2. [Observable behavior]
|
|
293
|
-
|
|
294
|
-
**Phase 2: {Name}** - {Description}
|
|
295
|
-
Requirements: {REQ-IDs}
|
|
296
|
-
Success criteria:
|
|
297
|
-
1. [Observable behavior]
|
|
298
|
-
|
|
299
|
-
[etc.]
|
|
300
|
-
|
|
301
|
-
Does this phasing make sense? Any adjustments needed?
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**Iterate until approved.**
|
|
305
|
-
|
|
306
|
-
**Write ROADMAP.md:**
|
|
307
|
-
Use template at `~/.claude/specdacular/templates/features/ROADMAP.md`
|
|
241
|
+
Replace `{feature-name}` with actual feature name. Leave the rest as template structure — entries will be added during plan execution.
|
|
308
242
|
|
|
309
243
|
Continue to initialize_state.
|
|
310
244
|
</step>
|
|
311
245
|
|
|
312
246
|
<step name="initialize_state">
|
|
313
|
-
Create STATE.md and config.json
|
|
247
|
+
Create STATE.md and config.json.
|
|
314
248
|
|
|
315
249
|
**Write STATE.md:**
|
|
316
250
|
Use template at `~/.claude/specdacular/templates/features/STATE.md`
|
|
317
251
|
|
|
318
252
|
Initialize with:
|
|
319
|
-
-
|
|
320
|
-
-
|
|
321
|
-
-
|
|
322
|
-
- Session history: creation date
|
|
253
|
+
- Stage: discussion
|
|
254
|
+
- Initial discussion complete: yes
|
|
255
|
+
- Gray areas identified: based on deferred questions
|
|
323
256
|
|
|
324
257
|
**Write config.json:**
|
|
325
258
|
```json
|
|
326
259
|
{
|
|
327
260
|
"feature_name": "{name}",
|
|
328
|
-
"feature_abbrev": "{ABBREV}",
|
|
329
261
|
"created": "{date}",
|
|
330
|
-
"
|
|
331
|
-
"
|
|
332
|
-
"
|
|
333
|
-
"total": {N},
|
|
334
|
-
"completed": 0,
|
|
335
|
-
"current": 1
|
|
336
|
-
},
|
|
337
|
-
"requirements": {
|
|
338
|
-
"v1_count": {N},
|
|
339
|
-
"v2_count": {N},
|
|
340
|
-
"completed": 0
|
|
341
|
-
}
|
|
262
|
+
"stage": "discussion",
|
|
263
|
+
"discussion_sessions": 1,
|
|
264
|
+
"decisions_count": {N}
|
|
342
265
|
}
|
|
343
266
|
```
|
|
344
267
|
|
|
345
|
-
|
|
268
|
+
Continue to commit.
|
|
269
|
+
</step>
|
|
270
|
+
|
|
271
|
+
<step name="commit">
|
|
272
|
+
Commit the feature initialization.
|
|
273
|
+
|
|
346
274
|
```bash
|
|
347
|
-
git add .specd/features/{feature-name}/
|
|
348
|
-
git commit -m "docs(feature):
|
|
275
|
+
git add .specd/features/{feature-name}/
|
|
276
|
+
git commit -m "docs({feature-name}): initialize feature
|
|
277
|
+
|
|
278
|
+
Creates feature structure with:
|
|
279
|
+
- FEATURE.md: Technical requirements
|
|
280
|
+
- CONTEXT.md: Discussion context
|
|
281
|
+
- DECISIONS.md: Decision log ({N} decisions)
|
|
282
|
+
- CHANGELOG.md: Implementation log (empty)
|
|
283
|
+
- STATE.md: Progress tracking
|
|
284
|
+
- config.json: Configuration"
|
|
349
285
|
```
|
|
350
286
|
|
|
351
287
|
Continue to completion.
|
|
352
288
|
</step>
|
|
353
289
|
|
|
354
290
|
<step name="completion">
|
|
355
|
-
|
|
291
|
+
Present what was created and next options.
|
|
356
292
|
|
|
357
293
|
**Output:**
|
|
358
294
|
```
|
|
359
|
-
|
|
295
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
296
|
+
FEATURE INITIALIZED
|
|
297
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
298
|
+
|
|
299
|
+
**Feature:** {feature-name}
|
|
300
|
+
|
|
301
|
+
## Created
|
|
360
302
|
|
|
361
|
-
|
|
362
|
-
-
|
|
363
|
-
-
|
|
364
|
-
-
|
|
365
|
-
- STATE.md
|
|
366
|
-
- config.json
|
|
303
|
+
- `.specd/features/{feature-name}/FEATURE.md` — Technical requirements
|
|
304
|
+
- `.specd/features/{feature-name}/CONTEXT.md` — Discussion context
|
|
305
|
+
- `.specd/features/{feature-name}/DECISIONS.md` — {N} decisions recorded
|
|
306
|
+
- `.specd/features/{feature-name}/CHANGELOG.md` — Implementation log (empty)
|
|
307
|
+
- `.specd/features/{feature-name}/STATE.md` — Progress tracking
|
|
308
|
+
- `.specd/features/{feature-name}/config.json` — Configuration
|
|
367
309
|
|
|
368
|
-
|
|
369
|
-
Depth: {quick|standard|comprehensive}
|
|
310
|
+
## Summary
|
|
370
311
|
|
|
371
|
-
|
|
312
|
+
{2-3 sentence summary of what this feature does}
|
|
313
|
+
|
|
314
|
+
{If gray areas remain:}
|
|
315
|
+
**Open areas to discuss:**
|
|
316
|
+
- {Gray area 1}
|
|
317
|
+
- {Gray area 2}
|
|
318
|
+
|
|
319
|
+
───────────────────────────────────────────────────────
|
|
372
320
|
|
|
373
321
|
## What's Next
|
|
374
322
|
|
|
375
|
-
|
|
323
|
+
You control the rhythm. Options:
|
|
324
|
+
|
|
325
|
+
**/specd:discuss-feature {feature-name}** — Dive deeper into specific areas
|
|
326
|
+
{Suggested if gray areas remain}
|
|
327
|
+
|
|
328
|
+
**/specd:research-feature {feature-name}** — Research implementation approach
|
|
329
|
+
{Suggested if technology choices are unclear}
|
|
376
330
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
- "Execute phase 1" - I'll implement the phase (in {mode} mode)
|
|
331
|
+
**/specd:plan-feature {feature-name}** — Create executable task plans
|
|
332
|
+
{Only when discussion + research are sufficient}
|
|
380
333
|
|
|
381
|
-
Or
|
|
382
|
-
- `cat .specd/features/{feature-name}/REQUIREMENTS.md`
|
|
383
|
-
- `cat .specd/features/{feature-name}/ROADMAP.md`
|
|
334
|
+
Or just **keep talking** — this conversation continues naturally.
|
|
384
335
|
```
|
|
385
336
|
|
|
386
337
|
End workflow.
|
|
@@ -390,10 +341,12 @@ End workflow.
|
|
|
390
341
|
|
|
391
342
|
<success_criteria>
|
|
392
343
|
- Feature folder created at `.specd/features/{name}/`
|
|
393
|
-
-
|
|
394
|
-
-
|
|
395
|
-
-
|
|
396
|
-
-
|
|
397
|
-
-
|
|
398
|
-
-
|
|
344
|
+
- FEATURE.md has specific technical requirements (files to create, integrations)
|
|
345
|
+
- CONTEXT.md captures the discussion state
|
|
346
|
+
- DECISIONS.md initialized (with any decisions made)
|
|
347
|
+
- CHANGELOG.md initialized (empty, ready for implementation)
|
|
348
|
+
- STATE.md tracks current stage
|
|
349
|
+
- config.json created
|
|
350
|
+
- Committed to git
|
|
351
|
+
- User presented with clear next options
|
|
399
352
|
</success_criteria>
|