mindsystem-cc 4.3.1 → 4.4.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/README.md +55 -35
- package/agents/ms-browser-verifier.md +54 -31
- package/commands/ms/add-phase.md +90 -46
- package/commands/ms/config.md +57 -6
- package/commands/ms/doctor.md +1 -1
- package/commands/ms/help.md +13 -11
- package/commands/ms/insert-phase.md +87 -49
- package/commands/ms/new-milestone.md +9 -4
- package/commands/ms/plan-phase.md +4 -4
- package/mindsystem/references/browser-verification.md +30 -21
- package/mindsystem/references/derive-phase-specification.md +147 -0
- package/mindsystem/templates/config.json +2 -1
- package/mindsystem/templates/roadmap.md +8 -2
- package/mindsystem/workflows/adhoc.md +1 -1
- package/mindsystem/workflows/discuss-phase.md +2 -2
- package/mindsystem/workflows/execute-phase.md +3 -3
- package/mindsystem/workflows/plan-phase.md +45 -6
- package/package.json +1 -1
- package/scripts/ms-tools.py +186 -25
package/commands/ms/config.md
CHANGED
|
@@ -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
|
|
|
@@ -53,8 +53,9 @@ git remote -v 2>/dev/null || echo "NO_REMOTE"
|
|
|
53
53
|
2. **Code reviewers** — adhoc: {value or "not set"}, phase: {value or "not set"}, milestone: {value or "not set"}
|
|
54
54
|
3. **Gitignore** — {current .planning/ patterns or "no .planning/ patterns"}
|
|
55
55
|
4. **Mockups** — open: {auto / ask / off}
|
|
56
|
-
5. **Browser verification** — {enabled / disabled}
|
|
57
|
-
6. **
|
|
56
|
+
5. **Browser verification** — {enabled / disabled}, web project: {yes / no / auto-detect}
|
|
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."
|
|
@@ -197,7 +198,56 @@ Map selection:
|
|
|
197
198
|
Update config.json:
|
|
198
199
|
|
|
199
200
|
```bash
|
|
200
|
-
ms-tools config-set browser_verification --json '
|
|
201
|
+
ms-tools config-set browser_verification.enabled --json 'true' # or false
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**If enabled**, detect and confirm web project status:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
ms-tools detect-web
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Present the auto-detection result via AskUserQuestion:
|
|
211
|
+
- header: "Web project detection"
|
|
212
|
+
- question: "Is this a web project with a browser-renderable UI? Auto-detection returned: {detected result}"
|
|
213
|
+
- options:
|
|
214
|
+
- "Yes — this is a web project" (recommended if detected)
|
|
215
|
+
- "No — this is not a web project"
|
|
216
|
+
- "Auto-detect (don't persist)" — remove any existing override
|
|
217
|
+
|
|
218
|
+
Map selection:
|
|
219
|
+
- "Yes" → `ms-tools config-set browser_verification.web_project --json 'true'`
|
|
220
|
+
- "No" → `ms-tools config-set browser_verification.web_project --json 'false'`
|
|
221
|
+
- "Auto-detect" → `ms-tools config-delete browser_verification.web_project`
|
|
222
|
+
|
|
223
|
+
**If disabled**, skip the web_project question.
|
|
224
|
+
|
|
225
|
+
</step>
|
|
226
|
+
|
|
227
|
+
<step name="multi_plan">
|
|
228
|
+
|
|
229
|
+
Read current value:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
CURRENT=$(ms-tools config-get multi_plan --default "false")
|
|
233
|
+
echo "Current multi_plan: $CURRENT"
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Use AskUserQuestion:
|
|
237
|
+
- header: "Plan mode"
|
|
238
|
+
- question: "How should plan-phase group tasks into plans?"
|
|
239
|
+
- options:
|
|
240
|
+
- "Single plan (Recommended)" — All tasks in one plan. Optimal for 1M context windows where phases already scope work tightly
|
|
241
|
+
- "Multi-plan" — Split into multiple plans with wave-based parallel execution. Use when phases have genuinely independent work streams
|
|
242
|
+
|
|
243
|
+
Map selection:
|
|
244
|
+
- "Single plan" → `false`
|
|
245
|
+
- "Multi-plan" → `true`
|
|
246
|
+
|
|
247
|
+
Update config.json:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
ms-tools config-set multi_plan $VALUE # true or false (unquoted — boolean)
|
|
201
251
|
```
|
|
202
252
|
|
|
203
253
|
</step>
|
|
@@ -254,6 +304,7 @@ Configuration updated:
|
|
|
254
304
|
- Code reviewers: [adhoc / phase / milestone values]
|
|
255
305
|
- Mockup open: [auto / ask / off]
|
|
256
306
|
- Browser verification: [enabled / disabled]
|
|
307
|
+
- Plan mode: [single plan / multi-plan]
|
|
257
308
|
- Gitignore: [patterns added, or "no changes"]
|
|
258
309
|
- Git remote: [remote URL, or "none configured"]
|
|
259
310
|
- Task tracker: [type + cli path, or "none"]
|
package/commands/ms/doctor.md
CHANGED
|
@@ -145,7 +145,7 @@ If "Review each" → use AskUserQuestion for each failed check with its details
|
|
|
145
145
|
|
|
146
146
|
Apply fixes in dependency order: fix_subsystems → fix_milestone_dirs → fix_milestone_naming → fix_phase_archival → fix_plan_cleanup → fix_phase_dirs → fix_knowledge. Skip any fix whose check passed or was skipped by user.
|
|
147
147
|
|
|
148
|
-
Phase summaries are resolved by fix_phase_archival. CLI wrapper failures have specific fixes: bin dir not in PATH → restart Claude Code session; missing wrappers or bin dir → re-run `npx mindsystem-cc`; uv not found → `curl -LsSf https://astral.sh/uv/install.sh | sh`. WARN checks (Research API Keys, missing uv) are informational — no automated fix, only displayed in the report.
|
|
148
|
+
Phase summaries are resolved by fix_phase_archival. CLI wrapper failures have specific fixes: bin dir not in PATH → restart Claude Code session; missing wrappers or bin dir → re-run `npx mindsystem-cc`; uv not found → `curl -LsSf https://astral.sh/uv/install.sh | sh`. WARN checks (Research API Keys, missing uv) are informational — no automated fix, only displayed in the report. Research API Keys check provides platform-aware setup guidance (shell export on macOS/Linux, settings.json on Windows) and checks both environment variables and `~/.claude/settings.json` env section as fallback.
|
|
149
149
|
</step>
|
|
150
150
|
|
|
151
151
|
<step name="apply_fixes">
|
package/commands/ms/help.md
CHANGED
|
@@ -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, task tracker.
|
|
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
|
-
-
|
|
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,
|
|
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
|
-
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
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
|
-
-
|
|
272
|
-
-
|
|
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
|
|
@@ -366,11 +366,13 @@ Execute discovered work with knowledge-aware planning and execution.
|
|
|
366
366
|
- Use when: you discover work mid-session that can be completed in a single context window without multi-phase orchestration.
|
|
367
367
|
- Bridges the gap between `/ms:add-todo` (capture for later) and `/ms:insert-phase` (multi-plan coordination)
|
|
368
368
|
- Knowledge-aware: loads relevant knowledge files before planning, consolidates learnings after execution
|
|
369
|
+
- Accepts Linear ticket IDs when task tracker is configured via `/ms:config` — auto-fetches context, tags commits, and finalizes the ticket on completion
|
|
369
370
|
- Spawns Explore agents for codebase understanding, ms-adhoc-planner for plan creation, ms-executor for execution
|
|
370
371
|
- Creates per-execution artifacts in `.planning/adhoc/{timestamp}-{slug}/`
|
|
371
372
|
- Updates knowledge files via ms-consolidator after execution
|
|
372
373
|
|
|
373
374
|
Usage: `/ms:adhoc Fix auth token not refreshing on 401`
|
|
375
|
+
Usage: `/ms:adhoc MIN-123` (Linear ticket — auto-fetches context, finalizes on completion)
|
|
374
376
|
Usage: `/ms:adhoc Refactor API error handling to use consistent format`
|
|
375
377
|
|
|
376
378
|
### Utility Commands
|
|
@@ -501,7 +503,7 @@ Optional: `/ms:config` — configure code reviewers, gitignore, and other prefer
|
|
|
501
503
|
**Plan → execute loop (with optional quality gates):**
|
|
502
504
|
|
|
503
505
|
```
|
|
504
|
-
/ms:plan-phase 5 # Create
|
|
506
|
+
/ms:plan-phase 5 # Create PLAN.md file(s)
|
|
505
507
|
/ms:execute-phase 5 # Execute; produces SUMMARY + VERIFICATION
|
|
506
508
|
# If gaps found during verification, follow triage recommendation:
|
|
507
509
|
# 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="
|
|
63
|
-
Load
|
|
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
|
-
|
|
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
|
-
|
|
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,46 +163,44 @@ mkdir -p "$phase_dir"
|
|
|
129
163
|
Confirm: "Created directory: $phase_dir"
|
|
130
164
|
</step>
|
|
131
165
|
|
|
132
|
-
<step name="
|
|
133
|
-
|
|
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
|
-
|
|
169
|
+
Use Phase `{decimal_phase}` for traceability table references and footer dating.
|
|
170
|
+
</step>
|
|
138
171
|
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
179
|
+
Insert full phase entry matching roadmapper format with (INSERTED) marker:
|
|
152
180
|
|
|
153
|
-
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
167
|
-
**Details:**
|
|
168
|
-
[To be added during planning]
|
|
169
|
-
```
|
|
198
|
+
**3. Update progress table** — insert row in correct position:
|
|
199
|
+
```
|
|
200
|
+
| {decimal_phase}. {Name} (INSERTED) | Not started | - |
|
|
201
|
+
```
|
|
170
202
|
|
|
171
|
-
|
|
203
|
+
Write updated roadmap back to file.
|
|
172
204
|
|
|
173
205
|
The "(INSERTED)" marker helps identify decimal phases as urgent insertions.
|
|
174
206
|
|
|
@@ -194,14 +226,17 @@ Present completion summary:
|
|
|
194
226
|
|
|
195
227
|
```
|
|
196
228
|
Phase {decimal_phase} inserted after Phase {after_phase}:
|
|
197
|
-
-
|
|
229
|
+
- Goal: {goal}
|
|
230
|
+
- Requirements: {REQ-IDs}
|
|
231
|
+
- Success criteria: {count}
|
|
198
232
|
- Directory: .planning/phases/{decimal-phase}-{slug}/
|
|
199
233
|
- Status: Not planned yet
|
|
200
234
|
- Marker: (INSERTED) - indicates urgent work
|
|
201
235
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
236
|
+
Files updated:
|
|
237
|
+
- .planning/ROADMAP.md
|
|
238
|
+
- .planning/REQUIREMENTS.md
|
|
239
|
+
- .planning/STATE.md
|
|
205
240
|
```
|
|
206
241
|
|
|
207
242
|
Read `~/.claude/mindsystem/references/routing/next-phase-routing.md` and follow its instructions
|
|
@@ -227,15 +262,18 @@ ms-tools set-last-command "ms:insert-phase $ARGUMENTS"
|
|
|
227
262
|
- Don't modify the target phase content
|
|
228
263
|
- Don't create plans yet (that's /ms:plan-phase)
|
|
229
264
|
- Don't commit changes (user decides when to commit)
|
|
230
|
-
|
|
265
|
+
- Don't write skeletal "[To be planned]" entries — derive a real goal and success criteria
|
|
266
|
+
</anti_patterns>
|
|
231
267
|
|
|
232
268
|
<success_criteria>
|
|
233
269
|
Phase insertion is complete when:
|
|
234
270
|
|
|
235
|
-
- [ ]
|
|
236
|
-
- [ ]
|
|
237
|
-
- [ ] 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)
|
|
238
276
|
- [ ] STATE.md updated with roadmap evolution note
|
|
239
|
-
- [ ]
|
|
277
|
+
- [ ] User approved specification before writing
|
|
240
278
|
- [ ] User informed of next steps and dependency implications
|
|
241
|
-
|
|
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
|
|
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
|
|
|
@@ -276,7 +276,9 @@ Milestone name: $ARGUMENTS (optional — will emerge during discovery if not pro
|
|
|
276
276
|
|
|
277
277
|
19. **Route to next step:**
|
|
278
278
|
|
|
279
|
-
|
|
279
|
+
Determine primary suggestion:
|
|
280
|
+
- Default: `/ms:research-milestone` — domain research improves roadmap quality for most milestones
|
|
281
|
+
- Only `/ms:create-roadmap` when domain is clearly familiar, no open questions surfaced, and no external APIs, new libraries, or unfamiliar patterns
|
|
280
282
|
|
|
281
283
|
```
|
|
282
284
|
Milestone [Name] initialized.
|
|
@@ -289,17 +291,20 @@ Milestone name: $ARGUMENTS (optional — will emerge during discovery if not pro
|
|
|
289
291
|
|
|
290
292
|
## ▶ Next Up
|
|
291
293
|
|
|
292
|
-
`/ms:
|
|
294
|
+
`/ms:{suggested}` — [one-line reason from conversation]
|
|
293
295
|
|
|
294
296
|
<sub>`/clear` first → fresh context window</sub>
|
|
295
297
|
|
|
296
298
|
---
|
|
297
299
|
|
|
298
|
-
**Also available:**
|
|
300
|
+
**Also available:**
|
|
301
|
+
- `/ms:{alternative}` — [brief reason]
|
|
299
302
|
|
|
300
303
|
---
|
|
301
304
|
```
|
|
302
305
|
|
|
306
|
+
`{suggested}` and `{alternative}` are always one of: `research-milestone`, `create-roadmap`.
|
|
307
|
+
|
|
303
308
|
</process>
|
|
304
309
|
|
|
305
310
|
<success_criteria>
|
|
@@ -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:
|
|
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
|
-
-
|
|
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,
|
|
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
|
-
-
|
|
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
|
|
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
|
|
50
|
+
## Derive User Journeys
|
|
51
51
|
|
|
52
|
-
Transform SUMMARY.md accomplishments into
|
|
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
|
|
65
|
+
**Step 3: Derive user journeys**
|
|
66
66
|
|
|
67
|
-
For each user-observable accomplishment, derive:
|
|
68
|
-
- `name`:
|
|
69
|
-
- `
|
|
70
|
-
- `
|
|
71
|
-
- `
|
|
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 actions — click, 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
|
|
88
|
+
Group journeys by starting area for efficient navigation. Format as a numbered list:
|
|
82
89
|
|
|
83
90
|
```
|
|
84
91
|
1. **{name}**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
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
|
-
##
|
|
116
|
+
## User Journeys
|
|
108
117
|
|
|
109
|
-
{
|
|
118
|
+
{derived_journeys}
|
|
110
119
|
|
|
111
120
|
## Backend Context
|
|
112
121
|
|
|
113
|
-
{summary of which
|
|
114
|
-
|
|
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
|
-
|
|
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}
|
|
150
|
+
Report: "Browser verification: all {N} journeys passed"
|
|
142
151
|
|
|
143
152
|
</browser_verification>
|