mindsystem-cc 3.21.0 → 3.22.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.
Files changed (66) hide show
  1. package/README.md +4 -12
  2. package/agents/ms-plan-checker.md +30 -30
  3. package/agents/ms-plan-writer.md +1 -1
  4. package/agents/ms-product-researcher.md +4 -2
  5. package/agents/ms-verifier.md +25 -117
  6. package/commands/ms/add-phase.md +3 -4
  7. package/commands/ms/add-todo.md +3 -4
  8. package/commands/ms/adhoc.md +3 -4
  9. package/commands/ms/audit-milestone.md +4 -3
  10. package/commands/ms/complete-milestone.md +2 -2
  11. package/commands/ms/config.md +36 -9
  12. package/commands/ms/create-roadmap.md +3 -4
  13. package/commands/ms/debug.md +3 -4
  14. package/commands/ms/design-phase.md +8 -5
  15. package/commands/ms/discuss-phase.md +2 -2
  16. package/commands/ms/doctor.md +9 -6
  17. package/commands/ms/execute-phase.md +2 -5
  18. package/commands/ms/help.md +2 -2
  19. package/commands/ms/insert-phase.md +3 -4
  20. package/commands/ms/map-codebase.md +1 -2
  21. package/commands/ms/new-milestone.md +1 -3
  22. package/commands/ms/new-project.md +3 -5
  23. package/commands/ms/plan-milestone-gaps.md +3 -4
  24. package/commands/ms/plan-phase.md +2 -3
  25. package/commands/ms/progress.md +1 -0
  26. package/commands/ms/remove-phase.md +3 -4
  27. package/commands/ms/research-phase.md +4 -4
  28. package/commands/ms/research-project.md +9 -16
  29. package/commands/ms/review-design.md +4 -2
  30. package/commands/ms/verify-work.md +6 -8
  31. package/mindsystem/references/verification-patterns.md +0 -37
  32. package/mindsystem/templates/config.json +2 -1
  33. package/mindsystem/templates/roadmap.md +1 -1
  34. package/mindsystem/templates/state.md +2 -2
  35. package/mindsystem/templates/verification-report.md +3 -26
  36. package/mindsystem/workflows/discuss-phase.md +7 -3
  37. package/mindsystem/workflows/execute-phase.md +2 -18
  38. package/mindsystem/workflows/map-codebase.md +6 -12
  39. package/mindsystem/workflows/mockup-generation.md +46 -22
  40. package/mindsystem/workflows/plan-phase.md +12 -5
  41. package/mindsystem/workflows/verify-work.md +96 -69
  42. package/package.json +1 -1
  43. package/scripts/__pycache__/ms-tools.cpython-314.pyc +0 -0
  44. package/scripts/__pycache__/test_ms_tools.cpython-314-pytest-9.0.2.pyc +0 -0
  45. package/scripts/ms-tools.py +751 -6
  46. package/scripts/test_ms_tools.py +786 -0
  47. package/agents/ms-flutter-code-quality.md +0 -169
  48. package/agents/ms-flutter-reviewer.md +0 -211
  49. package/agents/ms-flutter-simplifier.md +0 -79
  50. package/mindsystem/workflows/verify-phase.md +0 -625
  51. package/skills/flutter-code-quality/SKILL.md +0 -143
  52. package/skills/flutter-code-simplification/SKILL.md +0 -102
  53. package/skills/flutter-senior-review/AGENTS.md +0 -869
  54. package/skills/flutter-senior-review/SKILL.md +0 -205
  55. package/skills/flutter-senior-review/principles/dependencies-data-not-callbacks.md +0 -75
  56. package/skills/flutter-senior-review/principles/dependencies-provider-tree.md +0 -85
  57. package/skills/flutter-senior-review/principles/dependencies-temporal-coupling.md +0 -97
  58. package/skills/flutter-senior-review/principles/pragmatism-consistent-error-handling.md +0 -130
  59. package/skills/flutter-senior-review/principles/pragmatism-speculative-generality.md +0 -91
  60. package/skills/flutter-senior-review/principles/state-data-clumps.md +0 -64
  61. package/skills/flutter-senior-review/principles/state-invalid-states.md +0 -53
  62. package/skills/flutter-senior-review/principles/state-single-source-of-truth.md +0 -68
  63. package/skills/flutter-senior-review/principles/state-type-hierarchies.md +0 -75
  64. package/skills/flutter-senior-review/principles/structure-composition-over-config.md +0 -105
  65. package/skills/flutter-senior-review/principles/structure-shared-visual-patterns.md +0 -107
  66. package/skills/flutter-senior-review/principles/structure-wrapper-pattern.md +0 -90
@@ -41,6 +41,7 @@ ls .planning/phases/${PHASE}-*/*DESIGN.md 2>/dev/null
41
41
  ## 1. Parse and Validate Phase
42
42
 
43
43
  ```bash
44
+ # ms-tools is on PATH — invoke directly, not as a script path
44
45
  ms-tools find-phase "$ARGUMENTS"
45
46
  ```
46
47
 
@@ -78,7 +79,10 @@ Scan skills in your system-reminder for matches. Look for skills related to:
78
79
 
79
80
  **3b. Confirm with user:**
80
81
 
81
- Use AskUserQuestion to present findings. Always include an escape hatch for the user to name a skill manually.
82
+ Present via AskUserQuestion with `multiSelect: true`:
83
+ - Each matching skill is one option (label: skill name, description: what it provides)
84
+ - Always include a "None — skip skill loading" option
85
+ - User selects which to load, skips, or types a skill name in the free-text field
82
86
 
83
87
  **3c. Load selected skills:**
84
88
 
@@ -429,10 +433,9 @@ Read `~/.claude/mindsystem/templates/design-iteration.md` and use the iteration
429
433
 
430
434
  ## 9. Update Last Command
431
435
 
432
- Update `.planning/STATE.md` Last Command field:
433
- - Find line starting with `Last Command:` in Current Position section
434
- - Replace with: `Last Command: ms:design-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
435
- - If line doesn't exist, add it after `Status:` line
436
+ ```bash
437
+ ms-tools set-last-command "ms:design-phase $ARGUMENTS"
438
+ ```
436
439
 
437
440
  </process>
438
441
 
@@ -28,6 +28,7 @@ Phase number: $ARGUMENTS (required)
28
28
 
29
29
  **Resolve phase:**
30
30
  ```bash
31
+ # ms-tools is on PATH — invoke directly, not as a script path
31
32
  ms-tools find-phase "$ARGUMENTS"
32
33
  ```
33
34
 
@@ -52,8 +53,7 @@ ms-tools find-phase "$ARGUMENTS"
52
53
  8. **Informed discussion** — follow discuss-phase.md workflow. ALL questions use AskUserQuestion.
53
54
  9. Create CONTEXT.md capturing their vision with reasoning-backed decisions
54
55
  10. Present pre-work status: Read `~/.claude/mindsystem/references/prework-status.md` and show what's done vs still needed for this phase
55
- 11. Update `.planning/STATE.md` Last Command field:
56
- - Format: `Last Command: ms:discuss-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
56
+ 11. **Update last command:** `ms-tools set-last-command "ms:discuss-phase $ARGUMENTS"`
57
57
 
58
58
  **CRITICAL: ALL questions use AskUserQuestion. Never ask inline text questions.**
59
59
  </process>
@@ -13,7 +13,7 @@ allowed-tools:
13
13
  ---
14
14
 
15
15
  <objective>
16
- Run health checks on project configuration. Detect and fix structural drift across 8 categories: subsystem vocabulary, milestone directory structure, milestone naming convention, phase archival, knowledge files, phase summaries, PLAN cleanup, and CLI wrappers.
16
+ Run health checks on project configuration. Detect and fix structural drift across 9 categories: subsystem vocabulary, milestone directory structure, milestone naming convention, phase archival, knowledge files, phase summaries, PLAN cleanup, CLI wrappers, and research API keys.
17
17
 
18
18
  Idempotent.
19
19
  </objective>
@@ -72,10 +72,11 @@ Proceed to next step.
72
72
  Run the diagnostic scan:
73
73
 
74
74
  ```bash
75
+ # ms-tools is on PATH — invoke directly, not as a script path
75
76
  ms-tools doctor-scan
76
77
  ```
77
78
 
78
- Capture the full output. Parse each check's Status (PASS/FAIL/SKIP) and detail lines.
79
+ Capture the full output. Parse each check's Status (PASS/FAIL/SKIP/WARN) and detail lines.
79
80
  </step>
80
81
 
81
82
  <step name="present_results">
@@ -94,11 +95,12 @@ Display results as a markdown table:
94
95
  | Phase summaries | FAIL | 2 milestones missing summaries |
95
96
  | PLAN cleanup | FAIL | 9 leftover PLAN.md files |
96
97
  | CLI wrappers | FAIL | ms-tools not on PATH |
98
+ | Research API Keys | WARN | PERPLEXITY_API_KEY not set |
97
99
  ```
98
100
 
99
101
  Populate Result and Details from scan output. Use concise detail summaries.
100
102
 
101
- If all PASS → go to `report`.
103
+ If all PASS (or WARN only) → go to `report`.
102
104
  If any FAIL → go to `confirm_action`.
103
105
  </step>
104
106
 
@@ -117,7 +119,7 @@ If "Review each" → use AskUserQuestion for each failed check with its details
117
119
 
118
120
  Apply fixes in dependency order: fix_subsystems → fix_milestone_dirs → fix_milestone_naming → fix_phase_archival → fix_plan_cleanup → fix_knowledge. Skip any fix whose check passed or was skipped by user.
119
121
 
120
- Phase summaries are resolved by fix_phase_archival. CLI wrappers require manual PATH configuration (no automated fix).
122
+ Phase summaries are resolved by fix_phase_archival. CLI wrappers require manual PATH configuration (no automated fix). WARN checks (Research API Keys) are informational — no fix offered, only displayed in the report.
121
123
  </step>
122
124
 
123
125
  <step name="apply_fixes">
@@ -152,11 +154,12 @@ Final summary table:
152
154
  | Phase summaries | PASS | ... |
153
155
  | PLAN cleanup | PASS | ... |
154
156
  | CLI wrappers | PASS | ... |
157
+ | Research API Keys | PASS | ... |
155
158
 
156
159
  All checks passed.
157
160
  ```
158
161
 
159
- Include counts: checks total, passed, fixed during this run.
162
+ Include counts: checks total, passed, warned, fixed during this run.
160
163
  </step>
161
164
 
162
165
  </process>
@@ -167,6 +170,6 @@ Include counts: checks total, passed, fixed during this run.
167
170
  - [ ] Re-scan verifies all checks pass after fixes
168
171
  - [ ] Each fix group committed atomically
169
172
  - [ ] Fixes applied in dependency order: subsystems → dirs → milestone naming → archival → cleanup → knowledge
170
- - [ ] All 8 categories reported with PASS/FAIL/SKIP
173
+ - [ ] All 9 categories reported with PASS/FAIL/WARN/SKIP
171
174
  - [ ] Clean project reports all PASS with no fix prompts
172
175
  </success_criteria>
@@ -32,6 +32,7 @@ Phase: $ARGUMENTS
32
32
 
33
33
  **Resolve phase:**
34
34
  ```bash
35
+ # ms-tools is on PATH — invoke directly, not as a script path
35
36
  ms-tools find-phase "$ARGUMENTS"
36
37
  ```
37
38
 
@@ -74,7 +75,6 @@ ms-tools find-phase "$ARGUMENTS"
74
75
  - Creates VERIFICATION.md with detailed report
75
76
  - Route by status:
76
77
  - `passed` → continue to step 7
77
- - `human_needed` → present items, get approval or feedback
78
78
  - `gaps_found` → present gaps, offer `/ms:plan-phase {X} --gaps`
79
79
 
80
80
  7. **Code review (optional)**
@@ -118,9 +118,7 @@ ms-tools find-phase "$ARGUMENTS"
118
118
  13. **Offer next steps**
119
119
  - Route to next action (see `<offer_next>`)
120
120
 
121
- 14. **Update last command**
122
- - Update `.planning/STATE.md` Last Command field
123
- - Format: `Last Command: ms:execute-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
121
+ 14. **Update last command:** `ms-tools set-last-command "ms:execute-phase $ARGUMENTS"`
124
122
  </process>
125
123
 
126
124
  <offer_next>
@@ -143,7 +141,6 @@ Then route based on status:
143
141
  | Status | Route |
144
142
  |--------|-------|
145
143
  | `gaps_found` | Route C (gap closure) |
146
- | `human_needed` | Present checklist, then re-route based on approval |
147
144
  | `passed` + more phases | Route A (next phase) |
148
145
  | `passed` + last phase | Route B (milestone complete) |
149
146
 
@@ -84,9 +84,9 @@ Initialize new project with brief and configuration.
84
84
  Usage: `/ms:new-project`
85
85
 
86
86
  **`/ms:config`**
87
- Configure Mindsystem preferences — code reviewers, gitignore patterns, git remote.
87
+ Configure Mindsystem preferences — code reviewers, mockup preferences, gitignore patterns, git remote.
88
88
 
89
- - Use when: you want to set up code review agents, manage which .planning/ artifacts are git-ignored, or push your repo to GitHub.
89
+ - 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.
90
90
  - Edits `.planning/config.json` and `.gitignore`
91
91
  - Suggests code reviewers based on tech stack (needs PROJECT.md)
92
92
  - Idempotent — run anytime to reconfigure
@@ -216,10 +216,9 @@ After the "Next Up" section, add:
216
216
  </step>
217
217
 
218
218
  <step name="update_last_command">
219
- Update `.planning/STATE.md` Last Command field:
220
- - Find line starting with `Last Command:` in Current Position section
221
- - Replace with: `Last Command: ms:insert-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
222
- - If line doesn't exist, add it after `Status:` line
219
+ ```bash
220
+ ms-tools set-last-command "ms:insert-phase $ARGUMENTS"
221
+ ```
223
222
  </step>
224
223
 
225
224
  </process>
@@ -60,8 +60,7 @@ Check for .planning/STATE.md - loads context if project already initialized
60
60
  5. Verify all 7 documents exist with line counts
61
61
  6. Commit codebase map
62
62
  7. Offer next steps (typically: /ms:new-project or /ms:plan-phase)
63
- 8. Update `.planning/STATE.md` Last Command field (if STATE.md exists):
64
- - Format: `Last Command: ms:map-codebase $ARGUMENTS | YYYY-MM-DD HH:MM`
63
+ 8. **Update last command:** `ms-tools set-last-command "ms:map-codebase $ARGUMENTS"`
65
64
  </process>
66
65
 
67
66
  <success_criteria>
@@ -301,9 +301,7 @@ Milestone name: $ARGUMENTS (optional — will emerge during discovery if not pro
301
301
  ---
302
302
  ```
303
303
 
304
- 20. **Update last command:**
305
- - Update `.planning/STATE.md` Last Command field
306
- - Format: `Last Command: ms:new-milestone $ARGUMENTS | YYYY-MM-DD HH:MM`
304
+ 20. **Update last command:** `ms-tools set-last-command "ms:new-milestone $ARGUMENTS"`
307
305
 
308
306
  </process>
309
307
 
@@ -265,11 +265,9 @@ Project updated:
265
265
  </step>
266
266
 
267
267
  <step name="update_last_command">
268
- Update `.planning/STATE.md` Last Command field (if STATE.md exists):
269
- - Find line starting with `Last Command:` in Current Position section
270
- - Replace with: `Last Command: ms:new-project | YYYY-MM-DD HH:MM`
271
- - If line doesn't exist, add it after `Status:` line
272
- - Note: STATE.md may not exist yet if this is the first command
268
+ ```bash
269
+ ms-tools set-last-command "ms:new-project"
270
+ ```
273
271
  </step>
274
272
 
275
273
  </process>
@@ -195,10 +195,9 @@ git commit -m "docs(roadmap): add gap closure phases {N}-{M}"
195
195
 
196
196
  ## 10. Update Last Command
197
197
 
198
- Update `.planning/STATE.md` Last Command field:
199
- - Find line starting with `Last Command:` in Current Position section
200
- - Replace with: `Last Command: ms:plan-milestone-gaps | YYYY-MM-DD HH:MM`
201
- - If line doesn't exist, add it after `Status:` line
198
+ ```bash
199
+ ms-tools set-last-command "ms:plan-milestone-gaps"
200
+ ```
202
201
 
203
202
  </process>
204
203
 
@@ -36,6 +36,7 @@ Gap closure mode: `--gaps` flag triggers gap closure workflow
36
36
 
37
37
  **Resolve phase if provided:**
38
38
  ```bash
39
+ # ms-tools is on PATH — invoke directly, not as a script path
39
40
  PHASE_ARG=$(echo "$ARGUMENTS" | grep -oE '^[0-9]+' | head -1)
40
41
  if [ -n "$PHASE_ARG" ]; then
41
42
  ms-tools find-phase "$PHASE_ARG"
@@ -104,9 +105,7 @@ Check for `.planning/codebase/` and load relevant documents based on phase type.
104
105
  - Number plans sequentially after existing (if 01-03 exist, create 04, 05...)
105
106
  - Create PLAN.md file(s) focused on closing specific gaps
106
107
 
107
- 6. **Update last command**
108
- - Update `.planning/STATE.md` Last Command field
109
- - Format: `Last Command: ms:plan-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
108
+ 6. **Update last command:** `ms-tools set-last-command "ms:plan-phase $ARGUMENTS"`
110
109
 
111
110
  7. **Risk assessment** (skip if `--gaps` flag present)
112
111
  - Calculate risk score from context already loaded (task count, plan count, external services, CONTEXT.md, cross-cutting concerns, new deps, complex domains)
@@ -129,6 +129,7 @@ DESIGN: [✓ if DESIGN.md exists | - if not]
129
129
  List files in the current phase directory:
130
130
 
131
131
  ```bash
132
+ # ms-tools is on PATH — invoke directly, not as a script path
132
133
  ms-tools list-artifacts [current-phase-number]
133
134
  ```
134
135
 
@@ -298,10 +298,9 @@ Would you like to:
298
298
  </step>
299
299
 
300
300
  <step name="update_last_command">
301
- Update `.planning/STATE.md` Last Command field:
302
- - Find line starting with `Last Command:` in Current Position section
303
- - Replace with: `Last Command: ms:remove-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
304
- - If line doesn't exist, add it after `Status:` line
301
+ ```bash
302
+ ms-tools set-last-command "ms:remove-phase $ARGUMENTS"
303
+ ```
305
304
  </step>
306
305
 
307
306
  </process>
@@ -21,6 +21,7 @@ Phase number: $ARGUMENTS (required)
21
21
 
22
22
  **Resolve phase:**
23
23
  ```bash
24
+ # ms-tools is on PATH — invoke directly, not as a script path
24
25
  ms-tools find-phase "$ARGUMENTS"
25
26
  ```
26
27
 
@@ -323,10 +324,9 @@ If any section has LOW confidence or significant open questions, flag the weak a
323
324
 
324
325
  ## 8. Update Last Command
325
326
 
326
- Update `.planning/STATE.md` Last Command field:
327
- - Find line starting with `Last Command:` in Current Position section
328
- - Replace with: `Last Command: ms:research-phase $ARGUMENTS | YYYY-MM-DD HH:MM`
329
- - If line doesn't exist, add it after `Status:` line
327
+ ```bash
328
+ ms-tools set-last-command "ms:research-phase $ARGUMENTS"
329
+ ```
330
330
 
331
331
  </process>
332
332
 
@@ -299,18 +299,12 @@ Create SUMMARY.md with:
299
299
  - Confidence assessment
300
300
  - Gaps to address
301
301
 
302
- After creating SUMMARY.md, update config.json code_review fields with agent names:
303
- 1. Read recommended stack from STACK.md
304
- 2. Map to code review agent names:
305
- - Flutter/Dart:
306
- - adhoc: \"ms-flutter-code-quality\"
307
- - phase: \"ms-flutter-code-quality\"
308
- - milestone: \"ms-flutter-reviewer\"
309
- - All others:
310
- - adhoc: \"ms-code-simplifier\"
311
- - phase: \"ms-code-simplifier\"
312
- - milestone: (leave as null)
313
- 3. Update .planning/config.json (create from template if needed)
302
+ After creating SUMMARY.md, update config.json code_review fields with default agent names:
303
+ 1. Default for all frameworks:
304
+ - adhoc: \"ms-code-simplifier\"
305
+ - phase: \"ms-code-simplifier\"
306
+ - milestone: null
307
+ 2. Update .planning/config.json (create from template if needed)
314
308
 
315
309
  Then commit ALL research files together:
316
310
  git add .planning/research/
@@ -343,10 +337,9 @@ Key findings:
343
337
 
344
338
  ## 8. Update Last Command
345
339
 
346
- Update `.planning/STATE.md` Last Command field:
347
- - Find line starting with `Last Command:` in Current Position section
348
- - Replace with: `Last Command: ms:research-project | YYYY-MM-DD HH:MM`
349
- - If line doesn't exist, add it after `Status:` line
340
+ ```bash
341
+ ms-tools set-last-command "ms:research-project"
342
+ ```
350
343
 
351
344
  </process>
352
345
 
@@ -76,7 +76,7 @@ Before analyzing, establish what this screen is trying to accomplish.
76
76
  - Read `.planning/PROJECT.md` for product type, core value, target audience
77
77
  - If phase-based, grep `.planning/ROADMAP.md` for phase requirements
78
78
  - Glob for existing DESIGN.md in `.planning/phases/` for design intent
79
- - Check available skills for one matching `*-ui` or `*-design` in name or description — if found, invoke via Skill tool for existing patterns
79
+ - Scan available skills in system-reminder for matches related to UI, design, or the screen's platform/framework. If matches found, present via AskUserQuestion with `multiSelect: true`: each matching skill is one option (label: skill name, description: what it provides), always include a "None skip skill loading" option. User selects which to load, skips, or types a skill name in the free-text field. Load selected skills via Skill tool for existing patterns.
80
80
 
81
81
  **State the screen's job in one sentence:**
82
82
  > "This screen helps the user [accomplish X]."
@@ -186,7 +186,9 @@ Run the app and check this screen — [describe the expected visual difference i
186
186
 
187
187
  ## Step 8: Update Last Command
188
188
 
189
- Run: `sed -i '' "s/^Last Command:.*/Last Command: ms:review-design $ARGUMENTS | $(date '+%Y-%m-%d %H:%M')/" .planning/STATE.md`
189
+ ```bash
190
+ ms-tools set-last-command "ms:review-design $ARGUMENTS"
191
+ ```
190
192
 
191
193
  </process>
192
194
 
@@ -47,10 +47,10 @@ Phase: $ARGUMENTS (optional)
47
47
  7. **For each batch:**
48
48
  - If mock needed: Apply inline mocks (1-4 direct edits, 5+ via ms-mock-generator subagent), tell user to hot reload
49
49
  - Present tests via AskUserQuestion (Pass / Can't test / Skip / Other)
50
- - Process results, update UAT.md
50
+ - Process results UAT.md updates happen via `ms-tools uat-update` (auto-recalculates progress)
51
51
  - **For each issue found:**
52
52
  - Lightweight investigation (2-3 tool calls)
53
- - If simple: Fix inline, commit, ask for re-test
53
+ - If simple: Fix inline, commit (amend previous fix commit on retry when HEAD matches fix_commit), ask for re-test
54
54
  - If complex: Spawn ms-verify-fixer subagent
55
55
  - 2 retries on failed re-test, then offer options
56
56
  8. **On batch transition:**
@@ -60,14 +60,10 @@ Phase: $ARGUMENTS (optional)
60
60
  - Revert all mocks (`git checkout -- <mocked_files>`)
61
61
  - Generate UAT fixes patch
62
62
  - Restore user's pre-existing work (if stashed)
63
- - Commit UAT.md, present summary
63
+ - Commit UAT.md + STATE.md together in one completion commit, present summary
64
64
  - **Update knowledge pitfalls** — if significant UAT issues (blocker/major) were fixed, append pitfall entries to relevant knowledge files
65
65
 
66
- 10. **Update last command**
67
- - Update `.planning/STATE.md` Last Command field
68
- - Format: `Last Command: ms:verify-work $ARGUMENTS | YYYY-MM-DD HH:MM`
69
-
70
- 11. **Present next steps**
66
+ 10. **Present next steps**
71
67
  - If this was the last phase in milestone: suggest `/ms:audit-milestone`
72
68
  - If more phases remain: Read `~/.claude/mindsystem/references/routing/next-phase-routing.md` and follow its instructions to present "Next Up" with pre-work context for the next phase
73
69
  </process>
@@ -80,6 +76,8 @@ Phase: $ARGUMENTS (optional)
80
76
  - Don't fix complex issues inline — spawn fixer subagent for multi-file or architectural changes
81
77
  - Don't commit mock code — stash mocked files before fixing, restore after
82
78
  - Don't re-present skipped tests — assumptions stand
79
+ - Don't Read/Edit UAT.md for field updates — use `ms-tools uat-update`
80
+ - Don't create separate commits for retry fixes — amend previous fix commit when HEAD matches fix_commit
83
81
  </anti_patterns>
84
82
 
85
83
  <success_criteria>
@@ -556,40 +556,3 @@ Run these checks against each must-have artifact. Aggregate results into VERIFIC
556
556
 
557
557
  </automated_verification_script>
558
558
 
559
- <human_verification_triggers>
560
-
561
- ## When to Require Human Verification
562
-
563
- Some things can't be verified programmatically. Flag these for human testing:
564
-
565
- **Always human:**
566
- - Visual appearance (does it look right?)
567
- - User flow completion (can you actually do the thing?)
568
- - Real-time behavior (WebSocket, SSE)
569
- - External service integration (Stripe, email sending)
570
- - Error message clarity (is the message helpful?)
571
- - Performance feel (does it feel fast?)
572
-
573
- **Human if uncertain:**
574
- - Complex wiring that grep can't trace
575
- - Dynamic behavior depending on state
576
- - Edge cases and error states
577
- - Mobile responsiveness
578
- - Accessibility
579
-
580
- **Format for human verification request:**
581
- ```markdown
582
- ## Human Verification Required
583
-
584
- ### 1. Chat message sending
585
- **Test:** Type a message and click Send
586
- **Expected:** Message appears in list, input clears
587
- **Check:** Does message persist after refresh?
588
-
589
- ### 2. Error handling
590
- **Test:** Disconnect network, try to send
591
- **Expected:** Error message appears, message not lost
592
- **Check:** Can retry after reconnect?
593
- ```
594
-
595
- </human_verification_triggers>
@@ -4,5 +4,6 @@
4
4
  "adhoc": null,
5
5
  "phase": null,
6
6
  "milestone": null
7
- }
7
+ },
8
+ "open_mockups": "auto"
8
9
  }
@@ -135,7 +135,7 @@ Phases execute in numeric order: 2 → 2.1 → 2.2 → 3 → 3.1 → 4
135
135
  - 2-5 observable behaviors per phase (from user's perspective)
136
136
  - Cross-checked against requirements during roadmap creation
137
137
  - Flow downstream to `## Must-Haves` in plan-phase
138
- - Verified by verify-phase after execution
138
+ - Verified by ms-verifier agent after execution
139
139
  - Format: "User can [action]" or "[Thing] works/exists"
140
140
 
141
141
  **Pre-work indicators** (all use Likely/Unlikely with parenthetical reason):
@@ -115,8 +115,8 @@ STATE.md is the project's short-term memory spanning all phases and sessions.
115
115
  - adhoc: After adhoc work completed
116
116
  - Add entry to "Recent Adhoc Work" section
117
117
  - Keep last 5 entries (older entries remain in .planning/adhoc/)
118
- - Any state-changing command: Update Last Command field
119
- - Format: `ms:{command} {args} | YYYY-MM-DD HH:MM`
118
+ - Any state-changing command: `ms-tools set-last-command "ms:{command} {args}"`
119
+ - Appends real local timestamp via `datetime.now()`
120
120
  - Enables status line to show context without running /ms:progress
121
121
 
122
122
  </lifecycle>
@@ -10,15 +10,16 @@ Template for `.planning/phases/XX-name/{phase}-VERIFICATION.md` — phase goal v
10
10
  ---
11
11
  phase: XX-name
12
12
  verified: YYYY-MM-DDTHH:MM:SSZ
13
- status: passed | gaps_found | human_needed
13
+ status: passed | gaps_found
14
14
  score: N/M must-haves verified
15
+ uncertain: N # UNCERTAIN truths + NEEDS HUMAN requirements
15
16
  ---
16
17
 
17
18
  # Phase {X}: {Name} Verification Report
18
19
 
19
20
  **Phase Goal:** {goal from ROADMAP.md}
20
21
  **Verified:** {timestamp}
21
- **Status:** {passed | gaps_found | human_needed}
22
+ **Status:** {passed | gaps_found}
22
23
 
23
24
  ## Goal Achievement
24
25
 
@@ -72,23 +73,6 @@ score: N/M must-haves verified
72
73
 
73
74
  **Anti-patterns:** {N} found ({blockers} blockers, {warnings} warnings)
74
75
 
75
- ## Human Verification Required
76
-
77
- {If no human verification needed:}
78
- None — all verifiable items checked programmatically.
79
-
80
- {If human verification needed:}
81
-
82
- ### 1. {Test Name}
83
- **Test:** {What to do}
84
- **Expected:** {What should happen}
85
- **Why human:** {Why can't verify programmatically}
86
-
87
- ### 2. {Test Name}
88
- **Test:** {What to do}
89
- **Expected:** {What should happen}
90
- **Why human:** {Why can't verify programmatically}
91
-
92
76
  ## Gaps Summary
93
77
 
94
78
  {If no gaps:}
@@ -149,7 +133,6 @@ None — all verifiable items checked programmatically.
149
133
  **Verification approach:** Goal-backward (derived from phase goal)
150
134
  **Must-haves source:** {PLAN.md ## Must-Haves section | derived from ROADMAP.md goal}
151
135
  **Automated checks:** {N} passed, {M} failed
152
- **Human checks required:** {N}
153
136
  **Total verification time:** {duration}
154
137
 
155
138
  ---
@@ -164,7 +147,6 @@ None — all verifiable items checked programmatically.
164
147
  **Status values:**
165
148
  - `passed` — All must-haves verified, no blockers
166
149
  - `gaps_found` — One or more critical gaps found
167
- - `human_needed` — Automated checks pass but human verification required
168
150
 
169
151
  **Evidence types:**
170
152
  - For EXISTS: "File at path, exports X"
@@ -257,10 +239,6 @@ score: 2/5 must-haves verified
257
239
 
258
240
  **Anti-patterns:** 3 found (2 blockers, 1 warning)
259
241
 
260
- ## Human Verification Required
261
-
262
- None needed until automated gaps are fixed.
263
-
264
242
  ## Gaps Summary
265
243
 
266
244
  ### Critical Gaps (Block Progress)
@@ -313,7 +291,6 @@ None needed until automated gaps are fixed.
313
291
  **Verification approach:** Goal-backward (derived from phase goal)
314
292
  **Must-haves source:** 03-01-PLAN.md ## Must-Haves section
315
293
  **Automated checks:** 2 passed, 8 failed
316
- **Human checks required:** 0 (blocked by automated failures)
317
294
  **Total verification time:** 2 min
318
295
 
319
296
  ---
@@ -130,6 +130,10 @@ Use AskUserQuestion:
130
130
  Spawn ms-product-researcher subagent via Task tool:
131
131
 
132
132
  ```
133
+ <current_date>
134
+ [Output of: date +%Y-%m]
135
+ </current_date>
136
+
133
137
  <product_context>
134
138
  [Who It's For, Core Value, How It's Different from PROJECT.md]
135
139
  </product_context>
@@ -320,9 +324,9 @@ Read `~/.claude/mindsystem/references/prework-status.md` and present what's done
320
324
  </step>
321
325
 
322
326
  <step name="update_state">
323
- Update `.planning/STATE.md` Last Command field:
324
-
325
- Format: `Last Command: ms:discuss-phase ${PHASE} | YYYY-MM-DD HH:MM`
327
+ ```bash
328
+ ms-tools set-last-command "ms:discuss-phase ${PHASE}"
329
+ ```
326
330
  </step>
327
331
 
328
332
  </process>
@@ -274,34 +274,18 @@ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
274
274
  | Status | Action |
275
275
  |--------|--------|
276
276
  | `passed` | Continue to code_review |
277
- | `human_needed` | Present items to user, get approval or feedback |
278
277
  | `gaps_found` | Present gap summary, offer `/ms:plan-phase {phase} --gaps` |
279
278
 
280
279
  **If passed:**
281
280
 
282
281
  Phase goal verified. Proceed to code_review.
283
282
 
284
- **If human_needed:**
283
+ If the verifier's return includes "Items Not Verified Programmatically" (uncertain > 0), surface that section to the user before proceeding:
285
284
 
286
285
  ```markdown
287
- ## Phase {X}: {Name} Human Verification Required
288
-
289
- All automated checks passed. {N} items need human testing:
290
-
291
- ### Human Verification Checklist
292
-
293
- {Extract from VERIFICATION.md human_verification section}
294
-
295
- ---
296
-
297
- **After testing:**
298
- - "approved" → continue to code_review
299
- - Report issues → will route to gap closure planning
286
+ **Note:** {N} items could not be verified by structural checks alone. Consider `/ms:verify-work {phase}` to validate these through UAT.
300
287
  ```
301
288
 
302
- If user approves → continue to code_review.
303
- If user reports issues → treat as gaps_found.
304
-
305
289
  **If gaps_found:**
306
290
 
307
291
  Present gaps and offer next command:
@@ -96,18 +96,12 @@ Write these documents to .planning/codebase/:
96
96
  - STACK.md - Languages, runtime, frameworks, dependencies, configuration
97
97
  - INTEGRATIONS.md - External APIs, databases, auth providers, webhooks
98
98
 
99
- After writing STACK.md, update config.json code_review fields with the appropriate agent names:
100
- 1. Read STACK.md to detect primary framework
101
- 2. Map framework to code review agent names:
102
- - Flutter/Dart:
103
- - adhoc: "ms-flutter-code-quality"
104
- - phase: "ms-flutter-code-quality"
105
- - milestone: "ms-flutter-reviewer"
106
- - All others (React, Next.js, Node, Swift, Kotlin, etc.):
107
- - adhoc: "ms-code-simplifier"
108
- - phase: "ms-code-simplifier"
109
- - milestone: (leave as null — runtime defaults to ms-flutter-reviewer)
110
- 3. If .planning/config.json exists: update all three code_review fields
99
+ After writing STACK.md, update config.json code_review fields with the default agent names:
100
+ 1. Default for all frameworks:
101
+ - adhoc: "ms-code-simplifier"
102
+ - phase: "ms-code-simplifier"
103
+ - milestone: null
104
+ 2. If .planning/config.json exists: update all three code_review fields
111
105
  If not: note the recommended code review agents for later config creation
112
106
 
113
107
  Explore thoroughly. Write documents directly using templates. Return confirmation only.