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.
- package/flows/aidlc/README.md +21 -0
- package/flows/aidlc/agents/README.md +15 -0
- package/flows/aidlc/agents/inception-agent.md +6 -0
- package/flows/aidlc/agents/master-agent.md +1 -0
- package/flows/aidlc/memory-bank.yaml +21 -0
- package/flows/aidlc/skills/README.md +5 -0
- package/flows/aidlc/skills/construction/bolt-list.md +3 -0
- package/flows/aidlc/skills/construction/bolt-start.md +223 -11
- package/flows/aidlc/skills/inception/requirements.md +5 -0
- package/flows/aidlc/skills/inception/review.md +1 -0
- package/flows/aidlc/skills/inception/risks.md +5 -0
- package/flows/aidlc/skills/inception/story-create.md +115 -0
- package/flows/aidlc/skills/master/analyze-context.md +4 -4
- package/flows/aidlc/skills/master/code-elevate.md +10 -0
- package/flows/aidlc/skills/master/project-init.md +2 -2
- package/flows/aidlc/skills/operations/build.md +2 -0
- package/flows/aidlc/skills/operations/rollback.md +1 -0
- package/flows/aidlc/templates/README.md +9 -0
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-04-implementation-walkthrough-template.md +18 -14
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +1 -0
- package/flows/aidlc/templates/construction/construction-guide.md +3 -0
- package/flows/aidlc/templates/construction/elevation-dynamic-model-template.md +12 -0
- package/flows/aidlc/templates/construction/elevation-static-model-template.md +6 -0
- package/flows/aidlc/templates/construction/ui-patterns.md +74 -1
- package/flows/aidlc/templates/inception/requirements-template.md +5 -0
- package/flows/aidlc/templates/inception/story-template.md +73 -0
- package/flows/aidlc/templates/standards/api-conventions.guide.md +4 -0
- package/lib/InstallerFactory.js +19 -15
- package/lib/analytics/env-detector.d.ts +16 -0
- package/lib/analytics/index.d.ts +6 -0
- package/lib/analytics/machine-id.d.ts +9 -0
- package/lib/analytics/tracker.d.ts +70 -0
- package/lib/installer.js +47 -166
- package/lib/mcp/FigmaMCPProvider.js +70 -0
- package/lib/mcp/constants.js +15 -0
- package/lib/mcp/index.js +35 -0
- package/package.json +3 -3
- package/scripts/bolt-complete.js +8 -56
- package/scripts/lib/frontmatter-utils.js +75 -0
- package/scripts/status-integrity.js +5 -55
- package/extensions/iris-dashboard-0.0.1.vsix +0 -0
package/flows/aidlc/README.md
CHANGED
|
@@ -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
|
-
**
|
|
522
|
+
**Required artifacts are defined by the bolt type definition file.**
|
|
304
523
|
|
|
305
|
-
|
|
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)
|