project-iris 0.2.3 → 0.3.1
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/commands/construction-agent.md +1 -1
- package/flows/aidlc/commands/operations-agent.md +1 -0
- package/flows/aidlc/skills/construction/bolt-start.md +194 -12
- package/flows/aidlc/skills/inception/story-create.md +60 -0
- package/flows/aidlc/skills/inception/units.md +52 -1
- package/flows/aidlc/skills/master/project-init.md +36 -6
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +86 -17
- package/flows/aidlc/templates/standards/api-conventions.guide.md +305 -0
- package/flows/aidlc/templates/standards/system-architecture.guide.md +268 -0
- package/flows/aidlc/templates/standards/ux-guide.guide.md +231 -0
- package/package.json +1 -1
- package/scripts/bolt-complete.js +56 -4
|
@@ -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
|
-
- **
|
|
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
|
|
|
@@ -153,9 +159,22 @@ Based on bolt state:
|
|
|
153
159
|
- **completed** → Inform user bolt is done
|
|
154
160
|
- **blocked** → Show blocker, ask how to resolve
|
|
155
161
|
|
|
156
|
-
### 6. Update Bolt File on Start (CRITICAL -
|
|
162
|
+
### 6. Update Bolt File on Start (CRITICAL - HARD GATE)
|
|
157
163
|
|
|
158
|
-
|
|
164
|
+
**⛔ HARD GATE - MUST EXECUTE BEFORE ANY STAGE WORK**
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
168
|
+
│ BOLT FILE UPDATE - NON-NEGOTIABLE │
|
|
169
|
+
│ │
|
|
170
|
+
│ You CANNOT proceed to stage work until you have: │
|
|
171
|
+
│ 1. Used the Edit tool to update bolt.md │
|
|
172
|
+
│ 2. Verified the edit was applied │
|
|
173
|
+
│ 3. Shown the user confirmation of the update │
|
|
174
|
+
│ │
|
|
175
|
+
│ This is a BLOCKING GATE - no exceptions. │
|
|
176
|
+
└─────────────────────────────────────────────────────────────┘
|
|
177
|
+
```
|
|
159
178
|
|
|
160
179
|
When transitioning from `planned` to `in-progress`:
|
|
161
180
|
|
|
@@ -167,11 +186,23 @@ current_stage: {first-stage} # was: null (e.g., "domain-design")
|
|
|
167
186
|
---
|
|
168
187
|
```
|
|
169
188
|
|
|
170
|
-
**
|
|
189
|
+
**Verification Output (REQUIRED):**
|
|
190
|
+
|
|
191
|
+
After editing, output this confirmation to the user:
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
✅ Bolt file updated: {bolt-id}/bolt.md
|
|
195
|
+
- status: planned → in-progress
|
|
196
|
+
- started: {timestamp}
|
|
197
|
+
- current_stage: {stage-name}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Why This Gate Exists:**
|
|
171
201
|
|
|
172
202
|
1. Progress is tracked even if execution is interrupted
|
|
173
203
|
2. Other tools/agents see accurate status
|
|
174
204
|
3. Resumption works correctly
|
|
205
|
+
4. **Prevents "Lost in the Middle" bug where updates are skipped**
|
|
175
206
|
|
|
176
207
|
**Also update construction log** (see "Update Construction Log" section below).
|
|
177
208
|
|
|
@@ -194,19 +225,143 @@ For the current stage, follow the bolt type definition:
|
|
|
194
225
|
{From bolt type definition}
|
|
195
226
|
|
|
196
227
|
### Stories in Scope
|
|
197
|
-
{From bolt instance}
|
|
228
|
+
{From bolt instance - show with status}
|
|
229
|
+
- [ ] 001-story-one (pending)
|
|
230
|
+
- [ ] 002-story-two (pending)
|
|
198
231
|
```
|
|
199
232
|
|
|
200
233
|
2. **Perform Activities**:
|
|
201
234
|
- Follow bolt type's activity instructions exactly
|
|
202
235
|
- Create artifacts as specified
|
|
203
236
|
- Respect constraints (e.g., "no code in this stage")
|
|
237
|
+
- **For code generation stages**: Follow story-by-story execution (see 7b)
|
|
204
238
|
|
|
205
239
|
3. **Generate Outputs**:
|
|
206
240
|
- Create specified output artifacts
|
|
207
241
|
- Use templates if specified by bolt type
|
|
208
242
|
- Place in correct paths per schema
|
|
209
243
|
|
|
244
|
+
### 7b. Story-by-Story Execution (Code Generation Stages) - HARD GATE
|
|
245
|
+
|
|
246
|
+
**⛔ HARD GATE - SEQUENTIAL STORY EXECUTION REQUIRED**
|
|
247
|
+
|
|
248
|
+
```text
|
|
249
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
250
|
+
│ STORY-BY-STORY EXECUTION - NON-NEGOTIABLE │
|
|
251
|
+
│ │
|
|
252
|
+
│ ⛔ FORBIDDEN: Implementing multiple stories at once │
|
|
253
|
+
│ ⛔ FORBIDDEN: Skipping story file reads │
|
|
254
|
+
│ ⛔ FORBIDDEN: Not updating stories_progress in bolt file │
|
|
255
|
+
│ │
|
|
256
|
+
│ You MUST process stories ONE AT A TIME in sequence. │
|
|
257
|
+
│ Each story requires its own announce → read → implement → │
|
|
258
|
+
│ update cycle. Batch implementation = broken traceability. │
|
|
259
|
+
└─────────────────────────────────────────────────────────────┘
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**For EACH story in bolt's stories array, execute this exact sequence:**
|
|
263
|
+
|
|
264
|
+
```text
|
|
265
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
266
|
+
│ STORY EXECUTION LOOP (repeat for each story) │
|
|
267
|
+
│ │
|
|
268
|
+
│ STEP A: Announce start │
|
|
269
|
+
│ Output: "⏳ Story {n}/{total}: {story-id} - {title}" │
|
|
270
|
+
│ │
|
|
271
|
+
│ STEP B: Read story file (MANDATORY) │
|
|
272
|
+
│ Action: Read {intent}/units/{unit}/stories/{story-id}.md │
|
|
273
|
+
│ Purpose: Extract acceptance criteria for implementation │
|
|
274
|
+
│ │
|
|
275
|
+
│ STEP C: Implement code for THIS story only │
|
|
276
|
+
│ Action: Create/modify code to satisfy acceptance criteria │
|
|
277
|
+
│ Add traceability: // Story: {story-id} │
|
|
278
|
+
│ │
|
|
279
|
+
│ STEP D: Update bolt file stories_progress (MANDATORY) │
|
|
280
|
+
│ Action: Edit bolt.md to mark story as completed │
|
|
281
|
+
│ │
|
|
282
|
+
│ STEP E: Announce completion │
|
|
283
|
+
│ Output: "✅ Story {story-id}: Implemented → `{files}`" │
|
|
284
|
+
│ │
|
|
285
|
+
│ STEP F: Show updated progress list │
|
|
286
|
+
│ Then proceed to next story (back to STEP A) │
|
|
287
|
+
└─────────────────────────────────────────────────────────────┘
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Story Progress Display (show after EACH story completion):**
|
|
291
|
+
|
|
292
|
+
```markdown
|
|
293
|
+
### Story Progress ({completed}/{total})
|
|
294
|
+
|
|
295
|
+
1. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
|
|
296
|
+
2. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
|
|
297
|
+
3. ⏳ **{SSS}-{story-slug}**: In Progress
|
|
298
|
+
4. [ ] **{SSS}-{story-slug}**: Pending
|
|
299
|
+
5. [ ] **{SSS}-{story-slug}**: Pending
|
|
300
|
+
6. [ ] **{SSS}-{story-slug}**: Pending
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Update bolt file after EACH story (not at the end):**
|
|
304
|
+
|
|
305
|
+
```yaml
|
|
306
|
+
stories_progress:
|
|
307
|
+
- id: 001-database-init
|
|
308
|
+
status: completed
|
|
309
|
+
implemented_at: {timestamp}
|
|
310
|
+
- id: 002-schema-tables
|
|
311
|
+
status: completed
|
|
312
|
+
implemented_at: {timestamp}
|
|
313
|
+
- id: 003-crud-operations
|
|
314
|
+
status: in-progress
|
|
315
|
+
- id: 004-query-helpers
|
|
316
|
+
status: pending
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Why This Pattern Exists:**
|
|
320
|
+
|
|
321
|
+
1. **Traceability**: Each piece of code maps to a specific story
|
|
322
|
+
2. **Resumability**: If interrupted, we know exactly where to continue
|
|
323
|
+
3. **Verification**: We can validate that ALL stories were addressed
|
|
324
|
+
4. **Visibility**: User sees clear progress through the work
|
|
325
|
+
5. **Quality**: Reading acceptance criteria prevents missed requirements
|
|
326
|
+
|
|
327
|
+
### 7c. Final Regression Check (After All Stories Implemented)
|
|
328
|
+
|
|
329
|
+
**⛔ REQUIRED: After implementing all stories, verify no regressions**
|
|
330
|
+
|
|
331
|
+
```text
|
|
332
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
333
|
+
│ REGRESSION CHECK - BEFORE STAGE CHECKPOINT │
|
|
334
|
+
│ │
|
|
335
|
+
│ After ALL stories are implemented, you MUST verify: │
|
|
336
|
+
│ 1. Re-read acceptance criteria from FIRST story │
|
|
337
|
+
│ 2. Verify the implementation still satisfies those ACs │
|
|
338
|
+
│ 3. Repeat for each story in order │
|
|
339
|
+
│ 4. Report any regressions found │
|
|
340
|
+
│ │
|
|
341
|
+
│ Later stories may have broken earlier implementations. │
|
|
342
|
+
│ Catch this BEFORE moving to Testing stage. │
|
|
343
|
+
└─────────────────────────────────────────────────────────────┘
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Regression Check Output:**
|
|
347
|
+
|
|
348
|
+
```text
|
|
349
|
+
### Regression Check ({stories_count} stories)
|
|
350
|
+
|
|
351
|
+
1. ✅ **{story-1}**: All ACs still valid
|
|
352
|
+
2. ✅ **{story-2}**: All ACs still valid
|
|
353
|
+
3. ⚠️ **{story-3}**: AC2 regression - {description} → FIX REQUIRED
|
|
354
|
+
4. ✅ **{story-4}**: All ACs still valid
|
|
355
|
+
|
|
356
|
+
{If regressions found: Fix before proceeding to checkpoint}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Why This Check Exists:**
|
|
360
|
+
|
|
361
|
+
- Story N implementation may modify shared code
|
|
362
|
+
- Changes could invalidate Story 1-N-1 acceptance criteria
|
|
363
|
+
- Catching regressions early prevents cascade failures in Testing stage
|
|
364
|
+
|
|
210
365
|
### 8. Handle Checkpoints (As Defined by Bolt Type)
|
|
211
366
|
|
|
212
367
|
The bolt type definition specifies:
|
|
@@ -248,14 +403,29 @@ If the bolt type specifies automatic validation criteria, follow those rules.
|
|
|
248
403
|
└─────────────────────────────────────────────────────────────┘
|
|
249
404
|
```
|
|
250
405
|
|
|
251
|
-
### 9. Update Bolt File on Stage Completion
|
|
406
|
+
### 9. Update Bolt File on Stage Completion (HARD GATE)
|
|
407
|
+
|
|
408
|
+
**⛔ HARD GATE - MUST EXECUTE AFTER EACH STAGE**
|
|
252
409
|
|
|
253
410
|
**Trigger**: After EACH stage completion (not just final stage).
|
|
254
411
|
|
|
255
|
-
|
|
412
|
+
```text
|
|
413
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
414
|
+
│ STAGE COMPLETION UPDATE - NON-NEGOTIABLE │
|
|
415
|
+
│ │
|
|
416
|
+
│ Before presenting checkpoint to user, you MUST: │
|
|
417
|
+
│ 1. Use Edit tool to update bolt.md with stage completion │
|
|
418
|
+
│ 2. Show verification output to user │
|
|
419
|
+
│ 3. Only THEN present the checkpoint prompt │
|
|
420
|
+
│ │
|
|
421
|
+
│ Stages not recorded in bolt.md = stages not done. │
|
|
422
|
+
└─────────────────────────────────────────────────────────────┘
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Required Updates:**
|
|
256
426
|
|
|
257
427
|
- Add stage to `stages_completed` with timestamp
|
|
258
|
-
- Update `current_stage` to next stage
|
|
428
|
+
- Update `current_stage` to next stage (or null if final)
|
|
259
429
|
|
|
260
430
|
**⚠️ TIMESTAMP FORMAT**: See `memory-bank.yaml` → `conventions.timestamps`
|
|
261
431
|
|
|
@@ -270,9 +440,18 @@ stages_completed:
|
|
|
270
440
|
---
|
|
271
441
|
```
|
|
272
442
|
|
|
443
|
+
**Verification Output (REQUIRED):**
|
|
444
|
+
|
|
445
|
+
```text
|
|
446
|
+
✅ Stage recorded: {stage-name}
|
|
447
|
+
- stages_completed: [{list of completed stages}]
|
|
448
|
+
- current_stage: {next-stage-name}
|
|
449
|
+
- artifact: {artifact-filename}
|
|
450
|
+
```
|
|
451
|
+
|
|
273
452
|
**If this is the FINAL stage**, proceed to **Step 10** (bolt completion).
|
|
274
453
|
|
|
275
|
-
**If this is NOT the final stage**, update bolt file
|
|
454
|
+
**If this is NOT the final stage**, update bolt file, show verification, then present checkpoint.
|
|
276
455
|
|
|
277
456
|
---
|
|
278
457
|
|
|
@@ -400,6 +579,13 @@ If construction log doesn't exist, create it using template:
|
|
|
400
579
|
**Type**: {bolt-type}
|
|
401
580
|
**Progress**: Stage {n} of {total}
|
|
402
581
|
|
|
582
|
+
### Story Progress ({completed}/{total})
|
|
583
|
+
|
|
584
|
+
1. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
|
|
585
|
+
2. ✅ **{SSS}-{story-slug}**: Implemented → `{files}`
|
|
586
|
+
3. ⏳ **{SSS}-{story-slug}**: In Progress
|
|
587
|
+
4. [ ] **{SSS}-{story-slug}**: Pending
|
|
588
|
+
|
|
403
589
|
### Activities Performed
|
|
404
590
|
1. ✅ {activity 1}
|
|
405
591
|
2. ✅ {activity 2}
|
|
@@ -408,10 +594,6 @@ If construction log doesn't exist, create it using template:
|
|
|
408
594
|
### Artifacts Created
|
|
409
595
|
- `{path/to/artifact}` - {description}
|
|
410
596
|
|
|
411
|
-
### Stories Addressed
|
|
412
|
-
- ✅ **{SSS}-{story-slug}**: {criteria} - Complete
|
|
413
|
-
- ⏳ **{SSS}-{story-slug}**: {criteria} - In Progress
|
|
414
|
-
|
|
415
597
|
---
|
|
416
598
|
|
|
417
599
|
### 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
|
|
129
|
-
- **Brownfield**:
|
|
130
|
-
- **Greenfield**:
|
|
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** -
|
|
341
|
-
- {If greenfield}:
|
|
342
|
-
- {If brownfield}:
|
|
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
|