specsmd 0.0.0-dev
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 +397 -0
- package/bin/cli.js +21 -0
- package/flows/aidlc/README.md +372 -0
- package/flows/aidlc/agents/construction-agent.md +80 -0
- package/flows/aidlc/agents/inception-agent.md +97 -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 +67 -0
- package/flows/aidlc/memory-bank.yaml +104 -0
- package/flows/aidlc/quick-start.md +322 -0
- package/flows/aidlc/skills/construction/bolt-list.md +163 -0
- package/flows/aidlc/skills/construction/bolt-replan.md +345 -0
- package/flows/aidlc/skills/construction/bolt-start.md +414 -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 +359 -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 +278 -0
- package/flows/aidlc/skills/master/analyze-context.md +239 -0
- package/flows/aidlc/skills/master/answer-question.md +141 -0
- package/flows/aidlc/skills/master/explain-flow.md +158 -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 +205 -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 +342 -0
- package/flows/aidlc/templates/construction/bolt-types/spike-bolt.md +240 -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/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 +227 -0
- package/lib/cli-utils.js +342 -0
- package/lib/constants.js +32 -0
- package/lib/installer.js +402 -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 +117 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Skill: Verify Deployment
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
Post-deployment validation skill. Runs health checks and smoke tests.
|
|
8
|
+
|
|
9
|
+
**NO Checkpoint** - Verification is an automated check, not a decision point.
|
|
10
|
+
|
|
11
|
+
Verification happens after each deploy skill checkpoint. If verification fails, recommend rollback.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Confirm that a deployment is healthy, functional, and meeting acceptance criteria before proceeding to next environment.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Input
|
|
22
|
+
|
|
23
|
+
- **Required**: `--unit` - The unit to verify
|
|
24
|
+
- **Required**: `.specsmd/aidlc/memory-bank.yaml` - artifact schema
|
|
25
|
+
- **Optional**: `--env` - Target environment (default: last deployed)
|
|
26
|
+
- **Optional**: `--version` - Specific version (default: currently deployed)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
|
|
32
|
+
### 1. Load Deployment Context
|
|
33
|
+
|
|
34
|
+
From `deployment/history.md`:
|
|
35
|
+
|
|
36
|
+
- Current deployed version
|
|
37
|
+
- Deployment timestamp
|
|
38
|
+
- Previous version (for comparison)
|
|
39
|
+
|
|
40
|
+
### 2. Execute Health Checks
|
|
41
|
+
|
|
42
|
+
- [ ] **Endpoint Health**: GET `/health` → 200 OK
|
|
43
|
+
- [ ] **Readiness**: GET `/ready` → 200 OK
|
|
44
|
+
- [ ] **Database**: Connection test → Connected
|
|
45
|
+
- [ ] **Cache**: Connection test → Connected
|
|
46
|
+
- [ ] **External APIs**: Connectivity check → Reachable
|
|
47
|
+
|
|
48
|
+
### 3. Run Smoke Tests
|
|
49
|
+
|
|
50
|
+
Execute critical path tests:
|
|
51
|
+
|
|
52
|
+
- [ ] **Authentication**: Login flow works (if applicable)
|
|
53
|
+
- [ ] **Core CRUD**: Basic operations work (required)
|
|
54
|
+
- [ ] **API Endpoints**: Key endpoints respond (required)
|
|
55
|
+
- [ ] **Error Handling**: Errors handled gracefully (required)
|
|
56
|
+
|
|
57
|
+
### 4. Check Metrics
|
|
58
|
+
|
|
59
|
+
Verify operational metrics are within bounds:
|
|
60
|
+
|
|
61
|
+
- [ ] **Response Time**: < SLA (p95 latency)
|
|
62
|
+
- [ ] **Error Rate**: < 1% (4xx/5xx responses)
|
|
63
|
+
- [ ] **CPU**: < 80% (resource utilization)
|
|
64
|
+
- [ ] **Memory**: < 80% (resource utilization)
|
|
65
|
+
|
|
66
|
+
### 5. Compare to Baseline
|
|
67
|
+
|
|
68
|
+
If previous version exists:
|
|
69
|
+
|
|
70
|
+
- Error rate comparison
|
|
71
|
+
- Latency comparison
|
|
72
|
+
- Resource usage comparison
|
|
73
|
+
|
|
74
|
+
### 6. Document Results
|
|
75
|
+
|
|
76
|
+
Create `deployment/verification-{version}.md`:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
---
|
|
80
|
+
version: {version}
|
|
81
|
+
environment: {env}
|
|
82
|
+
verified: {timestamp}
|
|
83
|
+
status: passed|failed
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Verification Report: {version}
|
|
87
|
+
|
|
88
|
+
### Health Checks
|
|
89
|
+
|
|
90
|
+
- ✅ **Endpoint**: 200 OK, 15ms
|
|
91
|
+
- ✅ **Database**: Connected
|
|
92
|
+
- ✅ **Cache**: Connected
|
|
93
|
+
|
|
94
|
+
### Smoke Tests
|
|
95
|
+
|
|
96
|
+
- ✅ **Login Flow**: 234ms
|
|
97
|
+
- ✅ **Create Item**: 156ms
|
|
98
|
+
- ✅ **API Health**: 12ms
|
|
99
|
+
|
|
100
|
+
### Metrics
|
|
101
|
+
|
|
102
|
+
- ✅ **p95 Latency**: 145ms (threshold: <200ms)
|
|
103
|
+
- ✅ **Error Rate**: 0.02% (threshold: <1%)
|
|
104
|
+
|
|
105
|
+
### Baseline Comparison
|
|
106
|
+
|
|
107
|
+
- **p95 Latency**: 142ms → 145ms (+2%)
|
|
108
|
+
- **Error Rate**: 0.01% → 0.02% (+0.01%)
|
|
109
|
+
|
|
110
|
+
### Conclusion
|
|
111
|
+
{passed|failed}: {summary}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Output (Verification Passed)
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Verification Passed: {unit-name}
|
|
120
|
+
|
|
121
|
+
### Status: ✅ VERIFIED
|
|
122
|
+
|
|
123
|
+
### Results Summary
|
|
124
|
+
|
|
125
|
+
- ✅ **Health Checks**: {n}/{n} passed
|
|
126
|
+
- ✅ **Smoke Tests**: {n}/{n} passed
|
|
127
|
+
- ✅ **Metric Checks**: {n}/{n} passed
|
|
128
|
+
|
|
129
|
+
### Key Metrics
|
|
130
|
+
|
|
131
|
+
- ✅ **Response Time (p95)**: {value}ms
|
|
132
|
+
- ✅ **Error Rate**: {value}%
|
|
133
|
+
- ✅ **Uptime**: 100%
|
|
134
|
+
|
|
135
|
+
### Environment Status
|
|
136
|
+
|
|
137
|
+
- ✅ **{env}**: `{version}` - Verified
|
|
138
|
+
|
|
139
|
+
### Documentation Created
|
|
140
|
+
- `{unit-path}/deployment/verification-{version}.md`
|
|
141
|
+
|
|
142
|
+
### Actions
|
|
143
|
+
|
|
144
|
+
1 - **monitor**: Setup monitoring for this unit
|
|
145
|
+
2 - **deploy**: Deploy to next environment
|
|
146
|
+
3 - **menu**: Return to operations menu
|
|
147
|
+
|
|
148
|
+
### Suggested Next Step
|
|
149
|
+
→ **monitor** - Setup monitoring for `{unit-name}`
|
|
150
|
+
|
|
151
|
+
**Type a number or press Enter for suggested action.**
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Output (Verification Failed)
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
## Verification Failed: {unit-name}
|
|
160
|
+
|
|
161
|
+
### Status: ❌ FAILED
|
|
162
|
+
|
|
163
|
+
### Failed Checks
|
|
164
|
+
|
|
165
|
+
- ❌ **{check1}**: Expected {expected}, got {actual}
|
|
166
|
+
- ❌ **{check2}**: Expected {expected}, got {actual}
|
|
167
|
+
|
|
168
|
+
### Error Details
|
|
169
|
+
{error messages or logs}
|
|
170
|
+
|
|
171
|
+
### Impact Assessment
|
|
172
|
+
|
|
173
|
+
- **Severity**: {critical|high|medium|low}
|
|
174
|
+
- **Affected**: {what's broken}
|
|
175
|
+
|
|
176
|
+
### Recommended Action
|
|
177
|
+
⚠️ **ROLLBACK RECOMMENDED**
|
|
178
|
+
|
|
179
|
+
Previous stable version: `{prev-version}`
|
|
180
|
+
|
|
181
|
+
Rollback command:
|
|
182
|
+
deploy --unit="{unit}" --env="{env}" --version="{prev-version}"
|
|
183
|
+
|
|
184
|
+
### Actions
|
|
185
|
+
|
|
186
|
+
1 - **rollback**: Rollback to previous version
|
|
187
|
+
2 - **investigate**: Investigate root cause
|
|
188
|
+
3 - **menu**: Return to operations menu
|
|
189
|
+
|
|
190
|
+
### Suggested Next Step
|
|
191
|
+
→ **rollback** - Restore `{prev-version}` immediately
|
|
192
|
+
|
|
193
|
+
**Type a number or press Enter for suggested action.**
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Human Validation Point
|
|
199
|
+
|
|
200
|
+
On success:
|
|
201
|
+
> "Verification passed for `{unit}` v`{version}` in {env}. All {n} checks passed. Ready to proceed to {next-action}?"
|
|
202
|
+
|
|
203
|
+
On failure:
|
|
204
|
+
> "⚠️ Verification FAILED for `{unit}` v`{version}`. {n} checks failed. Recommend rollback to `{prev-version}`. Proceed with rollback?"
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Transition
|
|
209
|
+
|
|
210
|
+
After verification:
|
|
211
|
+
|
|
212
|
+
- → **Monitor** (`.specsmd/skills/operations/monitor.md`) - if verified and final environment
|
|
213
|
+
- → **Deploy** (`.specsmd/skills/operations/deploy.md`) - to next environment if verified
|
|
214
|
+
- → **Rollback** - if verification fails (deploy previous version)
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Test Contract
|
|
219
|
+
|
|
220
|
+
```yaml
|
|
221
|
+
input: Unit name, environment, version
|
|
222
|
+
output: Verification report with health checks, smoke tests, metrics
|
|
223
|
+
checkpoints: 0 (automated validation only)
|
|
224
|
+
```
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Bolt Instance Template
|
|
2
|
+
|
|
3
|
+
## Mandatory Output Rules (READ FIRST)
|
|
4
|
+
|
|
5
|
+
- 🚫 **NEVER** use ASCII tables for options - they break at different terminal widths
|
|
6
|
+
- ✅ **ALWAYS** use numbered list format: `N - **Option**: Description`
|
|
7
|
+
- ✅ **ALWAYS** use status indicators: ✅ (done) ⏳ (current) [ ] (pending) 🚫 (blocked)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Use this template when creating new bolt instances during bolt planning.
|
|
12
|
+
|
|
13
|
+
**Directory Structure**: Each bolt gets its own directory containing the bolt metadata and stage artifacts:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
memory-bank/bolts/{bolt-id}/
|
|
17
|
+
├── bolt.md # Bolt instance metadata (this template)
|
|
18
|
+
├── ddd-01-domain-model.md # Stage 1 artifact (created during execution)
|
|
19
|
+
├── ddd-02-technical-design.md # Stage 2 artifact (created during execution)
|
|
20
|
+
└── ddd-03-test-report.md # Stage 4 artifact (created during execution)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Frontmatter
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
---
|
|
29
|
+
id: bolt-{unit}-{sequence}
|
|
30
|
+
unit: {UUU}-{unit-name}
|
|
31
|
+
intent: {NNN}-{intent-name}
|
|
32
|
+
type: ddd-construction-bolt
|
|
33
|
+
status: planned
|
|
34
|
+
stories:
|
|
35
|
+
- story-1
|
|
36
|
+
- story-2
|
|
37
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
38
|
+
started: null
|
|
39
|
+
completed: null
|
|
40
|
+
current_stage: null
|
|
41
|
+
stages_completed: []
|
|
42
|
+
|
|
43
|
+
# Bolt Dependencies (for execution ordering)
|
|
44
|
+
requires_bolts: [] # Bolts that must complete before this bolt can start
|
|
45
|
+
enables_bolts: [] # Bolts that become unblocked when this bolt completes
|
|
46
|
+
requires_units: [] # Units that must exist (usually empty)
|
|
47
|
+
blocks: false # Computed: true if any requires_bolts are incomplete
|
|
48
|
+
|
|
49
|
+
# Complexity Assessment (aggregate of included stories)
|
|
50
|
+
complexity:
|
|
51
|
+
avg_complexity: 2 # 1=Low, 2=Medium, 3=High
|
|
52
|
+
avg_uncertainty: 1 # 1=Low, 2=Medium, 3=High
|
|
53
|
+
max_dependencies: 2 # Highest dependency score among stories
|
|
54
|
+
testing_scope: 2 # 1=Unit, 2=Integration, 3=E2E
|
|
55
|
+
---
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Content
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
# Bolt: {bolt-id}
|
|
64
|
+
|
|
65
|
+
## Overview
|
|
66
|
+
|
|
67
|
+
{Brief description of what this bolt will accomplish}
|
|
68
|
+
|
|
69
|
+
## Objective
|
|
70
|
+
|
|
71
|
+
{Specific goal of this bolt tied to the stories it covers}
|
|
72
|
+
|
|
73
|
+
## Stories Included
|
|
74
|
+
|
|
75
|
+
- **{story-1}**: {title} (Must)
|
|
76
|
+
- **{story-2}**: {title} (Should)
|
|
77
|
+
|
|
78
|
+
## Bolt Type
|
|
79
|
+
|
|
80
|
+
**Type**: {type name}
|
|
81
|
+
**Definition**: `.specsmd/aidlc/templates/construction/bolt-types/{type}.md`
|
|
82
|
+
|
|
83
|
+
## Stages
|
|
84
|
+
|
|
85
|
+
- [ ] **1. {stage-1}**: Pending → {artifact}
|
|
86
|
+
- [ ] **2. {stage-2}**: Pending → {artifact}
|
|
87
|
+
- [ ] **3. {stage-3}**: Pending → {artifact}
|
|
88
|
+
- [ ] **4. {stage-4}**: Pending → {artifact}
|
|
89
|
+
|
|
90
|
+
## Dependencies
|
|
91
|
+
|
|
92
|
+
### Requires
|
|
93
|
+
- {Previous bolt or None}
|
|
94
|
+
|
|
95
|
+
### Enables
|
|
96
|
+
- {Next bolt or deployment}
|
|
97
|
+
|
|
98
|
+
## Success Criteria
|
|
99
|
+
|
|
100
|
+
- [ ] All stories implemented
|
|
101
|
+
- [ ] All acceptance criteria met
|
|
102
|
+
- [ ] Tests passing
|
|
103
|
+
- [ ] Code reviewed
|
|
104
|
+
|
|
105
|
+
## Notes
|
|
106
|
+
|
|
107
|
+
{Any additional context or considerations}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Status Values
|
|
113
|
+
|
|
114
|
+
- **planned**: Bolt created, not started
|
|
115
|
+
- **in-progress**: Currently being executed
|
|
116
|
+
- **completed**: All stages done
|
|
117
|
+
- **blocked**: Cannot proceed due to dependency
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Stage Status Symbols
|
|
122
|
+
|
|
123
|
+
- [ ] = Pending
|
|
124
|
+
- ⏳ = In Progress
|
|
125
|
+
- ✅ = Complete
|
|
126
|
+
- 🚫 = Blocked
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Example
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
---
|
|
134
|
+
id: bolt-auth-service-1
|
|
135
|
+
unit: 001-auth-service
|
|
136
|
+
intent: 001-user-authentication
|
|
137
|
+
type: ddd-construction-bolt
|
|
138
|
+
status: in-progress
|
|
139
|
+
stories:
|
|
140
|
+
- story-1
|
|
141
|
+
- story-2
|
|
142
|
+
created: 2024-12-05
|
|
143
|
+
started: 2024-12-05
|
|
144
|
+
completed: null
|
|
145
|
+
current_stage: design
|
|
146
|
+
stages_completed:
|
|
147
|
+
- name: model
|
|
148
|
+
completed: 2024-12-05T10:00:00Z
|
|
149
|
+
artifact: ddd-01-domain-model.md
|
|
150
|
+
|
|
151
|
+
requires_bolts: []
|
|
152
|
+
enables_bolts:
|
|
153
|
+
- bolt-auth-service-2
|
|
154
|
+
requires_units: []
|
|
155
|
+
blocks: false
|
|
156
|
+
|
|
157
|
+
complexity:
|
|
158
|
+
avg_complexity: 2
|
|
159
|
+
avg_uncertainty: 1
|
|
160
|
+
max_dependencies: 1
|
|
161
|
+
testing_scope: 2
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
# Bolt: bolt-auth-service-1
|
|
165
|
+
|
|
166
|
+
## Overview
|
|
167
|
+
|
|
168
|
+
First bolt for authentication service covering user registration and login.
|
|
169
|
+
|
|
170
|
+
## Objective
|
|
171
|
+
|
|
172
|
+
Implement core authentication functionality including user registration with email verification and secure login.
|
|
173
|
+
|
|
174
|
+
## Stories Included
|
|
175
|
+
|
|
176
|
+
- **story-1**: User can register (Must)
|
|
177
|
+
- **story-2**: User can login (Must)
|
|
178
|
+
|
|
179
|
+
## Bolt Type
|
|
180
|
+
|
|
181
|
+
**Type**: DDD Construction Bolt
|
|
182
|
+
**Definition**: `.specsmd/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md`
|
|
183
|
+
|
|
184
|
+
## Stages
|
|
185
|
+
|
|
186
|
+
- ✅ **1. model**: Complete → ddd-01-domain-model.md
|
|
187
|
+
- ⏳ **2. design**: In Progress → ddd-02-technical-design.md ← current
|
|
188
|
+
- [ ] **3. implement**: Pending → src/auth-service/
|
|
189
|
+
- [ ] **4. test**: Pending → ddd-03-test-report.md
|
|
190
|
+
|
|
191
|
+
## Dependencies
|
|
192
|
+
|
|
193
|
+
### Requires
|
|
194
|
+
- None (first bolt)
|
|
195
|
+
|
|
196
|
+
### Enables
|
|
197
|
+
- bolt-auth-service-2 (MFA implementation)
|
|
198
|
+
|
|
199
|
+
## Success Criteria
|
|
200
|
+
|
|
201
|
+
- ✅ Domain model defined
|
|
202
|
+
- [ ] API design complete
|
|
203
|
+
- [ ] Implementation complete
|
|
204
|
+
- [ ] Tests passing
|
|
205
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
bolt: {bolt-id}
|
|
3
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
4
|
+
status: proposed | accepted | deprecated | superseded
|
|
5
|
+
superseded_by: {adr-number if applicable}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-{number}: {title}
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
{Describe the situation that requires a decision. What is the problem or opportunity? What constraints exist? What forces are at play?}
|
|
13
|
+
|
|
14
|
+
## Decision
|
|
15
|
+
|
|
16
|
+
{State the decision clearly. What did we decide to do?}
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
|
|
20
|
+
{Explain why this decision was made. What alternatives were considered? Why were they rejected?}
|
|
21
|
+
|
|
22
|
+
### Alternatives Considered
|
|
23
|
+
|
|
24
|
+
| Alternative | Pros | Cons | Why Rejected |
|
|
25
|
+
|-------------|------|------|--------------|
|
|
26
|
+
| {option 1} | | | |
|
|
27
|
+
| {option 2} | | | |
|
|
28
|
+
|
|
29
|
+
## Consequences
|
|
30
|
+
|
|
31
|
+
### Positive
|
|
32
|
+
|
|
33
|
+
- {Benefit 1}
|
|
34
|
+
- {Benefit 2}
|
|
35
|
+
|
|
36
|
+
### Negative
|
|
37
|
+
|
|
38
|
+
- {Trade-off 1}
|
|
39
|
+
- {Trade-off 2}
|
|
40
|
+
|
|
41
|
+
### Risks
|
|
42
|
+
|
|
43
|
+
- {Risk 1 and mitigation}
|
|
44
|
+
|
|
45
|
+
## Related
|
|
46
|
+
|
|
47
|
+
- **Stories**: {related story IDs}
|
|
48
|
+
- **Standards**: {if this should be added to standards later}
|
|
49
|
+
- **Previous ADRs**: {related ADR numbers}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: model
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Static Model - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Bounded Context
|
|
12
|
+
|
|
13
|
+
{Define the bounded context for this unit}
|
|
14
|
+
|
|
15
|
+
## Domain Entities
|
|
16
|
+
|
|
17
|
+
| Entity | Properties | Business Rules |
|
|
18
|
+
|--------|------------|----------------|
|
|
19
|
+
| {Entity} | {properties} | {rules} |
|
|
20
|
+
|
|
21
|
+
## Value Objects
|
|
22
|
+
|
|
23
|
+
| Value Object | Properties | Constraints |
|
|
24
|
+
|--------------|------------|-------------|
|
|
25
|
+
| {ValueObject} | {properties} | {constraints} |
|
|
26
|
+
|
|
27
|
+
## Aggregates
|
|
28
|
+
|
|
29
|
+
| Aggregate Root | Members | Invariants |
|
|
30
|
+
|----------------|---------|------------|
|
|
31
|
+
| {Root} | {members} | {invariants} |
|
|
32
|
+
|
|
33
|
+
## Domain Events
|
|
34
|
+
|
|
35
|
+
| Event | Trigger | Payload |
|
|
36
|
+
|-------|---------|---------|
|
|
37
|
+
| {Event} | {trigger} | {payload} |
|
|
38
|
+
|
|
39
|
+
## Domain Services
|
|
40
|
+
|
|
41
|
+
| Service | Operations | Dependencies |
|
|
42
|
+
|---------|------------|--------------|
|
|
43
|
+
| {Service} | {operations} | {dependencies} |
|
|
44
|
+
|
|
45
|
+
## Repository Interfaces
|
|
46
|
+
|
|
47
|
+
| Repository | Entity | Methods |
|
|
48
|
+
|------------|--------|---------|
|
|
49
|
+
| {Repository} | {entity} | {methods} |
|
|
50
|
+
|
|
51
|
+
## Ubiquitous Language
|
|
52
|
+
|
|
53
|
+
| Term | Definition |
|
|
54
|
+
|------|------------|
|
|
55
|
+
| {term} | {definition} |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: design
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Technical Design - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Architecture Pattern
|
|
12
|
+
|
|
13
|
+
{Selected pattern and rationale - e.g., Hexagonal, Clean Architecture}
|
|
14
|
+
|
|
15
|
+
## Layer Structure
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
┌─────────────────────────────┐
|
|
19
|
+
│ Presentation │ API/UI
|
|
20
|
+
├─────────────────────────────┤
|
|
21
|
+
│ Application │ Use Cases
|
|
22
|
+
├─────────────────────────────┤
|
|
23
|
+
│ Domain │ Business Logic
|
|
24
|
+
├─────────────────────────────┤
|
|
25
|
+
│ Infrastructure │ Database/External
|
|
26
|
+
└─────────────────────────────┘
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## API Design
|
|
30
|
+
|
|
31
|
+
| Endpoint | Method | Request | Response |
|
|
32
|
+
|----------|--------|---------|----------|
|
|
33
|
+
| {endpoint} | {GET/POST/etc} | {request schema} | {response schema} |
|
|
34
|
+
|
|
35
|
+
## Data Persistence
|
|
36
|
+
|
|
37
|
+
| Table | Columns | Relationships |
|
|
38
|
+
|-------|---------|---------------|
|
|
39
|
+
| {table} | {columns} | {relationships} |
|
|
40
|
+
|
|
41
|
+
## Security Design
|
|
42
|
+
|
|
43
|
+
| Concern | Approach |
|
|
44
|
+
|---------|----------|
|
|
45
|
+
| Authentication | {approach} |
|
|
46
|
+
| Authorization | {approach} |
|
|
47
|
+
| Data Encryption | {approach} |
|
|
48
|
+
|
|
49
|
+
## NFR Implementation
|
|
50
|
+
|
|
51
|
+
| Requirement | Design Approach |
|
|
52
|
+
|-------------|-----------------|
|
|
53
|
+
| Performance | {approach} |
|
|
54
|
+
| Scalability | {approach} |
|
|
55
|
+
| Reliability | {approach} |
|
|
56
|
+
|
|
57
|
+
## Error Handling
|
|
58
|
+
|
|
59
|
+
| Error Type | Code | Response |
|
|
60
|
+
|------------|------|----------|
|
|
61
|
+
| {type} | {code} | {response} |
|
|
62
|
+
|
|
63
|
+
## External Dependencies
|
|
64
|
+
|
|
65
|
+
| Service | Purpose | Integration |
|
|
66
|
+
|---------|---------|-------------|
|
|
67
|
+
| {service} | {purpose} | {REST/Event/etc} |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: test
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Test Report - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Test Summary
|
|
12
|
+
|
|
13
|
+
| Category | Passed | Failed | Skipped | Coverage |
|
|
14
|
+
|----------|--------|--------|---------|----------|
|
|
15
|
+
| Unit | {n} | {n} | {n} | {n}% |
|
|
16
|
+
| Integration | {n} | {n} | {n} | {n}% |
|
|
17
|
+
| Security | {n} | {n} | {n} | - |
|
|
18
|
+
| Performance | {n} | {n} | {n} | - |
|
|
19
|
+
| **Total** | {n} | {n} | {n} | {n}% |
|
|
20
|
+
|
|
21
|
+
## Acceptance Criteria Validation
|
|
22
|
+
|
|
23
|
+
| Story | Criteria | Status |
|
|
24
|
+
|-------|----------|--------|
|
|
25
|
+
| {story-id} | {criteria} | ✅/❌ |
|
|
26
|
+
|
|
27
|
+
## Unit Tests
|
|
28
|
+
|
|
29
|
+
{Unit test results and notable tests}
|
|
30
|
+
|
|
31
|
+
## Integration Tests
|
|
32
|
+
|
|
33
|
+
{Integration test results}
|
|
34
|
+
|
|
35
|
+
## Security Tests
|
|
36
|
+
|
|
37
|
+
{Security test results - authentication, authorization, injection, etc.}
|
|
38
|
+
|
|
39
|
+
## Performance Tests
|
|
40
|
+
|
|
41
|
+
| Metric | Target | Actual | Status |
|
|
42
|
+
|--------|--------|--------|--------|
|
|
43
|
+
| Response Time (p95) | {target} | {actual} | ✅/❌ |
|
|
44
|
+
| Throughput | {target} | {actual} | ✅/❌ |
|
|
45
|
+
|
|
46
|
+
## Coverage Report
|
|
47
|
+
|
|
48
|
+
{Coverage details by module/layer}
|
|
49
|
+
|
|
50
|
+
## Issues Found
|
|
51
|
+
|
|
52
|
+
| Issue | Severity | Status |
|
|
53
|
+
|-------|----------|--------|
|
|
54
|
+
| {issue} | {High/Medium/Low} | {Fixed/Open} |
|
|
55
|
+
|
|
56
|
+
## Ready for Operations
|
|
57
|
+
|
|
58
|
+
- [ ] All acceptance criteria met
|
|
59
|
+
- [ ] Code coverage > 80%
|
|
60
|
+
- [ ] No critical/high severity issues open
|
|
61
|
+
- [ ] Performance targets met
|
|
62
|
+
- [ ] Security tests passing
|