project-iris 0.5.0 → 0.6.0

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 (41) hide show
  1. package/flows/aidlc/README.md +21 -0
  2. package/flows/aidlc/agents/README.md +15 -0
  3. package/flows/aidlc/agents/inception-agent.md +6 -0
  4. package/flows/aidlc/agents/master-agent.md +1 -0
  5. package/flows/aidlc/memory-bank.yaml +21 -0
  6. package/flows/aidlc/skills/README.md +5 -0
  7. package/flows/aidlc/skills/construction/bolt-list.md +3 -0
  8. package/flows/aidlc/skills/construction/bolt-start.md +223 -11
  9. package/flows/aidlc/skills/inception/requirements.md +5 -0
  10. package/flows/aidlc/skills/inception/review.md +1 -0
  11. package/flows/aidlc/skills/inception/risks.md +5 -0
  12. package/flows/aidlc/skills/inception/story-create.md +115 -0
  13. package/flows/aidlc/skills/master/analyze-context.md +4 -4
  14. package/flows/aidlc/skills/master/code-elevate.md +10 -0
  15. package/flows/aidlc/skills/master/project-init.md +2 -2
  16. package/flows/aidlc/skills/operations/build.md +2 -0
  17. package/flows/aidlc/skills/operations/rollback.md +1 -0
  18. package/flows/aidlc/templates/README.md +9 -0
  19. package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-04-implementation-walkthrough-template.md +18 -14
  20. package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +1 -0
  21. package/flows/aidlc/templates/construction/construction-guide.md +3 -0
  22. package/flows/aidlc/templates/construction/elevation-dynamic-model-template.md +12 -0
  23. package/flows/aidlc/templates/construction/elevation-static-model-template.md +6 -0
  24. package/flows/aidlc/templates/construction/ui-patterns.md +74 -1
  25. package/flows/aidlc/templates/inception/requirements-template.md +5 -0
  26. package/flows/aidlc/templates/inception/story-template.md +73 -0
  27. package/flows/aidlc/templates/standards/api-conventions.guide.md +4 -0
  28. package/lib/InstallerFactory.js +19 -15
  29. package/lib/analytics/env-detector.d.ts +16 -0
  30. package/lib/analytics/index.d.ts +6 -0
  31. package/lib/analytics/machine-id.d.ts +9 -0
  32. package/lib/analytics/tracker.d.ts +70 -0
  33. package/lib/installer.js +47 -166
  34. package/lib/mcp/FigmaMCPProvider.js +70 -0
  35. package/lib/mcp/constants.js +15 -0
  36. package/lib/mcp/index.js +35 -0
  37. package/package.json +3 -3
  38. package/scripts/bolt-complete.js +8 -56
  39. package/scripts/lib/frontmatter-utils.js +75 -0
  40. package/scripts/status-integrity.js +5 -55
  41. package/extensions/iris-dashboard-0.0.1.vsix +0 -0
@@ -127,6 +127,7 @@ src/flows/aidlc/
127
127
  **Goal**: Complete planning and design before construction begins
128
128
 
129
129
  **Activities**:
130
+
130
131
  - Capture intents (high-level goals)
131
132
  - Gather requirements (functional and non-functional)
132
133
  - Assess risks (technical, business, operational)
@@ -138,6 +139,7 @@ src/flows/aidlc/
138
139
  **Command**: `/iris-inception-agent --intent="intent-name"`
139
140
 
140
141
  **Outputs**:
142
+
141
143
  - PRFAQ document
142
144
  - Requirements with measurement criteria
143
145
  - Risk assessment
@@ -151,6 +153,7 @@ src/flows/aidlc/
151
153
  **Goal**: Build working software through iterative bolt execution
152
154
 
153
155
  **Activities**:
156
+
154
157
  - Execute bolts through DDD stages:
155
158
  1. **Domain Design** - Model business logic using DDD principles
156
159
  2. **Logical Design** - Apply NFRs and architectural patterns
@@ -161,6 +164,7 @@ src/flows/aidlc/
161
164
  **Command**: `/iris-construction-agent --unit="unit-name"`
162
165
 
163
166
  **Outputs**:
167
+
164
168
  - Domain design documents
165
169
  - Logical design documents
166
170
  - Architectural Decision Records (ADRs)
@@ -172,6 +176,7 @@ src/flows/aidlc/
172
176
  **Goal**: Deploy and operate the system
173
177
 
174
178
  **Activities**:
179
+
175
180
  - Build deployment artifacts (containers, functions, bundles)
176
181
  - Deploy through environments (Dev → Staging → Production)
177
182
  - Verify deployments with health checks
@@ -181,6 +186,7 @@ src/flows/aidlc/
181
186
  **Command**: `/iris-operations-agent --unit="unit-name"`
182
187
 
183
188
  **Outputs**:
189
+
184
190
  - Deployment units
185
191
  - Monitoring dashboards
186
192
  - Alert configurations
@@ -192,19 +198,24 @@ src/flows/aidlc/
192
198
  ## Project Scenarios
193
199
 
194
200
  ### Greenfield (New Projects)
201
+
195
202
  Starting fresh with no existing code:
203
+
196
204
  1. Initialize project with standards
197
205
  2. Begin Inception phase immediately
198
206
  3. Build from scratch using AI-DLC methodology
199
207
 
200
208
  ### Brownfield (Existing Codebases)
209
+
201
210
  Adding features to existing code:
211
+
202
212
  1. Initialize project with standards
203
213
  2. **Run code elevation** to analyze existing codebase
204
214
  3. AI creates static and dynamic models for context
205
215
  4. Begin Inception with full codebase understanding
206
216
 
207
217
  **Code Elevation Process**:
218
+
208
219
  - **Static Model**: Components, responsibilities, and relationships
209
220
  - **Dynamic Model**: How components interact for significant use cases
210
221
 
@@ -227,6 +238,7 @@ Intent (feature/capability)
227
238
  **Bolts** are time-boxed execution sessions scoped to a **Unit**. A Unit may require multiple Bolts to complete all its Stories.
228
239
 
229
240
  **Example**:
241
+
230
242
  - **Intent**: User Authentication
231
243
  - **Unit**: Auth Service
232
244
  - **Story 1**: User Registration
@@ -385,21 +397,27 @@ memory-bank/
385
397
  ## Key Principles
386
398
 
387
399
  ### 1. AI Drives, Human Validates
400
+
388
401
  AI proposes plans, decompositions, and implementations. Humans review and approve at checkpoints.
389
402
 
390
403
  ### 2. Human Oversight as Loss Function
404
+
391
405
  Validation at each step catches errors early before they cascade downstream.
392
406
 
393
407
  ### 3. Mob Elaboration
408
+
394
409
  Concentrated rapid planning during Inception. Complete all planning in hours, not weeks.
395
410
 
396
411
  ### 4. Bolts are Flexible
412
+
397
413
  Bolts take "hours or days" depending on complexity - not fixed-duration like sprints.
398
414
 
399
415
  ### 5. DDD Focus
416
+
400
417
  Domain-Driven Design principles guide the Construction phase with proper separation of concerns.
401
418
 
402
419
  ### 6. Persistent Context
420
+
403
421
  Everything is stored in the memory bank so context is never lost between sessions.
404
422
 
405
423
  ---
@@ -457,18 +475,21 @@ Here's a complete workflow for building a feature:
457
475
  ## Tips for Success
458
476
 
459
477
  ### Planning (Inception)
478
+
460
479
  - Be thorough - it pays off during Construction
461
480
  - Document NFRs with measurable criteria
462
481
  - Assess risks early with mitigations
463
482
  - Group related stories into the same bolt
464
483
 
465
484
  ### Building (Construction)
485
+
466
486
  - Follow the DDD stages in order
467
487
  - Don't skip testing
468
488
  - Keep bolts focused (5-8 stories max)
469
489
  - Document significant decisions as ADRs
470
490
 
471
491
  ### Deploying (Operations)
492
+
472
493
  - Always deploy to staging first
473
494
  - Run smoke tests after every deployment
474
495
  - Setup monitoring from the start
@@ -15,9 +15,11 @@ agents/
15
15
  ## Agent Overview
16
16
 
17
17
  ### Master Agent
18
+
18
19
  **Role**: Orchestrator & Navigator
19
20
 
20
21
  The central entry point that:
22
+
21
23
  - Initializes new projects with standards
22
24
  - Analyzes current project state
23
25
  - Routes users to the appropriate phase agent
@@ -31,9 +33,11 @@ The central entry point that:
31
33
  ---
32
34
 
33
35
  ### Inception Agent
36
+
34
37
  **Role**: Planning & Design Specialist
35
38
 
36
39
  Handles the Inception phase:
40
+
37
41
  - Captures intents (high-level goals)
38
42
  - Gathers requirements (functional and non-functional)
39
43
  - Identifies risks
@@ -49,9 +53,11 @@ Handles the Inception phase:
49
53
  ---
50
54
 
51
55
  ### Construction Agent
56
+
52
57
  **Role**: Builder & Implementer
53
58
 
54
59
  Handles the Construction phase:
60
+
55
61
  - Executes bolts through DDD stages
56
62
  - Guides domain design
57
63
  - Creates logical designs
@@ -64,6 +70,7 @@ Handles the Construction phase:
64
70
  **Command**: `/iris-construction-agent --unit="unit-name"`
65
71
 
66
72
  **DDD Bolt Stages**:
73
+
67
74
  1. Domain Design
68
75
  2. Logical Design
69
76
  3. ADR Analysis (optional)
@@ -73,9 +80,11 @@ Handles the Construction phase:
73
80
  ---
74
81
 
75
82
  ### Operations Agent
83
+
76
84
  **Role**: DevOps Engineer & Deployment Orchestrator
77
85
 
78
86
  Handles the Operations phase:
87
+
79
88
  - Builds deployment artifacts
80
89
  - Deploys through environments (Dev → Staging → Production)
81
90
  - Verifies deployments
@@ -120,22 +129,28 @@ Each agent file follows this structure:
120
129
  ## Key Principles
121
130
 
122
131
  ### 1. Agent Independence
132
+
123
133
  Each agent operates independently but can redirect to other agents when appropriate:
134
+
124
135
  - Master → Inception (when ready to plan)
125
136
  - Master → Construction (when ready to build)
126
137
  - Inception → Construction (when inception complete)
127
138
  - Construction → Operations (when construction complete)
128
139
 
129
140
  ### 2. Human Validation
141
+
130
142
  All agents implement checkpoints where they pause for human approval before proceeding with significant actions.
131
143
 
132
144
  ### 3. Context Loading
145
+
133
146
  Agents load context from the memory bank at startup:
147
+
134
148
  - Standards (tech-stack, coding-standards)
135
149
  - Current phase state
136
150
  - Relevant artifacts
137
151
 
138
152
  ### 4. Consistent Output
153
+
139
154
  All agents follow the same output formatting rules defined in Mandatory Output Rules.
140
155
 
141
156
  ## Phase Flow
@@ -9,6 +9,7 @@ You are the **Inception Agent** for AI-DLC (AI-Driven Development Life Cycle).
9
9
  ### ⛔ CRITICAL: NO ASCII TABLES
10
10
 
11
11
  **NEVER use ASCII box tables like this - FORBIDDEN:**
12
+
12
13
  ```
13
14
  ┌────────┬─────────────────────────────────────┐
14
15
  │ Option │ Description │
@@ -20,6 +21,7 @@ You are the **Inception Agent** for AI-DLC (AI-Driven Development Life Cycle).
20
21
  ```
21
22
 
22
23
  **ALWAYS use numbered list format instead:**
24
+
23
25
  ```
24
26
  1 - **Option A** - Some option description
25
27
  2 - **Option B** - Another option description
@@ -44,6 +46,7 @@ This applies to ALL questions, options, and choices throughout the entire incept
44
46
  When asking clarifying questions with multiple choice options:
45
47
 
46
48
  **WRONG** - ASCII table:
49
+
47
50
  ```
48
51
  ┌────────┬──────────────────────────────────┐
49
52
  │ Option │ Description │
@@ -55,6 +58,7 @@ When asking clarifying questions with multiple choice options:
55
58
  ```
56
59
 
57
60
  **CORRECT** - Numbered list:
61
+
58
62
  ```
59
63
  **Content Depth**
60
64
 
@@ -66,11 +70,13 @@ When asking clarifying questions with multiple choice options:
66
70
  ### Checkpoint Options Format (CRITICAL)
67
71
 
68
72
  **WRONG** - Open-ended question:
73
+
69
74
  ```
70
75
  Do these requirements capture your intent?
71
76
  ```
72
77
 
73
78
  **CORRECT** - Numbered options:
79
+
74
80
  ```
75
81
  ### Options
76
82
 
@@ -99,6 +99,7 @@ No project configuration found. This appears to be a new project.
99
99
  ```
100
100
 
101
101
  **CRITICAL**: When user selects "Initialize project", the `project-init` skill MUST:
102
+
102
103
  1. Ask project type question FIRST (full-stack, backend, frontend, CLI, library)
103
104
  2. Then detect/ask scenario (greenfield/brownfield/hybrid)
104
105
  3. Save `project.yaml` with BOTH fields before proceeding to standards
@@ -67,6 +67,27 @@ naming:
67
67
  example: "001-user-signup.md"
68
68
  note: "3-digit story number + kebab-case story title"
69
69
  full_path_example: "memory-bank/intents/001-user-authentication/units/001-auth-service/stories/001-user-signup.md"
70
+ optional_fields:
71
+ figma_frames:
72
+ description: "Optional array of Figma frame URLs for UI stories"
73
+ type: "array of URLs"
74
+ formats:
75
+ - "https://www.figma.com/design/{file-id}/{file-name}?node-id={node-id}&t={token}"
76
+ - "https://www.figma.com/make/{file-id}/{file-name}?p=f&t={token}"
77
+ note: "Construction Agent uses Figma MCP to fetch design specs. Prototype connections extracted if available."
78
+ collected_by: "Inception Agent during story creation (Step 4a in story-create skill)"
79
+ interaction_flows:
80
+ description: "Manual interaction flow definition (fallback when Figma has no prototype)"
81
+ type: "array of screen interaction definitions"
82
+ structure: |
83
+ - screen: {screen-name}
84
+ interactions:
85
+ - element: "{Button/Link text}"
86
+ action: navigate | overlay | close | submit
87
+ target: {destination-screen}
88
+ note: "Only needed if Figma file has designs but no prototype connections. Construction Agent uses this to wire navigation."
89
+ collected_by: "Inception Agent during story creation (Step 4a-2 in story-create skill)"
90
+ priority: "Figma prototype > interaction_flows > infer from labels > ask user"
70
91
 
71
92
  bolts:
72
93
  format: "{BBB}-{unit-name}/"
@@ -83,18 +83,23 @@ Every skill file follows this structure:
83
83
  ## Key Principles
84
84
 
85
85
  ### 1. Mandatory Output Rules
86
+
86
87
  Every skill starts with formatting rules to ensure consistent output:
88
+
87
89
  - Never use ASCII tables (they break at different terminal widths)
88
90
  - Always use numbered list format for options
89
91
  - Always use status indicators (✅ ⏳ [ ] 🚫)
90
92
 
91
93
  ### 2. Human Checkpoints
94
+
92
95
  Skills that make significant decisions include checkpoints where the AI pauses for human validation before proceeding.
93
96
 
94
97
  ### 3. Artifact Creation
98
+
95
99
  Skills that create artifacts reference templates from `../templates/` and follow the schema defined in `../memory-bank.yaml`.
96
100
 
97
101
  ### 4. Context Loading
102
+
98
103
  Skills load context as defined in `../context-config.yaml` to ensure consistent information access.
99
104
 
100
105
  ## Adding New Skills
@@ -32,10 +32,12 @@
32
32
  When referencing bolt files to the user, ALWAYS show the **bolt ID prominently**, not just "bolt.md":
33
33
 
34
34
  **WRONG**:
35
+
35
36
  - "Working on bolt.md"
36
37
  - "Open bolt.md to see details"
37
38
 
38
39
  **CORRECT**:
40
+
39
41
  - "Working on **001-extension-foundation**"
40
42
  - "Open **001-extension-foundation/bolt.md** to see details"
41
43
 
@@ -46,6 +48,7 @@ The bolt ID (directory name like `001-extension-foundation`) is the identifier.
46
48
  ## Checkpoints
47
49
 
48
50
  **Checkpoint 1**: Which bolt to work on?
51
+
49
52
  - Wait for: User selection
50
53
 
51
54
  ---
@@ -44,11 +44,13 @@
44
44
  When referencing bolt files to the user, ALWAYS show the **bolt ID prominently**, not just "bolt.md":
45
45
 
46
46
  **WRONG**:
47
+
47
48
  - "Working on bolt.md"
48
49
  - "Updating bolt.md status"
49
50
  - "Approve changes to bolt.md?"
50
51
 
51
52
  **CORRECT**:
53
+
52
54
  - "Working on **001-extension-foundation**"
53
55
  - "Updating **001-extension-foundation** status"
54
56
  - "Approve changes to **001-extension-foundation/bolt.md**?"
@@ -155,6 +157,7 @@ agents:
155
157
  **Check if UI design guidance may be relevant:**
156
158
 
157
159
  Scan the bolt's unit name, story titles, and story descriptions for these signals:
160
+
158
161
  - `screen`, `page`, `view`, `layout`
159
162
  - `component`, `widget`, `button`, `form`, `modal`, `dialog`
160
163
  - `ui`, `ux`, `frontend`, `presentation`
@@ -181,6 +184,222 @@ Scan the bolt's unit name, story titles, and story descriptions for these signal
181
184
 
182
185
  This is not a hard requirement - use judgment on which principles apply to the current task.
183
186
 
187
+ ### 4c. Figma Frames (Conditional - Per Story)
188
+
189
+ **Check each story's `figma_frames` field in frontmatter.**
190
+
191
+ If a story has `figma_frames` (array of Figma URLs), use Figma MCP to fetch design specs and interaction flows before implementing.
192
+
193
+ **Supported Figma URL formats:**
194
+
195
+ - Design file: `https://www.figma.com/design/{file-id}/{file-name}?node-id={node-id}&t={token}`
196
+ - Make file: `https://www.figma.com/make/{file-id}/{file-name}?p=f&t={token}`
197
+
198
+ **When `figma_frames` is present:**
199
+
200
+ ```text
201
+ ┌─────────────────────────────────────────────────────────────┐
202
+ │ FIGMA FRAMES DETECTED │
203
+ │ │
204
+ │ Story: {story-id} │
205
+ │ Frames: {count} Figma frame(s) │
206
+ │ │
207
+ │ Action: Use Figma MCP to fetch design and flow data │
208
+ └─────────────────────────────────────────────────────────────┘
209
+ ```
210
+
211
+ **Figma MCP Integration:**
212
+
213
+ Use the Figma MCP tool to read design specifications. The MCP server is configured via:
214
+ `claude mcp add figma --transport http --url https://mcp.figma.com/mcp`
215
+
216
+ ### 4c-1. Extract Design Specs (Per Frame)
217
+
218
+ For EACH Figma frame URL, extract:
219
+
220
+ ```text
221
+ ┌─────────────────────────────────────────────────────────────┐
222
+ │ DESIGN SPECS EXTRACTION │
223
+ │ │
224
+ │ For each frame, extract: │
225
+ │ │
226
+ │ 1. Layout & Structure │
227
+ │ - Component hierarchy (parent/child relationships) │
228
+ │ - Spacing values (padding, margins, gaps) │
229
+ │ - Alignment and positioning │
230
+ │ │
231
+ │ 2. Visual Styling │
232
+ │ - Colors (exact hex values, opacity) │
233
+ │ - Typography (font family, size, weight, line height) │
234
+ │ - Border radius, shadows, effects │
235
+ │ │
236
+ │ 3. Component States │
237
+ │ - Default, hover, active, disabled, focus states │
238
+ │ - Loading states and skeletons │
239
+ │ - Error and success states │
240
+ │ │
241
+ │ 4. Responsive Variants (if defined) │
242
+ │ - Mobile, tablet, desktop variations │
243
+ │ - Breakpoint-specific layouts │
244
+ └─────────────────────────────────────────────────────────────┘
245
+ ```
246
+
247
+ ### 4c-2. Extract Interaction Flows
248
+
249
+ **Figma prototype connections MAY define interaction flows - but many designs don't have them.**
250
+
251
+ **Step 1: Check for prototype connections via Figma MCP**
252
+
253
+ ```text
254
+ ┌─────────────────────────────────────────────────────────────┐
255
+ │ PROTOTYPE CONNECTION CHECK │
256
+ │ │
257
+ │ Query Figma MCP for prototype data on each frame. │
258
+ │ Prototype connections include: │
259
+ │ - Navigation triggers (which element → which frame) │
260
+ │ - Transition types (push, overlay, swap) │
261
+ │ - Overlay settings (dismiss on click outside, etc.) │
262
+ └─────────────────────────────────────────────────────────────┘
263
+ ```
264
+
265
+ **Step 2: Determine flow source (in priority order)**
266
+
267
+ ```text
268
+ ┌─────────────────────────────────────────────────────────────┐
269
+ │ FLOW SOURCE PRIORITY │
270
+ │ │
271
+ │ 1. Figma prototype connections (if they exist) │
272
+ │ → Extract automatically from Figma MCP │
273
+ │ │
274
+ │ 2. Manual flow definition in story (if provided) │
275
+ │ → Read from story's `interaction_flows` field │
276
+ │ │
277
+ │ 3. No flow information available │
278
+ │ → Ask user OR infer from button labels │
279
+ └─────────────────────────────────────────────────────────────┘
280
+ ```
281
+
282
+ ### 4c-2a. If Prototype Connections Exist in Figma
283
+
284
+ Extract interaction data:
285
+
286
+ - Navigation actions (which element → destination frame)
287
+ - Overlay triggers (modals, bottom sheets, tooltips)
288
+ - Transition types and animations
289
+ - Dismiss behaviors
290
+
291
+ ### 4c-2b. If NO Prototype Connections in Figma
292
+
293
+ **Check story for manual `interaction_flows` definition:**
294
+
295
+ ```yaml
296
+ # In story frontmatter or body
297
+ interaction_flows:
298
+ - screen: login-form
299
+ interactions:
300
+ - element: "Sign Up button"
301
+ action: navigate
302
+ target: registration-form
303
+ - element: "Forgot Password link"
304
+ action: overlay
305
+ target: forgot-password-modal
306
+ ```
307
+
308
+ **If manual flows exist:** Use them to build the interaction map.
309
+
310
+ **If NO flows defined anywhere:**
311
+
312
+ ```text
313
+ ┌─────────────────────────────────────────────────────────────┐
314
+ │ NO INTERACTION FLOW DEFINED │
315
+ │ │
316
+ │ Story: {story-id} │
317
+ │ Figma frames: {count} (no prototype connections found) │
318
+ │ Manual flows: Not defined │
319
+ │ │
320
+ │ Options: │
321
+ │ 1 - Define interactions now (I'll ask about each button) │
322
+ │ 2 - Infer from button labels (best guess) │
323
+ │ 3 - Implement as static screens (no navigation wiring) │
324
+ └─────────────────────────────────────────────────────────────┘
325
+ ```
326
+
327
+ **Option 1 - Define interactions:** Ask user about each interactive element:
328
+
329
+ ```text
330
+ I found these interactive elements in the Figma frames:
331
+ - "Sign Up" button
332
+ - "Forgot Password" link
333
+ - "Login" button
334
+
335
+ For each element, what should happen on click?
336
+ ```
337
+
338
+ **Option 2 - Infer from labels:** Make reasonable assumptions:
339
+
340
+ - "Submit", "Save", "Login" → form submission
341
+ - "Cancel", "Close", "X" → close/go back
342
+ - "Sign Up", "Register" → navigate to registration
343
+ - "Learn More", "View Details" → navigate to detail screen
344
+
345
+ **Option 3 - Static screens:** Implement visuals only, user wires navigation later.
346
+
347
+ ### 4c-2c. Output: Interaction Map
348
+
349
+ After determining flows (from any source), build the interaction map:
350
+
351
+ ```markdown
352
+ ### Interaction Map: {story-id}
353
+
354
+ **Flow Source:** {Figma prototype | Manual definition | Inferred | Static}
355
+
356
+ #### Screen: {frame-name-1}
357
+ | Element | Action | Target | Type |
358
+ |---------|--------|--------|------|
359
+ | "Sign Up" button | on-click | registration-form | navigate |
360
+ | "Forgot Password" link | on-click | forgot-password-modal | overlay |
361
+
362
+ #### Navigation Flow
363
+
364
+ login-screen
365
+ ├── "Sign Up" → registration-form
366
+ ├── "Forgot Password" → forgot-password-modal (overlay)
367
+ └── "Login" → dashboard (on success)
368
+ ```
369
+
370
+ ### 4c-3. If Figma MCP is not available
371
+
372
+ ```text
373
+ ⚠️ Figma MCP not configured - cannot fetch design specs
374
+ Story {story-id} has figma_frames but Figma MCP is unavailable.
375
+
376
+ Options:
377
+ 1 - Continue using ui-patterns.md guidelines (design may not match)
378
+ 2 - Stop and configure Figma MCP first
379
+
380
+ To configure: Run `claude mcp add figma --transport http --url https://mcp.figma.com/mcp`
381
+ Then authenticate via `/mcp` in Claude Code.
382
+ ```
383
+
384
+ ### 4c-4. Design-First Implementation Rule
385
+
386
+ When a story has `figma_frames`:
387
+
388
+ 1. **Fetch ALL frames FIRST** before writing any UI code
389
+ 2. **Build the interaction map** to understand the complete flow
390
+ 3. **Extract exact values** - don't approximate colors, spacing, or typography
391
+ 4. **Match the design** - Figma specs override ui-patterns.md defaults
392
+ 5. **Implement navigation** - wire up all interactions as defined in Figma
393
+ 6. **Note deviations** - if you must deviate from design, document why in code comments
394
+
395
+ **When NO `figma_frames` exists:**
396
+
397
+ Fall back to ui-patterns.md guidelines (Step 4b). The agent should generate UI based on:
398
+
399
+ 1. Acceptance criteria in the story
400
+ 2. Project's ux-guide.md (component library, styling approach)
401
+ 3. ui-patterns.md design principles
402
+
184
403
  ### 5. Determine Current Stage
185
404
 
186
405
  Based on bolt state:
@@ -300,19 +519,12 @@ For the current stage, follow the bolt type definition:
300
519
  - Template used: {yes/no}
301
520
  ```
302
521
 
303
- **Common artifacts by bolt type:**
522
+ **Required artifacts are defined by the bolt type definition file.**
304
523
 
305
- | Bolt Type | Stage | Required Artifact |
306
- |-----------|-------|-------------------|
307
- | simple-construction | Plan | `implementation-plan.md` |
308
- | simple-construction | Code Generation | `implementation-walkthrough.md` |
309
- | simple-construction | Testing | `test-walkthrough.md` |
310
- | ddd-construction | Domain Design | `ddd-01-domain-design.md` |
311
- | ddd-construction | Logical Design | `ddd-02-logical-design.md` |
312
- | ddd-construction | Code Generation | `ddd-04-implementation-walkthrough.md` |
313
- | ddd-construction | Testing | `ddd-03-test-report.md` |
524
+ Each bolt type specifies its own stages and required artifacts. Refer to:
525
+ `.iris/aidlc/templates/construction/bolt-types/{bolt_type}.md`
314
526
 
315
- **If bolt type specifies an artifact, you MUST create it.**
527
+ **If the bolt type definition specifies an artifact for a stage, you MUST create it.**
316
528
 
317
529
  ### 7b. Story-by-Story Execution (Code Generation Stages) - HARD GATE
318
530
 
@@ -7,6 +7,7 @@
7
7
  ### ⛔ CRITICAL: NO ASCII TABLES
8
8
 
9
9
  **NEVER use ASCII box tables like this - FORBIDDEN:**
10
+
10
11
  ```
11
12
  ┌────────┬─────────────────────────────────────┐
12
13
  │ Option │ Description │
@@ -16,12 +17,14 @@
16
17
  ```
17
18
 
18
19
  **ALWAYS use numbered list format instead:**
20
+
19
21
  ```
20
22
  1 - **Option A** - Some option description
21
23
  2 - **Option B** - Another option description
22
24
  ```
23
25
 
24
26
  ### General Rules
27
+
25
28
  - 🚫 **NEVER** use ASCII tables (┌─┬─┐ style) for ANY purpose
26
29
  - 🚫 **NEVER** use letter options (A, B, C) - always use numbers (1, 2, 3)
27
30
  - ✅ **ALWAYS** use numbered list format: `N - **Option**: Description`
@@ -33,6 +36,7 @@
33
36
  - ⚠️ **ALWAYS** show numbered options at checkpoints - NEVER ask "approve?" without options
34
37
 
35
38
  ### Functional Requirements Rules
39
+
36
40
  - ✅ **ALWAYS** start with user/goal clarification before listing FRs
37
41
  - ✅ **ALWAYS** include User Story format: "As a {user}, I want {action} so that {benefit}"
38
42
  - ✅ **ALWAYS** include testable Acceptance Criteria (binary pass/fail)
@@ -40,6 +44,7 @@
40
44
  - ✅ **ALWAYS** identify dependencies between FRs
41
45
 
42
46
  ### Non-Functional Requirements Rules
47
+
43
48
  - ✅ **ALWAYS** walk through ALL 5 NFR categories (Performance, Scalability, Security, Reliability, Compliance)
44
49
  - ✅ **ALWAYS** ensure NFRs have measurable metrics (not vague)
45
50
  - ✅ **ALWAYS** define SLOs for critical requirements
@@ -119,6 +119,7 @@ Intent → Requirements → Units → Stories → Bolts
119
119
  - [ ] Bolt dependencies respect story dependencies
120
120
 
121
121
  **Validation Outcome:**
122
+
122
123
  - ✅ = Complete traceability
123
124
  - ⚠️ = Partial traceability (gaps identified)
124
125
  - ❌ = Broken traceability (must fix before Construction)