specsmd 0.0.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 +300 -0
- package/bin/cli.js +21 -0
- package/flows/aidlc/README.md +372 -0
- package/flows/aidlc/agents/construction-agent.md +81 -0
- package/flows/aidlc/agents/inception-agent.md +95 -0
- package/flows/aidlc/agents/master-agent.md +61 -0
- package/flows/aidlc/agents/operations-agent.md +89 -0
- package/flows/aidlc/commands/construction-agent.md +63 -0
- package/flows/aidlc/commands/inception-agent.md +55 -0
- package/flows/aidlc/commands/master-agent.md +47 -0
- package/flows/aidlc/commands/operations-agent.md +77 -0
- package/flows/aidlc/context-config.yaml +41 -0
- package/flows/aidlc/memory-bank.yaml +104 -0
- package/flows/aidlc/quick-start.md +315 -0
- package/flows/aidlc/skills/construction/bolt-list.md +163 -0
- package/flows/aidlc/skills/construction/bolt-replan.md +343 -0
- package/flows/aidlc/skills/construction/bolt-start.md +289 -0
- package/flows/aidlc/skills/construction/bolt-status.md +185 -0
- package/flows/aidlc/skills/construction/navigator.md +196 -0
- package/flows/aidlc/skills/inception/bolt-plan.md +338 -0
- package/flows/aidlc/skills/inception/context.md +171 -0
- package/flows/aidlc/skills/inception/intent-create.md +211 -0
- package/flows/aidlc/skills/inception/intent-list.md +124 -0
- package/flows/aidlc/skills/inception/navigator.md +207 -0
- package/flows/aidlc/skills/inception/requirements.md +227 -0
- package/flows/aidlc/skills/inception/review.md +248 -0
- package/flows/aidlc/skills/inception/story-create.md +304 -0
- package/flows/aidlc/skills/inception/units.md +271 -0
- package/flows/aidlc/skills/master/analyze-context.md +132 -0
- package/flows/aidlc/skills/master/answer-question.md +141 -0
- package/flows/aidlc/skills/master/explain-flow.md +146 -0
- package/flows/aidlc/skills/master/project-init.md +281 -0
- package/flows/aidlc/skills/master/route-request.md +126 -0
- package/flows/aidlc/skills/operations/build.md +237 -0
- package/flows/aidlc/skills/operations/deploy.md +259 -0
- package/flows/aidlc/skills/operations/monitor.md +265 -0
- package/flows/aidlc/skills/operations/navigator.md +209 -0
- package/flows/aidlc/skills/operations/verify.md +224 -0
- package/flows/aidlc/templates/construction/bolt-template.md +193 -0
- package/flows/aidlc/templates/construction/bolt-types/bdd-construction-bolt.md +250 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
- package/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +273 -0
- package/flows/aidlc/templates/construction/bolt-types/spike-bolt.md +240 -0
- package/flows/aidlc/templates/construction/bolt-types/tdd-construction-bolt.md +259 -0
- package/flows/aidlc/templates/construction/construction-log-template.md +129 -0
- package/flows/aidlc/templates/construction/standards/coding-standards.md +29 -0
- package/flows/aidlc/templates/construction/standards/system-architecture.md +22 -0
- package/flows/aidlc/templates/construction/standards/tech-stack.md +19 -0
- package/flows/aidlc/templates/inception/inception-log-template.md +134 -0
- package/flows/aidlc/templates/inception/project/README.md +55 -0
- package/flows/aidlc/templates/inception/requirements-template.md +144 -0
- package/flows/aidlc/templates/inception/stories-template.md +38 -0
- package/flows/aidlc/templates/inception/story-template.md +147 -0
- package/flows/aidlc/templates/inception/system-context-template.md +29 -0
- package/flows/aidlc/templates/inception/unit-brief-template.md +177 -0
- package/flows/aidlc/templates/inception/units-template.md +52 -0
- package/flows/aidlc/templates/standards/catalog.yaml +345 -0
- package/flows/aidlc/templates/standards/coding-standards.guide.md +553 -0
- package/flows/aidlc/templates/standards/data-stack.guide.md +162 -0
- package/flows/aidlc/templates/standards/tech-stack.guide.md +280 -0
- package/lib/InstallerFactory.js +36 -0
- package/lib/cli-utils.js +372 -0
- package/lib/constants.js +31 -0
- package/lib/installer.js +314 -0
- package/lib/installers/AntigravityInstaller.js +22 -0
- package/lib/installers/ClaudeInstaller.js +85 -0
- package/lib/installers/ClineInstaller.js +21 -0
- package/lib/installers/CodexInstaller.js +21 -0
- package/lib/installers/CopilotInstaller.js +113 -0
- package/lib/installers/CursorInstaller.js +63 -0
- package/lib/installers/GeminiInstaller.js +75 -0
- package/lib/installers/KiroInstaller.js +22 -0
- package/lib/installers/OpenCodeInstaller.js +22 -0
- package/lib/installers/RooInstaller.js +22 -0
- package/lib/installers/ToolInstaller.js +73 -0
- package/lib/installers/WindsurfInstaller.js +76 -0
- package/lib/markdown-validator.ts +175 -0
- package/lib/yaml-validator.ts +99 -0
- package/package.json +65 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Skill: Bolt Status
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
Informational skill to display detailed status of a specific bolt.
|
|
8
|
+
|
|
9
|
+
**NO Checkpoint** - This is a read-only status skill, not a decision point.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Display detailed status of a specific bolt instance including stage progress, artifacts created, and blockers.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
|
|
21
|
+
- **Required**: `--bolt-id` - The bolt instance ID
|
|
22
|
+
- **Required**: `.specsmd/aidlc/memory-bank.yaml` - artifact schema
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Process
|
|
27
|
+
|
|
28
|
+
### 1. Load Bolt File
|
|
29
|
+
|
|
30
|
+
Read bolt file from path defined by `schema.bolts`:
|
|
31
|
+
|
|
32
|
+
- Parse frontmatter for metadata
|
|
33
|
+
- Extract: status, type, current_stage, stages_completed, stories
|
|
34
|
+
|
|
35
|
+
### 2. Load Bolt Type Definition
|
|
36
|
+
|
|
37
|
+
Read the bolt type from `.specsmd/aidlc/templates/construction/bolt-types/{bolt_type}.md`:
|
|
38
|
+
|
|
39
|
+
- Get total stages for this bolt type
|
|
40
|
+
- Get stage names and expected outputs
|
|
41
|
+
|
|
42
|
+
### 3. Verify Artifacts
|
|
43
|
+
|
|
44
|
+
For each completed stage, verify artifacts exist based on bolt type definition:
|
|
45
|
+
|
|
46
|
+
- ✅ **{stage-1-name}**: `{artifact-from-bolt-type}` - Found
|
|
47
|
+
- ✅ **{stage-2-name}**: `{artifact-from-bolt-type}` - Found
|
|
48
|
+
- ⏳ **{current-stage}**: {expected-output} - In Progress
|
|
49
|
+
|
|
50
|
+
*Note: Artifact names come from the bolt type definition, not hardcoded here.*
|
|
51
|
+
|
|
52
|
+
### 4. Calculate Metrics
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
### Progress Metrics
|
|
56
|
+
- **Stages**: {completed}/{total} ({percentage}%)
|
|
57
|
+
- **Stories**: {stories covered}
|
|
58
|
+
- **Started**: {start date}
|
|
59
|
+
- **Elapsed**: {time since start}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 5. Identify Blockers
|
|
63
|
+
|
|
64
|
+
Check for issues:
|
|
65
|
+
|
|
66
|
+
- Missing prerequisite bolts
|
|
67
|
+
- Failed tests
|
|
68
|
+
- Unresolved design decisions
|
|
69
|
+
- External dependencies
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Output
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Bolt Status: {bolt-id}
|
|
77
|
+
|
|
78
|
+
### Overview
|
|
79
|
+
|
|
80
|
+
- **ID**: `{bolt-id}`
|
|
81
|
+
- **Unit**: `{unit-name}`
|
|
82
|
+
- **Intent**: `{intent-name}`
|
|
83
|
+
- **Type**: {bolt-type}
|
|
84
|
+
- **Status**: {planned|in-progress|completed|blocked}
|
|
85
|
+
|
|
86
|
+
### Progress
|
|
87
|
+
[██████████░░░░░░░░░░] 50% (2/4 stages)
|
|
88
|
+
|
|
89
|
+
### Stage Breakdown
|
|
90
|
+
|
|
91
|
+
- ✅ **1. {stage-1}**: Complete → `{artifact-1}`
|
|
92
|
+
- ✅ **2. {stage-2}**: Complete → `{artifact-2}`
|
|
93
|
+
- ⏳ **3. {stage-3}**: Current ← working
|
|
94
|
+
- [ ] **4. {stage-4}**: Pending
|
|
95
|
+
|
|
96
|
+
*Stage names and artifacts are read from the bolt type definition.*
|
|
97
|
+
|
|
98
|
+
### Stories Covered
|
|
99
|
+
|
|
100
|
+
- ✅ **{SSS}-{story-slug}**: {story-title} - Implemented
|
|
101
|
+
- ⏳ **{SSS}-{story-slug}**: {story-title} - In Progress
|
|
102
|
+
|
|
103
|
+
### Artifacts Created
|
|
104
|
+
|
|
105
|
+
- `memory-bank/bolts/{bolt-id}/{artifact-1}` (from bolt type)
|
|
106
|
+
- `memory-bank/bolts/{bolt-id}/{artifact-2}` (from bolt type)
|
|
107
|
+
- `src/{unit}/...` (implementation files)
|
|
108
|
+
|
|
109
|
+
### Current Stage Details
|
|
110
|
+
**Stage**: {current_stage}
|
|
111
|
+
**Activities**:
|
|
112
|
+
- {activity 1}
|
|
113
|
+
- {activity 2}
|
|
114
|
+
|
|
115
|
+
**Expected Output**:
|
|
116
|
+
- {output 1}
|
|
117
|
+
|
|
118
|
+
### Blockers
|
|
119
|
+
{None | List of blockers with details}
|
|
120
|
+
|
|
121
|
+
### Next Action
|
|
122
|
+
→ Continue with {current_stage} stage
|
|
123
|
+
→ Command: `bolt-start --bolt-id="{bolt-id}"`
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Output (Completed Bolt)
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
## Bolt Status: {bolt-id}
|
|
132
|
+
|
|
133
|
+
### Overview
|
|
134
|
+
|
|
135
|
+
- **Status**: ✅ **COMPLETED**
|
|
136
|
+
- **Completed**: {date}
|
|
137
|
+
- **Duration**: {time}
|
|
138
|
+
|
|
139
|
+
### All Stages Complete
|
|
140
|
+
|
|
141
|
+
- ✅ **1. {stage-1}**: {date} → `{artifact-1}`
|
|
142
|
+
- ✅ **2. {stage-2}**: {date} → `{artifact-2}`
|
|
143
|
+
- ✅ **3. {stage-3}**: {date} → {output-3}
|
|
144
|
+
- ✅ **4. {stage-4}**: {date} → {output-4}
|
|
145
|
+
|
|
146
|
+
*Stage names and artifacts are read from the bolt type definition.*
|
|
147
|
+
|
|
148
|
+
### Stories Delivered
|
|
149
|
+
|
|
150
|
+
- ✅ **{SSS}-{story-slug}**: {story-title} - All criteria passed
|
|
151
|
+
- ✅ **{SSS}-{story-slug}**: {story-title} - All criteria passed
|
|
152
|
+
|
|
153
|
+
### Summary
|
|
154
|
+
All {n} stories implemented and tested.
|
|
155
|
+
|
|
156
|
+
### Next Action
|
|
157
|
+
→ Start next bolt: `bolt-start --bolt-id="{next-bolt}"`
|
|
158
|
+
→ Or proceed to Operations if all bolts complete
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Human Validation Point
|
|
164
|
+
|
|
165
|
+
> "Bolt `{bolt-id}` is {status}. {summary}. Would you like to continue working on it or view another bolt?"
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Transition
|
|
170
|
+
|
|
171
|
+
After viewing status:
|
|
172
|
+
|
|
173
|
+
- → **Bolt Start** (`.specsmd/skills/construction/bolt-start.md`) - continue the bolt
|
|
174
|
+
- → **Bolt List** (`.specsmd/skills/construction/bolt-list.md`) - view other bolts
|
|
175
|
+
- → **Operations Agent** - if all bolts for unit are complete
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Test Contract
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
input: Bolt ID
|
|
183
|
+
output: Detailed status with stage progress, artifacts, blockers
|
|
184
|
+
checkpoints: 0 (informational only)
|
|
185
|
+
```
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Skill: Construction Navigator
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
Entry point for Construction Agent. Routes to appropriate skill based on state.
|
|
8
|
+
|
|
9
|
+
**NO Checkpoint** - Navigator is a routing skill, not a decision point.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Progress Display
|
|
14
|
+
|
|
15
|
+
Show workflow position with checkpoint markers:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
### Construction Workflow (2 Checkpoints per Bolt)
|
|
19
|
+
|
|
20
|
+
[Checkpoint 1] Which bolt to work on? --> bolt-list skill
|
|
21
|
+
|
|
|
22
|
+
[Domain + Logical Design]
|
|
23
|
+
|
|
|
24
|
+
[Checkpoint 2] Design Review --> bolt-start skill
|
|
25
|
+
|
|
|
26
|
+
[Code + Tests] --> Auto-validate if tests pass
|
|
27
|
+
|
|
|
28
|
+
[What's Next?] --> Next bolt / Done
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Goal
|
|
34
|
+
|
|
35
|
+
Present the Construction Agent's skills and guide the user to the appropriate next action.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Input
|
|
40
|
+
|
|
41
|
+
- **Optional**: `--unit` - Current unit context
|
|
42
|
+
- **Optional**: `--bolt-id` - Current bolt context
|
|
43
|
+
- **Required**: `.specsmd/aidlc/memory-bank.yaml` - artifact schema
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Process
|
|
48
|
+
|
|
49
|
+
### 1. Determine Context
|
|
50
|
+
|
|
51
|
+
Load current construction state:
|
|
52
|
+
|
|
53
|
+
- Check for in-progress bolts
|
|
54
|
+
- Identify which units have planned bolts
|
|
55
|
+
- Calculate overall construction progress
|
|
56
|
+
|
|
57
|
+
### 2. Present Menu
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## Construction Agent
|
|
61
|
+
|
|
62
|
+
{Context section if bolt/unit is active}
|
|
63
|
+
|
|
64
|
+
### Skills
|
|
65
|
+
|
|
66
|
+
1 - **List Bolts**: View all bolts and status (`bolt-list`)
|
|
67
|
+
2 - **Bolt Status**: Detailed status of a bolt (`bolt-status --bolt-id="{id}"`)
|
|
68
|
+
3 - **Start/Continue Bolt**: Execute bolt stages (`bolt-start --bolt-id="{id}"`)
|
|
69
|
+
4 - **Plan Bolts**: Plan new bolts → Inception (`bolt-plan --unit="{unit}"`)
|
|
70
|
+
|
|
71
|
+
### Current State
|
|
72
|
+
{Show in-progress bolts and overall progress}
|
|
73
|
+
|
|
74
|
+
### Suggested Next Step
|
|
75
|
+
→ {Recommended action based on state}
|
|
76
|
+
|
|
77
|
+
**Type a number (1-4) or specify a bolt ID to work on.**
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 3. Context-Aware Suggestions
|
|
81
|
+
|
|
82
|
+
Based on construction state, suggest actions:
|
|
83
|
+
|
|
84
|
+
- **No bolts planned** → Redirect to Inception for planning
|
|
85
|
+
- **Bolts planned, none started** → Start first bolt
|
|
86
|
+
- **Bolt in-progress** → Continue current bolt
|
|
87
|
+
- **Bolt blocked** → Show blocker, suggest resolution
|
|
88
|
+
- **All bolts complete for unit** → Proceed to Operations
|
|
89
|
+
|
|
90
|
+
### 4. Handle Selection
|
|
91
|
+
|
|
92
|
+
When user selects an option:
|
|
93
|
+
|
|
94
|
+
1. Acknowledge the selection
|
|
95
|
+
2. Load the corresponding skill file
|
|
96
|
+
3. Execute with current context
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Output (With Active Bolt)
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
## Construction Agent
|
|
104
|
+
|
|
105
|
+
### Active Bolt: `{bolt-id}`
|
|
106
|
+
**Unit**: `{unit-name}`
|
|
107
|
+
**Type**: {bolt-type}
|
|
108
|
+
**Stage**: {current_stage} ({n}/{total})
|
|
109
|
+
|
|
110
|
+
### Progress
|
|
111
|
+
[████████████░░░░░░░░] 60% (3/5 stages)
|
|
112
|
+
|
|
113
|
+
### Quick Actions
|
|
114
|
+
|
|
115
|
+
1 - **Continue Current Bolt**: Resume work (`bolt-start --bolt-id="{bolt-id}"`)
|
|
116
|
+
2 - **View Bolt Status**: Detailed status (`bolt-status --bolt-id="{bolt-id}"`)
|
|
117
|
+
3 - **List All Bolts**: See all bolts (`bolt-list`)
|
|
118
|
+
4 - **Switch Bolt**: Select a different bolt
|
|
119
|
+
|
|
120
|
+
### Suggested Next Step
|
|
121
|
+
→ Continue working on `{bolt-id}` - currently at {stage} stage
|
|
122
|
+
|
|
123
|
+
**Press Enter to continue or type a number.**
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Output (No Active Bolt)
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
## Construction Agent
|
|
132
|
+
|
|
133
|
+
### No Active Bolt
|
|
134
|
+
|
|
135
|
+
### Available Bolts
|
|
136
|
+
|
|
137
|
+
- [ ] `bolt-auth-1` (auth-service, DDD) - planned
|
|
138
|
+
- [ ] `bolt-auth-2` (auth-service, DDD) - planned
|
|
139
|
+
- [ ] `bolt-api-1` (api-gateway, BDD) - planned
|
|
140
|
+
|
|
141
|
+
### Quick Actions
|
|
142
|
+
|
|
143
|
+
1 - **Start bolt-auth-1**: Begin first bolt
|
|
144
|
+
2 - **List all bolts**: View with details
|
|
145
|
+
3 - **View bolt status**: Check specific bolt
|
|
146
|
+
|
|
147
|
+
### Suggested Next Step
|
|
148
|
+
→ Start construction with `bolt-auth-1`
|
|
149
|
+
|
|
150
|
+
**Type a number or enter a bolt ID.**
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Output (All Bolts Complete)
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
## Construction Agent
|
|
159
|
+
|
|
160
|
+
### Construction Complete for Unit: `{unit-name}`
|
|
161
|
+
|
|
162
|
+
All {n} bolts have been completed:
|
|
163
|
+
|
|
164
|
+
- ✅ `bolt-{unit}-1` - Completed 2024-12-05 (3h)
|
|
165
|
+
- ✅ `bolt-{unit}-2` - Completed 2024-12-06 (4h)
|
|
166
|
+
|
|
167
|
+
### Summary
|
|
168
|
+
- Stories delivered: {n}
|
|
169
|
+
- Tests passing: ✅
|
|
170
|
+
- Ready for deployment
|
|
171
|
+
|
|
172
|
+
### Next Step
|
|
173
|
+
→ Proceed to Operations: `/specsmd-operations-agent --unit="{unit}"`
|
|
174
|
+
|
|
175
|
+
Or work on another unit's bolts.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Transition
|
|
181
|
+
|
|
182
|
+
After user selection:
|
|
183
|
+
|
|
184
|
+
- → Load selected skill
|
|
185
|
+
- → Skill contains the Checkpoint markers
|
|
186
|
+
- → Execute skill process
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Test Contract
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
input: Unit/bolt state (optional)
|
|
194
|
+
output: Menu with skill options, suggested next step
|
|
195
|
+
checkpoints: 0 (routing only)
|
|
196
|
+
```
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
# Skill: Plan Bolts
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Progress Display
|
|
6
|
+
|
|
7
|
+
Show at start of this skill:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
### Inception Progress
|
|
11
|
+
- [x] Intent created
|
|
12
|
+
- [x] Requirements gathered
|
|
13
|
+
- [ ] Generating artifacts... ← current
|
|
14
|
+
- [x] System Context
|
|
15
|
+
- [x] Units
|
|
16
|
+
- [x] Stories
|
|
17
|
+
- [ ] Bolt Plan ← this skill
|
|
18
|
+
- [ ] Artifacts reviewed (Checkpoint 3)
|
|
19
|
+
- [ ] Ready for Construction
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Checkpoints in This Skill
|
|
25
|
+
|
|
26
|
+
**NO INDIVIDUAL Checkpoint** - This skill is part of the batched artifact generation.
|
|
27
|
+
|
|
28
|
+
All artifacts (Context, Units, Stories, Bolts) are reviewed together at **Checkpoint 3** in the `review` skill.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Goal
|
|
33
|
+
|
|
34
|
+
Group User Stories into logical Bolts (execution sessions) that will guide the Construction Phase.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Input
|
|
39
|
+
|
|
40
|
+
- **Required**: Unit name
|
|
41
|
+
- **Required**: `unit-brief.md` for the unit (contains `default_bolt_type` if specified)
|
|
42
|
+
- **Required**: Stories for the unit (`stories/*.md`)
|
|
43
|
+
- **Required**: `.specsmd/aidlc/memory-bank.yaml` - artifact schema
|
|
44
|
+
- **Required**: `.specsmd/aidlc/templates/standards/catalog.yaml` - project type definitions
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Process
|
|
49
|
+
|
|
50
|
+
### 1. Analyze Stories
|
|
51
|
+
|
|
52
|
+
Review all stories to understand:
|
|
53
|
+
|
|
54
|
+
- Dependencies between stories
|
|
55
|
+
- Complexity and effort estimates
|
|
56
|
+
- Logical groupings by domain/feature
|
|
57
|
+
|
|
58
|
+
### 2. Determine Bolt Type
|
|
59
|
+
|
|
60
|
+
**Read bolt type from unit-brief.md or use default based on unit type.**
|
|
61
|
+
|
|
62
|
+
1. **Check unit-brief.md frontmatter** for `default_bolt_type`:
|
|
63
|
+
```yaml
|
|
64
|
+
---
|
|
65
|
+
unit: expense-tracker-ui
|
|
66
|
+
unit_type: frontend
|
|
67
|
+
default_bolt_type: simple-construction-bolt
|
|
68
|
+
---
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
2. **If not specified**, use defaults based on unit type:
|
|
72
|
+
- `unit_type: frontend` → `simple-construction-bolt`
|
|
73
|
+
- `unit_type: cli` → `simple-construction-bolt`
|
|
74
|
+
- `unit_type: backend` or unspecified → `ddd-construction-bolt`
|
|
75
|
+
|
|
76
|
+
3. **Bolt type templates** are located at:
|
|
77
|
+
`.specsmd/aidlc/templates/construction/bolt-types/{bolt-type}.md`
|
|
78
|
+
|
|
79
|
+
**Available bolt types**:
|
|
80
|
+
- `ddd-construction-bolt` - For domain-heavy backend work (5 stages)
|
|
81
|
+
- `simple-construction-bolt` - For UI, integrations, utilities (3 stages)
|
|
82
|
+
- `spike-bolt` - For research and exploration
|
|
83
|
+
|
|
84
|
+
### 3. Assess Story Complexity
|
|
85
|
+
|
|
86
|
+
For each story, evaluate these factors:
|
|
87
|
+
|
|
88
|
+
| Factor | Question | Low (1) | Medium (2) | High (3) |
|
|
89
|
+
|--------|----------|---------|------------|----------|
|
|
90
|
+
| **Complexity** | How intricate is the logic? | CRUD, known patterns | Business rules, validation | Novel algorithms, complex logic |
|
|
91
|
+
| **Uncertainty** | How clear are requirements? | Fully specified | Some ambiguity | Many unknowns (→ spike) |
|
|
92
|
+
| **Dependencies** | What external things does it need? | Self-contained | Internal APIs/units | External systems, 3rd party |
|
|
93
|
+
| **Testing** | What validation is needed? | Unit tests | Integration tests | E2E + manual validation |
|
|
94
|
+
|
|
95
|
+
### 4. Group Stories into Bolts
|
|
96
|
+
|
|
97
|
+
**Grouping rules:**
|
|
98
|
+
|
|
99
|
+
1. **Cohesion**: Stories for same domain concept → same bolt
|
|
100
|
+
2. **Dependencies**: Story A needs Story B → same or adjacent bolt
|
|
101
|
+
3. **Balance**: Mix high + low complexity stories
|
|
102
|
+
4. **Limit**: Max 5-6 stories per bolt
|
|
103
|
+
5. **Risk**: Any story with High (3) Uncertainty → spike bolt first
|
|
104
|
+
|
|
105
|
+
**Suggested groupings:**
|
|
106
|
+
|
|
107
|
+
- **Bolt 1**: Setup & Core Entities (foundational stories)
|
|
108
|
+
- **Bolt 2**: Primary Operations (main CRUD/business logic)
|
|
109
|
+
- **Bolt 3**: Integration & Edge Cases (advanced stories)
|
|
110
|
+
|
|
111
|
+
### 5. Analyze Dependencies
|
|
112
|
+
|
|
113
|
+
**CRITICAL**: Before defining sequence, analyze ALL dependencies:
|
|
114
|
+
|
|
115
|
+
#### 5a. Story Dependencies (within bolt)
|
|
116
|
+
|
|
117
|
+
For each story, check:
|
|
118
|
+
|
|
119
|
+
- Does it depend on another story's output?
|
|
120
|
+
- Does it require data/models from another story?
|
|
121
|
+
|
|
122
|
+
#### 5b. Bolt Dependencies (within unit)
|
|
123
|
+
|
|
124
|
+
For each bolt, determine:
|
|
125
|
+
|
|
126
|
+
- `requires_bolts`: Which bolts must complete first?
|
|
127
|
+
- `enables_bolts`: Which bolts are waiting on this one?
|
|
128
|
+
|
|
129
|
+
#### 5c. Unit Dependencies (cross-unit)
|
|
130
|
+
|
|
131
|
+
For each bolt, check if it depends on another unit:
|
|
132
|
+
|
|
133
|
+
- `requires_units`: Which units must be complete?
|
|
134
|
+
- Example: `api-bolt-1` may require `auth-service` unit to be complete
|
|
135
|
+
|
|
136
|
+
**Dependency Analysis Output**:
|
|
137
|
+
|
|
138
|
+
```markdown
|
|
139
|
+
## Dependency Analysis
|
|
140
|
+
|
|
141
|
+
### Within-Unit Dependencies
|
|
142
|
+
|
|
143
|
+
- **bolt-auth-2** requires bolt-auth-1 (Needs User entity)
|
|
144
|
+
- **bolt-auth-3** requires bolt-auth-2 (Needs Auth service)
|
|
145
|
+
|
|
146
|
+
### Cross-Unit Dependencies
|
|
147
|
+
|
|
148
|
+
- **bolt-api-1** requires auth-service unit (Needs auth tokens)
|
|
149
|
+
- **bolt-payment-1** requires user-service unit (Needs user data)
|
|
150
|
+
|
|
151
|
+
### Dependency Warnings
|
|
152
|
+
- ⚠️ bolt-api-1 blocked until auth-service unit complete
|
|
153
|
+
- ⚠️ Circular dependency detected: {if any}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 6. Define Bolt Sequence
|
|
157
|
+
|
|
158
|
+
Establish execution order based on dependencies:
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
## Bolt Sequence
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
|
|
165
|
+
[Bolt 1] ──► [Bolt 2] ──► [Bolt 3]
|
|
166
|
+
│ │
|
|
167
|
+
▼ ▼
|
|
168
|
+
Entity API Layer
|
|
169
|
+
Setup Implementation
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Cross-Unit Dependencies
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
|
|
177
|
+
[auth-service] ──► [api-service]
|
|
178
|
+
│
|
|
179
|
+
▼
|
|
180
|
+
[payment-service]
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 7. Create Bolt Instance Files (CRITICAL)
|
|
185
|
+
|
|
186
|
+
**⚠️ YOU MUST CREATE INDIVIDUAL BOLT DIRECTORIES WITH bolt.md FILES**
|
|
187
|
+
**⚠️ DO NOT CREATE A SUMMARY DOCUMENT CALLED "bolt-plan.md"**
|
|
188
|
+
|
|
189
|
+
1. **Read Path**: Check `schema.bolts` from `.specsmd/aidlc/memory-bank.yaml`
|
|
190
|
+
*(Default: `memory-bank/bolts/{bolt-id}/`)*
|
|
191
|
+
|
|
192
|
+
2. **Create Directory + File Per Bolt**:
|
|
193
|
+
For EACH bolt in the plan:
|
|
194
|
+
- Create directory: `memory-bank/bolts/bolt-{unit}-{N}/`
|
|
195
|
+
- Create file inside: `memory-bank/bolts/bolt-{unit}-{N}/bolt.md`
|
|
196
|
+
- Use template: `.specsmd/aidlc/templates/construction/bolt-template.md`
|
|
197
|
+
|
|
198
|
+
**Example**: If planning 3 bolts for auth unit, CREATE THESE:
|
|
199
|
+
|
|
200
|
+
```text
|
|
201
|
+
memory-bank/bolts/bolt-auth-1/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
202
|
+
memory-bank/bolts/bolt-auth-2/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
203
|
+
memory-bank/bolts/bolt-auth-3/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Stage artifacts will be added to same directory during construction:**
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
memory-bank/bolts/bolt-auth-1/
|
|
210
|
+
├── bolt.md ← You create this now
|
|
211
|
+
└── {stage-artifacts} ← Created during construction (varies by bolt type)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
*Note: Artifact names depend on bolt type (e.g., DDD bolts create `ddd-01-domain-model.md`, simple bolts create `spec.md`).*
|
|
215
|
+
|
|
216
|
+
3. **Bolt File Structure** (CRITICAL: Include all dependencies in frontmatter):
|
|
217
|
+
|
|
218
|
+
```markdown
|
|
219
|
+
---
|
|
220
|
+
id: bolt-{unit}-{sequence}
|
|
221
|
+
unit: {unit-name}
|
|
222
|
+
intent: {intent-name}
|
|
223
|
+
type: {bolt-type} # From unit-brief.md or default (ddd-construction-bolt, simple-construction-bolt)
|
|
224
|
+
status: planned
|
|
225
|
+
stories: [story-1, story-2]
|
|
226
|
+
created: {date}
|
|
227
|
+
|
|
228
|
+
# Dependency Tracking (REQUIRED)
|
|
229
|
+
requires_bolts: [bolt-auth-1] # Bolts that must complete first
|
|
230
|
+
enables_bolts: [bolt-auth-3, bolt-api-1] # Bolts that depend on this
|
|
231
|
+
requires_units: [auth-service] # Units that must be complete
|
|
232
|
+
blocks: false # true if waiting on dependency
|
|
233
|
+
|
|
234
|
+
# Complexity Assessment (aggregate of included stories)
|
|
235
|
+
complexity:
|
|
236
|
+
avg_complexity: 2 # 1=Low, 2=Medium, 3=High
|
|
237
|
+
avg_uncertainty: 1 # 1=Low, 2=Medium, 3=High
|
|
238
|
+
max_dependencies: 2 # Highest dependency score among stories
|
|
239
|
+
testing_scope: 2 # 1=Unit, 2=Integration, 3=E2E
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Bolt: {bolt-id}
|
|
243
|
+
|
|
244
|
+
### Objective
|
|
245
|
+
{What this bolt will accomplish}
|
|
246
|
+
|
|
247
|
+
### Stories Included
|
|
248
|
+
|
|
249
|
+
- [ ] **{story-id}**: {description} - Priority: {priority}
|
|
250
|
+
|
|
251
|
+
### Expected Outputs
|
|
252
|
+
- {artifact 1}
|
|
253
|
+
- {artifact 2}
|
|
254
|
+
|
|
255
|
+
### Dependencies
|
|
256
|
+
|
|
257
|
+
#### Bolt Dependencies (within intent)
|
|
258
|
+
|
|
259
|
+
- **bolt-auth-1** (Required): Completed
|
|
260
|
+
- **bolt-auth-2** (Optional): In Progress
|
|
261
|
+
|
|
262
|
+
#### Unit Dependencies (cross-unit)
|
|
263
|
+
|
|
264
|
+
- **auth-service**: Needs auth tokens - Completed
|
|
265
|
+
|
|
266
|
+
#### Enables (other bolts waiting on this)
|
|
267
|
+
- bolt-auth-3
|
|
268
|
+
- bolt-api-1
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 8. Validate Plan
|
|
272
|
+
|
|
273
|
+
Check the plan against:
|
|
274
|
+
|
|
275
|
+
- [ ] All stories are assigned to bolts
|
|
276
|
+
- [ ] Dependencies are respected (bolt-to-bolt AND unit-to-unit)
|
|
277
|
+
- [ ] All dependencies documented in frontmatter
|
|
278
|
+
- [ ] Complexity assessment included for each bolt
|
|
279
|
+
- [ ] Each bolt has clear outputs
|
|
280
|
+
- [ ] No bolt is too large (max 5-6 stories)
|
|
281
|
+
- [ ] No circular dependencies exist
|
|
282
|
+
- [ ] Cross-unit dependencies are explicit
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Output
|
|
287
|
+
|
|
288
|
+
### Directories & Files Created (REQUIRED)
|
|
289
|
+
|
|
290
|
+
**⚠️ YOU MUST CREATE THESE DIRECTORIES AND FILES:**
|
|
291
|
+
|
|
292
|
+
```text
|
|
293
|
+
memory-bank/bolts/bolt-{unit}-1/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
294
|
+
memory-bank/bolts/bolt-{unit}-2/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
295
|
+
memory-bank/bolts/bolt-{unit}-3/bolt.md ← CREATE THIS DIRECTORY AND FILE
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**⚠️ DO NOT CREATE:**
|
|
299
|
+
|
|
300
|
+
- `bolt-plan.md` (summary doc)
|
|
301
|
+
- `README.md` files
|
|
302
|
+
- Flat files like `bolt-{unit}-1.md`
|
|
303
|
+
|
|
304
|
+
### Summary (displayed to user)
|
|
305
|
+
|
|
306
|
+
```markdown
|
|
307
|
+
## Bolt Plan Complete: {unit-name}
|
|
308
|
+
|
|
309
|
+
### Bolts Created
|
|
310
|
+
|
|
311
|
+
- [ ] **bolt-{unit}-1** ({bolt-type}): 001-user-signup, 002-user-login
|
|
312
|
+
- [ ] **bolt-{unit}-2** ({bolt-type}): 003-password-reset, 004-email-verify
|
|
313
|
+
- [ ] **bolt-{unit}-3** ({bolt-type}): 005-mfa-setup
|
|
314
|
+
|
|
315
|
+
### Dependency Graph
|
|
316
|
+
bolt-{unit}-1 ──► bolt-{unit}-2 ──► bolt-{unit}-3
|
|
317
|
+
|
|
318
|
+
### Directories Created
|
|
319
|
+
✅ `memory-bank/bolts/bolt-{unit}-1/bolt.md`
|
|
320
|
+
✅ `memory-bank/bolts/bolt-{unit}-2/bolt.md`
|
|
321
|
+
✅ `memory-bank/bolts/bolt-{unit}-3/bolt.md`
|
|
322
|
+
|
|
323
|
+
### Total
|
|
324
|
+
- {n} bolts created
|
|
325
|
+
- {n} stories covered
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**No menu** - Skill complete, return to agent.
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Test Contract
|
|
333
|
+
|
|
334
|
+
```yaml
|
|
335
|
+
input: Stories for unit
|
|
336
|
+
output: Bolt directories with bolt.md files
|
|
337
|
+
checkpoints: 0 (part of Checkpoint 3 batch)
|
|
338
|
+
```
|