project-iris 0.2.2 → 0.3.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.
@@ -35,7 +35,7 @@ You are now the **Construction Agent** for iris AI-DLC.
35
35
  - **List Bolts**: `.iris/aidlc/skills/construction/bolt-list.md` → View all bolts
36
36
  - **Bolt Status**: `.iris/aidlc/skills/construction/bolt-status.md` → Detailed bolt status
37
37
  - **Start/Continue Bolt**: `.iris/aidlc/skills/construction/bolt-start.md` → Execute bolt stages
38
- - **Plan Bolts**: `.iris/aidlc/skills/construction/bolt-plan.md` → Redirects to Inception
38
+ - **Replan Bolts**: `.iris/aidlc/skills/construction/bolt-replan.md` → Modify bolt plan during construction
39
39
  - **Menu**: `.iris/aidlc/skills/construction/navigator.md` → Show skills
40
40
 
41
41
  ---
@@ -36,6 +36,7 @@ You are now the **Operations Agent** for iris AI-DLC.
36
36
  - **Deploy**: `.iris/aidlc/skills/operations/deploy.md` → Deploy to environment
37
37
  - **Verify**: `.iris/aidlc/skills/operations/verify.md` → Validate deployment
38
38
  - **Monitor**: `.iris/aidlc/skills/operations/monitor.md` → Setup observability
39
+ - **Rollback**: `.iris/aidlc/skills/operations/rollback.md` → Rollback deployment
39
40
  - **Menu**: `.iris/aidlc/skills/operations/navigator.md` → Show skills
40
41
 
41
42
  ---
@@ -21,6 +21,9 @@
21
21
  - ✅ Checkpoint prompts clear and actionable
22
22
  - ✅ Code references stories (comments: `// Story: S-XXX`)
23
23
  - ✅ Tests reference acceptance criteria they verify
24
+ - ✅ **Stories processed sequentially in code generation stages**
25
+ - ✅ **Story progress list shown during execution**
26
+ - ✅ **stories_progress updated in bolt file after each story**
24
27
 
25
28
  ## Failure Modes
26
29
 
@@ -30,6 +33,9 @@
30
33
  - ❌ Not reading bolt type definition first
31
34
  - ❌ Code without story traceability comments
32
35
  - ❌ Tests without acceptance criteria references
36
+ - ❌ **Implementing all stories at once without tracking progress**
37
+ - ❌ **Not showing story progress during code generation**
38
+ - ❌ **Stories implemented out of order without justification**
33
39
 
34
40
  ---
35
41
 
@@ -194,19 +200,75 @@ For the current stage, follow the bolt type definition:
194
200
  {From bolt type definition}
195
201
 
196
202
  ### Stories in Scope
197
- {From bolt instance}
203
+ {From bolt instance - show with status}
204
+ - [ ] 001-story-one (pending)
205
+ - [ ] 002-story-two (pending)
198
206
  ```
199
207
 
200
208
  2. **Perform Activities**:
201
209
  - Follow bolt type's activity instructions exactly
202
210
  - Create artifacts as specified
203
211
  - Respect constraints (e.g., "no code in this stage")
212
+ - **For code generation stages**: Follow story-by-story execution (see 7b)
204
213
 
205
214
  3. **Generate Outputs**:
206
215
  - Create specified output artifacts
207
216
  - Use templates if specified by bolt type
208
217
  - Place in correct paths per schema
209
218
 
219
+ ### 7b. Story-by-Story Execution (Code Generation Stages)
220
+
221
+ **⛔ CRITICAL**: When executing stages that involve code generation (e.g., Stage 4 in DDD bolts), process stories SEQUENTIALLY:
222
+
223
+ ```text
224
+ ┌─────────────────────────────────────────────────────────────┐
225
+ │ STORY-BY-STORY EXECUTION │
226
+ │ │
227
+ │ For EACH story in bolt's stories array: │
228
+ │ 1. Announce: "⏳ Story {n}/{total}: {story-id}" │
229
+ │ 2. Read story file for acceptance criteria │
230
+ │ 3. Implement code for that story │
231
+ │ 4. Update stories_progress in bolt file │
232
+ │ 5. Announce: "✅ Story {story-id}: Implemented" │
233
+ │ │
234
+ │ DO NOT batch implement - track each story individually! │
235
+ └─────────────────────────────────────────────────────────────┘
236
+ ```
237
+
238
+ **Story Progress Display (show after each story)**:
239
+
240
+ ```markdown
241
+ ### Story Progress ({completed}/{total})
242
+
243
+ 1. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
244
+ 2. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
245
+ 3. ⏳ **{SSS}-{story-slug}**: In Progress
246
+ 4. [ ] **{SSS}-{story-slug}**: Pending
247
+ 5. [ ] **{SSS}-{story-slug}**: Pending
248
+ 6. [ ] **{SSS}-{story-slug}**: Pending
249
+ ```
250
+
251
+ **Update bolt file after each story:**
252
+
253
+ ```yaml
254
+ stories_progress:
255
+ - id: 001-database-init
256
+ status: completed
257
+ implemented_at: {timestamp}
258
+ - id: 002-schema-tables
259
+ status: completed
260
+ implemented_at: {timestamp}
261
+ - id: 003-crud-operations
262
+ status: in-progress
263
+ - id: 004-query-helpers
264
+ status: pending
265
+ ```
266
+
267
+ This ensures:
268
+ - Clear visibility into which story is being worked on
269
+ - Ability to resume if interrupted
270
+ - Validation that all stories are addressed
271
+
210
272
  ### 8. Handle Checkpoints (As Defined by Bolt Type)
211
273
 
212
274
  The bolt type definition specifies:
@@ -400,6 +462,13 @@ If construction log doesn't exist, create it using template:
400
462
  **Type**: {bolt-type}
401
463
  **Progress**: Stage {n} of {total}
402
464
 
465
+ ### Story Progress ({completed}/{total})
466
+
467
+ 1. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
468
+ 2. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
469
+ 3. ⏳ **{SSS}-{story-slug}**: In Progress
470
+ 4. [ ] **{SSS}-{story-slug}**: Pending
471
+
403
472
  ### Activities Performed
404
473
  1. ✅ {activity 1}
405
474
  2. ✅ {activity 2}
@@ -408,10 +477,6 @@ If construction log doesn't exist, create it using template:
408
477
  ### Artifacts Created
409
478
  - `{path/to/artifact}` - {description}
410
479
 
411
- ### Stories Addressed
412
- - ✅ **{SSS}-{story-slug}**: {criteria} - Complete
413
- - ⏳ **{SSS}-{story-slug}**: {criteria} - In Progress
414
-
415
480
  ---
416
481
 
417
482
  ### Checkpoint (if defined by bolt type)
@@ -17,6 +17,8 @@
17
17
  - ✅ Each story has: User Story format, Acceptance Criteria, Priority
18
18
  - ✅ story-index.md updated with ✅ GENERATED markers
19
19
  - ✅ Unit-brief.md updated with story summary
20
+ - ✅ **All assigned FRs have corresponding stories (validation passed)**
21
+ - ✅ **FR-to-story mapping shown in output**
20
22
 
21
23
  ## Failure Modes
22
24
 
@@ -24,6 +26,8 @@
24
26
  - ❌ Missing acceptance criteria in stories
25
27
  - ❌ Not updating story-index.md
26
28
  - ❌ Stories without INVEST criteria validation
29
+ - ❌ **Assigned FRs without corresponding stories**
30
+ - ❌ **Proceeding without FR-to-story validation**
27
31
 
28
32
  ---
29
33
 
@@ -144,6 +148,54 @@ Organize stories for bolt planning:
144
148
  - **Should**: Important but not blocking (Error handling, validation)
145
149
  - **Could**: Nice to have (Advanced features, optimizations)
146
150
 
151
+ ### 4b. Validate FR-to-Story Coverage (CRITICAL - HARD GATE)
152
+
153
+ **⛔ HARD GATE**: Before creating story files, validate that ALL assigned FRs have stories.
154
+
155
+ ```text
156
+ ┌─────────────────────────────────────────────────────────────┐
157
+ │ FR-TO-STORY COVERAGE VALIDATION │
158
+ │ → Read "Assigned Requirements" from unit-brief.md │
159
+ │ → Check each FR has at least one story │
160
+ │ → If any FR is uncovered: STOP and create stories for it │
161
+ └─────────────────────────────────────────────────────────────┘
162
+ ```
163
+
164
+ **Validation output:**
165
+
166
+ ```markdown
167
+ ## FR-to-Story Coverage
168
+
169
+ ### Assigned FRs from Unit Brief
170
+ - **FR-1**: {description}
171
+ - **FR-2**: {description}
172
+ - **FR-N**: {description}
173
+
174
+ ### Coverage Check
175
+
176
+ - ✅ **FR-1**: {description} → `{SSS}-{story-slug}`, `{SSS}-{story-slug}`
177
+ - ✅ **FR-2**: {description} → `{SSS}-{story-slug}`
178
+ - ❌ **FR-3**: {description} → UNCOVERED
179
+
180
+ ### Validation Result
181
+ - ✅ All FRs covered by stories (proceed)
182
+ - ❌ {n} FRs uncovered - MUST create stories before proceeding:
183
+ - FR-X: {description} - NEEDS STORY
184
+ ```
185
+
186
+ **If any FRs are uncovered:**
187
+
188
+ 1. **DO NOT PROCEED** to creating story files
189
+ 2. Create stories for uncovered FRs
190
+ 3. Re-run validation until all FRs are covered
191
+
192
+ **Important Notes:**
193
+
194
+ - One FR can map to multiple stories (complex features)
195
+ - Multiple FRs can map to one story (closely related features)
196
+ - Every FR MUST have at least one story
197
+ - This validation catches FRs that were "lost" during decomposition
198
+
147
199
  ### 5. Document Stories
148
200
 
149
201
  1. **Read Path**: Check `schema.stories` from `.iris/aidlc/memory-bank.yaml`
@@ -294,6 +346,14 @@ This ensures each unit-brief shows its story count at a glance.
294
346
  ```markdown
295
347
  ## Stories Created: {unit-name}
296
348
 
349
+ ### FR-to-Story Coverage ✅
350
+
351
+ - ✅ **FR-1**: {description} → `{SSS}-{story-slug}`, `{SSS}-{story-slug}`
352
+ - ✅ **FR-2**: {description} → `{SSS}-{story-slug}`
353
+ - ✅ **FR-3**: {description} → `{SSS}-{story-slug}`
354
+
355
+ **All {n} assigned FRs have corresponding stories.**
356
+
297
357
  ### Story Summary
298
358
 
299
359
  - [ ] **S1**: User can register - Must - No dependencies
@@ -15,7 +15,8 @@
15
15
 
16
16
  - ✅ Unit directories created with unit-brief.md files
17
17
  - ✅ Dependency graph shown visually
18
- - ✅ All FRs mapped to exactly one unit
18
+ - ✅ **All FRs mapped to exactly one unit (validation passed)**
19
+ - ✅ FR coverage validation output shown
19
20
  - ✅ Frontend unit included if enabled in project type
20
21
 
21
22
  ## Failure Modes
@@ -23,6 +24,8 @@
23
24
  - ❌ Using ASCII table for unit listing
24
25
  - ❌ Not reading project type configuration
25
26
  - ❌ FRs not mapped to units
27
+ - ❌ **Proceeding without FR coverage validation**
28
+ - ❌ **Unmapped FRs not flagged**
26
29
  - ❌ Missing unit-brief.md files
27
30
 
28
31
  ---
@@ -149,6 +152,54 @@ This mapping ensures:
149
152
  - Units have clear scope based on assigned FRs
150
153
  - Stories will be created from unit's assigned FRs (not directly from intent)
151
154
 
155
+ ### 4b. Validate FR Coverage (CRITICAL - HARD GATE)
156
+
157
+ **⛔ HARD GATE**: Before proceeding, validate that ALL FRs are mapped.
158
+
159
+ ```text
160
+ ┌─────────────────────────────────────────────────────────────┐
161
+ │ FR COVERAGE VALIDATION │
162
+ │ → Count FRs in requirements.md │
163
+ │ → Count FRs in mapping │
164
+ │ → If mismatch: STOP and fix before proceeding │
165
+ └─────────────────────────────────────────────────────────────┘
166
+ ```
167
+
168
+ **Validation output:**
169
+
170
+ ```markdown
171
+ ## FR Coverage Validation
172
+
173
+ ### Requirements Count
174
+ - **Total FRs in requirements.md**: {n}
175
+ - **Must Have**: {n}
176
+ - **Should Have**: {n}
177
+ - **Could Have**: {n}
178
+
179
+ ### Mapping Count
180
+ - **FRs mapped to units**: {n}
181
+ - **FRs unmapped**: {list or "None"}
182
+
183
+ ### Validation Result
184
+ - ✅ All FRs mapped (proceed to next step)
185
+ - ❌ {n} FRs unmapped - MUST fix before proceeding:
186
+ - FR-X: {description} - NOT MAPPED
187
+ - FR-Y: {description} - NOT MAPPED
188
+ ```
189
+
190
+ **If any FRs are unmapped:**
191
+
192
+ 1. **DO NOT PROCEED** to creating unit directories
193
+ 2. Review unmapped FRs and assign them to appropriate units
194
+ 3. Re-run validation until all FRs are mapped
195
+
196
+ **Common reasons for unmapped FRs:**
197
+
198
+ - FR was overlooked during domain analysis
199
+ - FR spans multiple bounded contexts (split or create integration unit)
200
+ - FR is an NFR incorrectly labeled as FR (move to NFRs)
201
+ - FR is duplicate (merge with existing)
202
+
152
203
  ### 5. Create Frontend Unit (if enabled)
153
204
 
154
205
  **Skip this step if `frontend.enabled: false`.**
@@ -15,6 +15,7 @@
15
15
 
16
16
  - ✅ project.yaml created with project type AND scenario (greenfield/brownfield/hybrid)
17
17
  - ✅ Scenario detected automatically with user confirmation
18
+ - ✅ .gitignore updated with AI-DLC tooling entries
18
19
  - ✅ Standards created in correct order (dependencies respected)
19
20
  - ✅ Each question is single-focus (not combined)
20
21
  - ✅ Final summary shows all created/skipped standards
@@ -26,6 +27,7 @@
26
27
  - ❌ Creating standard before its dependencies
27
28
  - ❌ Not creating project.yaml
28
29
  - ❌ Not detecting/asking about greenfield vs brownfield scenario
30
+ - ❌ Not updating .gitignore with AI-DLC tooling entries
29
31
 
30
32
  ---
31
33
 
@@ -125,9 +127,9 @@ This appears to be a **brownfield** project (enhancing existing code).
125
127
  2. **Greenfield** - No, ignore existing code, starting fresh
126
128
  3. **Hybrid** - Some features will modify existing, some are new
127
129
 
128
- This affects how the Construction Agent works:
129
- - **Brownfield**: Runs code elevation first to understand existing structure
130
- - **Greenfield**: Starts fresh with domain modeling
130
+ This affects the development flow:
131
+ - **Brownfield**: Master Agent runs code elevation first to understand existing structure
132
+ - **Greenfield**: Construction Agent starts fresh with domain modeling
131
133
  - **Hybrid**: Asks per-intent which flow to use
132
134
  ```
133
135
 
@@ -185,6 +187,33 @@ existing_codebase:
185
187
 
186
188
  This file MUST be created before proceeding to standards facilitation, as other agents (e.g., Inception, Construction) read it to provide context-aware behavior.
187
189
 
190
+ ### 4b. Update .gitignore
191
+
192
+ **Add AI-DLC tooling entries to `.gitignore`** to keep the product repository clean.
193
+
194
+ #### If `.gitignore` exists:
195
+
196
+ Check if entries already exist. If not, append:
197
+
198
+ ```gitignore
199
+
200
+ # AI-DLC tooling (iris, claude)
201
+ .iris/
202
+ .claude/
203
+ ```
204
+
205
+ #### If `.gitignore` doesn't exist:
206
+
207
+ Create it with:
208
+
209
+ ```gitignore
210
+ # AI-DLC tooling (iris, claude)
211
+ .iris/
212
+ .claude/
213
+ ```
214
+
215
+ **Note**: `memory-bank/` is NOT gitignored - it contains valuable project specifications (PRFAQ, intents, stories, standards) that should be version controlled.
216
+
188
217
  ### 5. Check Existing Standards
189
218
 
190
219
  Before creating new standards, check if any exist:
@@ -314,6 +343,7 @@ After completing all standards:
314
343
  - **Type**: {project type} (e.g., full-stack-web)
315
344
  - **Scenario**: {scenario} (greenfield/brownfield/hybrid)
316
345
  - **Config**: `memory-bank/project.yaml`
346
+ - **Gitignore**: `.gitignore` updated with AI-DLC tooling entries
317
347
 
318
348
  ### Standards Created
319
349
 
@@ -337,9 +367,9 @@ Your project is configured as a **{project type}** ({scenario}) using:
337
367
  - Use your chosen libraries and patterns
338
368
  - Follow your testing strategy
339
369
 
340
- **Scenario** - Construction Agent will:
341
- - {If greenfield}: Start with domain modeling (fresh design)
342
- - {If brownfield}: Run code elevation first (analyze existing code)
370
+ **Scenario** - Development flow:
371
+ - {If greenfield}: Construction Agent starts with domain modeling (fresh design)
372
+ - {If brownfield}: Master Agent runs code elevation first (analyze existing code)
343
373
  - {If hybrid}: Ask per-intent which flow to use
344
374
 
345
375
  ### Actions
@@ -349,18 +349,45 @@ Implement CQRS pattern with separate read models for task queries.
349
349
  - **REQUIRED**: Load all bolt folder artifacts (see Bolt Context Loading section)
350
350
  - **OUTPUT**: Source code based on design docs
351
351
 
352
- **Activities**:
352
+ **⛔ CRITICAL: Story-by-Story Execution**
353
+
354
+ ```text
355
+ ┌─────────────────────────────────────────────────────────────┐
356
+ │ STORY-BY-STORY EXECUTION MODE │
357
+ │ │
358
+ │ Stories MUST be implemented SEQUENTIALLY: │
359
+ │ 1. Read bolt's stories array │
360
+ │ 2. For each story in order: │
361
+ │ a. Announce: "Implementing Story: {story-id}" │
362
+ │ b. Read story file for acceptance criteria │
363
+ │ c. Implement code for that story │
364
+ │ d. Update story status in bolt tracking │
365
+ │ e. Show: "Story {story-id}: ✅ Implemented" │
366
+ │ 3. After ALL stories: proceed to checkpoint │
367
+ │ │
368
+ │ DO NOT implement all stories at once without tracking! │
369
+ └─────────────────────────────────────────────────────────────┘
370
+ ```
371
+
372
+ **Story Execution Order:**
373
+
374
+ 1. Read `stories` array from bolt.md frontmatter
375
+ 2. Process stories in the order listed (this order respects dependencies)
376
+ 3. For each story, implement the code needed to satisfy its acceptance criteria
377
+ 4. Track progress visibly to user
378
+
379
+ **Activities** (performed FOR EACH STORY):
353
380
 
354
- 1 - **Setup project structure**: Create scaffolding
355
- 2 - **Implement domain entities/value objects**: Create domain code
356
- 3 - **Implement domain services**: Build service layer
357
- 4 - **Implement application layer**: Create use cases
358
- 5 - **Implement infrastructure**: Build repository implementations
359
- 6 - **Implement presentation layer**: Create API endpoints
360
- 7 - **Add validation and error handling**: Implement guards and handlers
361
- 8 - **Add logging and instrumentation**: Add observability code
362
- 9 - **Add story traceability**: Add `// Story: S-XXX` comments linking code to stories
363
- 10 - **Run code quality validation**: Execute linting, type checking, build
381
+ 1 - **Announce story**: Display "⏳ Implementing Story: {story-id}: {title}"
382
+ 2 - **Read story file**: Load `stories/{story-id}.md` for acceptance criteria
383
+ 3 - **Implement code**: Create/modify code to satisfy acceptance criteria
384
+ 4 - **Add traceability**: Add `// Story: {story-id}` comments to code
385
+ 5 - **Mark progress**: Display "✅ Story {story-id}: Implemented"
386
+
387
+ **After ALL stories are implemented:**
388
+
389
+ 6 - **Setup project structure**: Verify scaffolding exists
390
+ 7 - **Run code quality validation**: Execute linting, type checking, build
364
391
 
365
392
  **Artifact**: Source code in unit directory
366
393
  **Location**: `src/{unit}/` or as defined in project structure
@@ -405,6 +432,7 @@ src/{unit}/
405
432
 
406
433
  **Completion Criteria**:
407
434
 
435
+ - [ ] **All stories implemented in order** (see Story Progress below)
408
436
  - [ ] All domain models implemented
409
437
  - [ ] All use cases implemented
410
438
  - [ ] All API endpoints implemented
@@ -422,6 +450,15 @@ src/{unit}/
422
450
  ```text
423
451
  ## Stage 4 Complete: Code Generation
424
452
 
453
+ ### Story Progress ({n}/{n})
454
+
455
+ 1. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
456
+ 2. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
457
+ 3. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
458
+ 4. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
459
+ 5. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
460
+ 6. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
461
+
425
462
  ### Code Generated
426
463
  - {n} domain entities
427
464
  - {n} use cases
@@ -433,9 +470,8 @@ src/{unit}/
433
470
  - ✅ Build: Passed
434
471
  - ✅ Traceability: All files linked to stories
435
472
 
436
- ### Story Coverage
437
- - S-001: {files implementing}
438
- - S-002: {files implementing}
473
+ ### Acceptance Criteria Preview
474
+ Each story's ACs will be validated in Stage 5 (Testing).
439
475
 
440
476
  Ready to proceed to testing?
441
477
  1 - Yes, continue to Stage 5
@@ -560,19 +596,42 @@ Story S-002: Password Reset
560
596
 
561
597
  ## State Tracking
562
598
 
563
- Bolt instance tracks progress:
599
+ Bolt instance tracks progress at both stage and story level:
564
600
 
565
601
  ```yaml
566
602
  ---
567
- current_stage: design
603
+ current_stage: code
568
604
  stages_completed:
569
- - name: model
605
+ - name: domain-design
570
606
  completed: 2024-12-05T10:00:00Z
571
607
  artifact: ddd-01-domain-design.md
608
+ - name: logical-design
609
+ completed: 2024-12-05T12:00:00Z
610
+ artifact: ddd-02-logical-design.md
572
611
  status: in-progress
612
+
613
+ # Story-level tracking (updated during Stage 4)
614
+ stories_progress:
615
+ - id: 001-database-init
616
+ status: completed
617
+ implemented_at: 2024-12-05T14:00:00Z
618
+ - id: 002-schema-tables
619
+ status: completed
620
+ implemented_at: 2024-12-05T14:30:00Z
621
+ - id: 003-crud-operations
622
+ status: in-progress
623
+ - id: 004-query-helpers
624
+ status: pending
573
625
  ---
574
626
  ```
575
627
 
628
+ **Story status values:**
629
+
630
+ - `pending` - Not yet started
631
+ - `in-progress` - Currently being implemented
632
+ - `completed` - Implementation done (not yet tested)
633
+ - `verified` - Tests passing (after Stage 5)
634
+
576
635
  ---
577
636
 
578
637
  ## Bolt Context Loading