project-iris 0.0.11 → 0.0.13

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.
Files changed (40) hide show
  1. package/README.md +84 -360
  2. package/dist/cli.js +4 -2
  3. package/dist/commands/create.js +25 -0
  4. package/dist/iris/bundle.js +1 -1
  5. package/dist/iris_bundle/frameworks/iris-core/framework.yaml +9 -0
  6. package/dist/iris_bundle/frameworks/iris-core/memory/memory-bank.yaml +1 -0
  7. package/dist/iris_bundle/frameworks/iris-core/policy.yaml +7 -0
  8. package/dist/iris_bundle/frameworks/iris-core/templates/config/memory-bank.yaml +1 -0
  9. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-template.md +226 -0
  10. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
  11. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
  12. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
  13. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
  14. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
  15. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
  16. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md +240 -0
  17. package/dist/iris_bundle/frameworks/iris-core/templates/inception/requirements-template.md +144 -0
  18. package/dist/iris_bundle/frameworks/iris-core/templates/inception/stories-template.md +38 -0
  19. package/dist/iris_bundle/frameworks/iris-core/templates/inception/story-template.md +147 -0
  20. package/dist/iris_bundle/frameworks/iris-core/templates/inception/system-context-template.md +29 -0
  21. package/dist/iris_bundle/frameworks/iris-core/templates/inception/unit-brief-template.md +177 -0
  22. package/dist/iris_bundle/frameworks/iris-core/templates/inception/units-template.md +52 -0
  23. package/dist/templates/construction/bolt-template.md +226 -0
  24. package/dist/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
  25. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
  26. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
  27. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
  28. package/dist/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
  29. package/dist/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
  30. package/dist/templates/construction/bolt-types/spike-bolt.md +240 -0
  31. package/dist/templates/inception/requirements-template.md +144 -0
  32. package/dist/templates/inception/stories-template.md +38 -0
  33. package/dist/templates/inception/story-template.md +147 -0
  34. package/dist/templates/inception/system-context-template.md +29 -0
  35. package/dist/templates/inception/unit-brief-template.md +177 -0
  36. package/dist/templates/inception/units-template.md +52 -0
  37. package/dist/workflows/bolt-plan.js +57 -28
  38. package/dist/workflows/intent-inception.js +82 -7
  39. package/dist/workflows/memory-bank-generator.js +180 -0
  40. package/package.json +3 -2
@@ -0,0 +1,38 @@
1
+ ---
2
+ intent: {NNN}-{intent-name}
3
+ phase: inception
4
+ status: stories-created
5
+ updated: {YYYY-MM-DDTHH:MM:SSZ}
6
+ ---
7
+
8
+ # {Intent Name} - Stories
9
+
10
+ ## User Stories
11
+
12
+ ### Story-1: {Title}
13
+
14
+ **As a** {user type}
15
+ **I want** {goal}
16
+ **So that** {benefit}
17
+
18
+ **Acceptance Criteria**:
19
+
20
+ - [ ] {Criterion 1}
21
+ - [ ] {Criterion 2}
22
+
23
+ **Priority**: High/Medium/Low
24
+ **Estimate**: {T-shirt size: S/M/L/XL}
25
+
26
+ ### Story-2: {Title}
27
+
28
+ ...
29
+
30
+ ## Technical Stories
31
+
32
+ ### Tech-Story-1: {Title}
33
+
34
+ **Description**: {What needs to be done technically}
35
+ **Rationale**: {Why this is needed}
36
+ **Acceptance Criteria**:
37
+
38
+ - [ ] {Criterion}
@@ -0,0 +1,147 @@
1
+ # Story Template
2
+
3
+ Use this template when creating individual story files during story creation.
4
+
5
+ ---
6
+
7
+ ## Frontmatter
8
+
9
+ ```yaml
10
+ ---
11
+ id: {SSS}-{title-slug}
12
+ unit: {UUU}-{unit-name}
13
+ intent: {NNN}-{intent-name}
14
+ status: draft
15
+ priority: must|should|could
16
+ created: {YYYY-MM-DDTHH:MM:SSZ}
17
+ assigned_bolt: null
18
+ implemented: false
19
+ ---
20
+ ```
21
+
22
+ ---
23
+
24
+ ## Content
25
+
26
+ ```markdown
27
+ # Story: {SSS}-{title-slug}
28
+
29
+ ## User Story
30
+
31
+ **As a** {user role}
32
+ **I want** {goal/action}
33
+ **So that** {benefit/reason}
34
+
35
+ ## Acceptance Criteria
36
+
37
+ - [ ] **Given** {precondition}, **When** {action}, **Then** {expected outcome}
38
+ - [ ] **Given** {precondition}, **When** {action}, **Then** {expected outcome}
39
+ - [ ] **Given** {precondition}, **When** {action}, **Then** {expected outcome}
40
+
41
+ ## Technical Notes
42
+
43
+ {Implementation hints, constraints, or considerations}
44
+
45
+ ## Dependencies
46
+
47
+ ### Requires
48
+ - {Other stories this depends on, or "None"}
49
+
50
+ ### Enables
51
+ - {Stories that depend on this, or "None"}
52
+
53
+ ## Edge Cases
54
+
55
+ | Scenario | Expected Behavior |
56
+ |----------|-------------------|
57
+ | {edge case 1} | {behavior} |
58
+ | {edge case 2} | {behavior} |
59
+
60
+ ## Out of Scope
61
+
62
+ - {What this story does NOT cover}
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Priority Levels
68
+
69
+ | Priority | Meaning | Criteria |
70
+ |----------|---------|----------|
71
+ | `must` | Required for MVP | System unusable without this |
72
+ | `should` | Important | Significant value, not blocking |
73
+ | `could` | Nice to have | Enhances experience |
74
+
75
+ ---
76
+
77
+ ## Status Values
78
+
79
+ | Status | Meaning |
80
+ |--------|---------|
81
+ | `draft` | Story written, needs review |
82
+ | `ready` | Reviewed, ready for bolt |
83
+ | `in-progress` | Being implemented in a bolt |
84
+ | `implemented` | Code complete |
85
+ | `tested` | Tests passing |
86
+ | `done` | All acceptance criteria met |
87
+
88
+ ---
89
+
90
+ ## Example
91
+
92
+ ```yaml
93
+ ---
94
+ id: 001-user-signup
95
+ unit: 001-auth-service
96
+ intent: 001-user-authentication
97
+ status: ready
98
+ priority: must
99
+ created: 2024-12-05T10:00:00Z
100
+ assigned_bolt: 001-auth-service
101
+ implemented: false
102
+ ---
103
+ ```
104
+
105
+ ```markdown
106
+ # Story: 001-user-signup
107
+
108
+ ## User Story
109
+
110
+ **As a** new user
111
+ **I want** to register with my email and password
112
+ **So that** I can access the application
113
+
114
+ ## Acceptance Criteria
115
+
116
+ - [ ] **Given** I am on the registration page, **When** I enter valid email and password, **Then** my account is created and I receive a confirmation email
117
+ - [ ] **Given** I enter an email that already exists, **When** I submit registration, **Then** I see an error message "Email already registered"
118
+ - [ ] **Given** I enter a password less than 8 characters, **When** I submit, **Then** I see validation error
119
+
120
+ ## Technical Notes
121
+
122
+ - Password must be hashed with bcrypt (cost factor 12)
123
+ - Email validation should use RFC 5322 compliant regex
124
+ - Rate limit registration to 5 attempts per IP per hour
125
+
126
+ ## Dependencies
127
+
128
+ ### Requires
129
+ - None (first story)
130
+
131
+ ### Enables
132
+ - 002-user-login (User login)
133
+ - 003-email-verification (Email verification)
134
+
135
+ ## Edge Cases
136
+
137
+ | Scenario | Expected Behavior |
138
+ |----------|-------------------|
139
+ | SQL injection in email | Safely escaped, validation fails |
140
+ | Very long email (255+ chars) | Validation error |
141
+ | Unicode in password | Allowed, properly encoded |
142
+
143
+ ## Out of Scope
144
+
145
+ - Social login (OAuth) - separate story
146
+ - Password reset - separate story
147
+ ```
@@ -0,0 +1,29 @@
1
+ ---
2
+ intent: {NNN}-{intent-name}
3
+ phase: inception
4
+ status: context-defined
5
+ updated: {YYYY-MM-DDTHH:MM:SSZ}
6
+ ---
7
+
8
+ # {Intent Name} - System Context
9
+
10
+ ## System Overview
11
+
12
+ {High-level description of what we are building}
13
+
14
+ ## Context Diagram
15
+
16
+ {Mermaid diagram showing System, Users, and External Systems}
17
+
18
+ ## External Integrations
19
+
20
+ - **System A**: {Purpose of integration}
21
+ - **System B**: {Purpose of integration}
22
+
23
+ ## High-Level Constraints
24
+
25
+ - {e.g., Must run on AWS, Must use existing Auth provider}
26
+
27
+ ## Key NFR Goals
28
+
29
+ - {High-level performance/security goals to guide construction}
@@ -0,0 +1,177 @@
1
+ # Unit Brief Template
2
+
3
+ Use this template when creating unit briefs during decomposition. This is the **critical input for Construction**.
4
+
5
+ ---
6
+
7
+ ## Frontmatter
8
+
9
+ ```yaml
10
+ ---
11
+ unit: {UUU}-{unit-name}
12
+ intent: {NNN}-{intent-name}
13
+ phase: inception
14
+ status: draft|ready
15
+ created: {YYYY-MM-DDTHH:MM:SSZ}
16
+ updated: {YYYY-MM-DDTHH:MM:SSZ}
17
+ ---
18
+ ```
19
+
20
+ **Note**: The `unit` field uses the full folder name including the 3-digit prefix (e.g., `001-auth-service`). This matches the folder structure and enables direct path construction in scripts. Story naming uses the story title (e.g., `001-user-signup.md`).
21
+
22
+ ---
23
+
24
+ ## Content
25
+
26
+ ```markdown
27
+ # Unit Brief: {Unit Name}
28
+
29
+ ## Purpose
30
+
31
+ {Clear, concise statement of what this unit does and why it exists}
32
+
33
+ ## Scope
34
+
35
+ ### In Scope
36
+ - {What this unit IS responsible for}
37
+ - {What this unit IS responsible for}
38
+
39
+ ### Out of Scope
40
+ - {What this unit is NOT responsible for}
41
+ - {What other units handle}
42
+
43
+ ---
44
+
45
+ ## Assigned Requirements
46
+
47
+ **These FRs from the intent are assigned to this unit. Stories will be created from these.**
48
+
49
+ | FR | Requirement | Priority |
50
+ |----|-------------|----------|
51
+ | FR-{n} | {description from intent requirements.md} | Must/Should/Could |
52
+
53
+ ---
54
+
55
+ ## Domain Concepts
56
+
57
+ ### Key Entities
58
+ | Entity | Description | Attributes |
59
+ |--------|-------------|------------|
60
+ | {Entity 1} | {What it represents} | {Key properties} |
61
+ | {Entity 2} | {What it represents} | {Key properties} |
62
+
63
+ ### Key Operations
64
+ | Operation | Description | Inputs | Outputs |
65
+ |-----------|-------------|--------|---------|
66
+ | {Operation 1} | {What it does} | {Input data} | {Output data} |
67
+ | {Operation 2} | {What it does} | {Input data} | {Output data} |
68
+
69
+ ---
70
+
71
+ ## Story Summary
72
+
73
+ | Metric | Count |
74
+ |--------|-------|
75
+ | Total Stories | {n} |
76
+ | Must Have | {n} |
77
+ | Should Have | {n} |
78
+ | Could Have | {n} |
79
+
80
+ ### Stories
81
+
82
+ | Story ID | Title | Priority | Status |
83
+ |----------|-------|----------|--------|
84
+ | {story-1} | {Title} | Must | Planned |
85
+ | {story-2} | {Title} | Should | Planned |
86
+
87
+ ---
88
+
89
+ ## Dependencies
90
+
91
+ ### Depends On
92
+ | Unit | Reason |
93
+ |------|--------|
94
+ | {unit-name} | {Why this dependency exists} |
95
+
96
+ ### Depended By
97
+ | Unit | Reason |
98
+ |------|--------|
99
+ | {unit-name} | {Why they depend on this} |
100
+
101
+ ### External Dependencies
102
+ | System | Purpose | Risk |
103
+ |--------|---------|------|
104
+ | {External system} | {Why needed} | {Risk level} |
105
+
106
+ ---
107
+
108
+ ## Technical Context
109
+
110
+ ### Suggested Technology
111
+ {Recommendations based on tech stack standards}
112
+
113
+ ### Integration Points
114
+ | Integration | Type | Protocol |
115
+ |-------------|------|----------|
116
+ | {System/Unit} | API/Event/DB | REST/GraphQL/Kafka |
117
+
118
+ ### Data Storage
119
+ | Data | Type | Volume | Retention |
120
+ |------|------|--------|-----------|
121
+ | {Data type} | SQL/NoSQL/Cache | {Volume} | {Retention} |
122
+
123
+ ---
124
+
125
+ ## Constraints
126
+
127
+ - {Technical constraint specific to this unit}
128
+ - {Business constraint specific to this unit}
129
+
130
+ ---
131
+
132
+ ## Success Criteria
133
+
134
+ ### Functional
135
+ - [ ] {Criterion 1: What must work}
136
+ - [ ] {Criterion 2: What must work}
137
+
138
+ ### Non-Functional
139
+ - [ ] {Performance target}
140
+ - [ ] {Security requirement}
141
+
142
+ ### Quality
143
+ - [ ] Code coverage > 80%
144
+ - [ ] All acceptance criteria met
145
+ - [ ] Code reviewed and approved
146
+
147
+ ---
148
+
149
+ ## Bolt Suggestions
150
+
151
+ Based on stories and complexity:
152
+
153
+ | Bolt | Type | Stories | Objective |
154
+ |------|------|---------|-----------|
155
+ | bolt-{unit}-1 | DDD | S1, S2 | Core entities |
156
+ | bolt-{unit}-2 | DDD | S3, S4 | API layer |
157
+
158
+ ---
159
+
160
+ ## Notes
161
+
162
+ {Any additional context, risks, or considerations for Construction}
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Quality Checklist
168
+
169
+ Before marking unit brief as ready:
170
+
171
+ - [ ] Purpose is clear and specific
172
+ - [ ] Scope boundaries are defined
173
+ - [ ] Key entities identified
174
+ - [ ] Stories assigned to this unit
175
+ - [ ] Dependencies mapped
176
+ - [ ] Success criteria are measurable
177
+ - [ ] Bolt suggestions provided
@@ -0,0 +1,52 @@
1
+ ---
2
+ intent: {NNN}-{intent-name}
3
+ phase: inception
4
+ status: units-decomposed
5
+ updated: {YYYY-MM-DDTHH:MM:SSZ}
6
+ ---
7
+
8
+ # {Intent Name} - Unit Decomposition
9
+
10
+ ## Units Overview
11
+
12
+ This intent decomposes into {N} units of work:
13
+
14
+ ### Unit 1: {unit-name}
15
+
16
+ **Description**: {What this unit does}
17
+
18
+ **Stories**:
19
+
20
+ - Story-1: {Title}
21
+ - Story-3: {Title}
22
+
23
+ **Deliverables**:
24
+
25
+ - {Specific artifacts this unit produces}
26
+
27
+ **Dependencies**:
28
+
29
+ - Depends on: {Other units}
30
+ - Depended by: {Units that need this}
31
+
32
+ **Estimated Complexity**: S/M/L/XL
33
+
34
+ ### Unit 2: {unit-name}
35
+
36
+ ...
37
+
38
+ ## Unit Dependency Graph
39
+
40
+ ```text
41
+ [Unit A] ──> [Unit B] ──> [Unit D]
42
+ │ │
43
+ └────> [Unit C] ──┘
44
+ ```
45
+
46
+ ## Execution Order
47
+
48
+ Based on dependencies:
49
+
50
+ 1. Day 1-2: Unit A (foundation)
51
+ 2. Day 2-4: Unit B, Unit C (parallel)
52
+ 3. Day 5-6: Unit D (integration)
@@ -0,0 +1,226 @@
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
+ ## Required Frontmatter Fields (VALIDATION CHECKLIST)
61
+
62
+ Before creating a bolt, verify ALL required fields are present:
63
+
64
+ | Field | Required | Description |
65
+ |-------|----------|-------------|
66
+ | `id` | **YES** | Bolt identifier (format: `{BBB}-{unit-name}`) |
67
+ | `unit` | **YES** | Parent unit ID |
68
+ | `intent` | **YES** | Parent intent ID |
69
+ | `type` | **YES** | Bolt type (`ddd-construction-bolt` or `simple-construction-bolt`) |
70
+ | `status` | **YES** | Current status (`planned`, `in-progress`, `completed`, `blocked`) |
71
+ | `stories` | **YES** | Array of story IDs included in this bolt |
72
+ | `created` | **YES** | Creation timestamp |
73
+ | `requires_bolts` | **YES** | Array of bolt IDs this depends on (can be empty `[]`) |
74
+ | `enables_bolts` | **YES** | Array of bolt IDs waiting on this (can be empty `[]`) |
75
+ | `complexity` | **YES** | Complexity assessment block |
76
+
77
+ **If any required field is missing, the bolt is INVALID.**
78
+
79
+ ---
80
+
81
+ ## Content
82
+
83
+ ```markdown
84
+ # Bolt: {bolt-id}
85
+
86
+ ## Overview
87
+
88
+ {Brief description of what this bolt will accomplish}
89
+
90
+ ## Objective
91
+
92
+ {Specific goal of this bolt tied to the stories it covers}
93
+
94
+ ## Stories Included
95
+
96
+ - **{story-1}**: {title} (Must)
97
+ - **{story-2}**: {title} (Should)
98
+
99
+ ## Bolt Type
100
+
101
+ **Type**: {type name}
102
+ **Definition**: `.iris/aidlc/templates/construction/bolt-types/{type}.md`
103
+
104
+ ## Stages
105
+
106
+ - [ ] **1. {stage-1}**: Pending → {artifact}
107
+ - [ ] **2. {stage-2}**: Pending → {artifact}
108
+ - [ ] **3. {stage-3}**: Pending → {artifact}
109
+ - [ ] **4. {stage-4}**: Pending → {artifact}
110
+
111
+ ## Dependencies
112
+
113
+ ### Requires
114
+ - {Previous bolt or None}
115
+
116
+ ### Enables
117
+ - {Next bolt or deployment}
118
+
119
+ ## Success Criteria
120
+
121
+ - [ ] All stories implemented
122
+ - [ ] All acceptance criteria met
123
+ - [ ] Tests passing
124
+ - [ ] Code reviewed
125
+
126
+ ## Notes
127
+
128
+ {Any additional context or considerations}
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Status Values
134
+
135
+ - **planned**: Bolt created, not started
136
+ - **in-progress**: Currently being executed
137
+ - **completed**: All stages done
138
+ - **blocked**: Cannot proceed due to dependency
139
+
140
+ ---
141
+
142
+ ## Stage Status Symbols
143
+
144
+ - [ ] = Pending
145
+ - ⏳ = In Progress
146
+ - ✅ = Complete
147
+ - 🚫 = Blocked
148
+
149
+ ---
150
+
151
+ ## Example
152
+
153
+ ```yaml
154
+ ---
155
+ id: bolt-auth-service-1
156
+ unit: 001-auth-service
157
+ intent: 001-user-authentication
158
+ type: ddd-construction-bolt
159
+ status: in-progress
160
+ stories:
161
+ - story-1
162
+ - story-2
163
+ created: 2024-12-05
164
+ started: 2024-12-05
165
+ completed: null
166
+ current_stage: design
167
+ stages_completed:
168
+ - name: model
169
+ completed: 2024-12-05T10:00:00Z
170
+ artifact: ddd-01-domain-model.md
171
+
172
+ requires_bolts: []
173
+ enables_bolts:
174
+ - bolt-auth-service-2
175
+ requires_units: []
176
+ blocks: false
177
+
178
+ complexity:
179
+ avg_complexity: 2
180
+ avg_uncertainty: 1
181
+ max_dependencies: 1
182
+ testing_scope: 2
183
+ ---
184
+
185
+ # Bolt: bolt-auth-service-1
186
+
187
+ ## Overview
188
+
189
+ First bolt for authentication service covering user registration and login.
190
+
191
+ ## Objective
192
+
193
+ Implement core authentication functionality including user registration with email verification and secure login.
194
+
195
+ ## Stories Included
196
+
197
+ - **story-1**: User can register (Must)
198
+ - **story-2**: User can login (Must)
199
+
200
+ ## Bolt Type
201
+
202
+ **Type**: DDD Construction Bolt
203
+ **Definition**: `.iris/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md`
204
+
205
+ ## Stages
206
+
207
+ - ✅ **1. model**: Complete → ddd-01-domain-model.md
208
+ - ⏳ **2. design**: In Progress → ddd-02-technical-design.md ← current
209
+ - [ ] **3. implement**: Pending → src/auth-service/
210
+ - [ ] **4. test**: Pending → ddd-03-test-report.md
211
+
212
+ ## Dependencies
213
+
214
+ ### Requires
215
+ - None (first bolt)
216
+
217
+ ### Enables
218
+ - bolt-auth-service-2 (MFA implementation)
219
+
220
+ ## Success Criteria
221
+
222
+ - ✅ Domain model defined
223
+ - [ ] API design complete
224
+ - [ ] Implementation complete
225
+ - [ ] Tests passing
226
+ ```
@@ -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}