@lipter7/blueprint 2.0.0 → 2.0.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.
Files changed (49) hide show
  1. package/README.md +20 -16
  2. package/bin/install.js +717 -37
  3. package/bin/install.test.js +870 -0
  4. package/blueprint/bin/blueprint-tools.js +250 -0
  5. package/blueprint/bin/blueprint-tools.test.js +443 -0
  6. package/blueprint/references/planning-config.md +6 -6
  7. package/blueprint/references/verification-gates.md +346 -0
  8. package/blueprint/templates/codebase/architecture.md +2 -2
  9. package/blueprint/templates/codebase/structure.md +3 -3
  10. package/blueprint/templates/config.json +7 -1
  11. package/blueprint/templates/state.md +31 -0
  12. package/blueprint/workflows/complete-milestone.md +94 -5
  13. package/blueprint/workflows/discuss-phase.md +86 -21
  14. package/blueprint/workflows/map-codebase.md +26 -0
  15. package/blueprint/workflows/new-milestone.md +219 -1
  16. package/blueprint/workflows/new-project.md +407 -67
  17. package/blueprint/workflows/plan-phase.md +108 -4
  18. package/blueprint/workflows/progress.md +1 -1
  19. package/blueprint/workflows/research-phase.md +216 -1
  20. package/blueprint/workflows/settings-cursor.md +254 -0
  21. package/blueprint/workflows/settings.md +2 -2
  22. package/blueprint/workflows/verify-work.md +49 -1
  23. package/commands/bp/add-phase.md +1 -1
  24. package/commands/bp/add-todo.md +1 -1
  25. package/commands/bp/audit-milestone.md +1 -1
  26. package/commands/bp/check-todos.md +1 -1
  27. package/commands/bp/complete-milestone.md +1 -1
  28. package/commands/bp/debug.md +18 -1
  29. package/commands/bp/discuss-phase.md +1 -1
  30. package/commands/bp/execute-phase.md +1 -1
  31. package/commands/bp/help.md +1 -1
  32. package/commands/bp/insert-phase.md +1 -1
  33. package/commands/bp/join-discord.md +1 -1
  34. package/commands/bp/list-phase-assumptions.md +1 -1
  35. package/commands/bp/map-codebase.md +1 -1
  36. package/commands/bp/new-milestone.md +1 -1
  37. package/commands/bp/new-project.md +1 -1
  38. package/commands/bp/pause-work.md +1 -1
  39. package/commands/bp/plan-milestone-gaps.md +1 -1
  40. package/commands/bp/plan-phase.md +1 -1
  41. package/commands/bp/progress.md +1 -1
  42. package/commands/bp/quick.md +1 -1
  43. package/commands/bp/remove-phase.md +1 -1
  44. package/commands/bp/research-phase.md +1 -1
  45. package/commands/bp/resume-work.md +1 -1
  46. package/commands/bp/set-profile.md +1 -1
  47. package/commands/bp/settings.md +1 -1
  48. package/commands/bp/verify-work.md +1 -1
  49. package/package.json +1 -1
@@ -43,7 +43,7 @@ The document should describe what you want to build.
43
43
  INIT=$(node ~/.claude/blueprint/bin/blueprint-tools.js init new-project)
44
44
  ```
45
45
 
46
- Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`.
46
+ Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `mapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`.
47
47
 
48
48
  **If `project_exists` is true:** Error — project already initialized. Use `/bp:progress`.
49
49
 
@@ -71,7 +71,31 @@ Run `/bp:map-codebase` first, then return to `/bp:new-project`
71
71
  ```
72
72
  Exit command.
73
73
 
74
- **If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
74
+ **If "Skip mapping" OR `needs_codebase_map` is false:** Continue.
75
+
76
+ **If `has_codebase_map` is true AND `has_git` is true:**
77
+
78
+ The project already has a codebase map. Check if it's stale:
79
+
80
+ ```bash
81
+ STALENESS=$(node ~/.claude/blueprint/bin/blueprint-tools.js codebase-staleness-check)
82
+ ```
83
+
84
+ Parse `STALENESS` JSON. If `stale` is true, present to the user:
85
+
86
+ ```
87
+ Existing codebase map may be outdated.
88
+ Last mapped: {last_mapped_at}
89
+ Changes since: {files_changed} files, +{lines_added}/-{lines_removed} lines
90
+
91
+ Would you like to refresh the codebase map before starting the project?
92
+ ```
93
+
94
+ Options:
95
+ 1. **Refresh** — Full remap before proceeding
96
+ 2. **Skip** — Use existing codebase docs
97
+
98
+ If the user chooses Refresh, run the full remap flow (spawn 4 bp-codebase-mapper agents, commit results, update config metadata). Otherwise continue.
75
99
 
76
100
  ## 3. Deep Questioning
77
101
 
@@ -208,13 +232,77 @@ Initialize with any decisions made during questioning:
208
232
 
209
233
  Do not compress. Capture everything gathered.
210
234
 
211
- **Commit PROJECT.md:**
212
-
235
+ Write the file to disk:
213
236
  ```bash
214
237
  mkdir -p .blueprint
238
+ # Write .blueprint/PROJECT.md (do NOT commit yet — verification gate first)
239
+ ```
240
+
241
+ ### 4a. PROJECT.md Verification Gate
242
+
243
+ **If auto mode:** Skip gate. Display brief confirmation and commit directly:
244
+ ```
245
+ ✓ PROJECT.md created at .blueprint/PROJECT.md ({line_count} lines)
246
+ ```
247
+ ```bash
248
+ node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: initialize project" --files .blueprint/PROJECT.md
249
+ ```
250
+ Proceed to Step 5.
251
+
252
+ **Interactive mode:**
253
+
254
+ Read back `.blueprint/PROJECT.md` and extract a structured summary.
255
+
256
+ Display with review banner:
257
+
258
+ ```
259
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
260
+ Blueprint ► REVIEW: Project
261
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
262
+
263
+ **What this is:** {2-3 sentence description from What This Is section}
264
+
265
+ **Core value:** {one sentence from Core Value section}
266
+
267
+ **Active requirements:** {count} requirements in {count} categories
268
+ - {Category 1}: {count} requirements
269
+ - {Category 2}: {count} requirements
270
+
271
+ **Out of scope:** {count} exclusions
272
+
273
+ **Constraints:** {count} hard limits
274
+ - {list each constraint type: value pair}
275
+
276
+ **Key decisions:** {count} decisions logged
277
+ ```
278
+
279
+ Use AskUserQuestion:
280
+ - header: "Project"
281
+ - question: "Does this accurately capture what you described?"
282
+ - options:
283
+ - "Approve" — Looks good, proceed
284
+ - "Corrections" — I want to change some things
285
+ - "Review full file" — Show me the raw file first
286
+
287
+ **If "Approve":** Commit and proceed to Step 5.
288
+
289
+ ```bash
215
290
  node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: initialize project" --files .blueprint/PROJECT.md
216
291
  ```
217
292
 
293
+ **If "Corrections":**
294
+ - Ask: "What would you like to change?"
295
+ - Wait for freeform response
296
+ - Apply corrections to `.blueprint/PROJECT.md` using Edit tool (targeted edits, not full rewrite)
297
+ - Re-read the file and re-generate summary
298
+ - Re-display summary and re-ask (loop back to AskUserQuestion above)
299
+
300
+ **If "Review full file":**
301
+ - Display raw file content: `cat .blueprint/PROJECT.md`
302
+ - Then re-ask (loop back to AskUserQuestion above, without re-displaying summary)
303
+
304
+ Loop until user selects "Approve". Only commit after approval.
305
+
218
306
  ## 5. Workflow Preferences
219
307
 
220
308
  **Round 1 — Core workflow settings (4 questions):**
@@ -373,6 +461,76 @@ Display stage banner:
373
461
  Researching [domain] ecosystem...
374
462
  ```
375
463
 
464
+ ### 6a. Pre-Research Interview
465
+
466
+ **If auto mode:** Skip interview entirely. Researchers receive default context (all focus areas, no known problems, "Research should recommend"). Proceed directly to research directory creation.
467
+
468
+ **Interactive mode:**
469
+
470
+ Display interview banner:
471
+ ```
472
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
473
+ Blueprint ► PRE-RESEARCH INTERVIEW
474
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
475
+
476
+ Your input shapes what researchers investigate.
477
+ Quick 2-round interview — skip with default answers if unsure.
478
+ ```
479
+
480
+ **Round 1 (2 questions):**
481
+
482
+ AskUserQuestion:
483
+ - header: "Focus"
484
+ - question: "What aspects of {domain} should research focus on?"
485
+ - multiSelect: true
486
+ - options:
487
+ - "Technology stack" — Best frameworks, libraries, databases for this domain
488
+ - "Architecture patterns" — How to structure the system, component design
489
+ - "Feature landscape" — What users expect, table stakes vs differentiators
490
+ - "Common pitfalls" — What goes wrong, what to avoid
491
+
492
+ AskUserQuestion:
493
+ - header: "Known"
494
+ - question: "Are there known technical challenges or constraints?"
495
+ - options:
496
+ - "Yes, let me describe" — I know specific issues to investigate
497
+ - "Not sure" — Research should discover these
498
+ - "Domain is new to me" — Full ecosystem discovery needed
499
+
500
+ **If "Yes, let me describe":**
501
+ Ask freeform: "Describe the known challenges or constraints:"
502
+ Wait for response. Capture as known_problems context.
503
+
504
+ **Round 2:**
505
+
506
+ AskUserQuestion:
507
+ - header: "Conventions"
508
+ - question: "Any technology preferences or conventions to follow?"
509
+ - options:
510
+ - "Yes, let me specify" — I have stack/pattern preferences
511
+ - "Research should recommend" — No strong preferences
512
+ - "Must match existing codebase" — Research should check compatibility
513
+
514
+ **If "Yes, let me specify":**
515
+ Ask freeform: "Describe your technology preferences or conventions:"
516
+ Wait for response. Capture as conventions context.
517
+
518
+ **Format interview responses:**
519
+
520
+ Assemble all responses into a structured block:
521
+
522
+ ```markdown
523
+ <user_research_guidance>
524
+ ## User Research Guidance
525
+
526
+ **Focus areas:** {selected areas from Q1, comma-separated}
527
+ **Known problems:** {user's freeform description from Q2, or "None specified" / "Domain is new — full discovery needed"}
528
+ **Conventions:** {user's freeform description from Q4, or "Research should recommend" / "Must match existing codebase"}
529
+ </user_research_guidance>
530
+ ```
531
+
532
+ This `<user_research_guidance>` block is appended after `<project_context>` in ALL 4 researcher spawn prompts below.
533
+
376
534
  Create research directory:
377
535
  ```bash
378
536
  mkdir -p .blueprint/research
@@ -417,6 +575,8 @@ What's the standard 2025 stack for [domain]?
417
575
  [PROJECT.md summary - core value, constraints, what they're building]
418
576
  </project_context>
419
577
 
578
+ {user_research_guidance block from interview — omit if auto mode}
579
+
420
580
  <downstream_consumer>
421
581
  Your STACK.md feeds into roadmap creation. Be prescriptive:
422
582
  - Specific libraries with versions
@@ -457,6 +617,8 @@ What features do [domain] products have? What's table stakes vs differentiating?
457
617
  [PROJECT.md summary]
458
618
  </project_context>
459
619
 
620
+ {user_research_guidance block from interview — omit if auto mode}
621
+
460
622
  <downstream_consumer>
461
623
  Your FEATURES.md feeds into requirements definition. Categorize clearly:
462
624
  - Table stakes (must have or users leave)
@@ -497,6 +659,8 @@ How are [domain] systems typically structured? What are major components?
497
659
  [PROJECT.md summary]
498
660
  </project_context>
499
661
 
662
+ {user_research_guidance block from interview — omit if auto mode}
663
+
500
664
  <downstream_consumer>
501
665
  Your ARCHITECTURE.md informs phase structure in roadmap. Include:
502
666
  - Component boundaries (what talks to what)
@@ -537,6 +701,8 @@ What do [domain] projects commonly get wrong? Critical mistakes?
537
701
  [PROJECT.md summary]
538
702
  </project_context>
539
703
 
704
+ {user_research_guidance block from interview — omit if auto mode}
705
+
540
706
  <downstream_consumer>
541
707
  Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
542
708
  - Warning signs (how to detect early)
@@ -596,6 +762,112 @@ Display research complete banner and key findings:
596
762
  Files: `.blueprint/research/`
597
763
  ```
598
764
 
765
+ ### 6b. Post-Research Verification Gate
766
+
767
+ **If auto mode:** Skip gate. Display brief confirmation and proceed directly to Step 7:
768
+ ```
769
+ ✓ Research complete — 5 files in .blueprint/research/
770
+ ```
771
+
772
+ **Interactive mode:**
773
+
774
+ Read `.blueprint/research/SUMMARY.md` and extract a structured summary.
775
+
776
+ Display with review banner:
777
+
778
+ ```
779
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
780
+ Blueprint ► REVIEW: Research Findings
781
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
782
+
783
+ **Domain:** {type of product}
784
+ **Overall confidence:** {HIGH/MEDIUM/LOW}
785
+
786
+ **Stack:** {one-liner from Key Findings}
787
+ **Table stakes:** {count} features identified
788
+ **Top differentiators:** {2-3 most impactful}
789
+ **Critical pitfall:** {most important one}
790
+
791
+ **Roadmap implications:**
792
+ {Suggested phase count} phases suggested
793
+ 1. {Phase suggestion}: {rationale}
794
+ 2. {Phase suggestion}: {rationale}
795
+
796
+ **Research flags:**
797
+ - Needs deeper research: {phases}
798
+ - Standard patterns: {phases}
799
+
800
+ **Gaps:** {count} areas needing attention
801
+ ```
802
+
803
+ Use AskUserQuestion:
804
+ - header: "Research"
805
+ - question: "Do these research findings look right?"
806
+ - options:
807
+ - "Approve" — Findings look good, proceed to requirements
808
+ - "Dig deeper" — I want more detail on a specific area
809
+ - "Corrections" — Some findings are wrong or missing
810
+ - "Review files" — Show me a specific research file
811
+
812
+ **If "Approve":** Proceed to Step 7.
813
+
814
+ **If "Dig deeper":**
815
+ - Ask freeform: "Which area needs deeper research, and what concerns do you have?"
816
+ - Wait for response. Capture the area and concerns.
817
+ - Spawn a single targeted researcher:
818
+ ```
819
+ Task(prompt="First, read ~/.claude/agents/bp-project-researcher.md for your role and instructions.
820
+
821
+ <research_type>
822
+ Targeted deep-dive — {area user specified} for [domain].
823
+ </research_type>
824
+
825
+ <user_concern>
826
+ {user's description of what needs deeper investigation}
827
+ </user_concern>
828
+
829
+ <existing_research>
830
+ Read these files for context on what's already been researched:
831
+ - .blueprint/research/SUMMARY.md
832
+ - .blueprint/research/{relevant file based on area}
833
+ </existing_research>
834
+
835
+ <project_context>
836
+ [PROJECT.md summary]
837
+ </project_context>
838
+
839
+ <output>
840
+ Update the relevant research file in .blueprint/research/ with deeper findings.
841
+ Then update .blueprint/research/SUMMARY.md to reflect new information.
842
+ </output>
843
+ ", subagent_type="general-purpose", model="{researcher_model}", description="Deep-dive: {area}")
844
+ ```
845
+ - After researcher completes, re-read SUMMARY.md
846
+ - Re-generate summary and re-enter this gate (loop back to AskUserQuestion above)
847
+
848
+ **If "Corrections":**
849
+ - Ask: "What's wrong or missing in the research?"
850
+ - Wait for freeform response
851
+ - Apply corrections to the relevant research files using Edit tool
852
+ - Update SUMMARY.md if affected
853
+ - Re-read SUMMARY.md and re-generate summary
854
+ - Re-display summary and re-ask (loop back to AskUserQuestion above)
855
+
856
+ **If "Review files":**
857
+ - Ask which file to review:
858
+ AskUserQuestion:
859
+ - header: "File"
860
+ - question: "Which research file do you want to review?"
861
+ - options:
862
+ - "SUMMARY.md" — Research synthesis and key findings
863
+ - "STACK.md" — Technology stack recommendations
864
+ - "FEATURES.md" — Feature landscape analysis
865
+ - "ARCHITECTURE.md" — System architecture patterns
866
+ - Display the selected file: `cat .blueprint/research/{selected_file}`
867
+ - Then re-ask (loop back to the main AskUserQuestion above, without re-displaying summary)
868
+
869
+ Loop until user selects "Approve".
870
+
599
871
  **If "Skip research":** Continue to Step 7.
600
872
 
601
873
  ## 7. Define Requirements
@@ -712,37 +984,69 @@ Reject vague requirements. Push for specificity:
712
984
  - "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
713
985
  - "Support sharing" → "User can share post via link that opens in recipient's browser"
714
986
 
715
- **Present full requirements list (interactive mode only):**
987
+ ### 7a. Requirements Verification Gate
716
988
 
717
- Show every requirement (not counts) for user confirmation:
989
+ **If auto mode:** Skip gate. Display brief confirmation and commit directly:
990
+ ```
991
+ ✓ REQUIREMENTS.md created at .blueprint/REQUIREMENTS.md ({line_count} lines)
992
+ ```
993
+ ```bash
994
+ node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: define v1 requirements" --files .blueprint/REQUIREMENTS.md
995
+ ```
996
+ Proceed to Step 8.
997
+
998
+ **Interactive mode:**
999
+
1000
+ Read back `.blueprint/REQUIREMENTS.md` and extract a structured summary.
1001
+
1002
+ Display with review banner:
718
1003
 
719
1004
  ```
720
- ## v1 Requirements
1005
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1006
+ Blueprint ► REVIEW: Requirements
1007
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
721
1008
 
722
- ### Authentication
723
- - [ ] **AUTH-01**: User can create account with email/password
724
- - [ ] **AUTH-02**: User can log in and stay logged in across sessions
725
- - [ ] **AUTH-03**: User can log out from any page
1009
+ **v1 scope:** {total count} requirements across {category count} categories
726
1010
 
727
- ### Content
728
- - [ ] **CONT-01**: User can create posts with text
729
- - [ ] **CONT-02**: User can edit their own posts
1011
+ For each category:
1012
+ - **{Category} ({count}):** {comma-separated REQ-IDs with brief labels}
730
1013
 
731
- [... full list ...]
1014
+ **v2 deferred:** {count} requirements
732
1015
 
733
- ---
1016
+ **Out of scope:** {count} exclusions
1017
+ For each:
1018
+ - {Feature}: {reason}
734
1019
 
735
- Does this capture what you're building? (yes / adjust)
1020
+ **Coverage check:** All v1 requirements mapped? {yes/no}
736
1021
  ```
737
1022
 
738
- If "adjust": Return to scoping.
1023
+ Use AskUserQuestion:
1024
+ - header: "Requirements"
1025
+ - question: "Does this accurately capture what you're building?"
1026
+ - options:
1027
+ - "Approve" — Looks good, proceed to roadmap
1028
+ - "Corrections" — I want to change some things
1029
+ - "Review full file" — Show me the raw file first
739
1030
 
740
- **Commit requirements:**
1031
+ **If "Approve":** Commit and proceed to Step 8.
741
1032
 
742
1033
  ```bash
743
1034
  node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: define v1 requirements" --files .blueprint/REQUIREMENTS.md
744
1035
  ```
745
1036
 
1037
+ **If "Corrections":**
1038
+ - Ask: "What would you like to change?"
1039
+ - Wait for freeform response
1040
+ - Apply corrections to `.blueprint/REQUIREMENTS.md` using Edit tool (targeted edits, not full rewrite)
1041
+ - Re-read the file and re-generate summary
1042
+ - Re-display summary and re-ask (loop back to AskUserQuestion above)
1043
+
1044
+ **If "Review full file":**
1045
+ - Display raw file content: `cat .blueprint/REQUIREMENTS.md`
1046
+ - Then re-ask (loop back to AskUserQuestion above, without re-displaying summary)
1047
+
1048
+ Loop until user selects "Approve". Only commit after approval.
1049
+
746
1050
  ## 8. Create Roadmap
747
1051
 
748
1052
  Display stage banner:
@@ -797,80 +1101,113 @@ Write files first, then return. This ensures artifacts persist even if context i
797
1101
 
798
1102
  **If `## ROADMAP CREATED`:**
799
1103
 
800
- Read the created ROADMAP.md and present it nicely inline:
1104
+ Read the created ROADMAP.md and extract a structured summary.
801
1105
 
1106
+ **If auto mode:** Skip approval gate — auto-approve and commit directly:
802
1107
  ```
803
- ---
1108
+ ✓ ROADMAP.md created at .blueprint/ROADMAP.md ({line_count} lines, {phase_count} phases)
1109
+ ```
1110
+ ```bash
1111
+ node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: create roadmap ([N] phases)" --files .blueprint/ROADMAP.md .blueprint/STATE.md .blueprint/REQUIREMENTS.md
1112
+ ```
1113
+ Proceed to Step 9.
804
1114
 
805
- ## Proposed Roadmap
1115
+ **Interactive mode — CRITICAL: Ask for approval before committing:**
806
1116
 
807
- **[N] phases** | **[X] requirements mapped** | All v1 requirements covered ✓
1117
+ Display with review banner:
808
1118
 
809
- | # | Phase | Goal | Requirements | Success Criteria |
810
- |---|-------|------|--------------|------------------|
811
- | 1 | [Name] | [Goal] | [REQ-IDs] | [count] |
812
- | 2 | [Name] | [Goal] | [REQ-IDs] | [count] |
813
- | 3 | [Name] | [Goal] | [REQ-IDs] | [count] |
814
- ...
1119
+ ```
1120
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1121
+ Blueprint REVIEW: Roadmap
1122
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
815
1123
 
816
- ### Phase Details
1124
+ **Phases:** {count} phases | **Depth:** {depth setting}
817
1125
 
818
- **Phase 1: [Name]**
819
- Goal: [goal]
820
- Requirements: [REQ-IDs]
821
- Success criteria:
822
- 1. [criterion]
823
- 2. [criterion]
824
- 3. [criterion]
1126
+ | # | Phase | Goal | Requirements | Success Criteria |
1127
+ |---|-------|------|--------------|------------------|
1128
+ | {n} | {name} | {goal} | {REQ-IDs} | {count} criteria |
1129
+ [... for all phases ...]
825
1130
 
826
- **Phase 2: [Name]**
827
- Goal: [goal]
828
- Requirements: [REQ-IDs]
829
- Success criteria:
830
- 1. [criterion]
831
- 2. [criterion]
1131
+ **Requirement coverage:** {mapped}/{total} v1 requirements mapped
832
1132
 
833
- [... continue for all phases ...]
1133
+ **Phase dependencies:**
1134
+ {Phase N} → {Phase M} → ... (dependency chain)
834
1135
 
835
- ---
1136
+ **Success criteria preview** (Phase 1 only, to show quality):
1137
+ 1. {criterion 1}
1138
+ 2. {criterion 2}
1139
+ 3. {criterion 3}
836
1140
  ```
837
1141
 
838
- **If auto mode:** Skip approval gate — auto-approve and commit directly.
839
-
840
- **CRITICAL: Ask for approval before committing (interactive mode only):**
841
-
842
1142
  Use AskUserQuestion:
843
1143
  - header: "Roadmap"
844
1144
  - question: "Does this roadmap structure work for you?"
845
1145
  - options:
846
1146
  - "Approve" — Commit and continue
847
- - "Adjust phases" — Tell me what to change
1147
+ - "Adjust phases" — Change phase structure
1148
+ - "Review criteria" — Show all success criteria for all phases
848
1149
  - "Review full file" — Show raw ROADMAP.md
849
1150
 
850
1151
  **If "Approve":** Continue to commit.
851
1152
 
852
1153
  **If "Adjust phases":**
853
- - Get user's adjustment notes
854
- - Re-spawn roadmapper with revision context:
1154
+
1155
+ Ask which kind of adjustment:
1156
+
1157
+ AskUserQuestion:
1158
+ - header: "Adjust"
1159
+ - question: "What kind of adjustment?"
1160
+ - options:
1161
+ - "Reorder phases" — Change the sequence of phases
1162
+ - "Split or merge" — Split a large phase or merge small ones
1163
+ - "Change scope" — Move requirements between phases
1164
+ - "Change criteria" — Modify success criteria for a phase
1165
+
1166
+ Capture the user's specific adjustment notes based on their selection.
1167
+
1168
+ Re-spawn roadmapper with revision context:
1169
+ ```
1170
+ Task(prompt="
1171
+ <revision>
1172
+ User feedback on roadmap:
1173
+ Adjustment type: {selected adjustment type}
1174
+ Details: [user's notes]
1175
+
1176
+ Current ROADMAP.md: @.blueprint/ROADMAP.md
1177
+
1178
+ Update the roadmap based on feedback. Edit files in place.
1179
+ Return ROADMAP REVISED with changes made.
1180
+ </revision>
1181
+ ", subagent_type="bp-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
1182
+ ```
1183
+
1184
+ After roadmapper returns:
1185
+ - Re-read ROADMAP.md and re-generate summary
1186
+ - Re-display summary and re-ask (loop back to the main AskUserQuestion above)
1187
+ - Loop until user selects "Approve"
1188
+
1189
+ **If "Review criteria":**
1190
+ - Read ROADMAP.md and extract ALL success criteria for ALL phases
1191
+ - Display them grouped by phase:
855
1192
  ```
856
- Task(prompt="
857
- <revision>
858
- User feedback on roadmap:
859
- [user's notes]
1193
+ ## Success Criteria — All Phases
1194
+
1195
+ **Phase 1: {Name}**
1196
+ 1. {criterion}
1197
+ 2. {criterion}
1198
+ 3. {criterion}
860
1199
 
861
- Current ROADMAP.md: @.blueprint/ROADMAP.md
1200
+ **Phase 2: {Name}**
1201
+ 1. {criterion}
1202
+ 2. {criterion}
862
1203
 
863
- Update the roadmap based on feedback. Edit files in place.
864
- Return ROADMAP REVISED with changes made.
865
- </revision>
866
- ", subagent_type="bp-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
1204
+ [... all phases ...]
867
1205
  ```
868
- - Present revised roadmap
869
- - Loop until user approves
1206
+ - Then re-ask (loop back to the main AskUserQuestion above, without re-displaying the summary)
870
1207
 
871
- **If "Review full file":** Display raw `cat .blueprint/ROADMAP.md`, then re-ask.
1208
+ **If "Review full file":** Display raw `cat .blueprint/ROADMAP.md`, then re-ask (loop back to the main AskUserQuestion above).
872
1209
 
873
- **Commit roadmap (after approval or auto mode):**
1210
+ **Commit roadmap (after approval):**
874
1211
 
875
1212
  ```bash
876
1213
  node ~/.claude/blueprint/bin/blueprint-tools.js commit "docs: create roadmap ([N] phases)" --files .blueprint/ROADMAP.md .blueprint/STATE.md .blueprint/REQUIREMENTS.md
@@ -939,14 +1276,17 @@ Present completion with next steps:
939
1276
  - [ ] Git repo initialized
940
1277
  - [ ] Brownfield detection completed
941
1278
  - [ ] Deep questioning completed (threads followed, not rushed)
942
- - [ ] PROJECT.md captures full context → **committed**
1279
+ - [ ] PROJECT.md captures full context → **verified by user** → **committed**
943
1280
  - [ ] config.json has workflow mode, depth, parallelization → **committed**
1281
+ - [ ] Pre-research interview completed (if interactive + research selected)
944
1282
  - [ ] Research completed (if selected) — 4 parallel agents spawned → **committed**
1283
+ - [ ] Research findings reviewed by user (if interactive + research selected)
945
1284
  - [ ] Requirements gathered (from research or conversation)
946
1285
  - [ ] User scoped each category (v1/v2/out of scope)
947
- - [ ] REQUIREMENTS.md created with REQ-IDs → **committed**
1286
+ - [ ] REQUIREMENTS.md created with REQ-IDs → **verified by user** → **committed**
948
1287
  - [ ] bp-roadmapper spawned with context
949
1288
  - [ ] Roadmap files written immediately (not draft)
1289
+ - [ ] Roadmap reviewed by user with structured summary (if interactive)
950
1290
  - [ ] User feedback incorporated (if any)
951
1291
  - [ ] ROADMAP.md created with phases, requirement mappings, success criteria
952
1292
  - [ ] STATE.md initialized