mindsystem-cc 4.3.0 → 4.4.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ms:config
3
- description: Configure Mindsystem preferences — code reviewers, mockups, browser verification, gitignore, git remote, task tracker
3
+ description: Configure Mindsystem preferences — code reviewers, mockups, browser verification, plan mode, gitignore, git remote, task tracker
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Write
@@ -12,7 +12,7 @@ allowed-tools:
12
12
 
13
13
  Configure Mindsystem preferences for the current project.
14
14
 
15
- Manages code reviewer agents, mockup preferences, browser verification, .gitignore patterns for `.planning/` artifacts, git remote setup, and task tracker integration. Run anytime to reconfigure — idempotent.
15
+ Manages code reviewer agents, mockup preferences, browser verification, plan mode, .gitignore patterns for `.planning/` artifacts, git remote setup, and task tracker integration. Run anytime to reconfigure — idempotent.
16
16
 
17
17
  </objective>
18
18
 
@@ -42,7 +42,7 @@ git remote -v 2>/dev/null || echo "NO_REMOTE"
42
42
 
43
43
  <step name="route">
44
44
 
45
- **Setup mode:** Proceed through all setting steps sequentially (git_remote → code_reviewers → gitignore_patterns → mockup_preferences → browser_verification → task_tracker). Then go to `validation_summary`.
45
+ **Setup mode:** Proceed through all setting steps sequentially (git_remote → code_reviewers → gitignore_patterns → mockup_preferences → browser_verification → multi_plan → task_tracker). Then go to `validation_summary`.
46
46
 
47
47
  **Edit mode:** Display all current settings with values from config.json, git remote, and .gitignore:
48
48
 
@@ -54,7 +54,8 @@ git remote -v 2>/dev/null || echo "NO_REMOTE"
54
54
  3. **Gitignore** — {current .planning/ patterns or "no .planning/ patterns"}
55
55
  4. **Mockups** — open: {auto / ask / off}
56
56
  5. **Browser verification** — {enabled / disabled}
57
- 6. **Task tracker** — {type + cli path, or "none"}
57
+ 6. **Plan mode** — {single plan (default) / multi-plan}
58
+ 7. **Task tracker** — {type + cli path, or "none"}
58
59
  ```
59
60
 
60
61
  Ask: "Which settings would you like to change? Enter the numbers (e.g. 1, 3, 5), 'all' to reconfigure everything, or 'done' if everything looks good."
@@ -202,6 +203,34 @@ ms-tools config-set browser_verification --json '{"enabled": true}' # or false
202
203
 
203
204
  </step>
204
205
 
206
+ <step name="multi_plan">
207
+
208
+ Read current value:
209
+
210
+ ```bash
211
+ CURRENT=$(ms-tools config-get multi_plan --default "false")
212
+ echo "Current multi_plan: $CURRENT"
213
+ ```
214
+
215
+ Use AskUserQuestion:
216
+ - header: "Plan mode"
217
+ - question: "How should plan-phase group tasks into plans?"
218
+ - options:
219
+ - "Single plan (Recommended)" — All tasks in one plan. Optimal for 1M context windows where phases already scope work tightly
220
+ - "Multi-plan" — Split into multiple plans with wave-based parallel execution. Use when phases have genuinely independent work streams
221
+
222
+ Map selection:
223
+ - "Single plan" → `false`
224
+ - "Multi-plan" → `true`
225
+
226
+ Update config.json:
227
+
228
+ ```bash
229
+ ms-tools config-set multi_plan $VALUE # true or false (unquoted — boolean)
230
+ ```
231
+
232
+ </step>
233
+
205
234
  <step name="task_tracker">
206
235
 
207
236
  Read current value:
@@ -254,6 +283,7 @@ Configuration updated:
254
283
  - Code reviewers: [adhoc / phase / milestone values]
255
284
  - Mockup open: [auto / ask / off]
256
285
  - Browser verification: [enabled / disabled]
286
+ - Plan mode: [single plan / multi-plan]
257
287
  - Gitignore: [patterns added, or "no changes"]
258
288
  - Git remote: [remote URL, or "none configured"]
259
289
  - Task tracker: [type + cli path, or "none"]
@@ -145,14 +145,14 @@ Then route based on status:
145
145
  | Status | Route |
146
146
  |--------|-------|
147
147
  | `gaps_found` | Route C (gap closure) |
148
- | `passed` + more phases | Route A (verify + next phase) |
148
+ | `passed` + more phases | Route A (verify) |
149
149
  | `passed` + last phase | Route B (verify + milestone complete) |
150
150
 
151
151
  Thoroughness by default: verify-work is the primary "Next Up" in both routes. Assess skip context per workflow `offer_next` step.
152
152
 
153
153
  ---
154
154
 
155
- **Route A: Phase verified, more phases remain**
155
+ **Shared steps (Routes A and B):**
156
156
 
157
157
  1. Show phase completion summary:
158
158
  ```
@@ -174,26 +174,33 @@ All {Y} plans finished. Phase goal verified.
174
174
  {If skip context: "Phase involved only {description} with no user-facing changes — skip if structural verification is sufficient."}
175
175
  ```
176
176
 
177
- 4. Read `~/.claude/mindsystem/references/routing/next-phase-routing.md` to determine the most appropriate command for Phase {Z+1}. Present next phase context and options:
178
- ```
179
- **Phase {Z+1}: {Name}** — {Goal}
180
- {If pre-work flagged: brief note about recommendations}
177
+ **Then branch by route:**
181
178
 
182
- **Also available:**
183
- - `/ms:{suggested} {Z+1}` — {reason}
184
- - `/ms:plan-phase {Z+1}` — skip pre-work, plan directly
185
- ```
179
+ **Route A: More phases remain**
186
180
 
187
- ---
181
+ 4. **If skip context applies:** Determine next phase's primary suggestion:
182
+ - From ROADMAP.md (already in context), get Phase {Z+1} pre-work flags
183
+ - Check: CONTEXT.md exists? DESIGN.md? RESEARCH.md? in next phase dir
184
+ - Priority: discuss (if Likely + no CONTEXT.md) > design (if Likely + no DESIGN.md) > research (if Likely + no RESEARCH.md) > plan-phase
185
+ - Present ONE "Also available" entry:
186
+ ```
187
+ ---
188
+ **Also available:**
189
+ - `/ms:{suggested} {Z+1}` — skip verify, start Phase {Z+1}: {Name}
190
+ ---
191
+ ```
192
+ **If skip context does NOT apply:** No "Also available" — verify-work is the sole suggestion.
188
193
 
189
- **Route B: Phase verified, milestone complete**
194
+ **Route B: Milestone complete**
190
195
 
191
- Follow Route A steps 1-3, then present milestone options:
196
+ 4. Present milestone options:
192
197
  ```
198
+ ---
193
199
  **Also available:**
194
200
  - `/ms:audit-milestone` — verify requirements, cross-phase integration, E2E flows
195
201
  - `/ms:complete-milestone` — skip audit, archive directly
196
202
  - `/ms:add-phase <description>` — add another phase first
203
+ ---
197
204
  ```
198
205
 
199
206
  ---
@@ -108,7 +108,7 @@ Initialize new project with brief and configuration.
108
108
  Usage: `/ms:new-project`
109
109
 
110
110
  **`/ms:config`**
111
- Configure Mindsystem preferences — code reviewers, mockup preferences, gitignore patterns, git remote.
111
+ Configure Mindsystem preferences — code reviewers, mockup preferences, browser verification, plan mode, gitignore patterns, git remote.
112
112
 
113
113
  - Use when: you want to set up code review agents, mockup open behavior, manage which .planning/ artifacts are git-ignored, or push your repo to GitHub.
114
114
  - Edits `.planning/config.json` and `.gitignore`
@@ -205,12 +205,12 @@ Create detailed execution plan for a specific phase.
205
205
  - Generates `.planning/phases/XX-phase-name/XX-YY-PLAN.md`
206
206
  - Breaks phase into concrete, actionable tasks
207
207
  - Includes verification criteria and success measures
208
- - Multiple plans per phase supported (XX-01, XX-02, etc.)
208
+ - Single plan per phase by default. Enable `multi_plan` in config for multiple plans (XX-01, XX-02, etc.)
209
209
  - After planning: calculates risk score (0-100) and offers optional plan verification
210
210
  - Skip tier (0-39): Low complexity, verification optional
211
211
  - Optional tier (40-69): Moderate complexity, verification recommended
212
212
  - Verify tier (70-100): Higher complexity, verification strongly recommended
213
- - Risk factors: task count, plan count, external services, CONTEXT.md, cross-cutting concerns, new deps, complex domains
213
+ - Risk factors: task count, external services, CONTEXT.md, cross-cutting concerns, new deps, complex domains
214
214
 
215
215
  Usage: `/ms:plan-phase 1`
216
216
  Usage: `/ms:plan-phase` (auto-detect next unplanned phase)
@@ -254,22 +254,22 @@ Usage: `/ms:audit-milestone`
254
254
  ### Roadmap Management
255
255
 
256
256
  **`/ms:add-phase <description>`**
257
- Add new phase to end of current milestone.
257
+ Add new phase to end of current milestone with full specification.
258
258
 
259
259
  - Use when: you discovered additional work that belongs after the currently planned phases (not an urgent insertion).
260
- - Appends to ROADMAP.md
261
- - Uses next sequential number
262
- - Updates phase directory structure
260
+ - Derives goal, success criteria, and requirements (with REQ-IDs) from description
261
+ - Updates ROADMAP.md, REQUIREMENTS.md (with traceability), and STATE.md
262
+ - Phase is set up identically to roadmapper-created phases — full pipeline support
263
263
 
264
264
  Usage: `/ms:add-phase "Add admin dashboard"`
265
265
 
266
266
  **`/ms:insert-phase <after> <description>`**
267
- Insert urgent work as decimal phase between existing phases.
267
+ Insert urgent work as decimal phase between existing phases with full specification.
268
268
 
269
269
  - Use when: you discovered work that must happen before the next integer phase, but you don’t want to renumber the roadmap.
270
270
  - Creates intermediate phase (e.g., 7.1 between 7 and 8)
271
- - Useful for discovered work that must happen mid-milestone
272
- - Maintains phase ordering
271
+ - Derives goal, success criteria, and requirements (with REQ-IDs) from description
272
+ - Updates ROADMAP.md, REQUIREMENTS.md (with traceability), and STATE.md
273
273
 
274
274
  Usage: `/ms:insert-phase 7 "Fix critical auth bug"`
275
275
  Result: Creates Phase 7.1
@@ -501,7 +501,7 @@ Optional: `/ms:config` — configure code reviewers, gitignore, and other prefer
501
501
  **Plan → execute loop (with optional quality gates):**
502
502
 
503
503
  ```
504
- /ms:plan-phase 5 # Create one or more PLAN.md files
504
+ /ms:plan-phase 5 # Create PLAN.md file(s)
505
505
  /ms:execute-phase 5 # Execute; produces SUMMARY + VERIFICATION
506
506
  # If gaps found during verification, follow triage recommendation:
507
507
  # Small gaps: /ms:adhoc "Close phase 5 gaps: ..."
@@ -6,19 +6,21 @@ allowed-tools:
6
6
  - Read
7
7
  - Write
8
8
  - Bash
9
+ - AskUserQuestion
9
10
  ---
10
11
 
11
12
  <objective>
12
- Insert a decimal phase for urgent work discovered mid-milestone that must be completed between existing integer phases.
13
+ Insert a decimal phase for urgent work discovered mid-milestone that must be completed between existing integer phases, fully specified with goal, success criteria, and requirements.
13
14
 
14
- Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions.
15
+ Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions. The phase is set up identically to phases created by the roadmapper — downstream commands work without degradation.
15
16
 
16
- Purpose: Handle urgent work discovered during execution without renumbering entire roadmap.
17
+ Purpose: Handle urgent work discovered during execution without renumbering entire roadmap, with full pipeline support.
17
18
  </objective>
18
19
 
19
20
  <execution_context>
20
21
  @.planning/ROADMAP.md
21
22
  @.planning/STATE.md
23
+ @.planning/REQUIREMENTS.md
22
24
  </execution_context>
23
25
 
24
26
  <process>
@@ -59,8 +61,8 @@ fi
59
61
 
60
62
  </step>
61
63
 
62
- <step name="load_roadmap">
63
- Load the roadmap file:
64
+ <step name="load_context">
65
+ Load project context:
64
66
 
65
67
  ```bash
66
68
  if [ -f .planning/ROADMAP.md ]; then
@@ -69,9 +71,33 @@ else
69
71
  echo "ERROR: No roadmap found (.planning/ROADMAP.md)"
70
72
  exit 1
71
73
  fi
74
+
75
+ if [ ! -f .planning/REQUIREMENTS.md ]; then
76
+ echo "ERROR: No REQUIREMENTS.md found"
77
+ exit 1
78
+ fi
79
+ ```
80
+
81
+ If REQUIREMENTS.md is missing, display:
82
+
83
+ ```
84
+ Phase insertion requires an active milestone with requirements tracking.
85
+ No .planning/REQUIREMENTS.md found.
86
+
87
+ Instead, consider:
88
+ - `/ms:new-milestone` — start a new milestone with requirements
89
+ - `/ms:create-roadmap` — if milestone context exists but roadmap wasn't created yet
90
+ - `/ms:adhoc "<description>"` — for work that doesn't need milestone tracking
72
91
  ```
73
92
 
74
- Read roadmap content for parsing.
93
+ Exit command.
94
+
95
+ Read ROADMAP.md and REQUIREMENTS.md.
96
+
97
+ From REQUIREMENTS.md, extract:
98
+ - Existing REQ-ID categories and their prefixes (e.g., AUTH, SUB, CONTENT)
99
+ - Highest REQ-ID number per category (e.g., AUTH-04 → next is AUTH-05)
100
+ - Traceability table structure
75
101
  </step>
76
102
 
77
103
  <step name="verify_target_phase">
@@ -88,7 +114,7 @@ Verify that the target phase exists in the roadmap:
88
114
  Exit.
89
115
 
90
116
  3. Verify phase is in current milestone (not completed/archived)
91
- </step>
117
+ </step>
92
118
 
93
119
  <step name="find_existing_decimals">
94
120
  Find existing decimal phases after the target phase:
@@ -107,6 +133,14 @@ Examples:
107
133
  Store as: `decimal_phase="$(printf "%02d" $after_phase).${next_decimal}"`
108
134
  </step>
109
135
 
136
+ <step name="derive_phase_specification">
137
+ Read `~/.claude/mindsystem/references/derive-phase-specification.md` and follow its algorithm.
138
+
139
+ Variables: `{PHASE_ID}` = `{decimal_phase}`, `{PHASE_MARKER}` = `(INSERTED)`.
140
+
141
+ Input: user's description + project context (PROJECT.md, ROADMAP.md phases, REQUIREMENTS.md categories).
142
+ </step>
143
+
110
144
  <step name="generate_slug">
111
145
  Convert the phase description to a kebab-case slug:
112
146
 
@@ -129,50 +163,44 @@ mkdir -p "$phase_dir"
129
163
  Confirm: "Created directory: $phase_dir"
130
164
  </step>
131
165
 
132
- <step name="update_roadmap">
133
- Insert the new phase entry into the roadmap:
134
-
135
- 1. Find insertion point: immediately after Phase {after_phase}'s content (before next phase heading or "---")
166
+ <step name="update_requirements">
167
+ Follow the requirements update procedure in `~/.claude/mindsystem/references/derive-phase-specification.md`.
136
168
 
137
- 2. Before writing the phase entry, analyze the description to determine pre-work flags:
169
+ Use Phase `{decimal_phase}` for traceability table references and footer dating.
170
+ </step>
138
171
 
139
- **Discuss**: Default Likely — enumerate 2-4 assumptions or open questions specific
140
- to the phase. Unlikely only for fully mechanical zero-decision work (version bump,
141
- rename-only refactor, config-only change, pure deletion/cleanup).
172
+ <step name="update_roadmap">
173
+ Insert the new phase entry into the roadmap:
142
174
 
143
- **Design**: Likely when description involves UI work, visual elements, forms,
144
- dashboards, or multi-screen flows. Unlikely for backend-only, API, infrastructure,
145
- or established UI patterns.
175
+ **1. Find insertion point:** immediately after Phase {after_phase}'s content (and any existing decimals), before next integer phase heading or "---".
146
176
 
147
- **Research**: Likely when description mentions external APIs/services, new
148
- libraries/frameworks, or unclear technical approach. Unlikely for established
149
- internal patterns or well-documented conventions.
177
+ **2. Add phase details:**
150
178
 
151
- Use binary Likely/Unlikely with parenthetical reason. Include topics/focus only when Likely.
179
+ Insert full phase entry matching roadmapper format with (INSERTED) marker:
152
180
 
153
- 3. Insert new phase heading with (INSERTED) marker and pre-work flags:
181
+ ```
182
+ ### Phase {decimal_phase}: {Name} (INSERTED)
183
+ **Goal**: {approved goal}
184
+ **Depends on**: Phase {after_phase}
185
+ **Requirements**: {REQ-IDs comma-separated}
186
+ **Success Criteria** (what must be TRUE):
187
+ 1. {criterion}
188
+ 2. {criterion}
189
+ 3. {criterion}
190
+ **Discuss**: {Likely (reason) | Unlikely (reason)}
191
+ **Discuss topics**: {topics} ← only if Likely
192
+ **Design**: {Likely (reason) | Unlikely (reason)}
193
+ **Design focus**: {focus} ← only if Likely
194
+ **Research**: {Likely (reason) | Unlikely (reason)}
195
+ **Research topics**: {topics} ← only if Likely
196
+ ```
154
197
 
155
- ```
156
- ### Phase {decimal_phase}: {Description} (INSERTED)
157
-
158
- **Goal:** [Urgent work - to be planned]
159
- **Depends on:** Phase {after_phase}
160
- **Discuss**: {Likely (reason) | Unlikely (reason)}
161
- **Discuss topics**: {topics} ← only if Likely
162
- **Design**: {Likely (reason) | Unlikely (reason)}
163
- **Design focus**: {focus} ← only if Likely
164
- **Research**: {Likely (reason) | Unlikely (reason)}
165
- **Research topics**: {topics} ← only if Likely
166
- **Plans:** 0 plans
167
-
168
- Plans:
169
- - [ ] TBD (run /ms:plan-phase {decimal_phase} to break down)
170
-
171
- **Details:**
172
- [To be added during planning]
173
- ```
198
+ **3. Update progress table** — insert row in correct position:
199
+ ```
200
+ | {decimal_phase}. {Name} (INSERTED) | Not started | - |
201
+ ```
174
202
 
175
- 4. Write updated roadmap back to file
203
+ Write updated roadmap back to file.
176
204
 
177
205
  The "(INSERTED)" marker helps identify decimal phases as urgent insertions.
178
206
 
@@ -198,14 +226,17 @@ Present completion summary:
198
226
 
199
227
  ```
200
228
  Phase {decimal_phase} inserted after Phase {after_phase}:
201
- - Description: {description}
229
+ - Goal: {goal}
230
+ - Requirements: {REQ-IDs}
231
+ - Success criteria: {count}
202
232
  - Directory: .planning/phases/{decimal-phase}-{slug}/
203
233
  - Status: Not planned yet
204
234
  - Marker: (INSERTED) - indicates urgent work
205
235
 
206
- Roadmap updated: {roadmap-path}
207
- Project state updated: .planning/STATE.md
208
-
236
+ Files updated:
237
+ - .planning/ROADMAP.md
238
+ - .planning/REQUIREMENTS.md
239
+ - .planning/STATE.md
209
240
  ```
210
241
 
211
242
  Read `~/.claude/mindsystem/references/routing/next-phase-routing.md` and follow its instructions
@@ -231,15 +262,18 @@ ms-tools set-last-command "ms:insert-phase $ARGUMENTS"
231
262
  - Don't modify the target phase content
232
263
  - Don't create plans yet (that's /ms:plan-phase)
233
264
  - Don't commit changes (user decides when to commit)
234
- </anti_patterns>
265
+ - Don't write skeletal "[To be planned]" entries — derive a real goal and success criteria
266
+ </anti_patterns>
235
267
 
236
268
  <success_criteria>
237
269
  Phase insertion is complete when:
238
270
 
239
- - [ ] Phase directory created: `.planning/phases/{N.M}-{slug}/`
240
- - [ ] Roadmap updated with new phase entry (includes "(INSERTED)" marker)
241
- - [ ] Phase inserted in correct position (after target phase, before next integer phase)
271
+ - [ ] Specification derived with outcome-focused goal and 2-5 observable success criteria
272
+ - [ ] Requirements derived with REQ-IDs and REQUIREMENTS.md updated with traceability mapping
273
+ - [ ] Phase directory and roadmap entry created with (INSERTED) marker and correct decimal number
274
+ - [ ] Phase inserted after target phase, before next integer phase
275
+ - [ ] Roadmap entry matches roadmapper format (Goal, Requirements, Success Criteria, pre-work flags)
242
276
  - [ ] STATE.md updated with roadmap evolution note
243
- - [ ] Decimal number calculated correctly (based on existing decimals)
277
+ - [ ] User approved specification before writing
244
278
  - [ ] User informed of next steps and dependency implications
245
- </success_criteria>
279
+ </success_criteria>
@@ -130,7 +130,7 @@ Milestone name: $ARGUMENTS (optional — will emerge during discovery if not pro
130
130
 
131
131
  6. **Adaptive depth based on response clarity:**
132
132
 
133
- - **Clear, detailed response** → brief confirmation ("Sounds like you want X, Y, Z — let me confirm a few things"), then move toward Phase 3 quickly
133
+ - **Clear, detailed response** → brief confirmation ("Sounds like you want X, Y, Z — let me confirm a few things"), then build on what they shared rather than re-asking
134
134
  - **Vague response** → probe with AskUserQuestion, explore features, challenge vagueness
135
135
  - **External context shared** → integrate it, clarify implications, ask follow-ups
136
136
 
@@ -19,7 +19,7 @@ allowed-tools:
19
19
  Create executable phase prompt with discovery, context injection, and task breakdown.
20
20
 
21
21
  Purpose: Break down roadmap phases into concrete, executable PLAN.md files that Claude can execute.
22
- Output: One or more PLAN.md files in the phase directory (.planning/phases/XX-name/{phase}-{plan}-PLAN.md)
22
+ Output: PLAN.md file(s) in the phase directory (single plan by default; multiple when multi_plan enabled)
23
23
 
24
24
  </objective>
25
25
 
@@ -86,7 +86,7 @@ Check for `.planning/codebase/` and load relevant documents based on phase type.
86
86
  - Perform mandatory discovery (Level 0-3 as appropriate)
87
87
  - Scan project history via context scanner script (prior decisions, issues, debug resolutions, adhoc learnings, cross-milestone patterns)
88
88
  - Break phase into tasks
89
- - Propose plan grouping (plan boundaries, wave structure, budget estimates) for user review
89
+ - Determine plan grouping (single plan by default; multi-plan with user confirmation when enabled)
90
90
  - Discover relevant project skills, confirm with user
91
91
  - Hand off tasks + proposed grouping + confirmed skills to plan-writer subagent
92
92
  - Create PLAN.md file(s) with executable structure
@@ -94,7 +94,7 @@ Check for `.planning/codebase/` and load relevant documents based on phase type.
94
94
  6. **Update last command:** `ms-tools set-last-command "ms:plan-phase $ARGUMENTS"`
95
95
 
96
96
  7. **Risk assessment**
97
- - Calculate risk score from context already loaded (task count, plan count, external services, CONTEXT.md, cross-cutting concerns, new deps, complex domains)
97
+ - Calculate risk score from context already loaded (task count, external services, CONTEXT.md, cross-cutting concerns, new deps, complex domains)
98
98
  - Present score + top factors via AskUserQuestion
99
99
  - Tier-based recommendation: Skip (0-39), Optional (40-69), Verify (70+)
100
100
  - If user chooses verify: spawn ms-plan-checker, surface results
@@ -103,7 +103,7 @@ Check for `.planning/codebase/` and load relevant documents based on phase type.
103
103
 
104
104
  <success_criteria>
105
105
 
106
- - One or more PLAN.md files created in .planning/phases/XX-name/
106
+ - PLAN.md file(s) created in .planning/phases/XX-name/
107
107
  - Each plan has: Context, Changes, Verification, Must-Haves (pure markdown format)
108
108
  - Must-Haves derived as markdown checklist of user-observable truths
109
109
  - Changes are specific enough for Claude to execute
@@ -32,7 +32,7 @@ Store the result as `{dev_url}`.
32
32
  If `HAS_STATE`:
33
33
  1. Open app headless at `{dev_url}`
34
34
  2. Check current URL — if redirected to a login/auth path, auth has expired
35
- 3. If still on app pages: auth valid, proceed to Derive Browser Checklist
35
+ 3. If still on app pages: auth valid, proceed to Derive User Journeys
36
36
 
37
37
  If `NO_STATE` or auth expired:
38
38
  1. Close headless browser
@@ -47,9 +47,9 @@ If `NO_STATE` or auth expired:
47
47
  ```
48
48
  5. If user skips: proceed to code_review, skip browser verification
49
49
 
50
- ## Derive Browser Checklist
50
+ ## Derive User Journeys
51
51
 
52
- Transform SUMMARY.md accomplishments into a structured checklist for the browser verifier.
52
+ Transform SUMMARY.md accomplishments into user journeys for the browser verifier.
53
53
 
54
54
  **Step 1: Read summaries**
55
55
 
@@ -62,29 +62,38 @@ For each SUMMARY, extract:
62
62
  - **mock_hints** frontmatter (if present) — specifically `external_data` entries
63
63
  - **key-files** frontmatter (if present) — for route inference
64
64
 
65
- **Step 3: Derive checklist items**
65
+ **Step 3: Derive user journeys**
66
66
 
67
- For each user-observable accomplishment, derive:
68
- - `name`: brief description of what to verify
69
- - `route`: URL path (infer from key-files paths, routing config, or component names)
70
- - `expected`: what should be visible on screen (be specific "table with columns X, Y, Z", not "data displays")
71
- - `interaction`: optional action + expected result (e.g., "click Add button → modal opens with form fields A, B, C")
67
+ For each user-observable accomplishment, derive a journey:
68
+ - `name`: verb-first what the user is trying to accomplish (e.g., "Create a new project via the Add button")
69
+ - `start`: page reachable via sidebar/nav (NOT a deep URL)
70
+ - `steps`: ordered actionsclick, fill, submit, verify state change
71
+ - `success`: what should be true after completing the journey
72
72
  - `needs_backend_data`: true/false (from mock_hints `external_data` entries)
73
73
 
74
+ **Derivation rules:**
75
+ - New pages/routes: journey starts from parent page, navigates via UI
76
+ - Forms: MUST include fill AND submit
77
+ - Toggles/filters: MUST include activate AND deactivate
78
+ - CRUD: one journey per built operation
79
+ - Modals: open, interact, confirm — not just "modal opens"
80
+
74
81
  **Step 4: Filter**
75
82
 
76
- Include: UI renders, navigation, forms, data display, visual states, user interactions.
83
+ Include: UI renders, navigation, forms, data display, visual states, user interactions — each as a complete journey.
77
84
  Exclude: refactors, type changes, API internals, test files, build config, non-visual changes.
78
85
 
79
86
  **Step 5: Group and format**
80
87
 
81
- Group items by route for efficient navigation. Format as a numbered list:
88
+ Group journeys by starting area for efficient navigation. Format as a numbered list:
82
89
 
83
90
  ```
84
91
  1. **{name}**
85
- Route: {route}
86
- Expected: {expected}
87
- Interaction: {interaction or "none"}
92
+ Start: {start page/area}
93
+ Steps:
94
+ - {action 1}
95
+ - {action 2}
96
+ Success: {what should be true after}
88
97
  Needs backend data: {yes/no}
89
98
 
90
99
  2. **{name}**
@@ -93,7 +102,7 @@ Group items by route for efficient navigation. Format as a numbered list:
93
102
 
94
103
  ## Spawn
95
104
 
96
- Spawn the browser verifier agent after auth is established and checklist is derived:
105
+ Spawn the browser verifier agent after auth is established and journeys are derived:
97
106
 
98
107
  ```
99
108
  Task(
@@ -104,16 +113,16 @@ Dev URL: {dev_url}
104
113
  Auth state: .agent-browser-state.json
105
114
  Screenshots directory: {phase_dir}/screenshots
106
115
 
107
- ## Browser Checklist
116
+ ## User Journeys
108
117
 
109
- {derived_checklist}
118
+ {derived_journeys}
110
119
 
111
120
  ## Backend Context
112
121
 
113
- {summary of which items need real backend data — from mock_hints external_data entries.
114
- Items needing backend data may show empty states or errors — mark as ENVIRONMENT_BLOCKED, not ISSUE.}
122
+ {summary of which journeys need real backend data — from mock_hints external_data entries.
123
+ Journeys needing backend data may show empty states or errors — mark as ENVIRONMENT_BLOCKED, not ISSUE.}
115
124
 
116
- Verify each checklist item. Save all screenshots to {phase_dir}/screenshots/.
125
+ Complete each user journey end-to-end. Save all screenshots to {phase_dir}/screenshots/.
117
126
  Fix trivial issues inline. Return structured report.",
118
127
  subagent_type="ms-browser-verifier"
119
128
  )
@@ -138,6 +147,6 @@ Report: "Browser verification: {N} issues found (see screenshots in {phase_dir}/
138
147
  Note issues for verify-work — these are candidates for manual UAT.
139
148
 
140
149
  **`all_passed`:**
141
- Report: "Browser verification: all {N} items passed"
150
+ Report: "Browser verification: all {N} journeys passed"
142
151
 
143
152
  </browser_verification>