maxsimcli 4.11.0 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Check project progress, milestone status, and offer milestone completion when all phases are done. Shows GitHub Issues-based progress alongside local ROADMAP.md progress for cross-validation. Detects phase gaps and intelligently routes to the next action.
2
+ Check project progress, milestone status, and offer milestone completion when all phases are done. Reads status from live GitHub queries (always-live, no cached state). Detects phase gaps and intelligently routes to the next action.
3
3
  </purpose>
4
4
 
5
5
  <required_reading>
@@ -37,64 +37,91 @@ If missing both ROADMAP.md and PROJECT.md: suggest `/maxsim:init`.
37
37
  </step>
38
38
 
39
39
  <step name="load">
40
- **Use structured extraction from maxsim-tools:**
40
+ **Load local project context (always from local files per WIRE-02):**
41
41
 
42
- Instead of reading full files, use targeted tools to get only the data needed for the report:
43
- - `ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)`
42
+ Use targeted tools to get data needed for the report:
44
43
  - `STATE=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs state-snapshot)`
45
44
 
45
+ Read local files for project context:
46
+ - `.planning/config.json` — model profile, workflow flags
47
+ - `.planning/PROJECT.md` — project name and vision
48
+ - `.planning/REQUIREMENTS.md` — requirements context
49
+ - `.planning/STATE.md` — decisions, blockers, metrics
50
+
46
51
  This minimizes orchestrator context usage.
47
52
  </step>
48
53
 
49
- <step name="analyze_roadmap">
50
- **Get comprehensive roadmap analysis (replaces manual parsing):**
54
+ <step name="live_github_phase_overview">
55
+ **Get live phase status from GitHub (primary source — always-live, no cached state):**
56
+
57
+ Call `mcp_get_all_progress` to get progress for all phases. This returns live data from GitHub Issues:
58
+ - `phase_number`, `title`, `issue_number`
59
+ - `total_tasks`, `completed_tasks`, `remaining_tasks`
60
+ - `status` (the GitHub board column: To Do / In Progress / In Review / Done)
61
+
62
+ Display as formatted table:
51
63
 
52
- ```bash
53
- ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)
54
64
  ```
65
+ ## GitHub Issues Progress (Live)
66
+
67
+ | Phase | Title | Issue | Completed | Total | Remaining | Status |
68
+ |-------|-------|-------|-----------|-------|-----------|--------|
69
+ | 01 | ... | #12 | 3 | 5 | 2 | In Progress |
70
+ | 02 | ... | #13 | 0 | 4 | 4 | To Do |
71
+ ```
72
+
73
+ **Also get board column view:**
55
74
 
56
- This returns structured JSON with:
57
- - All phases with disk status (complete/partial/planned/empty/no_directory)
58
- - Goal and dependencies per phase
59
- - Plan and summary counts per phase
60
- - Aggregated stats: total plans, summaries, progress percent
61
- - Current and next phase identification
75
+ Call `mcp_query_board` with the project number (from init context / config). Group items by status column (To Do, In Progress, In Review, Done). Display column counts and issue details:
62
76
 
63
- Use this instead of manually reading/parsing ROADMAP.md.
77
+ ```
78
+ ## Board Status (Live)
79
+
80
+ | Column | Count | Issues |
81
+ |-------------|-------|--------|
82
+ | To Do | 2 | #13, #14 |
83
+ | In Progress | 1 | #12 |
84
+ | In Review | 0 | — |
85
+ | Done | 3 | #9, #10, #11 |
86
+ ```
87
+
88
+ **Cross-validate with local ROADMAP.md:**
89
+ - Run `ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)` to get local phase data
90
+ - Compare local completion status against GitHub board status
91
+ - Highlight any discrepancies between local and GitHub state in the Issues Detected section
64
92
  </step>
65
93
 
66
- <step name="recent">
67
- **Gather recent work context:**
94
+ <step name="live_github_detail">
95
+ **Per-phase detail (when user requests or for current phase):**
68
96
 
69
- - Find the 2-3 most recent SUMMARY.md files
70
- - Use `summary-extract` for efficient parsing:
71
- ```bash
72
- node ~/.claude/maxsim/bin/maxsim-tools.cjs summary-extract <path> --fields one_liner
73
- ```
74
- - This shows "what we've been working on"
75
- </step>
97
+ For the current active phase (or any phase requested by user):
98
+ - Call `mcp_get_phase_progress` with the phase issue number to get task-level progress
99
+ - Call `mcp_list_sub_issues` to get individual task status with sub-issue details
100
+ - Display task breakdown with status indicators (✓ done / ⏳ in progress / to do)
101
+
102
+ **Detect external edits:**
103
+
104
+ After reading phase data from GitHub, call `mcp_detect_external_edits` for each phase with the stored `body_hash`. Warn in the Issues Detected section if modifications were detected outside the normal workflow.
105
+ </step>
76
106
 
77
107
  <step name="position">
78
- **Parse current position from init context and roadmap analysis:**
108
+ **Parse current position from init context and live GitHub data:**
79
109
 
80
- - Use `current_phase` and `next_phase` from `$ROADMAP`
110
+ - Use `current_phase` and `next_phase` from `$ROADMAP` (local) cross-referenced with GitHub board status
81
111
  - Note `paused_at` if work was paused (from `$STATE`)
82
- - Count pending todos: use `init todos` or `list-todos`
83
- - Check for active debug sessions: `ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
84
- </step>
112
+ - Count pending todos: use `mcp_list_todos` for live todo count
113
+ - Check for interrupted phases via `mcp_detect_interrupted`
114
+ </step>
85
115
 
86
116
  <step name="report">
87
117
  **Generate progress bar from maxsim-tools, then present rich status report:**
88
118
 
89
119
  ```bash
90
- # Get formatted progress bar
120
+ # Get formatted progress bar (local computation)
91
121
  PROGRESS_BAR=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs progress phase-bars --raw)
92
-
93
- # Get GitHub Issues-based progress (best-effort, may fail if gh not authenticated)
94
- GH_PROGRESS=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs mcp_get_all_progress 2>/dev/null || echo '{"error": "GitHub not available"}')
95
122
  ```
96
123
 
97
- Present (include GitHub Issues progress if available for cross-validation):
124
+ Present (GitHub Issues is the primary progress source; local ROADMAP is cross-validation):
98
125
 
99
126
  ```
100
127
  # [Project Name]
@@ -102,13 +129,15 @@ Present (include GitHub Issues progress if available for cross-validation):
102
129
  **Progress:** {PROGRESS_BAR}
103
130
  **Profile:** [quality/balanced/budget]
104
131
 
105
- ## Recent Work
106
- - [Phase X, Plan Y]: [what was accomplished - 1 line from summary-extract]
107
- - [Phase X, Plan Z]: [what was accomplished - 1 line from summary-extract]
132
+ ## GitHub Issues Progress (Live)
133
+ [formatted table from mcp_get_all_progress see live_github_phase_overview step]
134
+
135
+ ## Board Status (Live)
136
+ [column view from mcp_query_board — see live_github_phase_overview step]
108
137
 
109
138
  ## Current Position
110
139
  Phase [N] of [total]: [phase-name]
111
- Plan [M] of [phase-total]: [status]
140
+ GitHub Status: [board column from live data]
112
141
  CONTEXT: [✓ if has_context | - if not]
113
142
 
114
143
  ## Key Decisions Made
@@ -119,26 +148,16 @@ CONTEXT: [✓ if has_context | - if not]
119
148
  - [extract from $STATE.blockers[]]
120
149
  - [e.g. jq -r '.blockers[].text' from state-snapshot]
121
150
 
122
- ## GitHub Issues Progress
123
- (If GH_PROGRESS available and not error)
124
- - Phase completion status from GitHub Issues
125
- - Cross-validate with local ROADMAP.md progress
126
- - Highlight any discrepancies between local and GitHub state
127
-
128
151
  ## Issues Detected
129
152
  (Only show if gaps found during analysis)
130
- - Phase [N]: [issue description, e.g., "Verification failed (2 truths unmet)"]
131
- - Phase [M]: [issue description, e.g., "Plan exists but not executed"]
153
+ - Phase [N]: [issue description, e.g., "External edit detected body_hash mismatch"]
154
+ - Phase [M]: [issue description, e.g., "Local: complete, GitHub: In Progress — discrepancy"]
132
155
 
133
156
  ## Pending Todos
134
157
  - [count] pending — /maxsim:quick --todo to review
135
158
 
136
- ## Active Debug Sessions
137
- - [count] active — /maxsim:debug to continue
138
- (Only show this section if count > 0)
139
-
140
159
  ## What's Next
141
- [Next phase/plan objective from roadmap analyze]
160
+ [Next phase/plan objective from live GitHub data and local roadmap]
142
161
  ```
143
162
 
144
163
  **Performance metrics table truncation:**
@@ -152,54 +171,40 @@ When displaying the performance metrics table from STATE.md (the `## Performance
152
171
  </step>
153
172
 
154
173
  <step name="route">
155
- **Determine next action based on verified counts.**
156
-
157
- **Step 1: Count plans, summaries, and issues in current phase**
174
+ **Determine next action based on live GitHub data.**
158
175
 
159
- List files in the current phase directory:
176
+ **Step 1: Get live phase state from GitHub**
160
177
 
161
- ```bash
162
- ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
163
- ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
164
- ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l
165
- ```
166
-
167
- State: "This phase has {X} plans, {Y} summaries."
168
-
169
- **Step 1.5: Check for unaddressed UAT gaps**
178
+ Call `mcp_get_all_progress` (already fetched above). Identify:
179
+ - Phases with status "In Progress" that have remaining tasks
180
+ - Phases with status "To Do" (not yet started)
181
+ - Phases with status "Done"
170
182
 
171
- Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
172
-
173
- ```bash
174
- # Check for diagnosed UAT with gaps
175
- grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
176
- ```
183
+ **Step 1.5: Check for interrupted or external edit issues**
177
184
 
178
- Track:
179
- - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
185
+ Call `mcp_detect_interrupted` to check for any phases that were interrupted mid-execution. If any are found, note them — they take priority over new work.
180
186
 
181
- **Step 2: Route based on counts**
187
+ **Step 2: Route based on live GitHub status**
182
188
 
183
189
  | Condition | Meaning | Action |
184
190
  |-----------|---------|--------|
185
- | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
186
- | summaries < plans | Unexecuted plans exist | Go to **Route A** |
187
- | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
188
- | plans = 0 | Phase not yet planned | Go to **Route B** |
191
+ | Interrupted phase detected | Work was cut off | Go to **Route A** (resume) |
192
+ | Phase "In Progress" with remaining tasks | Unfinished execution | Go to **Route A** (continue) |
193
+ | Phase "To Do" | Phase not yet started | Go to **Route B** |
194
+ | All phases "Done" | Milestone complete | Go to **Route D** |
189
195
 
190
196
  ---
191
197
 
192
- **Route A: Unexecuted plan exists**
198
+ **Route A: Phase in progress or interrupted — continue execution**
193
199
 
194
- Find the first PLAN.md without matching SUMMARY.md.
195
- Read its `<objective>` section.
200
+ Identify the in-progress or interrupted phase (from `mcp_get_all_progress` or `mcp_detect_interrupted`).
196
201
 
197
202
  ```
198
203
  ---
199
204
 
200
205
  ## ▶ Next Up
201
206
 
202
- **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
207
+ **Phase {N}: [Phase Name]** — resuming execution
203
208
 
204
209
  `/maxsim:execute {phase}`
205
210
 
@@ -250,50 +255,6 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
250
255
 
251
256
  ---
252
257
 
253
- **Route E: UAT gaps need fix plans**
254
-
255
- UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
256
-
257
- ```
258
- ---
259
-
260
- ## ⚠ UAT Gaps Found
261
-
262
- **{phase_num}-UAT.md** has {N} gaps requiring fixes.
263
-
264
- `/maxsim:plan {phase} --gaps`
265
-
266
- <sub>`/clear` first → fresh context window</sub>
267
-
268
- ---
269
-
270
- **Also available:**
271
- - `/maxsim:execute {phase}` — execute phase plans (includes verification)
272
-
273
- ---
274
- ```
275
-
276
- ---
277
-
278
- **Step 3: Check milestone status (only when phase complete)**
279
-
280
- Read ROADMAP.md and identify:
281
- 1. Current phase number
282
- 2. All phase numbers in the current milestone section
283
-
284
- Count total phases and identify the highest phase number.
285
-
286
- State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
287
-
288
- **Route based on milestone status:**
289
-
290
- | Condition | Meaning | Action |
291
- |-----------|---------|--------|
292
- | current phase < highest phase | More phases remain | Go to **Route C** |
293
- | current phase = highest phase | Milestone complete | Go to **Route D** |
294
-
295
- ---
296
-
297
258
  **Route C: Phase complete, more phases remain**
298
259
 
299
260
  Read ROADMAP.md to get the next phase's name and goal.
@@ -318,14 +279,14 @@ Read ROADMAP.md to get the next phase's name and goal.
318
279
 
319
280
  **Route D: Milestone complete**
320
281
 
321
- All phases are done. Offer milestone completion interactively:
282
+ All phases are "Done" on the GitHub board. Offer milestone completion interactively:
322
283
 
323
284
  ```
324
285
  ---
325
286
 
326
287
  ## Milestone Complete!
327
288
 
328
- All {N} phases are complete. Ready to wrap up?
289
+ All {N} phases are complete (all "Done" on GitHub board). Ready to wrap up?
329
290
 
330
291
  1. Complete milestone (archive, create release notes) → `/maxsim:init` (detects milestone completion)
331
292
  2. Start new milestone → `/maxsim:init` (starts new milestone flow)
@@ -373,21 +334,27 @@ Ready to plan the next milestone.
373
334
  - Phase complete but next phase not planned → offer `/maxsim:plan [next]`
374
335
  - All work complete → offer milestone completion via `/maxsim:init`
375
336
  - Blockers present → highlight before offering to continue
376
- - Phase gaps detected → surface in Issues Detected section
377
- - Handoff file existsmention it, offer `/maxsim:go`
337
+ - External edits detected → surface in Issues Detected section before routing
338
+ - Discrepancy between local ROADMAP and GitHub board surface in Issues Detected, ask user to reconcile
339
+ - GitHub not available (mcp calls fail) → fall back to local ROADMAP analysis and note degraded mode
378
340
  </step>
379
341
 
380
342
  </process>
381
343
 
382
344
  <success_criteria>
383
345
 
384
- - [ ] Rich context provided (recent work, decisions, issues)
385
- - [ ] GitHub Issues progress shown (cross-validated with local ROADMAP)
386
- - [ ] Phase gaps detected and surfaced in Issues Detected section
346
+ - [ ] Rich context provided (decisions, blockers, issues)
347
+ - [ ] GitHub Issues progress shown as primary source (always-live reads via mcp_get_all_progress)
348
+ - [ ] Board column view shown via mcp_query_board
349
+ - [ ] Per-phase task detail available via mcp_get_phase_progress and mcp_list_sub_issues
350
+ - [ ] External edit detection via mcp_detect_external_edits
351
+ - [ ] Cross-validation between local ROADMAP.md and GitHub board status
352
+ - [ ] Phase gaps and discrepancies detected and surfaced in Issues Detected section
387
353
  - [ ] Current position clear with visual progress
388
354
  - [ ] What's next clearly explained
389
- - [ ] Smart routing: /maxsim:execute if plans exist, /maxsim:plan if not
355
+ - [ ] Smart routing: /maxsim:execute if in progress, /maxsim:plan if not started
390
356
  - [ ] Milestone completion offered when all phases done
391
357
  - [ ] User confirms before any action
392
358
  - [ ] Seamless handoff to appropriate maxsim command
393
359
  </success_criteria>
360
+ </output>
@@ -5,7 +5,7 @@ Before executing any step in this workflow, verify:
5
5
  </sanity_check>
6
6
 
7
7
  <purpose>
8
- Verify phase goal achievement through goal-backward analysis. Check that the codebase delivers what the phase promised, not just that tasks completed.
8
+ Verify phase goal achievement through goal-backward analysis. Check that the codebase delivers what the phase promised, not just that tasks completed. Posts verification results as GitHub comments on the phase issue (no local VERIFICATION.md or UAT.md files are written).
9
9
 
10
10
  Executed by a verification subagent spawned from execute-phase.md.
11
11
  </purpose>
@@ -39,13 +39,16 @@ INIT=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs init phase-op "${PHASE_ARG}")
39
39
 
40
40
  Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `has_plans`, `plan_count`.
41
41
 
42
- Then load phase details and list plans/summaries:
42
+ Then load phase details:
43
43
  ```bash
44
44
  node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap get-phase "${phase_number}"
45
45
  grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null
46
- ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null
47
46
  ```
48
47
 
48
+ **Get the phase issue number from GitHub (live):**
49
+
50
+ Call `mcp_get_all_progress` and find the entry where `phase_number` matches. Extract `issue_number` — this is used for posting all verification results as GitHub comments.
51
+
49
52
  Extract **phase goal** from ROADMAP.md (the outcome to verify, not tasks) and **requirements** from REQUIREMENTS.md if it exists.
50
53
  </step>
51
54
 
@@ -172,7 +175,7 @@ For each requirement: parse description → identify supporting truths/artifacts
172
175
  </step>
173
176
 
174
177
  <step name="scan_antipatterns">
175
- Extract files modified in this phase from SUMMARY.md, scan each:
178
+ Extract files modified in this phase from local plan files, scan each:
176
179
 
177
180
  | Pattern | Search | Severity |
178
181
  |---------|--------|----------|
@@ -212,21 +215,105 @@ If gaps_found:
212
215
  3. **Order by dependency:** Fix missing → fix stubs → fix wiring → verify.
213
216
  </step>
214
217
 
215
- <step name="create_report">
216
- ```bash
217
- REPORT_PATH="$PHASE_DIR/${PHASE_NUM}-VERIFICATION.md"
218
+ <step name="post_verification_to_github">
219
+ **Post verification results as a GitHub comment (primary output — no local file written).**
220
+
221
+ Build the verification content in memory using the same structured format as the verification report template. Then call `mcp_post_comment` with `type: 'verification'` on the phase issue:
222
+
218
223
  ```
224
+ mcp_post_comment({
225
+ issue_number: {PHASE_ISSUE_NUMBER},
226
+ type: 'verification',
227
+ body: {
228
+ status: 'passed' | 'gaps_found' | 'human_needed',
229
+ score: '{verified}/{total}',
230
+ phase: '{phase_number} — {phase_name}',
231
+ timestamp: '{ISO timestamp}',
232
+ truths_checked: [
233
+ { truth: '...', status: 'VERIFIED | FAILED | UNCERTAIN', evidence: '...' }
234
+ ],
235
+ artifacts_verified: [
236
+ { path: '...', exists: true/false, substantive: true/false, wired: true/false, status: 'VERIFIED | STUB | MISSING | ORPHANED' }
237
+ ],
238
+ key_links_validated: [
239
+ { from: '...', to: '...', via: '...', status: 'WIRED | PARTIAL | NOT_WIRED' }
240
+ ],
241
+ antipatterns: [
242
+ { file: '...', line: N, pattern: '...', severity: 'Blocker | Warning | Info' }
243
+ ],
244
+ human_verification_items: [
245
+ { name: '...', steps: '...', expected: '...', reason: '...' }
246
+ ],
247
+ gaps: [
248
+ { description: '...', fix_plan: '...' }
249
+ ],
250
+ fix_plans: [
251
+ { name: '...', objective: '...', tasks: ['...'] }
252
+ ]
253
+ }
254
+ })
255
+ ```
256
+
257
+ The comment is the canonical record of this verification run.
258
+ </step>
259
+
260
+ <step name="run_uat">
261
+ **User Acceptance Testing (UAT):**
262
+
263
+ Present the human verification items to the user and walk through each one. After the user completes UAT:
264
+
265
+ Build the UAT results in memory, then post as a GitHub comment by calling `mcp_post_comment` with `type: 'uat'` on the phase issue:
266
+
267
+ ```
268
+ mcp_post_comment({
269
+ issue_number: {PHASE_ISSUE_NUMBER},
270
+ type: 'uat',
271
+ body: {
272
+ status: 'passed' | 'gaps_found',
273
+ phase: '{phase_number} — {phase_name}',
274
+ timestamp: '{ISO timestamp}',
275
+ items: [
276
+ { name: '...', result: 'pass | fail', notes: '...' }
277
+ ],
278
+ gaps: [
279
+ { description: '...', severity: 'Blocker | Warning' }
280
+ ]
281
+ }
282
+ })
283
+ ```
284
+
285
+ Do NOT write a UAT.md file to `.planning/phases/`.
286
+ </step>
287
+
288
+ <step name="board_transition">
289
+ **Update GitHub board based on verification outcome.**
290
+
291
+ **If verification passes AND PR is merged:**
292
+ 1. Call `mcp_move_issue` to move the phase issue to the "Done" column on the board
293
+ 2. Call `mcp_close_issue` to close the phase issue
294
+ 3. Report to orchestrator: phase complete, issue closed
295
+
296
+ **If verification passes but PR not yet merged:**
297
+ 1. Keep the phase issue in "In Review" on the board
298
+ 2. Note: board will be updated when PR merges
219
299
 
220
- Fill template sections: frontmatter (phase/timestamp/status/score), goal achievement, artifact table, wiring table, requirements coverage, anti-patterns, human verification, gaps summary, fix plans (if gaps_found), metadata.
300
+ **If verification fails (gaps_found):**
301
+ 1. Check current board column for the phase issue
302
+ 2. If in "In Review": call `mcp_move_issue` to move back to "In Progress"
303
+ 3. Post failure details as a verification comment (already done in post_verification_to_github step)
304
+ 4. Note which gaps need fixing before re-verification
221
305
 
222
- See ~/.claude/maxsim/templates/verification-report.md for complete template.
306
+ **If human_needed:**
307
+ 1. Keep the phase issue in its current column (do not move)
308
+ 2. The UAT comment posted above documents what needs human testing
223
309
  </step>
224
310
 
225
311
  <step name="return_to_orchestrator">
226
- Return status (`passed` | `gaps_found` | `human_needed`), score (N/M must-haves), report path.
312
+ Return status (`passed` | `gaps_found` | `human_needed`), score (N/M must-haves), GitHub issue number and comment URL.
227
313
 
228
- If gaps_found: list gaps + recommended fix plan names.
229
- If human_needed: list items requiring human testing.
314
+ If gaps_found: list gaps + recommended fix plan names. Phase issue has been moved back to "In Progress" on the board.
315
+ If human_needed: list items requiring human testing. UAT comment posted to GitHub issue.
316
+ If passed: phase issue moved to "Done" and closed on GitHub.
230
317
 
231
318
  Orchestrator routes: `passed` → update_roadmap | `gaps_found` → create/execute fixes, re-verify | `human_needed` → present to user.
232
319
  </step>
@@ -234,6 +321,7 @@ Orchestrator routes: `passed` → update_roadmap | `gaps_found` → create/execu
234
321
  </process>
235
322
 
236
323
  <success_criteria>
324
+ - [ ] Phase issue number retrieved from live GitHub via mcp_get_all_progress
237
325
  - [ ] Must-haves established (from frontmatter or derived)
238
326
  - [ ] All truths verified with status and evidence
239
327
  - [ ] All artifacts checked at all three levels
@@ -243,6 +331,9 @@ Orchestrator routes: `passed` → update_roadmap | `gaps_found` → create/execu
243
331
  - [ ] Human verification items identified
244
332
  - [ ] Overall status determined
245
333
  - [ ] Fix plans generated (if gaps_found)
246
- - [ ] VERIFICATION.md created with complete report
334
+ - [ ] Verification results posted as GitHub comment via mcp_post_comment (type: 'verification') — NO local VERIFICATION.md written
335
+ - [ ] UAT results posted as GitHub comment via mcp_post_comment (type: 'uat') — NO local UAT.md written
336
+ - [ ] Board transition executed: mcp_move_issue + mcp_close_issue on pass; mcp_move_issue back to In Progress on fail
247
337
  - [ ] Results returned to orchestrator
248
338
  </success_criteria>
339
+ </output>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maxsimcli",
3
- "version": "4.11.0",
3
+ "version": "4.13.0",
4
4
  "private": false,
5
5
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code, OpenCode, Gemini and Codex by MayStudios.",
6
6
  "bin": {