specsmd 0.0.34 → 0.1.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 +21 -1
- package/flows/aidlc/agents/inception-agent.md +4 -2
- package/flows/aidlc/context-config.yaml +28 -2
- package/flows/aidlc/memory-bank.yaml +7 -7
- package/flows/aidlc/skills/construction/bolt-list.md +14 -14
- package/flows/aidlc/skills/construction/bolt-replan.md +37 -35
- package/flows/aidlc/skills/construction/bolt-start.md +133 -8
- package/flows/aidlc/skills/construction/navigator.md +7 -7
- package/flows/aidlc/skills/inception/bolt-plan.md +50 -30
- package/flows/aidlc/skills/master/analyze-context.md +107 -0
- package/flows/aidlc/skills/master/explain-flow.md +13 -1
- package/flows/aidlc/templates/construction/bolt-template.md +13 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +1 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +1 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +1 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +1 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +3 -3
- package/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +92 -23
- package/flows/aidlc/templates/construction/bolt-types/spike-bolt.md +2 -2
- package/flows/aidlc/templates/construction/construction-log-template.md +2 -2
- package/flows/aidlc/templates/inception/inception-log-template.md +2 -2
- package/flows/aidlc/templates/inception/requirements-template.md +2 -2
- package/flows/aidlc/templates/inception/stories-template.md +1 -1
- package/flows/aidlc/templates/inception/story-template.md +2 -2
- package/flows/aidlc/templates/inception/system-context-template.md +1 -1
- package/flows/aidlc/templates/inception/unit-brief-template.md +2 -2
- package/flows/aidlc/templates/inception/units-template.md +1 -1
- package/lib/analytics/env-detector.js +92 -0
- package/lib/analytics/index.js +22 -0
- package/lib/analytics/machine-id.js +33 -0
- package/lib/analytics/tracker.js +205 -0
- package/lib/installer.js +75 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# specs.md
|
|
2
2
|
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="images/specs_md_pixel_logo.png" alt="specs.md logo" width="400" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
3
7
|
**AI-native software development with multi-agent orchestration.**
|
|
4
8
|
|
|
5
9
|
specsmd implements the [AI-Driven Development Lifecycle (AI-DLC)](https://aws.amazon.com/blogs/devops/ai-driven-development-life-cycle/) methodology as a set of markdown-based agents that work with your favorite AI coding tools.
|
|
@@ -14,6 +18,22 @@ specsmd implements the [AI-Driven Development Lifecycle (AI-DLC)](https://aws.am
|
|
|
14
18
|
|
|
15
19
|
---
|
|
16
20
|
|
|
21
|
+
## VS Code Extension
|
|
22
|
+
|
|
23
|
+
Track your AI-DLC progress with our sidebar extension for VS Code and compatible IDEs.
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
<img src="vs-code-extension/resources/extension-preview.png" alt="VS Code Extension Preview" width="800" />
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
> **Note:** Works with any VS Code-based IDE including [Cursor](https://cursor.sh), [Google Antigravity](https://antigravity.google), [Windsurf](https://codeium.com/windsurf), and others.
|
|
30
|
+
|
|
31
|
+
**Install from:**
|
|
32
|
+
- [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=fabriqaai.specsmd)
|
|
33
|
+
- [GitHub Releases (VSIX)](https://github.com/fabriqaai/specs.md/releases)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
17
37
|
## Quick Start
|
|
18
38
|
|
|
19
39
|
### Prerequisites
|
|
@@ -162,7 +182,7 @@ The smallest iteration in AI-DLC, designed for rapid implementation. Unlike Spri
|
|
|
162
182
|
| Type | Best For | Stages |
|
|
163
183
|
|------|----------|--------|
|
|
164
184
|
| **DDD Construction** | Complex business logic, domain modeling | Model → Design → ADR → Implement → Test |
|
|
165
|
-
| **Simple Construction** | UI, integrations, utilities |
|
|
185
|
+
| **Simple Construction** | UI, integrations, utilities | Plan → Implement → Test |
|
|
166
186
|
|
|
167
187
|
### Memory Bank
|
|
168
188
|
File-based storage for all project artifacts. Maintains context across agent sessions and provides traceability between artifacts.
|
|
@@ -17,8 +17,10 @@ You are the **Inception Agent** for AI-DLC (AI-Driven Development Life Cycle).
|
|
|
17
17
|
When user invokes `/specsmd-inception-agent`:
|
|
18
18
|
|
|
19
19
|
1. Read `.specsmd/aidlc/memory-bank.yaml` for artifact schema
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
20
|
+
2. Read `.specsmd/aidlc/context-config.yaml` for project context (under `agents.inception`)
|
|
21
|
+
3. Load context files as defined (e.g., `project.yaml` for project type awareness)
|
|
22
|
+
4. Execute `menu` (navigator) skill to show state and options
|
|
23
|
+
5. Route to selected skill based on user input
|
|
22
24
|
|
|
23
25
|
---
|
|
24
26
|
|
|
@@ -37,5 +37,31 @@ agents:
|
|
|
37
37
|
|
|
38
38
|
Or continue without standards (code may be inconsistent).
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
inception:
|
|
41
|
+
description: "Inception Agent needs project type awareness for unit decomposition"
|
|
42
|
+
required_context:
|
|
43
|
+
- path: project.yaml
|
|
44
|
+
purpose: "Project type for unit decomposition and bolt type defaults"
|
|
45
|
+
critical: false
|
|
46
|
+
|
|
47
|
+
optional_context:
|
|
48
|
+
- path: standards/tech-stack.md
|
|
49
|
+
purpose: "Technology context for realistic decomposition"
|
|
50
|
+
|
|
51
|
+
on_missing_critical:
|
|
52
|
+
action: continue
|
|
53
|
+
message: |
|
|
54
|
+
ℹ️ Project not initialized yet.
|
|
55
|
+
|
|
56
|
+
The project.yaml file will be created during project-init.
|
|
57
|
+
Inception can proceed without it (will use defaults).
|
|
58
|
+
|
|
59
|
+
operations:
|
|
60
|
+
description: "Operations Agent requires deployment context"
|
|
61
|
+
required_context: []
|
|
62
|
+
optional_context:
|
|
63
|
+
- path: standards/system-architecture.md
|
|
64
|
+
purpose: "Architecture for deployment decisions"
|
|
65
|
+
|
|
66
|
+
- path: operations/deployment-config.md
|
|
67
|
+
purpose: "Existing deployment configuration"
|
|
@@ -50,20 +50,20 @@ naming:
|
|
|
50
50
|
note: "3-digit prefix indicates order, kebab-case name"
|
|
51
51
|
|
|
52
52
|
units:
|
|
53
|
-
format: "{unit-name}"
|
|
54
|
-
example: "auth-service"
|
|
55
|
-
note: "
|
|
53
|
+
format: "{UUU}-{unit-name}"
|
|
54
|
+
example: "001-auth-service"
|
|
55
|
+
note: "3-digit prefix within intent, kebab-case name"
|
|
56
56
|
|
|
57
57
|
stories:
|
|
58
58
|
format: "{SSS}-{title-slug}.md"
|
|
59
59
|
example: "001-user-signup.md"
|
|
60
60
|
note: "3-digit story number + kebab-case story title"
|
|
61
|
-
full_path_example: "memory-bank/intents/001-user-authentication/units/auth-service/stories/001-user-signup.md"
|
|
61
|
+
full_path_example: "memory-bank/intents/001-user-authentication/units/001-auth-service/stories/001-user-signup.md"
|
|
62
62
|
|
|
63
63
|
bolts:
|
|
64
|
-
format: "
|
|
65
|
-
example: "
|
|
66
|
-
note: "
|
|
64
|
+
format: "{BBB}-{unit-name}/"
|
|
65
|
+
example: "001-auth-service/"
|
|
66
|
+
note: "Global 3-digit sequence, unit name for context"
|
|
67
67
|
contents:
|
|
68
68
|
- "bolt.md" # Bolt instance metadata
|
|
69
69
|
- "ddd-01-domain-model.md" # Stage 1 artifact (DDD bolt)
|
|
@@ -73,20 +73,20 @@ Sort bolts by:
|
|
|
73
73
|
|
|
74
74
|
### Active Bolts
|
|
75
75
|
|
|
76
|
-
- ⏳ **
|
|
76
|
+
- ⏳ **002-auth-service** (auth-service, {bolt-type}) - Stage: {current-stage}, 2/4 (50%) ← working
|
|
77
77
|
|
|
78
78
|
### Planned Bolts
|
|
79
79
|
|
|
80
|
-
- [ ] **
|
|
81
|
-
- [ ] **
|
|
80
|
+
- [ ] **003-auth-service** (auth-service) - Stories: 005-*, 006-* - Ready ✅
|
|
81
|
+
- [ ] **004-payment-api** (payment-api) - Stories: 001-*, 002-*, 003-* - Ready ✅
|
|
82
82
|
|
|
83
83
|
### Blocked Bolts
|
|
84
84
|
|
|
85
|
-
- 🚫 **
|
|
85
|
+
- 🚫 **005-api-gateway** - Waiting for auth (since 2024-12-04)
|
|
86
86
|
|
|
87
87
|
### Completed Bolts
|
|
88
88
|
|
|
89
|
-
- ✅ **
|
|
89
|
+
- ✅ **001-auth-service** (auth-service) - Completed 2024-12-05 (4 hours)
|
|
90
90
|
|
|
91
91
|
### Summary
|
|
92
92
|
- **Total**: {n} bolts
|
|
@@ -97,8 +97,8 @@ Sort bolts by:
|
|
|
97
97
|
|
|
98
98
|
### Actions
|
|
99
99
|
|
|
100
|
-
1 - **Continue active bolt**: Resume `
|
|
101
|
-
2 - **Start planned bolt**: Begin `
|
|
100
|
+
1 - **Continue active bolt**: Resume `002-auth-service`
|
|
101
|
+
2 - **Start planned bolt**: Begin `003-auth-service`
|
|
102
102
|
3 - **View bolt status**: Check detailed status
|
|
103
103
|
4 - **Plan new bolts**: Create additional bolts
|
|
104
104
|
|
|
@@ -112,14 +112,14 @@ Sort bolts by:
|
|
|
112
112
|
```markdown
|
|
113
113
|
## Bolts for Unit: {unit-name}
|
|
114
114
|
|
|
115
|
-
- ✅ **
|
|
116
|
-
- ⏳ **
|
|
117
|
-
- [ ] **
|
|
115
|
+
- ✅ **001-{unit-name}** ({bolt-type}) - Completed 100% - Stories: 001-*, 002-*
|
|
116
|
+
- ⏳ **002-{unit-name}** ({bolt-type}) - In progress 50% - Stories: 003-*, 004-* ← current
|
|
117
|
+
- [ ] **003-{unit-name}** ({bolt-type}) - Planned 0% - Stories: 005-*
|
|
118
118
|
|
|
119
119
|
### Quick Actions
|
|
120
120
|
|
|
121
|
-
1 - **Continue
|
|
122
|
-
2 - **View
|
|
121
|
+
1 - **Continue 002-{unit-name}**: Resume current work
|
|
122
|
+
2 - **View 001-{unit-name} status**: Review completed bolt
|
|
123
123
|
|
|
124
124
|
**Type a number to continue.**
|
|
125
125
|
```
|
|
@@ -133,8 +133,8 @@ Sort bolts by:
|
|
|
133
133
|
```text
|
|
134
134
|
### Available Bolts
|
|
135
135
|
|
|
136
|
-
1 -
|
|
137
|
-
2 -
|
|
136
|
+
1 - 001-{unit-name} (planned) - Stories: 001-*, 002-*
|
|
137
|
+
2 - 002-{unit-name} (planned) - Stories: 003-*, 004-*
|
|
138
138
|
|
|
139
139
|
Which bolt would you like to work on?
|
|
140
140
|
```
|
|
@@ -33,9 +33,9 @@ Replan bolts during Construction phase - add new bolts, split existing ones, or
|
|
|
33
33
|
```markdown
|
|
34
34
|
## Current Bolt Status: {unit-name}
|
|
35
35
|
|
|
36
|
-
- ✅ **
|
|
37
|
-
- ⏳ **
|
|
38
|
-
- [ ] **
|
|
36
|
+
- ✅ **001-auth-service** ({bolt-type}): 001-user-signup, 002-user-login - completed - No dependencies
|
|
37
|
+
- ⏳ **002-auth-service** ({bolt-type}): 003-password-reset, 004-email-verify - in-progress - requires 001-auth-service
|
|
38
|
+
- [ ] **003-auth-service** ({bolt-type}): 005-mfa-setup - planned - requires 002-auth-service
|
|
39
39
|
|
|
40
40
|
### Summary
|
|
41
41
|
|
|
@@ -86,8 +86,10 @@ Select an option (1-4):
|
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
2. **Determine next bolt ID**:
|
|
89
|
-
-
|
|
90
|
-
-
|
|
89
|
+
- List all directories in `memory-bank/bolts/`
|
|
90
|
+
- Extract the 3-digit prefix from each (e.g., `015` from `015-auth-service`)
|
|
91
|
+
- Find the highest number
|
|
92
|
+
- Next bolt: `{next-BBB}-{unit-name}` (e.g., if highest is `015`, next is `016-auth-service`)
|
|
91
93
|
|
|
92
94
|
3. **Create new bolt(s)**:
|
|
93
95
|
- Use template: `.specsmd/aidlc/templates/construction/bolt-template.md`
|
|
@@ -103,12 +105,12 @@ Select an option (1-4):
|
|
|
103
105
|
|
|
104
106
|
Created 1 new bolt:
|
|
105
107
|
|
|
106
|
-
- [ ] **
|
|
108
|
+
- [ ] **004-auth-service** ({bolt-type}): 006-session-mgmt, 007-api-keys - requires 003-auth-service
|
|
107
109
|
|
|
108
110
|
Updated dependency graph:
|
|
109
|
-
|
|
111
|
+
001-auth-service → 002-auth-service → 003-auth-service → 004-auth-service (NEW)
|
|
110
112
|
|
|
111
|
-
File created: `memory-bank/bolts/
|
|
113
|
+
File created: `memory-bank/bolts/004-auth-service/bolt.md`
|
|
112
114
|
```
|
|
113
115
|
|
|
114
116
|
---
|
|
@@ -136,8 +138,8 @@ Select an option (1-4):
|
|
|
136
138
|
|
|
137
139
|
Splittable bolts (planned or in-progress):
|
|
138
140
|
|
|
139
|
-
- ⏳ **
|
|
140
|
-
- [ ] **
|
|
141
|
+
- ⏳ **002-auth-service** ({bolt-type}): 003-password-reset, 004-email-verify, 005-mfa-setup - in-progress - ⚠️ Confirm to split
|
|
142
|
+
- [ ] **003-auth-service** ({bolt-type}): 006-session-mgmt, 007-api-keys, 008-rate-limit - planned - ✅ Can split
|
|
141
143
|
|
|
142
144
|
Enter bolt ID to split:
|
|
143
145
|
```
|
|
@@ -145,21 +147,21 @@ Select an option (1-4):
|
|
|
145
147
|
2. **Propose split**:
|
|
146
148
|
|
|
147
149
|
```markdown
|
|
148
|
-
## Split Proposal:
|
|
150
|
+
## Split Proposal: 003-auth-service
|
|
149
151
|
|
|
150
152
|
Current: 3 stories (006-session-mgmt, 007-api-keys, 008-rate-limit)
|
|
151
153
|
|
|
152
154
|
Proposed split:
|
|
153
155
|
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
+
- **003-auth-service**: 006-session-mgmt - Core feature
|
|
157
|
+
- **004-auth-service**: 007-api-keys, 008-rate-limit - Related edge cases
|
|
156
158
|
|
|
157
159
|
Accept this split? (yes/no/customize)
|
|
158
160
|
```
|
|
159
161
|
|
|
160
162
|
3. **Execute split**:
|
|
161
163
|
- Archive or update original bolt file
|
|
162
|
-
- Create new bolt files with
|
|
164
|
+
- Create new bolt files with next sequence number
|
|
163
165
|
- Update dependencies on dependent bolts
|
|
164
166
|
- Update `enables_bolts` on prerequisite bolts
|
|
165
167
|
|
|
@@ -168,17 +170,17 @@ Select an option (1-4):
|
|
|
168
170
|
```markdown
|
|
169
171
|
## Bolt Split Complete
|
|
170
172
|
|
|
171
|
-
Original:
|
|
173
|
+
Original: 003-auth-service (updated)
|
|
172
174
|
|
|
173
175
|
Created:
|
|
174
176
|
|
|
175
|
-
- [ ] **
|
|
176
|
-
- [ ] **
|
|
177
|
+
- [ ] **003-auth-service** ({bolt-type}): 006-session-mgmt - requires 002-auth-service
|
|
178
|
+
- [ ] **004-auth-service** ({bolt-type}): 007-api-keys, 008-rate-limit - requires 003-auth-service
|
|
177
179
|
|
|
178
180
|
Updated files:
|
|
179
|
-
- `memory-bank/bolts/
|
|
180
|
-
- `memory-bank/bolts/
|
|
181
|
-
- `memory-bank/bolts/
|
|
181
|
+
- `memory-bank/bolts/003-auth-service/bolt.md` (updated)
|
|
182
|
+
- `memory-bank/bolts/004-auth-service/bolt.md` (created)
|
|
183
|
+
- `memory-bank/bolts/002-auth-service/bolt.md` (updated enables_bolts)
|
|
182
184
|
```
|
|
183
185
|
|
|
184
186
|
---
|
|
@@ -204,21 +206,21 @@ Select an option (1-4):
|
|
|
204
206
|
```markdown
|
|
205
207
|
## Current Execution Order
|
|
206
208
|
|
|
207
|
-
|
|
209
|
+
001-auth-service (completed) → 002-auth-service (in-progress) → 003-auth-service (planned) → 004-auth-service (planned)
|
|
208
210
|
|
|
209
|
-
- 1 - **
|
|
210
|
-
- 2 - **
|
|
211
|
-
- 3 - **
|
|
212
|
-
- 4 - **
|
|
211
|
+
- 1 - **001-auth-service**: completed - ❌ Cannot move
|
|
212
|
+
- 2 - **002-auth-service**: in-progress - ⚠️ Will pause if moved
|
|
213
|
+
- 3 - **003-auth-service**: planned - ✅ Can move
|
|
214
|
+
- 4 - **004-auth-service**: planned - ✅ Can move
|
|
213
215
|
```
|
|
214
216
|
|
|
215
217
|
2. **Get new order**:
|
|
216
218
|
|
|
217
219
|
```markdown
|
|
218
220
|
Enter new order for planned bolts (comma-separated IDs):
|
|
219
|
-
Example:
|
|
221
|
+
Example: 004-auth-service, 003-auth-service
|
|
220
222
|
|
|
221
|
-
This will execute
|
|
223
|
+
This will execute 004-auth-service before 003-auth-service.
|
|
222
224
|
```
|
|
223
225
|
|
|
224
226
|
3. **Validate dependencies**:
|
|
@@ -236,11 +238,11 @@ Select an option (1-4):
|
|
|
236
238
|
|
|
237
239
|
New execution order:
|
|
238
240
|
|
|
239
|
-
|
|
241
|
+
001-auth-service (completed) → 002-auth-service (in-progress) → 004-auth-service (planned) → 003-auth-service (planned)
|
|
240
242
|
|
|
241
243
|
Updated files:
|
|
242
|
-
- `memory-bank/bolts/
|
|
243
|
-
- `memory-bank/bolts/
|
|
244
|
+
- `memory-bank/bolts/003-auth-service/bolt.md` (requires_bolts updated)
|
|
245
|
+
- `memory-bank/bolts/004-auth-service/bolt.md` (requires_bolts updated)
|
|
244
246
|
```
|
|
245
247
|
|
|
246
248
|
---
|
|
@@ -253,10 +255,10 @@ When modifying bolts, always update dependencies:
|
|
|
253
255
|
|
|
254
256
|
```yaml
|
|
255
257
|
---
|
|
256
|
-
id:
|
|
258
|
+
id: 003-auth-service
|
|
257
259
|
type: ddd-construction-bolt
|
|
258
|
-
requires_bolts: [
|
|
259
|
-
enables_bolts: [
|
|
260
|
+
requires_bolts: [002-auth-service]
|
|
261
|
+
enables_bolts: [004-auth-service]
|
|
260
262
|
requires_units: []
|
|
261
263
|
complexity:
|
|
262
264
|
avg_complexity: 2
|
|
@@ -314,12 +316,12 @@ Update Current Bolt Structure to reflect changes.
|
|
|
314
316
|
|
|
315
317
|
### Example
|
|
316
318
|
|
|
317
|
-
After splitting
|
|
319
|
+
After splitting 002-auth-service:
|
|
318
320
|
|
|
319
321
|
```markdown
|
|
320
322
|
## Replanning History
|
|
321
323
|
|
|
322
|
-
- **2025-12-07**: split -
|
|
324
|
+
- **2025-12-07**: split - 002-auth-service → 002-auth-service, 003-auth-service - Scope too large - ✅ Approved
|
|
323
325
|
```
|
|
324
326
|
|
|
325
327
|
---
|
|
@@ -61,7 +61,21 @@ Read bolt file from path defined by `schema.bolts`:
|
|
|
61
61
|
└────────────────────────────────────────────────────────────┘
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
### 3. Load
|
|
64
|
+
### 3. Load Unit Context (CRITICAL)
|
|
65
|
+
|
|
66
|
+
**After extracting the unit from the bolt file, load its brief for context.**
|
|
67
|
+
|
|
68
|
+
Load `{intent}/units/{unit}/unit-brief.md` which contains:
|
|
69
|
+
|
|
70
|
+
- **Purpose and scope**: What the unit is responsible for
|
|
71
|
+
- **Key entities**: Domain concepts to work with
|
|
72
|
+
- **Technical constraints**: Specific limitations
|
|
73
|
+
- **Dependencies**: Other units this depends on
|
|
74
|
+
- **Unit type and bolt type**: Frontend vs backend, DDD vs simple
|
|
75
|
+
|
|
76
|
+
This context is essential for understanding what you're building.
|
|
77
|
+
|
|
78
|
+
### 4. Load Agent Context
|
|
65
79
|
|
|
66
80
|
Load context as defined in `.specsmd/aidlc/context-config.yaml` for the `construction` agent:
|
|
67
81
|
|
|
@@ -81,16 +95,38 @@ agents:
|
|
|
81
95
|
|
|
82
96
|
**Note**: This is agent-level context. Bolt-type-specific context loading may be added later.
|
|
83
97
|
|
|
84
|
-
###
|
|
98
|
+
### 5. Determine Current Stage
|
|
85
99
|
|
|
86
100
|
Based on bolt state:
|
|
87
101
|
|
|
88
|
-
- **planned** → Start with first stage,
|
|
102
|
+
- **planned** → Start with first stage, update bolt file immediately (see Step 6)
|
|
89
103
|
- **in-progress** → Continue from `current_stage`
|
|
90
104
|
- **completed** → Inform user bolt is done
|
|
91
105
|
- **blocked** → Show blocker, ask how to resolve
|
|
92
106
|
|
|
93
|
-
###
|
|
107
|
+
### 6. Update Bolt File on Start (CRITICAL - DO FIRST)
|
|
108
|
+
|
|
109
|
+
**⚠️ BEFORE any stage work begins, update the bolt file IMMEDIATELY.**
|
|
110
|
+
|
|
111
|
+
When transitioning from `planned` to `in-progress`:
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
---
|
|
115
|
+
status: in-progress # was: planned
|
|
116
|
+
started: {ISO-8601-timestamp} # was: null
|
|
117
|
+
current_stage: {first-stage} # was: null (e.g., "domain-model")
|
|
118
|
+
---
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**This is NON-NEGOTIABLE.** The bolt file must reflect that work has begun before any stage activities start. This ensures:
|
|
122
|
+
|
|
123
|
+
1. Progress is tracked even if execution is interrupted
|
|
124
|
+
2. Other tools/agents see accurate status
|
|
125
|
+
3. Resumption works correctly
|
|
126
|
+
|
|
127
|
+
**Also update construction log** (see "Update Construction Log" section below).
|
|
128
|
+
|
|
129
|
+
### 7. Execute Stage
|
|
94
130
|
|
|
95
131
|
For the current stage, follow the bolt type definition:
|
|
96
132
|
|
|
@@ -122,7 +158,7 @@ For the current stage, follow the bolt type definition:
|
|
|
122
158
|
- Use templates if specified by bolt type
|
|
123
159
|
- Place in correct paths per schema
|
|
124
160
|
|
|
125
|
-
###
|
|
161
|
+
### 8. Handle Checkpoints (As Defined by Bolt Type)
|
|
126
162
|
|
|
127
163
|
The bolt type definition specifies:
|
|
128
164
|
|
|
@@ -146,9 +182,9 @@ Ready to proceed?
|
|
|
146
182
|
|
|
147
183
|
If the bolt type specifies automatic validation criteria, follow those rules.
|
|
148
184
|
|
|
149
|
-
###
|
|
185
|
+
### 9. Update Bolt File on Stage Completion
|
|
150
186
|
|
|
151
|
-
After stage completion:
|
|
187
|
+
After each stage completion:
|
|
152
188
|
|
|
153
189
|
- Add stage to `stages_completed` with timestamp
|
|
154
190
|
- Update `current_stage` to next stage
|
|
@@ -171,7 +207,96 @@ stages_completed:
|
|
|
171
207
|
completed: {timestamp}
|
|
172
208
|
```
|
|
173
209
|
|
|
174
|
-
|
|
210
|
+
#### Update Story Status (On Bolt Completion)
|
|
211
|
+
|
|
212
|
+
When marking a bolt as `status: complete`, update all stories in the bolt's `stories` array:
|
|
213
|
+
|
|
214
|
+
1. **Read bolt's stories**: Get story IDs from bolt frontmatter `stories: [001-story-name, 002-story-name, ...]`
|
|
215
|
+
2. **Locate story files**: `{intent}/units/{unit}/stories/{story-id}.md`
|
|
216
|
+
3. **Update each story frontmatter**:
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
# Change from
|
|
220
|
+
status: draft
|
|
221
|
+
implemented: false
|
|
222
|
+
|
|
223
|
+
# To
|
|
224
|
+
status: complete
|
|
225
|
+
implemented: true
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Example**:
|
|
229
|
+
|
|
230
|
+
```text
|
|
231
|
+
Bolt stories: [001-create-role, 002-manage-permissions, 003-view-roles]
|
|
232
|
+
|
|
233
|
+
Updated:
|
|
234
|
+
✅ stories/001-create-role.md → status: complete, implemented: true
|
|
235
|
+
✅ stories/002-manage-permissions.md → status: complete, implemented: true
|
|
236
|
+
✅ stories/003-view-roles.md → status: complete, implemented: true
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
This ensures the memory-bank reflects actual implementation status and the VS Code extension shows correct completion indicators.
|
|
240
|
+
|
|
241
|
+
#### Update Unit & Intent Status (Status Cascade)
|
|
242
|
+
|
|
243
|
+
Status changes cascade upward: Bolt → Story → Unit → Intent.
|
|
244
|
+
|
|
245
|
+
**On Bolt Start** (when changing from `planned` to `in-progress`):
|
|
246
|
+
|
|
247
|
+
1. **Update Unit Status**:
|
|
248
|
+
- Read unit-brief: `{intent}/units/{unit}/unit-brief.md`
|
|
249
|
+
- If unit status is `stories-defined` or `stories-updated` → change to `in-progress`
|
|
250
|
+
|
|
251
|
+
2. **Update Intent Status**:
|
|
252
|
+
- Read requirements: `{intent}/requirements.md`
|
|
253
|
+
- If intent status is `units-defined` → change to `construction`
|
|
254
|
+
|
|
255
|
+
**On Bolt Completion** (after updating stories):
|
|
256
|
+
|
|
257
|
+
1. **Check Unit Completion**:
|
|
258
|
+
- Find all bolts for this unit: scan `memory-bank/bolts/*/bolt.md` and match `unit: {unit-name}` in frontmatter
|
|
259
|
+
- If ALL bolts have `status: complete` → update unit-brief to `status: complete`
|
|
260
|
+
|
|
261
|
+
2. **Check Intent Completion**:
|
|
262
|
+
- Read unit-briefs for all units in intent: `{intent}/units/*/unit-brief.md`
|
|
263
|
+
- If ALL units have `status: complete` → update requirements to `status: complete`
|
|
264
|
+
|
|
265
|
+
**Status Transitions**:
|
|
266
|
+
|
|
267
|
+
```text
|
|
268
|
+
Intent: draft → requirements-defined → units-defined → construction → complete
|
|
269
|
+
Unit: draft → stories-defined → in-progress → complete
|
|
270
|
+
Story: draft → in-progress → complete
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Example** (001-artifact-parser completes):
|
|
274
|
+
|
|
275
|
+
```text
|
|
276
|
+
1. Stories updated: 001, 002, 003, 004 → complete
|
|
277
|
+
2. Check unit bolts:
|
|
278
|
+
- 001-artifact-parser: complete ✓
|
|
279
|
+
- 005-artifact-parser: planned ✗
|
|
280
|
+
→ Unit stays in-progress (not all bolts complete)
|
|
281
|
+
3. Intent stays construction (unit not complete)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Example** (last bolt for file-watcher completes):
|
|
285
|
+
|
|
286
|
+
```text
|
|
287
|
+
1. Stories updated: 001, 002 → complete
|
|
288
|
+
2. Check unit bolts:
|
|
289
|
+
- 003-file-watcher: complete ✓
|
|
290
|
+
→ Only bolt for unit, all complete!
|
|
291
|
+
→ Update unit-brief: status: complete
|
|
292
|
+
3. Check intent units:
|
|
293
|
+
- artifact-parser: in-progress ✗
|
|
294
|
+
- file-watcher: complete ✓
|
|
295
|
+
- sidebar-provider: in-progress ✗
|
|
296
|
+
→ Intent stays construction (not all units complete)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 10. Continue or Complete
|
|
175
300
|
|
|
176
301
|
Based on condition:
|
|
177
302
|
|
|
@@ -134,18 +134,18 @@ When user selects an option:
|
|
|
134
134
|
|
|
135
135
|
### Available Bolts
|
|
136
136
|
|
|
137
|
-
- [ ] `
|
|
138
|
-
- [ ] `
|
|
139
|
-
- [ ] `
|
|
137
|
+
- [ ] `001-auth-service` (auth-service, DDD) - planned
|
|
138
|
+
- [ ] `002-auth-service` (auth-service, DDD) - planned
|
|
139
|
+
- [ ] `003-api-gateway` (api-gateway, Simple) - planned
|
|
140
140
|
|
|
141
141
|
### Quick Actions
|
|
142
142
|
|
|
143
|
-
1 - **Start
|
|
143
|
+
1 - **Start 001-auth-service**: Begin first bolt
|
|
144
144
|
2 - **List all bolts**: View with details
|
|
145
145
|
3 - **View bolt status**: Check specific bolt
|
|
146
146
|
|
|
147
147
|
### Suggested Next Step
|
|
148
|
-
→ Start construction with `
|
|
148
|
+
→ Start construction with `001-auth-service`
|
|
149
149
|
|
|
150
150
|
**Type a number or enter a bolt ID.**
|
|
151
151
|
```
|
|
@@ -161,8 +161,8 @@ When user selects an option:
|
|
|
161
161
|
|
|
162
162
|
All {n} bolts have been completed:
|
|
163
163
|
|
|
164
|
-
- ✅ `
|
|
165
|
-
- ✅ `
|
|
164
|
+
- ✅ `001-{unit-name}` - Completed 2024-12-05 (3h)
|
|
165
|
+
- ✅ `005-{unit-name}` - Completed 2024-12-06 (4h)
|
|
166
166
|
|
|
167
167
|
### Summary
|
|
168
168
|
- Stories delivered: {n}
|