mindsystem-cc 4.2.1 → 4.3.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 +30 -12
- package/agents/ms-browser-verifier.md +33 -13
- package/agents/ms-compounder.md +16 -15
- package/agents/ms-consolidator.md +14 -13
- package/agents/ms-researcher.md +2 -1
- package/agents/ms-roadmapper.md +33 -0
- package/commands/ms/add-phase.md +0 -4
- package/commands/ms/compound.md +3 -3
- package/commands/ms/create-roadmap.md +19 -2
- package/commands/ms/design-phase.md +11 -7
- package/commands/ms/execute-phase.md +20 -13
- package/commands/ms/help.md +1 -0
- package/commands/ms/insert-phase.md +0 -4
- package/commands/ms/progress.md +8 -62
- package/commands/ms/research-phase.md +16 -11
- package/commands/ms/verify-work.md +8 -2
- package/mindsystem/references/prework-status.md +2 -1
- package/mindsystem/references/routing/next-phase-routing.md +6 -5
- package/mindsystem/templates/knowledge.md +1 -1
- package/mindsystem/templates/milestone-archive.md +0 -14
- package/mindsystem/templates/roadmap-milestone.md +5 -16
- package/mindsystem/templates/roadmap.md +6 -32
- package/mindsystem/workflows/complete-milestone.md +0 -1
- package/mindsystem/workflows/compound.md +24 -6
- package/mindsystem/workflows/discuss-phase.md +7 -22
- package/mindsystem/workflows/doctor-fixes.md +1 -1
- package/mindsystem/workflows/execute-phase.md +13 -15
- package/mindsystem/workflows/execute-plan.md +3 -1
- package/mindsystem/workflows/mockup-generation.md +3 -2
- package/mindsystem/workflows/transition.md +6 -8
- package/mindsystem/workflows/verify-work.md +31 -15
- package/package.json +1 -1
- package/scripts/ms-tools.py +27 -4
|
@@ -97,7 +97,6 @@ Update the file:
|
|
|
97
97
|
|
|
98
98
|
- Mark current phase: `[x] Complete`
|
|
99
99
|
- Add completion date
|
|
100
|
-
- Update plan count to final (e.g., "3/3 plans complete")
|
|
101
100
|
- Update Progress table
|
|
102
101
|
- Keep next phase as `[ ] Not started`
|
|
103
102
|
|
|
@@ -112,11 +111,11 @@ Update the file:
|
|
|
112
111
|
|
|
113
112
|
## Progress
|
|
114
113
|
|
|
115
|
-
| Phase |
|
|
116
|
-
| ----------------- |
|
|
117
|
-
| 1. Foundation |
|
|
118
|
-
| 2. Authentication |
|
|
119
|
-
| 3. Core Features |
|
|
114
|
+
| Phase | Status | Completed |
|
|
115
|
+
| ----------------- | ----------- | ---------- |
|
|
116
|
+
| 1. Foundation | Complete | 2025-01-15 |
|
|
117
|
+
| 2. Authentication | Not started | - |
|
|
118
|
+
| 3. Core Features | Not started | - |
|
|
120
119
|
```
|
|
121
120
|
|
|
122
121
|
</step>
|
|
@@ -442,7 +441,6 @@ Respect user judgment — they know if work matters.
|
|
|
442
441
|
|
|
443
442
|
**If marking complete with incomplete plans:**
|
|
444
443
|
|
|
445
|
-
- Update ROADMAP: "2/3 plans complete" (not "3/3")
|
|
446
444
|
- Note in transition message which plans were skipped
|
|
447
445
|
|
|
448
446
|
</partial_completion>
|
|
@@ -453,7 +451,7 @@ Transition is complete when:
|
|
|
453
451
|
|
|
454
452
|
- [ ] Current phase plan summaries verified (all exist or user chose to skip)
|
|
455
453
|
- [ ] Any stale handoffs deleted
|
|
456
|
-
- [ ] ROADMAP.md updated with completion status
|
|
454
|
+
- [ ] ROADMAP.md updated with completion status
|
|
457
455
|
- [ ] PROJECT.md evolved (requirements, decisions, description if needed)
|
|
458
456
|
- [ ] STATE.md updated (position, project reference, context, session)
|
|
459
457
|
- [ ] Progress table updated
|
|
@@ -6,6 +6,7 @@ Complete verify-and-fix session: by session end, everything verified, issues fix
|
|
|
6
6
|
|
|
7
7
|
<execution_context>
|
|
8
8
|
<!-- mock-patterns.md loaded on demand for transient_state mocks (see generate_mocks step) -->
|
|
9
|
+
<!-- knowledge files loaded on first fix attempt (see investigate_issue step) -->
|
|
9
10
|
</execution_context>
|
|
10
11
|
|
|
11
12
|
<process>
|
|
@@ -74,7 +75,8 @@ Provide a phase number to start testing (e.g., /ms:verify-work 4)
|
|
|
74
75
|
**Find SUMMARY.md files for the phase:**
|
|
75
76
|
|
|
76
77
|
```bash
|
|
77
|
-
|
|
78
|
+
ms-tools find-phase "${PHASE_ARG}"
|
|
79
|
+
# Extract PHASE_DIR from the `dir` field of the JSON output
|
|
78
80
|
ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
|
|
79
81
|
```
|
|
80
82
|
|
|
@@ -341,6 +343,19 @@ Progress auto-recalculates on every `uat-update` call. No manual progress recalc
|
|
|
341
343
|
<step name="investigate_issue">
|
|
342
344
|
**Investigate reported issue:**
|
|
343
345
|
|
|
346
|
+
**0. Load knowledge (first issue only):**
|
|
347
|
+
|
|
348
|
+
If this is the first issue requiring investigation in this session, load knowledge files now. On subsequent issues, knowledge is already in context — skip to step 1.
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
ms-tools config-get subsystems
|
|
352
|
+
grep "^subsystem:" "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Match SUMMARY.md subsystem values against config subsystems. Read matching `.planning/knowledge/{subsystem}.md` files (1-3 most relevant).
|
|
356
|
+
|
|
357
|
+
This knowledge informs investigation (where to look, known pitfalls) and any subsequent fixes.
|
|
358
|
+
|
|
344
359
|
**1. Lightweight investigation (2-3 tool calls):**
|
|
345
360
|
|
|
346
361
|
```
|
|
@@ -350,24 +365,21 @@ Progress auto-recalculates on every `uat-update` call. No manual progress recalc
|
|
|
350
365
|
3. Check git log for recent changes to relevant files
|
|
351
366
|
```
|
|
352
367
|
|
|
353
|
-
**2.
|
|
368
|
+
**2. Report finding and act:**
|
|
354
369
|
|
|
355
|
-
|
|
356
|
-
- Propose fix in plain language:
|
|
357
|
-
```
|
|
358
|
-
Found the issue. In `ErrorBanner.tsx` line 42, the error message is
|
|
359
|
-
hardcoded to "Something went wrong" instead of using the actual error
|
|
360
|
-
from the API response.
|
|
370
|
+
State the root cause and the fix in plain language before applying. This lets the user capture the lesson in persistent instructions or catch a wrong direction before reviewing the diff. No confirmation needed — go straight to fixing.
|
|
361
371
|
|
|
362
|
-
|
|
372
|
+
Format:
|
|
373
|
+
```
|
|
374
|
+
{Root cause — what the code does wrong and why, 1-2 sentences}
|
|
363
375
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
- Present options: [Yes / Let me see the code first / Different approach]
|
|
367
|
-
- If approved: Go to `apply_fix`
|
|
376
|
+
Fix: {what the fix changes, 1-2 sentences}
|
|
377
|
+
```
|
|
368
378
|
|
|
369
|
-
**If
|
|
370
|
-
-
|
|
379
|
+
**If fix is simple (single file, straightforward change):**
|
|
380
|
+
- Go to `apply_fix` immediately
|
|
381
|
+
|
|
382
|
+
**If fix is complex (multiple files, architectural):**
|
|
371
383
|
- Spawn ms-verify-fixer subagent (go to `escalate_to_fixer`)
|
|
372
384
|
|
|
373
385
|
**If cause NOT found after 2-3 checks:**
|
|
@@ -440,6 +452,10 @@ You are a Mindsystem verify-fixer. Investigate this issue, find the root cause,
|
|
|
440
452
|
|
|
441
453
|
{lightweight_investigation_results}
|
|
442
454
|
|
|
455
|
+
## Knowledge Context
|
|
456
|
+
|
|
457
|
+
{loaded_knowledge_content or "No knowledge files loaded for this session."}
|
|
458
|
+
|
|
443
459
|
## Your task
|
|
444
460
|
|
|
445
461
|
1. Investigate to find root cause
|
package/package.json
CHANGED
package/scripts/ms-tools.py
CHANGED
|
@@ -1198,6 +1198,7 @@ def cmd_doctor_scan(args: argparse.Namespace) -> None:
|
|
|
1198
1198
|
|
|
1199
1199
|
# ---- CHECK 11: Browser Verification ----
|
|
1200
1200
|
print("=== Browser Verification ===")
|
|
1201
|
+
is_web, web_signal = False, "not checked"
|
|
1201
1202
|
bv_enabled = True
|
|
1202
1203
|
bv_config = config.get("browser_verification", {})
|
|
1203
1204
|
if isinstance(bv_config, dict):
|
|
@@ -1233,6 +1234,28 @@ def cmd_doctor_scan(args: argparse.Namespace) -> None:
|
|
|
1233
1234
|
record("PASS", "Browser Verification")
|
|
1234
1235
|
print()
|
|
1235
1236
|
|
|
1237
|
+
# ---- CHECK 12: Screenshot Optimization ----
|
|
1238
|
+
print("=== Screenshot Optimization ===")
|
|
1239
|
+
if not bv_enabled:
|
|
1240
|
+
print("Status: SKIP")
|
|
1241
|
+
print("Browser verification disabled")
|
|
1242
|
+
record("SKIP", "Screenshot Optimization")
|
|
1243
|
+
elif not is_web:
|
|
1244
|
+
print("Status: SKIP")
|
|
1245
|
+
print(f"Not a web project ({web_signal})")
|
|
1246
|
+
record("SKIP", "Screenshot Optimization")
|
|
1247
|
+
else:
|
|
1248
|
+
if shutil.which("cwebp"):
|
|
1249
|
+
print("Status: PASS")
|
|
1250
|
+
print("cwebp available — screenshots will be converted to WebP")
|
|
1251
|
+
record("PASS", "Screenshot Optimization")
|
|
1252
|
+
else:
|
|
1253
|
+
print("Status: WARN")
|
|
1254
|
+
print("cwebp not found — browser screenshots will remain as PNG (larger files)")
|
|
1255
|
+
print("Install: brew install webp | apt install webp | choco install webp")
|
|
1256
|
+
record("WARN", "Screenshot Optimization")
|
|
1257
|
+
print()
|
|
1258
|
+
|
|
1236
1259
|
# ---- SUMMARY ----
|
|
1237
1260
|
total = pass_count + warn_count + fail_count + skip_count
|
|
1238
1261
|
print("=== Summary ===")
|
|
@@ -3126,7 +3149,7 @@ def _load_uat(args_phase: str) -> tuple[Path, "UATFile"]:
|
|
|
3126
3149
|
if phase_dir is None:
|
|
3127
3150
|
print(f"Error: Phase directory not found for {phase}", file=sys.stderr)
|
|
3128
3151
|
sys.exit(1)
|
|
3129
|
-
uat_path = phase_dir / f"{
|
|
3152
|
+
uat_path = phase_dir / f"{phase}-UAT.md"
|
|
3130
3153
|
if not uat_path.is_file():
|
|
3131
3154
|
print(f"Error: UAT file not found: {uat_path}", file=sys.stderr)
|
|
3132
3155
|
sys.exit(1)
|
|
@@ -3166,7 +3189,7 @@ def cmd_uat_init(args: argparse.Namespace) -> None:
|
|
|
3166
3189
|
phase_name = phase_dir.name
|
|
3167
3190
|
uat = UATFile.from_init_json(data, phase_name)
|
|
3168
3191
|
|
|
3169
|
-
out_path = phase_dir / f"{
|
|
3192
|
+
out_path = phase_dir / f"{phase}-UAT.md"
|
|
3170
3193
|
out_path.write_text(uat.serialize(), encoding="utf-8")
|
|
3171
3194
|
|
|
3172
3195
|
n_tests = len(uat.tests)
|
|
@@ -3196,7 +3219,7 @@ def cmd_uat_update(args: argparse.Namespace) -> None:
|
|
|
3196
3219
|
print(f"Error: Phase directory not found for {phase}", file=sys.stderr)
|
|
3197
3220
|
sys.exit(1)
|
|
3198
3221
|
|
|
3199
|
-
uat_path = phase_dir / f"{
|
|
3222
|
+
uat_path = phase_dir / f"{phase}-UAT.md"
|
|
3200
3223
|
if not uat_path.is_file():
|
|
3201
3224
|
print(f"Error: UAT file not found: {uat_path}", file=sys.stderr)
|
|
3202
3225
|
sys.exit(1)
|
|
@@ -3264,7 +3287,7 @@ def cmd_uat_status(args: argparse.Namespace) -> None:
|
|
|
3264
3287
|
print(f"Error: Phase directory not found for {phase}", file=sys.stderr)
|
|
3265
3288
|
sys.exit(1)
|
|
3266
3289
|
|
|
3267
|
-
uat_path = phase_dir / f"{
|
|
3290
|
+
uat_path = phase_dir / f"{phase}-UAT.md"
|
|
3268
3291
|
if not uat_path.is_file():
|
|
3269
3292
|
print(f"Error: UAT file not found: {uat_path}", file=sys.stderr)
|
|
3270
3293
|
sys.exit(1)
|