project-iris 0.0.13 → 0.0.14

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 (189) hide show
  1. package/README.md +261 -94
  2. package/bin/cli.js +21 -0
  3. package/flows/aidlc/README.md +372 -0
  4. package/flows/aidlc/agents/construction-agent.md +79 -0
  5. package/flows/aidlc/agents/inception-agent.md +97 -0
  6. package/flows/aidlc/agents/master-agent.md +61 -0
  7. package/flows/aidlc/agents/operations-agent.md +89 -0
  8. package/flows/aidlc/commands/construction-agent.md +63 -0
  9. package/flows/aidlc/commands/inception-agent.md +55 -0
  10. package/flows/aidlc/commands/master-agent.md +47 -0
  11. package/flows/aidlc/commands/operations-agent.md +77 -0
  12. package/flows/aidlc/context-config.yaml +67 -0
  13. package/flows/aidlc/memory-bank.yaml +104 -0
  14. package/flows/aidlc/quick-start.md +322 -0
  15. package/flows/aidlc/skills/construction/bolt-list.md +163 -0
  16. package/flows/aidlc/skills/construction/bolt-replan.md +345 -0
  17. package/flows/aidlc/skills/construction/bolt-start.md +442 -0
  18. package/flows/aidlc/skills/construction/bolt-status.md +185 -0
  19. package/flows/aidlc/skills/construction/navigator.md +196 -0
  20. package/flows/aidlc/skills/inception/bolt-plan.md +372 -0
  21. package/flows/aidlc/skills/inception/context.md +171 -0
  22. package/flows/aidlc/skills/inception/intent-create.md +211 -0
  23. package/flows/aidlc/skills/inception/intent-list.md +124 -0
  24. package/flows/aidlc/skills/inception/navigator.md +207 -0
  25. package/flows/aidlc/skills/inception/requirements.md +227 -0
  26. package/flows/aidlc/skills/inception/review.md +248 -0
  27. package/flows/aidlc/skills/inception/story-create.md +304 -0
  28. package/flows/aidlc/skills/inception/units.md +278 -0
  29. package/flows/aidlc/skills/master/analyze-context.md +239 -0
  30. package/flows/aidlc/skills/master/answer-question.md +141 -0
  31. package/flows/aidlc/skills/master/explain-flow.md +158 -0
  32. package/flows/aidlc/skills/master/project-init.md +281 -0
  33. package/flows/aidlc/skills/master/route-request.md +126 -0
  34. package/flows/aidlc/skills/operations/build.md +237 -0
  35. package/flows/aidlc/skills/operations/deploy.md +259 -0
  36. package/flows/aidlc/skills/operations/monitor.md +265 -0
  37. package/flows/aidlc/skills/operations/navigator.md +209 -0
  38. package/flows/aidlc/skills/operations/verify.md +224 -0
  39. package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt.md +3 -3
  40. package/{dist → flows/aidlc}/templates/construction/bolt-types/spike-bolt.md +2 -2
  41. package/flows/aidlc/templates/construction/construction-log-template.md +129 -0
  42. package/flows/aidlc/templates/construction/standards/coding-standards.md +29 -0
  43. package/flows/aidlc/templates/construction/standards/system-architecture.md +22 -0
  44. package/flows/aidlc/templates/construction/standards/tech-stack.md +19 -0
  45. package/flows/aidlc/templates/inception/inception-log-template.md +134 -0
  46. package/flows/aidlc/templates/inception/project/README.md +55 -0
  47. package/flows/aidlc/templates/standards/catalog.yaml +345 -0
  48. package/flows/aidlc/templates/standards/coding-standards.guide.md +553 -0
  49. package/flows/aidlc/templates/standards/data-stack.guide.md +162 -0
  50. package/flows/aidlc/templates/standards/tech-stack.guide.md +280 -0
  51. package/lib/InstallerFactory.js +36 -0
  52. package/lib/analytics/env-detector.js +92 -0
  53. package/lib/analytics/index.js +22 -0
  54. package/lib/analytics/machine-id.js +33 -0
  55. package/lib/analytics/tracker.js +232 -0
  56. package/lib/cli-utils.js +342 -0
  57. package/lib/constants.js +32 -0
  58. package/lib/installer.js +402 -0
  59. package/lib/installers/AntigravityInstaller.js +22 -0
  60. package/lib/installers/ClaudeInstaller.js +85 -0
  61. package/lib/installers/ClineInstaller.js +21 -0
  62. package/lib/installers/CodexInstaller.js +21 -0
  63. package/lib/installers/CopilotInstaller.js +113 -0
  64. package/lib/installers/CursorInstaller.js +63 -0
  65. package/lib/installers/GeminiInstaller.js +75 -0
  66. package/lib/installers/KiroInstaller.js +22 -0
  67. package/lib/installers/OpenCodeInstaller.js +22 -0
  68. package/lib/installers/RooInstaller.js +22 -0
  69. package/lib/installers/ToolInstaller.js +73 -0
  70. package/lib/installers/WindsurfInstaller.js +22 -0
  71. package/lib/markdown-validator.ts +175 -0
  72. package/lib/yaml-validator.ts +99 -0
  73. package/package.json +105 -32
  74. package/scripts/artifact-validator.js +594 -0
  75. package/scripts/bolt-complete.js +606 -0
  76. package/scripts/status-integrity.js +598 -0
  77. package/dist/bridge/agent-runner.js +0 -190
  78. package/dist/bridge/connector-factory.js +0 -31
  79. package/dist/bridge/connectors/antigravity-connector.js +0 -18
  80. package/dist/bridge/connectors/cursor-connector.js +0 -31
  81. package/dist/bridge/connectors/in-process-connector.js +0 -29
  82. package/dist/bridge/connectors/vscode-connector.js +0 -31
  83. package/dist/bridge/connectors/windsurf-connector.js +0 -23
  84. package/dist/bridge/filesystem-connector.js +0 -110
  85. package/dist/bridge/helper.js +0 -203
  86. package/dist/bridge/types.js +0 -10
  87. package/dist/cli.js +0 -40
  88. package/dist/commands/ask.js +0 -259
  89. package/dist/commands/bridge.js +0 -88
  90. package/dist/commands/create.js +0 -25
  91. package/dist/commands/develop.js +0 -141
  92. package/dist/commands/doctor.js +0 -102
  93. package/dist/commands/flow.js +0 -301
  94. package/dist/commands/framework.js +0 -273
  95. package/dist/commands/generate.js +0 -59
  96. package/dist/commands/install.js +0 -100
  97. package/dist/commands/pack.js +0 -33
  98. package/dist/commands/phase.js +0 -38
  99. package/dist/commands/run.js +0 -199
  100. package/dist/commands/status.js +0 -114
  101. package/dist/commands/uninstall.js +0 -14
  102. package/dist/commands/use.js +0 -20
  103. package/dist/commands/validate.js +0 -102
  104. package/dist/framework/framework-loader.js +0 -97
  105. package/dist/framework/framework-paths.js +0 -48
  106. package/dist/framework/framework-types.js +0 -15
  107. package/dist/iris/artifact-checker.js +0 -78
  108. package/dist/iris/artifacts/config.js +0 -68
  109. package/dist/iris/artifacts/generator.js +0 -88
  110. package/dist/iris/artifacts/types.js +0 -1
  111. package/dist/iris/bundle.js +0 -44
  112. package/dist/iris/doctrine/collector.js +0 -124
  113. package/dist/iris/fixer.js +0 -149
  114. package/dist/iris/flows/manifest.js +0 -124
  115. package/dist/iris/framework-context.js +0 -49
  116. package/dist/iris/framework-manager.js +0 -215
  117. package/dist/iris/fs/atomic.js +0 -22
  118. package/dist/iris/guard.js +0 -38
  119. package/dist/iris/importers/index.js +0 -9
  120. package/dist/iris/importers/types.js +0 -8
  121. package/dist/iris/importers/writer.js +0 -139
  122. package/dist/iris/include.js +0 -49
  123. package/dist/iris/installer.js +0 -334
  124. package/dist/iris/interactive/env.js +0 -21
  125. package/dist/iris/interactive/intent-interview.js +0 -345
  126. package/dist/iris/interactive/intent-schema.js +0 -28
  127. package/dist/iris/interactive/interview-io.js +0 -22
  128. package/dist/iris/interview/config.js +0 -71
  129. package/dist/iris/interview/types.js +0 -16
  130. package/dist/iris/interview/utils.js +0 -38
  131. package/dist/iris/manifest.js +0 -54
  132. package/dist/iris/packer.js +0 -325
  133. package/dist/iris/parsers/unit-parser.js +0 -43
  134. package/dist/iris/paths.js +0 -18
  135. package/dist/iris/policy.js +0 -133
  136. package/dist/iris/proc.js +0 -56
  137. package/dist/iris/report.js +0 -53
  138. package/dist/iris/resolver.js +0 -66
  139. package/dist/iris/router.js +0 -114
  140. package/dist/iris/routes.js +0 -189
  141. package/dist/iris/run-state.js +0 -146
  142. package/dist/iris/state.js +0 -113
  143. package/dist/iris/templates.js +0 -70
  144. package/dist/iris/tmp.js +0 -24
  145. package/dist/iris/uninstaller.js +0 -181
  146. package/dist/iris/utils/interpolate.js +0 -42
  147. package/dist/iris/validator.js +0 -391
  148. package/dist/iris/workflow/config.js +0 -51
  149. package/dist/iris/workflow/engine.js +0 -129
  150. package/dist/iris/workflow/steps.js +0 -448
  151. package/dist/iris/workflow/types.js +0 -1
  152. package/dist/iris_bundle/frameworks/iris-core/framework.yaml +0 -9
  153. package/dist/iris_bundle/frameworks/iris-core/memory/memory-bank.yaml +0 -1
  154. package/dist/iris_bundle/frameworks/iris-core/policy.yaml +0 -7
  155. package/dist/iris_bundle/frameworks/iris-core/templates/config/memory-bank.yaml +0 -1
  156. package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md +0 -240
  157. package/dist/lib.js +0 -96
  158. package/dist/templates/construction/bolt-template.md +0 -226
  159. package/dist/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +0 -49
  160. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +0 -55
  161. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +0 -67
  162. package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +0 -62
  163. package/dist/templates/construction/bolt-types/ddd-construction-bolt.md +0 -528
  164. package/dist/templates/construction/bolt-types/simple-construction-bolt.md +0 -347
  165. package/dist/templates/inception/requirements-template.md +0 -144
  166. package/dist/templates/inception/stories-template.md +0 -38
  167. package/dist/templates/inception/story-template.md +0 -147
  168. package/dist/templates/inception/system-context-template.md +0 -29
  169. package/dist/templates/inception/unit-brief-template.md +0 -177
  170. package/dist/templates/inception/units-template.md +0 -52
  171. package/dist/utils/exit-codes.js +0 -7
  172. package/dist/utils/logo.js +0 -17
  173. package/dist/workflows/bolt-execution.js +0 -238
  174. package/dist/workflows/bolt-plan.js +0 -221
  175. package/dist/workflows/intent-inception.js +0 -285
  176. package/dist/workflows/memory-bank-generator.js +0 -180
  177. package/dist/workflows/reporting.js +0 -74
  178. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-template.md +0 -0
  179. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +0 -0
  180. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +0 -0
  181. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +0 -0
  182. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +0 -0
  183. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/simple-construction-bolt.md +0 -0
  184. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/requirements-template.md +0 -0
  185. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/stories-template.md +0 -0
  186. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/story-template.md +0 -0
  187. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/system-context-template.md +0 -0
  188. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/unit-brief-template.md +0 -0
  189. /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/units-template.md +0 -0
@@ -1,240 +0,0 @@
1
- # Bolt Type: Spike (Research)
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
- ## Success Metrics
10
-
11
- - ✅ Activities presented as numbered lists (not tables)
12
- - ✅ Stage progress shown with status indicators
13
- - ✅ Human checkpoints clearly marked
14
-
15
- ## Failure Modes
16
-
17
- - ❌ Using ASCII table for activities
18
- - ❌ Auto-advancing without human confirmation
19
- - ❌ Exceeding time-box without approval
20
-
21
- ---
22
-
23
- ## Metadata
24
-
25
- ```yaml
26
- bolt_type: spike-bolt
27
- name: Spike Bolt
28
- description: Research and proof-of-concept for unknown areas
29
- version: 1.0.0
30
- suitable_for:
31
- - Technical research
32
- - Proof of concept
33
- - Evaluating technologies
34
- - Risk mitigation
35
- stages_count: 2
36
- ```
37
-
38
- ---
39
-
40
- ## Overview
41
-
42
- This bolt type is for research and proof-of-concept work when there are unknowns that need investigation before committing to implementation.
43
-
44
- **Best For**:
45
-
46
- - Evaluating new technologies
47
- - Proof of concept for risky approaches
48
- - Research before estimation
49
- - Validating assumptions
50
- - Learning and experimentation
51
-
52
- **Important**: Spike bolts produce **knowledge**, not production code. The output is documentation, not deployable software.
53
-
54
- ---
55
-
56
- ## Stages
57
-
58
- ### Stage 1: explore
59
-
60
- **Objective**: Investigate the unknown area and document findings
61
-
62
- **Duration**: Time-boxed (hours to days, strictly limited)
63
-
64
- **Activities**:
65
-
66
- 1 - **Define research questions**: List what needs to be answered
67
- 2 - **Investigate options**: Research and document alternatives
68
- 3 - **Build throwaway prototypes**: Create proof-of-concept code
69
- 4 - **Test assumptions**: Validate or invalidate beliefs
70
- 5 - **Identify risks**: Document potential issues
71
- 6 - **Evaluate trade-offs**: Compare options
72
-
73
- **Artifact**: `spike-exploration.md`
74
- **Location**: Path defined by `schema.units` in `.iris/aidlc/memory/memory-bank.yaml`
75
- *(Default: `{intents-path}/{intent}/units/{unit}/spike-exploration.md`)*
76
-
77
- **Template Structure**:
78
-
79
- ```markdown
80
- ---
81
- stage: explore
82
- bolt: {bolt-id}
83
- created: {YYYY-MM-DDTHH:MM:SSZ}
84
- time_box: {hours}
85
- ---
86
-
87
- ## Spike Exploration: {topic}
88
-
89
- ### Research Questions
90
- 1. {question 1}
91
- 2. {question 2}
92
-
93
- ### Options Investigated
94
-
95
- - **{Option}**: {Description} - Pros: {list} - Cons: {list}
96
-
97
- ### Prototype Notes
98
- {What was built, what was learned}
99
-
100
- ### Assumptions Tested
101
-
102
- - **{Assumption}**: Valid: {yes/no} - Evidence: {details}
103
-
104
- ### Risks Identified
105
-
106
- - **{Risk}**: Likelihood: {H/M/L} - Impact: {H/M/L} - Mitigation: {approach}
107
- ```
108
-
109
- **Completion Criteria**:
110
-
111
- - [ ] All research questions addressed
112
- - [ ] Options evaluated
113
- - [ ] Prototypes built (if applicable)
114
- - [ ] Assumptions validated or invalidated
115
- - [ ] Risks documented
116
-
117
- **⛔ HUMAN Checkpoint**: Present exploration summary and **STOP**. Wait for user to confirm before proceeding to Stage 2.
118
-
119
- ---
120
-
121
- ### Stage 2: document
122
-
123
- **Objective**: Consolidate findings into actionable recommendations
124
-
125
- **Duration**: Hours (typically 1-2 hours)
126
-
127
- **Activities**:
128
-
129
- 1 - **Summarize findings**: Create high-level summary
130
- 2 - **Make recommendations**: Propose best approach
131
- 3 - **Estimate implementation**: Provide effort estimates
132
- 4 - **Identify next bolts**: Suggest follow-up work
133
- 5 - **Present to team**: Share knowledge
134
-
135
- **Artifact**: `spike-report.md`
136
- **Location**: Path defined by `schema.units` in `.iris/aidlc/memory/memory-bank.yaml`
137
- *(Default: `{intents-path}/{intent}/units/{unit}/spike-report.md`)*
138
-
139
- **Template Structure**:
140
-
141
- ```markdown
142
- ---
143
- stage: document
144
- bolt: {bolt-id}
145
- created: {YYYY-MM-DDTHH:MM:SSZ}
146
- ---
147
-
148
- ## Spike Report: {topic}
149
-
150
- ### Summary
151
- {High-level summary of what was learned}
152
-
153
- ### Key Findings
154
- 1. {finding 1}
155
- 2. {finding 2}
156
-
157
- ### Recommendation
158
- **Recommended Approach**: {option}
159
-
160
- **Rationale**: {why this option}
161
-
162
- ### Implementation Estimate
163
-
164
- - **{Component}**: Effort: {estimate} - Confidence: {H/M/L}
165
-
166
- ### Risks to Monitor
167
-
168
- - **{Risk}**: Mitigation: {strategy}
169
-
170
- ### Suggested Next Steps
171
- 1. {Create bolt for...}
172
- 2. {Update requirements with...}
173
- 3. {Add story for...}
174
-
175
- ### Artifacts to Archive
176
- - [ ] Prototype code (if reusable): {location}
177
- - [ ] Research notes: {location}
178
- ```
179
-
180
- **Completion Criteria**:
181
-
182
- - [ ] Findings documented
183
- - [ ] Clear recommendation made
184
- - [ ] Estimates provided
185
- - [ ] Next steps identified
186
- - [ ] Knowledge shared with team
187
-
188
- **⛔ HUMAN Checkpoint**: Present spike report and **STOP**. Wait for user to confirm bolt completion.
189
-
190
- ---
191
-
192
- ## Stage Execution
193
-
194
- ### Sequence
195
-
196
- ```text
197
- explore → document
198
- ```
199
-
200
- ### Time-Boxing
201
-
202
- Spikes **MUST** be time-boxed:
203
-
204
- - Define maximum duration upfront
205
- - Stop when time-box expires
206
- - Document whatever was learned
207
- - Don't extend without explicit approval
208
-
209
- ### State Tracking
210
-
211
- ```yaml
212
- ---
213
- current_stage: document
214
- stages_completed:
215
- - name: explore
216
- completed: 2024-12-05T16:00:00Z
217
- time_spent: 4h
218
- status: in-progress
219
- time_box: 8h
220
- time_remaining: 4h
221
- ---
222
- ```
223
-
224
- ---
225
-
226
- ## Important Notes
227
-
228
- ### Spike Output
229
-
230
- - **NOT** production code
231
- - **NOT** deployable software
232
- - **IS** knowledge and documentation
233
- - **IS** input for real construction bolts
234
-
235
- ### After a Spike
236
-
237
- 1. Review findings with team
238
- 2. Update requirements if needed
239
- 3. Create real construction bolts
240
- 4. Archive or delete prototype code
package/dist/lib.js DELETED
@@ -1,96 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { spawn } from "node:child_process";
4
- export function repoRoot() {
5
- return process.cwd();
6
- }
7
- export function ensureDir(p) {
8
- fs.mkdirSync(p, { recursive: true });
9
- }
10
- export function copyDir(src, dst) {
11
- ensureDir(dst);
12
- for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
13
- const s = path.join(src, entry.name);
14
- const d = path.join(dst, entry.name);
15
- if (entry.isDirectory())
16
- copyDir(s, d);
17
- else if (entry.isSymbolicLink()) {
18
- const link = fs.readlinkSync(s);
19
- try {
20
- fs.symlinkSync(link, d);
21
- }
22
- catch { /* ignore */ }
23
- }
24
- else {
25
- ensureDir(path.dirname(d));
26
- fs.copyFileSync(s, d);
27
- }
28
- }
29
- }
30
- export function removeDir(p) {
31
- if (!fs.existsSync(p))
32
- return;
33
- fs.rmSync(p, { recursive: true, force: true });
34
- }
35
- export function writeFile(p, content) {
36
- ensureDir(path.dirname(p));
37
- fs.writeFileSync(p, content, "utf8");
38
- }
39
- /**
40
- * Sanitize a folder name to be a valid npm package name
41
- */
42
- export function sanitizeFolderName(name) {
43
- return name
44
- .toLowerCase()
45
- .replace(/[^a-z0-9-_]/g, "-")
46
- .replace(/^-+|-+$/g, "")
47
- .replace(/-+/g, "-")
48
- || "my-project";
49
- }
50
- /**
51
- * Check if npm is available in PATH
52
- */
53
- export function hasNpm() {
54
- try {
55
- const result = spawn("npm", ["--version"], { stdio: "ignore" });
56
- return true;
57
- }
58
- catch {
59
- return false;
60
- }
61
- }
62
- /**
63
- * Spawn a command asynchronously and return the result
64
- */
65
- export function spawnAsync(command, args, cwd) {
66
- return new Promise((resolve) => {
67
- const proc = spawn(command, args, {
68
- cwd,
69
- stdio: ["inherit", "pipe", "pipe"],
70
- shell: true
71
- });
72
- let stdout = "";
73
- let stderr = "";
74
- if (proc.stdout) {
75
- proc.stdout.on("data", (data) => {
76
- const text = data.toString();
77
- stdout += text;
78
- process.stdout.write(text);
79
- });
80
- }
81
- if (proc.stderr) {
82
- proc.stderr.on("data", (data) => {
83
- const text = data.toString();
84
- stderr += text;
85
- process.stderr.write(text);
86
- });
87
- }
88
- proc.on("close", (code) => {
89
- resolve({ code: code ?? 0, stdout, stderr });
90
- });
91
- proc.on("error", (err) => {
92
- stderr += err.message;
93
- resolve({ code: 1, stdout, stderr });
94
- });
95
- });
96
- }
@@ -1,226 +0,0 @@
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
- ```
@@ -1,49 +0,0 @@
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}
@@ -1,55 +0,0 @@
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} |