project-iris 0.0.12 → 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 +214 -323
  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
@@ -0,0 +1,281 @@
1
+ # Skill: Project Init
2
+
3
+ ---
4
+
5
+ ## Role
6
+
7
+ Setup skill to initialize a new project by facilitating creation of project standards through guided conversation.
8
+
9
+ **NO Checkpoint** - Project initialization is a setup process. Standards are confirmed individually during the conversation.
10
+
11
+ ---
12
+
13
+ ## Goal
14
+
15
+ Initialize a new project by facilitating the creation of project standards through guided conversation. Standards ensure AI agents have the context needed to generate consistent, high-quality code.
16
+
17
+ ---
18
+
19
+ ## Input
20
+
21
+ - **Required**: `.iris/aidlc/templates/standards/catalog.yaml` - defines available standards
22
+ - **Optional**: Project type hint from user (e.g., "full-stack web app", "backend API")
23
+ - **Optional**: Existing standards files to review/update
24
+
25
+ ---
26
+
27
+ ## Process
28
+
29
+ ### 1. Load Standards Catalog
30
+
31
+ Read `.iris/aidlc/templates/standards/catalog.yaml` to understand:
32
+
33
+ - Available standards and their importance
34
+ - Decisions within each standard
35
+ - Dependencies between standards
36
+ - Project type presets
37
+
38
+ ### 2. Determine Project Type
39
+
40
+ Ask the user what kind of project they're building:
41
+
42
+ ```markdown
43
+ ## Project Setup
44
+
45
+ Before we dive into technical choices, what kind of project are you building?
46
+
47
+ 1. **Full-stack web app** - Frontend + backend + database
48
+ 2. **Backend API** - API service, no frontend
49
+ 3. **Frontend app** - SPA or SSR frontend
50
+ 4. **CLI tool** - Command-line application
51
+ 5. **Library** - Reusable package/module
52
+ 6. **Other** - Tell me more
53
+
54
+ This helps me know which standards we need to discuss.
55
+ ```
56
+
57
+ Use the project type to determine:
58
+
59
+ - Required standards (must create)
60
+ - Recommended standards (suggest, but optional)
61
+ - Skippable standards (not relevant)
62
+
63
+ **IMPORTANT**: After determining project type, immediately save it to `memory-bank/project.yaml`:
64
+
65
+ ```yaml
66
+ # Project Configuration
67
+ # Generated by project-init
68
+
69
+ project_type: {selected-type} # e.g., full-stack-web, backend-api, frontend-app, cli-tool, library
70
+ initialized_at: {ISO timestamp}
71
+ ```
72
+
73
+ This file MUST be created before proceeding to standards facilitation, as other agents (e.g., Inception) read it to provide context-aware suggestions.
74
+
75
+ ### 3. Check Existing Standards
76
+
77
+ Before creating new standards, check if any exist:
78
+
79
+ - Read `standards/` directory
80
+ - If files exist, ask: "I found existing standards. Do you want to review and update them, or start fresh?"
81
+
82
+ ### 4. Facilitate Each Standard
83
+
84
+ For each required/recommended standard:
85
+
86
+ 1. **Load the facilitation guide** from `templates/standards/{standard}.guide.md`
87
+ 2. **Follow the guide's discovery process** - don't invent your own questions
88
+ 3. **Adapt to user expertise** - be concise with experts, explanatory with newcomers
89
+ 4. **Confirm before saving** - summarize choices, get approval
90
+ 5. **Generate the standard file** - using the output format in the guide
91
+ 6. **Save to path** defined in catalog (`output_path`)
92
+
93
+ ### 5. Order of Standards
94
+
95
+ Follow dependency order from catalog:
96
+
97
+ 1 - **tech-stack**: No dependencies
98
+ 2 - **coding-standards**: Depends on tech-stack
99
+ 3 - **system-architecture**: Depends on tech-stack (optional)
100
+ 4 - **ux-guide**: Depends on tech-stack (optional)
101
+ 5 - **api-conventions**: Depends on tech-stack (optional)
102
+
103
+ Never create a standard before its dependencies are satisfied.
104
+
105
+ ### 6. Handle Optional Standards
106
+
107
+ For optional/recommended standards:
108
+
109
+ ```markdown
110
+ ## Optional: {Standard Name}
111
+
112
+ Based on your project type, this standard is recommended but not required:
113
+ - **{standard}**: {description from catalog}
114
+
115
+ Would you like to define this now, or skip for later?
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Facilitation Principles
121
+
122
+ ### Adaptive Communication
123
+
124
+ **Read user signals:**
125
+
126
+ - Mentions specific tech confidently → treat as experienced
127
+ - Asks "what do you recommend?" → provide guidance
128
+ - Says "I don't know" → explain tradeoffs, suggest defaults
129
+ - Has strong opinions → respect them, validate coherence
130
+
131
+ **Adjust your style:**
132
+
133
+ - Expert: "TypeScript with Next.js? Got it. Deployment target?"
134
+ - Beginner: "TypeScript is great for catching bugs early. Since you mentioned React, Next.js would give you server-side rendering and easy deployment..."
135
+
136
+ ### Collaborative Discovery
137
+
138
+ - **Don't interrogate** - have a conversation
139
+ - **Build context** - previous answers inform later questions
140
+ - **Surface tradeoffs** - help them make informed decisions
141
+ - **Capture rationale** - "why" is as important as "what"
142
+
143
+ ### Question Format (CRITICAL)
144
+
145
+ **ALWAYS format questions like this:**
146
+
147
+ ```markdown
148
+ ## [Topic Name]
149
+
150
+ [Brief context if needed - 1-2 sentences max]
151
+
152
+ 1. **Option A** - description
153
+ 2. **Option B** - description
154
+ 3. **Option C** - description
155
+ 4. **Other** - let me know
156
+
157
+ Type a number or describe your choice.
158
+ ```
159
+
160
+ **Example - GOOD:**
161
+
162
+ ```markdown
163
+ ## Database
164
+
165
+ 1. **SQLite** - Simple, file-based, great for small apps
166
+ 2. **PostgreSQL** - Robust, scalable, widely supported
167
+ 3. **MySQL** - Popular, good for web apps
168
+ 4. **MongoDB** - Document store, flexible schema
169
+ 5. **TBD** - Decide later
170
+
171
+ Type a number or tell me your preference.
172
+ ```
173
+
174
+ **Example - BAD (never do this):**
175
+
176
+ ```markdown
177
+ What database are you using? And where will you deploy? Also what's your auth strategy?
178
+ ```
179
+
180
+ **If user gives partial answer:**
181
+ > User says "PostgreSQL"
182
+ > You asked about database AND deployment
183
+ > → Acknowledge the database choice, then re-ask ONLY about deployment
184
+
185
+ ### Practical Defaults
186
+
187
+ When user is unsure, offer sensible defaults:
188
+ > "For a TypeScript web app, most teams start with: Prettier for formatting, ESLint with strict mode, and Vitest for testing. These are well-supported and work great with AI code generation. Sound good as a starting point?"
189
+
190
+ ---
191
+
192
+ ## Output
193
+
194
+ After completing all standards:
195
+
196
+ ```markdown
197
+ ## Project Initialization Complete
198
+
199
+ ### Standards Created
200
+
201
+ - ✅ **Tech Stack**: Created at `standards/tech-stack.md`
202
+ - ✅ **Coding Standards**: Created at `standards/coding-standards.md`
203
+ - ⏭️ **System Architecture**: Skipped
204
+ - ⏭️ **UX Guide**: Skipped
205
+ - ⏭️ **API Conventions**: Skipped
206
+
207
+ ### Summary
208
+
209
+ Your project is configured as a **{project type}** using:
210
+ - **Language**: {language}
211
+ - **Framework**: {framework}
212
+ - **Database**: {database or "TBD"}
213
+
214
+ ### What These Standards Enable
215
+
216
+ AI agents will now:
217
+ - Generate code matching your style preferences
218
+ - Use your chosen libraries and patterns
219
+ - Follow your testing strategy
220
+ - Understand your project structure
221
+
222
+ ### Actions
223
+
224
+ 1 - **inception**: Create your first intent
225
+ 2 - **standards**: Add more optional standards
226
+ 3 - **menu**: Return to main menu
227
+
228
+ ### Suggested Next Step
229
+ → **inception** - Create your first intent with `/iris-inception-agent`
230
+
231
+ **Type a number or press Enter for suggested action.**
232
+ ```
233
+
234
+ ---
235
+
236
+ ## Human Validation Points
237
+
238
+ At each standard completion:
239
+ > "I've captured your {standard} preferences. Here's the summary: {brief summary}. Does this look right? Any changes before I save?"
240
+
241
+ At project init completion:
242
+ > "Your project is initialized with {n} standards. AI agents now have the context they need. Ready to create your first intent?"
243
+
244
+ ---
245
+
246
+ ## Error Handling
247
+
248
+ ### Missing Catalog
249
+
250
+ If `catalog.yaml` is not found:
251
+ > "I can't find the standards catalog. Please ensure `.iris/aidlc/templates/standards/catalog.yaml` exists."
252
+
253
+ ### Missing Guide
254
+
255
+ If a facilitation guide is missing:
256
+ > "The facilitation guide for {standard} is missing. I'll skip this standard. You can create it manually at `standards/{standard}.md`."
257
+
258
+ ### Dependency Not Met
259
+
260
+ If trying to create a standard before its dependency:
261
+ > "We need to define {dependency} before {standard}. Let's do that first."
262
+
263
+ ---
264
+
265
+ ## Transition
266
+
267
+ After project initialization:
268
+
269
+ - → **Inception Agent** (`.iris/agents/inception-agent.md`) - to create first intent
270
+ - → **Analyze Context** (`.iris/skills/master/analyze-context.md`) - if user wants to see project state
271
+ - → **Project Init** again - to add optional standards later
272
+
273
+ ---
274
+
275
+ ## Test Contract
276
+
277
+ ```yaml
278
+ input: User responses to standards questions
279
+ output: Created standards files in standards/ directory
280
+ checkpoints: 0 (setup process with inline confirmations)
281
+ ```
@@ -0,0 +1,126 @@
1
+ # Skill: Route Request
2
+
3
+ ---
4
+
5
+ ## Role
6
+
7
+ Routing skill to direct users to the appropriate specialist agent based on context and request.
8
+
9
+ **NO Checkpoint** - Routing is a navigation function, not a decision point.
10
+
11
+ ---
12
+
13
+ ## Goal
14
+
15
+ Direct the user to the appropriate specialist agent based on their current context and request.
16
+
17
+ ---
18
+
19
+ ## Input
20
+
21
+ - **Required**: Completed context analysis (from `analyze-context.md`)
22
+ - **Required**: User's request or intent
23
+
24
+ ---
25
+
26
+ ## Process
27
+
28
+ ### 1. Match State to Agent
29
+
30
+ Based on project state:
31
+
32
+ - **No intents / New feature request** → Inception Agent → `/iris-inception-agent`
33
+ - **Intent exists, needs elaboration** → Inception Agent → `/iris-inception-agent --intent="{name}"`
34
+ - **Ready for construction** → Construction Agent → `/iris-construction-agent --unit="{name}"`
35
+ - **Bolt in progress** → Construction Agent → `/iris-construction-agent --unit="{name}" --bolt-id="{id}"`
36
+ - **Ready for deployment** → Operations Agent → `/iris-operations-agent --unit="{name}"`
37
+ - **In production, needs monitoring** → Operations Agent → `/iris-operations-agent --unit="{name}"`
38
+
39
+ ### 2. Handle Special Cases
40
+
41
+ **User asks about something different than current state**:
42
+ > "I see you're in {current phase}, but you're asking about {different thing}. Let me help you with that instead."
43
+
44
+ **User is confused about what to do**:
45
+ > "Based on your project state, the logical next step is {action}. Would you like me to route you there, or do you have something else in mind?"
46
+
47
+ **Multiple options available**:
48
+ > "You have several options at this point:
49
+ >
50
+ > 1. {Option 1} → {command}
51
+ > 2. {Option 2} → {command}
52
+ > Which would you like to pursue?"
53
+
54
+ ### 3. Provide Clear Handoff
55
+
56
+ Always include:
57
+
58
+ 1. The specific command to run
59
+ 2. What parameters to include
60
+ 3. What the agent will help them do
61
+ 4. What to expect next
62
+
63
+ ---
64
+
65
+ ## Output
66
+
67
+ ````markdown
68
+ ## Routing Recommendation
69
+
70
+ Based on your current state ({phase}) and request ({what user wants}):
71
+
72
+ ### Recommended Action
73
+ → **{Agent Name}**: {brief description of what it does}
74
+
75
+ ### Command
76
+ ```text
77
+ {exact command with parameters}
78
+ ```
79
+
80
+ ### What Happens Next
81
+
82
+ {Description of what the agent will guide them through}
83
+
84
+ ### Actions
85
+
86
+ 1 - **proceed**: Run the recommended command
87
+ 2 - **different**: Choose a different option
88
+ 3 - **explain**: Learn more about the target agent
89
+
90
+ ### Suggested Next Step
91
+
92
+ → **proceed** - Run the command above
93
+
94
+ **Type a number or press Enter for suggested action.**
95
+ ````
96
+
97
+ ---
98
+
99
+ ## Human Validation Point
100
+
101
+ > "I'm routing you to the {Agent Name}. This agent will help you {specific task}. Does this match what you're trying to accomplish?"
102
+
103
+ ---
104
+
105
+ ## Transition
106
+
107
+ After routing:
108
+
109
+ - User runs the provided command
110
+ - Control transfers to the target agent
111
+ - Master Agent is no longer active
112
+
113
+ If user declines routing:
114
+
115
+ - → **Answer Question** (`.iris/skills/master/answer-question.md`) - clarify their needs
116
+ - → **Explain Flow** (`.iris/skills/master/explain-flow.md`) - explain the methodology
117
+
118
+ ---
119
+
120
+ ## Test Contract
121
+
122
+ ```yaml
123
+ input: Context analysis + user request
124
+ output: Routing recommendation with exact command
125
+ checkpoints: 0 (routing only)
126
+ ```
@@ -0,0 +1,237 @@
1
+ # Skill: Build Deployment Artifacts
2
+
3
+ ---
4
+
5
+ ## Progress Display
6
+
7
+ Show at start of this skill:
8
+
9
+ ```text
10
+ ### Operations Progress
11
+ - [ ] Build approval ← current
12
+ - [ ] Staging deploy
13
+ - [ ] Production deploy
14
+ - [ ] Monitoring setup
15
+ ```
16
+
17
+ ---
18
+
19
+ ## Checkpoints in This Skill
20
+
21
+ | Checkpoint | Purpose | Wait For |
22
+ |------------|---------|----------|
23
+ | Checkpoint 1 | Build approval | User confirmation |
24
+
25
+ ---
26
+
27
+ ## Goal
28
+
29
+ Create deployable packages (containers, functions, bundles) for a Unit and document the build metadata.
30
+
31
+ ---
32
+
33
+ ## Input
34
+
35
+ - **Required**: `--unit` - The unit to build
36
+ - **Required**: `.iris/aidlc/memory-bank.yaml` - artifact schema
37
+ - **Optional**: `--version` - Explicit version tag (default: auto-generate)
38
+
39
+ ---
40
+
41
+ ## Process
42
+
43
+ ### 1. Verify Prerequisites
44
+
45
+ Check construction completion:
46
+
47
+ - [ ] **All bolts complete**: Path from `schema.bolts` (Required)
48
+ - [ ] **Tests passing**: Last bolt test stage (Required)
49
+ - [ ] **Code exists**: Unit source directory (Required)
50
+
51
+ ### 2. Detect Build Type
52
+
53
+ Analyze unit structure to determine build strategy:
54
+
55
+ - `Dockerfile` → **Container** → `docker build`
56
+ - `serverless.yml` → **Serverless** → Framework deploy
57
+ - `package.json` → **Node.js** → `npm run build`
58
+ - `Cargo.toml` → **Rust** → `cargo build --release`
59
+ - `go.mod` → **Go** → `go build`
60
+
61
+ ### 3. Determine Version
62
+
63
+ Generate semantic version:
64
+
65
+ ```markdown
66
+ ## Version Calculation
67
+
68
+ Base: {major}.{minor}.{patch}
69
+ Commit: {short-sha}
70
+ Tag: v{version}-{commit}
71
+
72
+ Example: v1.2.0-abc123
73
+ ```
74
+
75
+ ### 4. Execute Build
76
+
77
+ Run appropriate build commands:
78
+
79
+ 1. **Pre-build**: Install dependencies
80
+ 2. **Build**: Compile/bundle
81
+ 3. **Test**: Run final verification
82
+ 4. **Package**: Create deployable artifact
83
+ 5. **Tag**: Apply version tag
84
+
85
+ ### 5. Push to Registry
86
+
87
+ Upload artifact to configured registry:
88
+
89
+ - Container → Container registry
90
+ - Package → Package registry
91
+ - Function → Function storage
92
+
93
+ ### 6. Document Build
94
+
95
+ Create/update `deployment/build.md`:
96
+
97
+ ```markdown
98
+ ---
99
+ version: {version}
100
+ commit: {sha}
101
+ built: {timestamp}
102
+ status: success
103
+ ---
104
+
105
+ ## Build: {version}
106
+
107
+ ### Artifact
108
+ - **Type**: {container|function|package}
109
+ - **Tag**: `{registry}/{unit}:{version}`
110
+ - **Size**: {size}
111
+ - **SHA**: {artifact-sha}
112
+
113
+ ### Build Environment
114
+ - OS: {os}
115
+ - Runtime: {runtime-version}
116
+ - Builder: {tool-version}
117
+
118
+ ### Dependencies
119
+
120
+ - **{dep1}**: {ver}
121
+ - **{dep2}**: {ver}
122
+
123
+ ### Build Log Summary
124
+ {key events from build}
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Output
130
+
131
+ ````markdown
132
+ ## Build Complete: {unit-name}
133
+
134
+ ### Artifact Created
135
+
136
+ - **Version**: `{version}`
137
+ - **Tag**: `{registry}/{unit}:{version}`
138
+ - **Built**: {timestamp}
139
+ - **Size**: {size}
140
+
141
+ ### Build Summary
142
+ - Dependencies: {count} packages
143
+ - Build time: {duration}
144
+ - Tests: ✅ All passing
145
+
146
+ ### Artifact Location
147
+ ```text
148
+ {registry-url}/{unit}:{version}
149
+ ```
150
+
151
+ ### Documentation Updated
152
+
153
+ - `{unit-path}/deployment/build.md`
154
+
155
+ ### Actions
156
+
157
+ 1 - **deploy**: Deploy to dev environment
158
+ 2 - **menu**: Return to operations menu
159
+
160
+ ### Suggested Next Step
161
+
162
+ → **deploy** - Deploy `{version}` to dev environment
163
+
164
+ **Type a number or press Enter for suggested action.**
165
+ ````
166
+
167
+ ---
168
+
169
+ ## Output (Build Failed)
170
+
171
+ ````markdown
172
+ ## Build Failed: {unit-name}
173
+
174
+ ### Error
175
+ ```text
176
+ {error message}
177
+ ```
178
+
179
+ ### Failure Point
180
+
181
+ - **Stage**: {compile|test|package}
182
+ - **Exit Code**: {code}
183
+
184
+ ### Logs
185
+
186
+ {relevant log excerpt}
187
+
188
+ ### Suggested Actions
189
+
190
+ 1. Fix the build error in source code
191
+ 2. Re-run build: `build --unit="{unit}"`
192
+
193
+ ### No Artifacts Created
194
+
195
+ Build must succeed before deployment.
196
+ ````
197
+
198
+ ---
199
+
200
+ ## Build Confirmation
201
+
202
+ **Checkpoint 1**: Ask user to confirm build:
203
+
204
+ ```text
205
+ Ready to build v{version}?
206
+
207
+ This will:
208
+ 1. Verify all tests pass
209
+ 2. Create deployable artifact
210
+ 3. Tag with version {version}
211
+ 4. Push to registry
212
+
213
+ Proceed with build?
214
+ 1 - Yes, build
215
+ 2 - Cancel
216
+ ```
217
+
218
+ **Wait for user response.**
219
+
220
+ ---
221
+
222
+ ## Transition
223
+
224
+ After build approved and completed:
225
+
226
+ - → **Deploy** - deploy to dev environment
227
+
228
+ ---
229
+
230
+ ## Test Contract
231
+
232
+ ```yaml
233
+ input: Unit name, version
234
+ output: Deployable artifact, build.md documentation
235
+ checkpoints: 1
236
+ - Checkpoint 1: Build approved by user
237
+ ```