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.
- package/README.md +4 -12
- package/agents/ms-plan-checker.md +30 -30
- package/agents/ms-plan-writer.md +1 -1
- package/agents/ms-product-researcher.md +4 -2
- package/agents/ms-verifier.md +25 -117
- package/commands/ms/add-phase.md +3 -4
- package/commands/ms/add-todo.md +3 -4
- package/commands/ms/adhoc.md +3 -4
- package/commands/ms/audit-milestone.md +4 -3
- package/commands/ms/complete-milestone.md +2 -2
- package/commands/ms/config.md +36 -9
- package/commands/ms/create-roadmap.md +3 -4
- package/commands/ms/debug.md +3 -4
- package/commands/ms/design-phase.md +8 -5
- package/commands/ms/discuss-phase.md +2 -2
- package/commands/ms/doctor.md +9 -6
- package/commands/ms/execute-phase.md +2 -5
- package/commands/ms/help.md +2 -2
- package/commands/ms/insert-phase.md +3 -4
- package/commands/ms/map-codebase.md +1 -2
- package/commands/ms/new-milestone.md +1 -3
- package/commands/ms/new-project.md +3 -5
- package/commands/ms/plan-milestone-gaps.md +3 -4
- package/commands/ms/plan-phase.md +2 -3
- package/commands/ms/progress.md +1 -0
- package/commands/ms/remove-phase.md +3 -4
- package/commands/ms/research-phase.md +4 -4
- package/commands/ms/research-project.md +9 -16
- package/commands/ms/review-design.md +4 -2
- package/commands/ms/verify-work.md +6 -8
- package/mindsystem/references/verification-patterns.md +0 -37
- package/mindsystem/templates/config.json +2 -1
- package/mindsystem/templates/roadmap.md +1 -1
- package/mindsystem/templates/state.md +2 -2
- package/mindsystem/templates/verification-report.md +3 -26
- package/mindsystem/workflows/discuss-phase.md +7 -3
- package/mindsystem/workflows/execute-phase.md +2 -18
- package/mindsystem/workflows/map-codebase.md +6 -12
- package/mindsystem/workflows/mockup-generation.md +46 -22
- package/mindsystem/workflows/plan-phase.md +12 -5
- package/mindsystem/workflows/verify-work.md +96 -69
- package/package.json +1 -1
- package/scripts/__pycache__/ms-tools.cpython-314.pyc +0 -0
- package/scripts/__pycache__/test_ms_tools.cpython-314-pytest-9.0.2.pyc +0 -0
- package/scripts/ms-tools.py +751 -6
- package/scripts/test_ms_tools.py +786 -0
- package/agents/ms-flutter-code-quality.md +0 -169
- package/agents/ms-flutter-reviewer.md +0 -211
- package/agents/ms-flutter-simplifier.md +0 -79
- package/mindsystem/workflows/verify-phase.md +0 -625
- package/skills/flutter-code-quality/SKILL.md +0 -143
- package/skills/flutter-code-simplification/SKILL.md +0 -102
- package/skills/flutter-senior-review/AGENTS.md +0 -869
- package/skills/flutter-senior-review/SKILL.md +0 -205
- package/skills/flutter-senior-review/principles/dependencies-data-not-callbacks.md +0 -75
- package/skills/flutter-senior-review/principles/dependencies-provider-tree.md +0 -85
- package/skills/flutter-senior-review/principles/dependencies-temporal-coupling.md +0 -97
- package/skills/flutter-senior-review/principles/pragmatism-consistent-error-handling.md +0 -130
- package/skills/flutter-senior-review/principles/pragmatism-speculative-generality.md +0 -91
- package/skills/flutter-senior-review/principles/state-data-clumps.md +0 -64
- package/skills/flutter-senior-review/principles/state-invalid-states.md +0 -53
- package/skills/flutter-senior-review/principles/state-single-source-of-truth.md +0 -68
- package/skills/flutter-senior-review/principles/state-type-hierarchies.md +0 -75
- package/skills/flutter-senior-review/principles/structure-composition-over-config.md +0 -105
- package/skills/flutter-senior-review/principles/structure-shared-visual-patterns.md +0 -107
- package/skills/flutter-senior-review/principles/structure-wrapper-pattern.md +0 -90
package/README.md
CHANGED
|
@@ -272,7 +272,7 @@ Replace `<N>` with the phase number you're working on.
|
|
|
272
272
|
- `.planning/milestones/mvp/` — archived milestone (ROADMAP, REQUIREMENTS, DECISIONS, research)
|
|
273
273
|
- Active docs stay lean; full detail lives in the version folder
|
|
274
274
|
|
|
275
|
-
**Tip:** Milestone review can be **report-only**
|
|
275
|
+
**Tip:** Milestone review can be **report-only** so you stay in control. Create a quality phase, or accept tech debt explicitly — your call.
|
|
276
276
|
|
|
277
277
|
---
|
|
278
278
|
|
|
@@ -312,17 +312,9 @@ After `/ms:execute-phase` (and optionally `/ms:audit-milestone`), Mindsystem run
|
|
|
312
312
|
|
|
313
313
|
| Value | What it does |
|
|
314
314
|
| ------------------------- | -------------------------------------------------------------- |
|
|
315
|
-
| `null`
|
|
316
|
-
| `"ms-code-simplifier"`
|
|
317
|
-
| `"
|
|
318
|
-
| `"ms-flutter-reviewer"` | Flutter structural analysis (report-only, no code changes) |
|
|
319
|
-
| `"skip"` | Disable review for that level |
|
|
320
|
-
|
|
321
|
-
**Flutter-specific tools (built-in):**
|
|
322
|
-
|
|
323
|
-
- **`ms-flutter-simplifier`** — pragmatic refactors that preserve behavior
|
|
324
|
-
- **`ms-flutter-reviewer`** — milestone-level structural audit with actionable report (you control the fixes)
|
|
325
|
-
- **`flutter-senior-review` skill** — domain principles that raise review quality beyond generic lint advice
|
|
315
|
+
| `null` | No reviewer (default) |
|
|
316
|
+
| `"ms-code-simplifier"` | Generic reviewer — improves clarity and maintainability |
|
|
317
|
+
| `"skip"` | Disable review for that level |
|
|
326
318
|
|
|
327
319
|
---
|
|
328
320
|
|
|
@@ -186,34 +186,38 @@ issue:
|
|
|
186
186
|
**Question:** Will plans complete within context budget?
|
|
187
187
|
|
|
188
188
|
**Process:**
|
|
189
|
-
1.
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
1. For each `### ` subsection (change), classify its weight:
|
|
190
|
+
- **Light (5%):** Config changes, localization keys, renaming, simple field additions, pattern-copying with parameter substitution
|
|
191
|
+
- **Medium (10%):** CRUD endpoints, pattern-following implementations, widget extraction, single-file refactoring
|
|
192
|
+
- **Heavy (20%):** Complex business logic, novel state management, architecture changes, multi-file integrations
|
|
193
|
+
2. Sum estimated budget per plan (target: 25-45%)
|
|
194
|
+
3. Check structural signals
|
|
192
195
|
|
|
193
|
-
**Thresholds:**
|
|
194
|
-
| Metric | Target | Warning |
|
|
195
|
-
|
|
196
|
-
|
|
|
197
|
-
| Files
|
|
198
|
-
|
|
196
|
+
**Thresholds (warning-level only — scope never produces blockers):**
|
|
197
|
+
| Metric | Target | Warning |
|
|
198
|
+
|--------|--------|---------|
|
|
199
|
+
| Estimated budget/plan | 25-45% | >50% |
|
|
200
|
+
| Files per single change | 1-3 | 8+ |
|
|
201
|
+
|
|
202
|
+
**Raw change count is NOT a threshold.** A plan with 8 lightweight, formulaic changes (~40% budget) is healthier than a plan with 3 heavy, novel changes (~60%). Assess complexity and budget, not count.
|
|
199
203
|
|
|
200
204
|
**Red flags:**
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
-
|
|
204
|
-
-
|
|
205
|
+
- Estimated plan budget >50% (quality will degrade)
|
|
206
|
+
- Single change with 10+ file modifications
|
|
207
|
+
- Multiple unrelated subsystems crammed into one plan
|
|
208
|
+
- Novel/complex work appearing late in a long change sequence (context fatigue risks lower attention)
|
|
205
209
|
|
|
206
210
|
**Example issue:**
|
|
207
211
|
```yaml
|
|
208
212
|
issue:
|
|
209
213
|
dimension: scope_sanity
|
|
210
214
|
severity: warning
|
|
211
|
-
description: "Plan 01
|
|
215
|
+
description: "Plan 01 estimated at ~55% budget - 3 heavy changes with novel state management"
|
|
212
216
|
plan: "01"
|
|
213
217
|
metrics:
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
fix_hint: "
|
|
218
|
+
estimated_budget: "55%"
|
|
219
|
+
heavy_changes: 3
|
|
220
|
+
fix_hint: "Move change 3 (complex state machine) to a separate plan"
|
|
217
221
|
```
|
|
218
222
|
|
|
219
223
|
## Dimension 6: Verification Derivation
|
|
@@ -301,7 +305,7 @@ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE_AR
|
|
|
301
305
|
ls "$PHASE_DIR"/*-PLAN.md 2>/dev/null
|
|
302
306
|
|
|
303
307
|
# Get phase goal from ROADMAP
|
|
304
|
-
grep -A 10 "Phase ${
|
|
308
|
+
grep -A 10 "Phase ${PADDED_PHASE}" .planning/ROADMAP.md | head -15
|
|
305
309
|
|
|
306
310
|
# Get phase brief if exists
|
|
307
311
|
ls "$PHASE_DIR"/*-BRIEF.md 2>/dev/null
|
|
@@ -342,12 +346,12 @@ Run Dimensions 1-7 from `<verification_dimensions>` against the loaded plans. Bu
|
|
|
342
346
|
- Missing requirement coverage
|
|
343
347
|
- Missing required change fields
|
|
344
348
|
- Circular dependencies or file conflicts in same wave
|
|
345
|
-
- Scope > 5 changes per plan
|
|
346
349
|
|
|
347
350
|
**warning** - Should fix, execution may work
|
|
348
|
-
-
|
|
351
|
+
- Estimated plan budget >50%
|
|
349
352
|
- Implementation-focused truths
|
|
350
353
|
- Minor wiring missing
|
|
354
|
+
- Novel/complex changes appearing late in change sequence
|
|
351
355
|
|
|
352
356
|
**info** - Suggestions for improvement
|
|
353
357
|
- Could split for better parallelization
|
|
@@ -369,8 +373,8 @@ issues:
|
|
|
369
373
|
- plan: "01"
|
|
370
374
|
dimension: "scope_sanity"
|
|
371
375
|
severity: "warning"
|
|
372
|
-
description: "Plan
|
|
373
|
-
fix_hint: "
|
|
376
|
+
description: "Plan estimated at ~50% budget - heavy changes may cause degradation"
|
|
377
|
+
fix_hint: "Consider splitting complex changes into separate plan"
|
|
374
378
|
|
|
375
379
|
- plan: null
|
|
376
380
|
dimension: "requirement_coverage"
|
|
@@ -462,14 +466,10 @@ issues:
|
|
|
462
466
|
|
|
463
467
|
<anti_patterns>
|
|
464
468
|
|
|
465
|
-
**DO NOT check code existence
|
|
466
|
-
|
|
467
|
-
**DO NOT run the application.** This is static plan analysis. No `npm start`, no `curl` to running server.
|
|
469
|
+
**DO NOT check the codebase.** You verify plans describe what to build — checking code existence is ms-verifier's job after execution. No `npm start`, no `curl`, no runtime verification.
|
|
468
470
|
|
|
469
471
|
**DO NOT accept vague changes.** "Implement auth" is not specific enough. Changes need concrete files, implementation details, verification.
|
|
470
472
|
|
|
471
|
-
**DO NOT verify implementation details.** Check that plans describe what to build, not that code exists.
|
|
472
|
-
|
|
473
473
|
**DO NOT trust change titles alone.** Read the implementation details, Files lines, verification entries. A well-named change can be empty.
|
|
474
474
|
|
|
475
475
|
</anti_patterns>
|
|
@@ -478,11 +478,11 @@ issues:
|
|
|
478
478
|
|
|
479
479
|
Plan verification complete when:
|
|
480
480
|
|
|
481
|
-
- [ ]
|
|
482
|
-
- [ ] Scope assessed per plan (changes, files within thresholds)
|
|
481
|
+
- [ ] Context compliance checked (if CONTEXT.md: locked decisions implemented, deferred ideas excluded)
|
|
483
482
|
- [ ] Must-Haves are user-observable truths, not implementation details
|
|
483
|
+
- [ ] Key links checked (wiring planned between artifacts, not just creation)
|
|
484
484
|
- [ ] EXECUTION-ORDER.md validated (no missing plans, no file conflicts in same wave)
|
|
485
|
-
- [ ]
|
|
485
|
+
- [ ] Scope assessed per plan (estimated budget within thresholds)
|
|
486
486
|
- [ ] Structured issues returned to orchestrator
|
|
487
487
|
|
|
488
488
|
</success_criteria>
|
package/agents/ms-plan-writer.md
CHANGED
|
@@ -7,7 +7,7 @@ color: cyan
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<input>
|
|
10
|
-
You receive: `<product_context>` (Who It's For, Core Value, How It's Different), `<phase_requirements>` (phase goal + mapped requirements), `<research_focus>` (specific product questions to investigate).
|
|
10
|
+
You receive: `<current_date>` (YYYY-MM), `<product_context>` (Who It's For, Core Value, How It's Different), `<phase_requirements>` (phase goal + mapped requirements), `<research_focus>` (specific product questions to investigate).
|
|
11
11
|
</input>
|
|
12
12
|
|
|
13
13
|
<role>
|
|
@@ -31,7 +31,9 @@ You are a Mindsystem product researcher. Deliver prescriptive, audience-grounded
|
|
|
31
31
|
| Industry best practices | WebSearch | Current standards |
|
|
32
32
|
| Product comparisons | WebSearch | Side-by-side analysis |
|
|
33
33
|
|
|
34
|
-
**
|
|
34
|
+
**Search freshness:** Use `<current_date>` to keep results current, but apply year strings selectively:
|
|
35
|
+
- **Add year** to trend/best-practice queries where listicle freshness matters: `"payment terminal UX best practices 2026"`
|
|
36
|
+
- **Omit year** from product-specific queries where it narrows results unhelpfully: `"Square Terminal cashier workflow features"` (Square's docs don't mention the year)
|
|
35
37
|
|
|
36
38
|
**Budget:** 5-8 searches max. Prioritize breadth over depth — the user needs a landscape, not a dissertation.
|
|
37
39
|
</tool_strategy>
|
package/agents/ms-verifier.md
CHANGED
|
@@ -19,13 +19,7 @@ Your job: Goal-backward verification. Start from what the phase SHOULD deliver,
|
|
|
19
19
|
|
|
20
20
|
A task "create chat component" can be marked complete when the component is a placeholder. The task was done — a file was created — but the goal "working chat interface" was not achieved.
|
|
21
21
|
|
|
22
|
-
Goal-backward verification starts from the outcome and works backwards
|
|
23
|
-
|
|
24
|
-
1. What must be TRUE for the goal to be achieved?
|
|
25
|
-
2. What must EXIST for those truths to hold?
|
|
26
|
-
3. What must be WIRED for those artifacts to function?
|
|
27
|
-
|
|
28
|
-
Then verify each level against the actual codebase.
|
|
22
|
+
Goal-backward verification starts from the outcome and works backwards — verify each level against the actual codebase.
|
|
29
23
|
</core_principle>
|
|
30
24
|
|
|
31
25
|
<verification_process>
|
|
@@ -205,7 +199,7 @@ Identify the project's tech stack from file extensions and project structure. Fo
|
|
|
205
199
|
If REQUIREMENTS.md exists and has requirements mapped to this phase:
|
|
206
200
|
|
|
207
201
|
```bash
|
|
208
|
-
grep -E "
|
|
202
|
+
grep -E "^| ${PHASE_NUM}" .planning/REQUIREMENTS.md 2>/dev/null
|
|
209
203
|
```
|
|
210
204
|
|
|
211
205
|
For each requirement:
|
|
@@ -226,7 +220,7 @@ Identify files modified in this phase from PLAN.md `**Files:**` lines or git his
|
|
|
226
220
|
|
|
227
221
|
```bash
|
|
228
222
|
# Extract files from PLAN.md (trustworthy source)
|
|
229
|
-
grep
|
|
223
|
+
grep -oE '`[^`]+`' "$PHASE_DIR"/*-PLAN.md | grep -v "PLAN.md" | tr -d '`' | sort -u
|
|
230
224
|
```
|
|
231
225
|
|
|
232
226
|
Scan each file for anti-patterns: `TODO/FIXME/XXX/HACK` comments, placeholder content (`coming soon`, `will be here`), empty implementations (`return null`, `return {}`, `=> {}`), console.log-only handlers.
|
|
@@ -237,44 +231,16 @@ Categorize findings:
|
|
|
237
231
|
- ⚠️ Warning: Indicates incomplete (TODO comments, console.log)
|
|
238
232
|
- ℹ️ Info: Notable but not problematic
|
|
239
233
|
|
|
240
|
-
## Step 8:
|
|
241
|
-
|
|
242
|
-
Some things can't be verified programmatically:
|
|
243
|
-
|
|
244
|
-
**Always needs human:**
|
|
245
|
-
|
|
246
|
-
- Visual appearance (does it look right?)
|
|
247
|
-
- User flow completion (can you do the full task?)
|
|
248
|
-
- Real-time behavior (WebSocket, SSE updates)
|
|
249
|
-
- External service integration (payments, email)
|
|
250
|
-
- Performance feel (does it feel fast?)
|
|
251
|
-
- Error message clarity
|
|
252
|
-
|
|
253
|
-
**Needs human if uncertain:**
|
|
254
|
-
|
|
255
|
-
- Complex wiring that grep can't trace
|
|
256
|
-
- Dynamic behavior depending on state
|
|
257
|
-
- Edge cases and error states
|
|
258
|
-
|
|
259
|
-
**Format for human verification:**
|
|
260
|
-
|
|
261
|
-
```markdown
|
|
262
|
-
### 1. {Test Name}
|
|
263
|
-
|
|
264
|
-
**Test:** {What to do}
|
|
265
|
-
**Expected:** {What should happen}
|
|
266
|
-
**Why human:** {Why can't verify programmatically}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
## Step 9: Determine Overall Status
|
|
234
|
+
## Step 8: Determine Overall Status
|
|
270
235
|
|
|
271
236
|
**Status: passed**
|
|
272
237
|
|
|
273
|
-
- All truths VERIFIED
|
|
238
|
+
- All truths VERIFIED or UNCERTAIN
|
|
274
239
|
- All artifacts pass level 1-3
|
|
275
240
|
- All key links WIRED
|
|
276
241
|
- No blocker anti-patterns
|
|
277
|
-
|
|
242
|
+
|
|
243
|
+
UNCERTAIN truths count toward passed — they are structurally present but need functional confirmation through UAT.
|
|
278
244
|
|
|
279
245
|
**Status: gaps_found**
|
|
280
246
|
|
|
@@ -283,64 +249,19 @@ Some things can't be verified programmatically:
|
|
|
283
249
|
- OR one or more key links NOT_WIRED
|
|
284
250
|
- OR blocker anti-patterns found
|
|
285
251
|
|
|
286
|
-
**Status: human_needed**
|
|
287
|
-
|
|
288
|
-
- All automated checks pass
|
|
289
|
-
- BUT items flagged for human verification
|
|
290
|
-
- Can't determine goal achievement without human
|
|
291
|
-
|
|
292
252
|
**Calculate score:**
|
|
293
253
|
|
|
294
254
|
```
|
|
295
255
|
score = (verified_truths / total_truths)
|
|
296
256
|
```
|
|
297
257
|
|
|
298
|
-
## Step
|
|
258
|
+
## Step 9: Structure Gap Output (If Gaps Found)
|
|
299
259
|
|
|
300
|
-
When gaps are found, structure them for consumption by `/ms:plan-phase --gaps`.
|
|
260
|
+
When gaps are found, structure them in YAML frontmatter for consumption by `/ms:plan-phase --gaps`. Use the `gaps:` format shown in the VERIFICATION.md template below.
|
|
301
261
|
|
|
302
|
-
**
|
|
262
|
+
**Gap fields:** `truth` (observable truth that failed), `status` (failed | partial), `reason` (why it failed), `artifacts` (files with issues), `missing` (specific things to add/fix).
|
|
303
263
|
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
phase: XX-name
|
|
307
|
-
verified: YYYY-MM-DDTHH:MM:SSZ
|
|
308
|
-
status: gaps_found
|
|
309
|
-
score: N/M must-haves verified
|
|
310
|
-
gaps:
|
|
311
|
-
- truth: "User can see existing messages"
|
|
312
|
-
status: failed
|
|
313
|
-
reason: "Chat.tsx exists but doesn't fetch from API"
|
|
314
|
-
artifacts:
|
|
315
|
-
- path: "src/components/Chat.tsx"
|
|
316
|
-
issue: "No useEffect with fetch call"
|
|
317
|
-
missing:
|
|
318
|
-
- "API call in useEffect to /api/chat"
|
|
319
|
-
- "State for storing fetched messages"
|
|
320
|
-
- "Render messages array in JSX"
|
|
321
|
-
- truth: "User can send a message"
|
|
322
|
-
status: failed
|
|
323
|
-
reason: "Form exists but onSubmit is stub"
|
|
324
|
-
artifacts:
|
|
325
|
-
- path: "src/components/Chat.tsx"
|
|
326
|
-
issue: "onSubmit only calls preventDefault()"
|
|
327
|
-
missing:
|
|
328
|
-
- "POST request to /api/chat"
|
|
329
|
-
- "Add new message to state after success"
|
|
330
|
-
---
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
**Gap structure:**
|
|
334
|
-
|
|
335
|
-
- `truth`: The observable truth that failed verification
|
|
336
|
-
- `status`: failed | partial
|
|
337
|
-
- `reason`: Brief explanation of why it failed
|
|
338
|
-
- `artifacts`: Which files have issues and what's wrong
|
|
339
|
-
- `missing`: Specific things that need to be added/fixed
|
|
340
|
-
|
|
341
|
-
The planner (`/ms:plan-phase --gaps`) reads this gap analysis and creates appropriate plans.
|
|
342
|
-
|
|
343
|
-
**Group related gaps by concern** when possible — if multiple truths fail because of the same root cause (e.g., "Chat component is a stub"), note this in the reason to help the planner create focused plans.
|
|
264
|
+
**Group related gaps by concern** when possible — if multiple truths fail because of the same root cause, note this in the reason to help the planner create focused plans.
|
|
344
265
|
|
|
345
266
|
</verification_process>
|
|
346
267
|
|
|
@@ -354,8 +275,9 @@ Create `.planning/phases/{phase_dir}/{phase}-VERIFICATION.md` with:
|
|
|
354
275
|
---
|
|
355
276
|
phase: XX-name
|
|
356
277
|
verified: YYYY-MM-DDTHH:MM:SSZ
|
|
357
|
-
status: passed | gaps_found
|
|
278
|
+
status: passed | gaps_found
|
|
358
279
|
score: N/M must-haves verified
|
|
280
|
+
uncertain: N # Count of UNCERTAIN truths + NEEDS HUMAN requirements (0 if none)
|
|
359
281
|
re_verification: # Only include if previous VERIFICATION.md existed
|
|
360
282
|
previous_status: gaps_found
|
|
361
283
|
previous_score: 2/5
|
|
@@ -373,10 +295,6 @@ gaps: # Only include if status: gaps_found
|
|
|
373
295
|
missing:
|
|
374
296
|
- "Specific thing to add/fix"
|
|
375
297
|
- "Another specific thing"
|
|
376
|
-
human_verification: # Only include if status: human_needed
|
|
377
|
-
- test: "What to do"
|
|
378
|
-
expected: "What should happen"
|
|
379
|
-
why_human: "Why can't verify programmatically"
|
|
380
298
|
---
|
|
381
299
|
|
|
382
300
|
# Phase {X}: {Name} Verification Report
|
|
@@ -418,10 +336,6 @@ human_verification: # Only include if status: human_needed
|
|
|
418
336
|
| File | Line | Pattern | Severity | Impact |
|
|
419
337
|
| ---- | ---- | ------- | -------- | ------ |
|
|
420
338
|
|
|
421
|
-
### Human Verification Required
|
|
422
|
-
|
|
423
|
-
{Items needing human testing — detailed format for user}
|
|
424
|
-
|
|
425
339
|
### Gaps Summary
|
|
426
340
|
|
|
427
341
|
{Narrative summary of what's missing and why}
|
|
@@ -441,13 +355,23 @@ Return with:
|
|
|
441
355
|
```markdown
|
|
442
356
|
## Verification Complete
|
|
443
357
|
|
|
444
|
-
**Status:** {passed | gaps_found
|
|
358
|
+
**Status:** {passed | gaps_found}
|
|
445
359
|
**Score:** {N}/{M} must-haves verified
|
|
446
360
|
**Report:** .planning/phases/{phase_dir}/{phase}-VERIFICATION.md
|
|
447
361
|
|
|
448
|
-
{If passed:}
|
|
362
|
+
{If passed AND uncertain == 0:}
|
|
449
363
|
All must-haves verified. Phase goal achieved. Ready to proceed.
|
|
450
364
|
|
|
365
|
+
{If passed AND uncertain > 0:}
|
|
366
|
+
All must-haves verified. Phase goal achieved.
|
|
367
|
+
|
|
368
|
+
### Items Not Verified Programmatically
|
|
369
|
+
|
|
370
|
+
{N} items could not be confirmed by structural checks alone:
|
|
371
|
+
1. **{Truth/Requirement}** — {why uncertain}
|
|
372
|
+
|
|
373
|
+
Consider `/ms:verify-work {phase}` to validate these through UAT.
|
|
374
|
+
|
|
451
375
|
{If gaps_found:}
|
|
452
376
|
|
|
453
377
|
### Gaps Found
|
|
@@ -460,19 +384,6 @@ All must-haves verified. Phase goal achieved. Ready to proceed.
|
|
|
460
384
|
- Missing: {what needs to be added}
|
|
461
385
|
|
|
462
386
|
Structured gaps in VERIFICATION.md frontmatter for `/ms:plan-phase --gaps`.
|
|
463
|
-
|
|
464
|
-
{If human_needed:}
|
|
465
|
-
|
|
466
|
-
### Human Verification Required
|
|
467
|
-
|
|
468
|
-
{N} items need human testing:
|
|
469
|
-
|
|
470
|
-
1. **{Test name}** — {what to do}
|
|
471
|
-
- Expected: {what should happen}
|
|
472
|
-
2. **{Test name}** — {what to do}
|
|
473
|
-
- Expected: {what should happen}
|
|
474
|
-
|
|
475
|
-
Automated checks passed. Awaiting human verification.
|
|
476
387
|
```
|
|
477
388
|
|
|
478
389
|
</output>
|
|
@@ -487,8 +398,6 @@ Automated checks passed. Awaiting human verification.
|
|
|
487
398
|
|
|
488
399
|
**Structure gaps in YAML frontmatter.** The planner (`/ms:plan-phase --gaps`) creates plans from your analysis.
|
|
489
400
|
|
|
490
|
-
**DO flag for human verification when uncertain.** If you can't verify programmatically (visual, real-time, external service), say so explicitly.
|
|
491
|
-
|
|
492
401
|
**DO keep verification fast.** Use grep/file checks, not running the app. Goal is structural verification, not functional testing.
|
|
493
402
|
|
|
494
403
|
**DO NOT commit.** Create VERIFICATION.md but leave committing to the orchestrator.
|
|
@@ -501,7 +410,6 @@ Automated checks passed. Awaiting human verification.
|
|
|
501
410
|
- [ ] Key links verified — not just artifact existence; this is where stubs hide
|
|
502
411
|
- [ ] Artifacts checked at all three levels (exists → substantive → wired)
|
|
503
412
|
- [ ] SUMMARY.md claims verified against actual code, not trusted
|
|
504
|
-
- [ ] Human verification items identified for what can't be checked programmatically
|
|
505
413
|
- [ ] Re-verification: focus on previously-failed items, regression-check passed items
|
|
506
414
|
- [ ] Results returned to orchestrator — NOT committed
|
|
507
415
|
</success_criteria>
|
package/commands/ms/add-phase.md
CHANGED
|
@@ -197,10 +197,9 @@ After the "Next Up" section, add:
|
|
|
197
197
|
</step>
|
|
198
198
|
|
|
199
199
|
<step name="update_last_command">
|
|
200
|
-
|
|
201
|
-
-
|
|
202
|
-
|
|
203
|
-
- If line doesn't exist, add it after `Status:` line
|
|
200
|
+
```bash
|
|
201
|
+
ms-tools set-last-command "ms:add-phase $ARGUMENTS"
|
|
202
|
+
```
|
|
204
203
|
</step>
|
|
205
204
|
|
|
206
205
|
</process>
|
package/commands/ms/add-todo.md
CHANGED
|
@@ -190,10 +190,9 @@ Would you like to:
|
|
|
190
190
|
</step>
|
|
191
191
|
|
|
192
192
|
<step name="update_last_command">
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
|
|
196
|
-
- If line doesn't exist, add it after `Status:` line
|
|
193
|
+
```bash
|
|
194
|
+
ms-tools set-last-command "ms:add-todo $ARGUMENTS"
|
|
195
|
+
```
|
|
197
196
|
</step>
|
|
198
197
|
|
|
199
198
|
</process>
|
package/commands/ms/adhoc.md
CHANGED
|
@@ -79,10 +79,9 @@ Report what was done, show commit hash, file paths, and patch file path.
|
|
|
79
79
|
</step>
|
|
80
80
|
|
|
81
81
|
<step name="update_last_command">
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
- If line doesn't exist, add it after `Status:` line
|
|
82
|
+
```bash
|
|
83
|
+
ms-tools set-last-command "ms:adhoc $ARGUMENTS"
|
|
84
|
+
```
|
|
86
85
|
</step>
|
|
87
86
|
|
|
88
87
|
</process>
|
|
@@ -199,7 +199,8 @@ Report: "Milestone code review skipped (config: skip)"
|
|
|
199
199
|
Proceed to next steps.
|
|
200
200
|
|
|
201
201
|
**If CODE_REVIEW = empty/null:**
|
|
202
|
-
|
|
202
|
+
Report: "No milestone reviewer configured. Run `/ms:config` to set one."
|
|
203
|
+
Skip code review step (proceed to next steps).
|
|
203
204
|
|
|
204
205
|
### Step 8.1: Get Changed Files
|
|
205
206
|
|
|
@@ -223,7 +224,7 @@ AGENT_MODE=$(grep -A10 '^---' ~/.claude/agents/${CODE_REVIEW}.md | grep 'mode:'
|
|
|
223
224
|
|
|
224
225
|
### Path A: Analysis-Only Reviewers (mode: analyze-only)
|
|
225
226
|
|
|
226
|
-
For agents with `mode: analyze-only` (e.g.,
|
|
227
|
+
For agents with `mode: analyze-only` (e.g., a report-only reviewer):
|
|
227
228
|
|
|
228
229
|
**A1. Spawn reviewer with read-only tools:**
|
|
229
230
|
|
|
@@ -341,7 +342,7 @@ Findings are already tracked in `.planning/TECH-DEBT.md` via Step 8.5. Continue
|
|
|
341
342
|
|
|
342
343
|
### Path B: Simplifier Agents (default)
|
|
343
344
|
|
|
344
|
-
For agents without `mode: analyze-only` (e.g., `ms-code-simplifier
|
|
345
|
+
For agents without `mode: analyze-only` (e.g., `ms-code-simplifier`):
|
|
345
346
|
|
|
346
347
|
**B1. Spawn code review agent:**
|
|
347
348
|
|
|
@@ -71,6 +71,7 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved.
|
|
|
71
71
|
1. **Verify readiness and gather stats:**
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
+
# ms-tools is on PATH — invoke directly, not as a script path
|
|
74
75
|
ms-tools gather-milestone-stats $PHASE_START $PHASE_END
|
|
75
76
|
```
|
|
76
77
|
|
|
@@ -130,8 +131,7 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved.
|
|
|
130
131
|
11. **Offer next steps:**
|
|
131
132
|
- `/ms:new-milestone` — discover goals and update PROJECT.md
|
|
132
133
|
|
|
133
|
-
12. **Update last command:**
|
|
134
|
-
- Format: `Last Command: ms:complete-milestone $ARGUMENTS | YYYY-MM-DD HH:MM`
|
|
134
|
+
12. **Update last command:** `ms-tools set-last-command "ms:complete-milestone $ARGUMENTS"`
|
|
135
135
|
|
|
136
136
|
</process>
|
|
137
137
|
|
package/commands/ms/config.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ms:config
|
|
3
|
-
description: Configure Mindsystem preferences — code reviewers, gitignore, git remote
|
|
3
|
+
description: Configure Mindsystem preferences — code reviewers, mockups, gitignore, git remote
|
|
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, .gitignore patterns for `.planning/` artifacts, and git remote setup. Run anytime to reconfigure — idempotent.
|
|
15
|
+
Manages code reviewer agents, mockup preferences, .gitignore patterns for `.planning/` artifacts, and git remote setup. Run anytime to reconfigure — idempotent.
|
|
16
16
|
|
|
17
17
|
</objective>
|
|
18
18
|
|
|
@@ -67,18 +67,13 @@ If "Create with gh CLI":
|
|
|
67
67
|
|
|
68
68
|
Show current code_review values from config.json (if loaded).
|
|
69
69
|
|
|
70
|
-
**
|
|
71
|
-
|
|
72
|
-
- **Flutter/Dart:** adhoc=`ms-flutter-code-quality`, phase=`ms-flutter-code-quality`, milestone=`ms-flutter-reviewer`
|
|
73
|
-
- **All others:** adhoc=`ms-code-simplifier`, phase=`ms-code-simplifier`, milestone=null
|
|
74
|
-
|
|
75
|
-
**If no PROJECT.md or STACK.md:** Warn: "No PROJECT.md found — can't suggest reviewers based on tech stack. Run `/ms:new-project` first, or pick manually."
|
|
70
|
+
**Default reviewers:** adhoc=`ms-code-simplifier`, phase=`ms-code-simplifier`, milestone=null
|
|
76
71
|
|
|
77
72
|
Use AskUserQuestion:
|
|
78
73
|
- header: "Code review"
|
|
79
74
|
- question: "Which code reviewer configuration do you want?"
|
|
80
75
|
- options:
|
|
81
|
-
- "
|
|
76
|
+
- "Default (ms-code-simplifier)" — Generic reviewer for adhoc and phase tiers (Recommended)
|
|
82
77
|
- "Skip code review" — Disable review for all tiers
|
|
83
78
|
- "Custom" — I'll specify reviewers manually
|
|
84
79
|
|
|
@@ -113,6 +108,36 @@ If no selections: skip gitignore changes.
|
|
|
113
108
|
|
|
114
109
|
</step>
|
|
115
110
|
|
|
111
|
+
<step name="mockup_preferences">
|
|
112
|
+
|
|
113
|
+
Read current value:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
CURRENT=$(cat .planning/config.json 2>/dev/null | jq -r '.open_mockups // "auto"')
|
|
117
|
+
echo "Current open_mockups: $CURRENT"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Use AskUserQuestion:
|
|
121
|
+
- header: "Mockups"
|
|
122
|
+
- question: "How should mockup comparisons open after generation?"
|
|
123
|
+
- options:
|
|
124
|
+
- "Auto-open (Recommended)" — Open comparison.html in browser automatically
|
|
125
|
+
- "Ask first" — Prompt before opening
|
|
126
|
+
- "Don't open" — Display path only, never auto-open
|
|
127
|
+
|
|
128
|
+
Map selection to config value:
|
|
129
|
+
- "Auto-open" → `"auto"`
|
|
130
|
+
- "Ask first" → `"ask"`
|
|
131
|
+
- "Don't open" → `"off"`
|
|
132
|
+
|
|
133
|
+
Update config.json with selected value via jq:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
jq --arg v "$VALUE" '.open_mockups = $v' .planning/config.json > .planning/config.tmp && mv .planning/config.tmp .planning/config.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
</step>
|
|
140
|
+
|
|
116
141
|
<step name="validation_summary">
|
|
117
142
|
|
|
118
143
|
Show final config state:
|
|
@@ -121,6 +146,7 @@ Show final config state:
|
|
|
121
146
|
Configuration updated:
|
|
122
147
|
|
|
123
148
|
- Code reviewers: [adhoc / phase / milestone values]
|
|
149
|
+
- Mockup open: [auto / ask / off]
|
|
124
150
|
- Gitignore: [patterns added, or "no changes"]
|
|
125
151
|
- Git remote: [remote URL, or "none configured"]
|
|
126
152
|
```
|
|
@@ -198,5 +224,6 @@ Present next steps:
|
|
|
198
224
|
- [ ] Git remote offered (if missing)
|
|
199
225
|
- [ ] Validation summary displayed
|
|
200
226
|
- [ ] Config.json code_review values set (or preserved if skipped)
|
|
227
|
+
- [ ] Config.json open_mockups value set (or preserved if skipped)
|
|
201
228
|
|
|
202
229
|
</success_criteria>
|
|
@@ -323,10 +323,9 @@ Requirements and roadmap created:
|
|
|
323
323
|
</step>
|
|
324
324
|
|
|
325
325
|
<step name="update_last_command">
|
|
326
|
-
|
|
327
|
-
-
|
|
328
|
-
|
|
329
|
-
- If line doesn't exist, add it after `Status:` line
|
|
326
|
+
```bash
|
|
327
|
+
ms-tools set-last-command "ms:create-roadmap"
|
|
328
|
+
```
|
|
330
329
|
</step>
|
|
331
330
|
|
|
332
331
|
</process>
|
package/commands/ms/debug.md
CHANGED
|
@@ -140,10 +140,9 @@ Task(
|
|
|
140
140
|
|
|
141
141
|
## 6. Update Last Command
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
- If line doesn't exist, add it after `Status:` line
|
|
143
|
+
```bash
|
|
144
|
+
ms-tools set-last-command "ms:debug $ARGUMENTS"
|
|
145
|
+
```
|
|
147
146
|
|
|
148
147
|
</process>
|
|
149
148
|
|