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.
- package/README.md +261 -94
- package/bin/cli.js +21 -0
- package/flows/aidlc/README.md +372 -0
- package/flows/aidlc/agents/construction-agent.md +79 -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 +442 -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 +372 -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/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt.md +3 -3
- package/{dist → flows/aidlc}/templates/construction/bolt-types/spike-bolt.md +2 -2
- 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/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 +232 -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 +22 -0
- package/lib/markdown-validator.ts +175 -0
- package/lib/yaml-validator.ts +99 -0
- package/package.json +105 -32
- package/scripts/artifact-validator.js +594 -0
- package/scripts/bolt-complete.js +606 -0
- package/scripts/status-integrity.js +598 -0
- package/dist/bridge/agent-runner.js +0 -190
- package/dist/bridge/connector-factory.js +0 -31
- package/dist/bridge/connectors/antigravity-connector.js +0 -18
- package/dist/bridge/connectors/cursor-connector.js +0 -31
- package/dist/bridge/connectors/in-process-connector.js +0 -29
- package/dist/bridge/connectors/vscode-connector.js +0 -31
- package/dist/bridge/connectors/windsurf-connector.js +0 -23
- package/dist/bridge/filesystem-connector.js +0 -110
- package/dist/bridge/helper.js +0 -203
- package/dist/bridge/types.js +0 -10
- package/dist/cli.js +0 -40
- package/dist/commands/ask.js +0 -259
- package/dist/commands/bridge.js +0 -88
- package/dist/commands/create.js +0 -25
- package/dist/commands/develop.js +0 -141
- package/dist/commands/doctor.js +0 -102
- package/dist/commands/flow.js +0 -301
- package/dist/commands/framework.js +0 -273
- package/dist/commands/generate.js +0 -59
- package/dist/commands/install.js +0 -100
- package/dist/commands/pack.js +0 -33
- package/dist/commands/phase.js +0 -38
- package/dist/commands/run.js +0 -199
- package/dist/commands/status.js +0 -114
- package/dist/commands/uninstall.js +0 -14
- package/dist/commands/use.js +0 -20
- package/dist/commands/validate.js +0 -102
- package/dist/framework/framework-loader.js +0 -97
- package/dist/framework/framework-paths.js +0 -48
- package/dist/framework/framework-types.js +0 -15
- package/dist/iris/artifact-checker.js +0 -78
- package/dist/iris/artifacts/config.js +0 -68
- package/dist/iris/artifacts/generator.js +0 -88
- package/dist/iris/artifacts/types.js +0 -1
- package/dist/iris/bundle.js +0 -44
- package/dist/iris/doctrine/collector.js +0 -124
- package/dist/iris/fixer.js +0 -149
- package/dist/iris/flows/manifest.js +0 -124
- package/dist/iris/framework-context.js +0 -49
- package/dist/iris/framework-manager.js +0 -215
- package/dist/iris/fs/atomic.js +0 -22
- package/dist/iris/guard.js +0 -38
- package/dist/iris/importers/index.js +0 -9
- package/dist/iris/importers/types.js +0 -8
- package/dist/iris/importers/writer.js +0 -139
- package/dist/iris/include.js +0 -49
- package/dist/iris/installer.js +0 -334
- package/dist/iris/interactive/env.js +0 -21
- package/dist/iris/interactive/intent-interview.js +0 -345
- package/dist/iris/interactive/intent-schema.js +0 -28
- package/dist/iris/interactive/interview-io.js +0 -22
- package/dist/iris/interview/config.js +0 -71
- package/dist/iris/interview/types.js +0 -16
- package/dist/iris/interview/utils.js +0 -38
- package/dist/iris/manifest.js +0 -54
- package/dist/iris/packer.js +0 -325
- package/dist/iris/parsers/unit-parser.js +0 -43
- package/dist/iris/paths.js +0 -18
- package/dist/iris/policy.js +0 -133
- package/dist/iris/proc.js +0 -56
- package/dist/iris/report.js +0 -53
- package/dist/iris/resolver.js +0 -66
- package/dist/iris/router.js +0 -114
- package/dist/iris/routes.js +0 -189
- package/dist/iris/run-state.js +0 -146
- package/dist/iris/state.js +0 -113
- package/dist/iris/templates.js +0 -70
- package/dist/iris/tmp.js +0 -24
- package/dist/iris/uninstaller.js +0 -181
- package/dist/iris/utils/interpolate.js +0 -42
- package/dist/iris/validator.js +0 -391
- package/dist/iris/workflow/config.js +0 -51
- package/dist/iris/workflow/engine.js +0 -129
- package/dist/iris/workflow/steps.js +0 -448
- package/dist/iris/workflow/types.js +0 -1
- package/dist/iris_bundle/frameworks/iris-core/framework.yaml +0 -9
- package/dist/iris_bundle/frameworks/iris-core/memory/memory-bank.yaml +0 -1
- package/dist/iris_bundle/frameworks/iris-core/policy.yaml +0 -7
- package/dist/iris_bundle/frameworks/iris-core/templates/config/memory-bank.yaml +0 -1
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md +0 -240
- package/dist/lib.js +0 -96
- package/dist/templates/construction/bolt-template.md +0 -226
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +0 -49
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +0 -55
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +0 -67
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +0 -62
- package/dist/templates/construction/bolt-types/ddd-construction-bolt.md +0 -528
- package/dist/templates/construction/bolt-types/simple-construction-bolt.md +0 -347
- package/dist/templates/inception/requirements-template.md +0 -144
- package/dist/templates/inception/stories-template.md +0 -38
- package/dist/templates/inception/story-template.md +0 -147
- package/dist/templates/inception/system-context-template.md +0 -29
- package/dist/templates/inception/unit-brief-template.md +0 -177
- package/dist/templates/inception/units-template.md +0 -52
- package/dist/utils/exit-codes.js +0 -7
- package/dist/utils/logo.js +0 -17
- package/dist/workflows/bolt-execution.js +0 -238
- package/dist/workflows/bolt-plan.js +0 -221
- package/dist/workflows/intent-inception.js +0 -285
- package/dist/workflows/memory-bank-generator.js +0 -180
- package/dist/workflows/reporting.js +0 -74
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/construction/bolt-types/simple-construction-bolt.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/requirements-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/stories-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/story-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/system-context-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/unit-brief-template.md +0 -0
- /package/{dist/iris_bundle/frameworks/iris-core → flows/aidlc}/templates/inception/units-template.md +0 -0
package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md
DELETED
|
@@ -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}
|
package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md
DELETED
|
@@ -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} |
|