maxsimcli 4.15.3 → 4.16.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 (38) hide show
  1. package/dist/assets/CHANGELOG.md +14 -0
  2. package/dist/assets/hooks/maxsim-statusline.cjs +46 -7
  3. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
  4. package/dist/assets/templates/agents/AGENTS.md +1 -1
  5. package/dist/assets/templates/agents/executor.md +1 -1
  6. package/dist/assets/templates/agents/planner.md +4 -4
  7. package/dist/assets/templates/references/git-planning-commit.md +1 -1
  8. package/dist/assets/templates/references/questioning.md +1 -1
  9. package/dist/assets/templates/templates/codebase/structure.md +1 -1
  10. package/dist/assets/templates/templates/milestone-archive.md +3 -3
  11. package/dist/assets/templates/workflows/batch.md +2 -3
  12. package/dist/assets/templates/workflows/diagnose-issues.md +6 -6
  13. package/dist/assets/templates/workflows/discovery-phase.md +6 -7
  14. package/dist/assets/templates/workflows/discuss-phase.md +8 -11
  15. package/dist/assets/templates/workflows/execute-phase.md +11 -71
  16. package/dist/assets/templates/workflows/execute-plan.md +8 -37
  17. package/dist/assets/templates/workflows/execute.md +7 -9
  18. package/dist/assets/templates/workflows/go.md +4 -4
  19. package/dist/assets/templates/workflows/help.md +1 -1
  20. package/dist/assets/templates/workflows/init-existing.md +0 -5
  21. package/dist/assets/templates/workflows/new-milestone.md +2 -7
  22. package/dist/assets/templates/workflows/new-project.md +0 -5
  23. package/dist/assets/templates/workflows/progress.md +10 -11
  24. package/dist/assets/templates/workflows/quick.md +0 -1
  25. package/dist/assets/templates/workflows/sdd.md +29 -30
  26. package/dist/assets/templates/workflows/settings.md +2 -7
  27. package/dist/assets/templates/workflows/verify-work.md +2 -16
  28. package/dist/cli.cjs +6913 -6499
  29. package/dist/cli.cjs.map +1 -1
  30. package/dist/core-D5zUr9cb.cjs.map +1 -1
  31. package/dist/install.cjs +10 -26
  32. package/dist/install.cjs.map +1 -1
  33. package/dist/mcp-server.cjs +186 -91
  34. package/dist/mcp-server.cjs.map +1 -1
  35. package/dist/skills-CjFWZIGM.cjs.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/assets/templates/references/dashboard-bridge.md +0 -59
  38. package/dist/assets/templates/workflows/plan-phase.md +0 -501
@@ -7,7 +7,6 @@ Read STATE.md before any operation to load project context.
7
7
  Read config.json for planning behavior settings.
8
8
 
9
9
  @./references/git-integration.md
10
- @./references/dashboard-bridge.md
11
10
  </required_reading>
12
11
 
13
12
  ## MCP Server Fallback
@@ -52,25 +51,13 @@ mcp_detect_external_edits(issue_number: phase_issue_number)
52
51
 
53
52
  If external edits detected: warn user and offer to re-read the plan before proceeding.
54
53
 
55
- **Fallback -- no GitHub context:**
54
+ **If no GitHub context is available:**
56
55
 
57
- If no `phase_issue_number` or `plan_comment_body` was passed:
56
+ GitHub Issues is the source of truth for plans. If no `phase_issue_number` or `plan_comment_body` was passed, report the error and exit:
58
57
 
59
- ```bash
60
- # Use plans/summaries from INIT JSON, or list files
61
- ls .planning/phases/XX-name/*-PLAN.md 2>/dev/null | sort
62
- ls .planning/phases/XX-name/*-SUMMARY.md 2>/dev/null | sort
63
58
  ```
64
-
65
- Find first PLAN without matching SUMMARY. Decimal phases supported (`01.1-hotfix/`).
66
-
67
- <if mode="yolo">
68
- Auto-approve: `⚡ Execute {phase}-{plan}-PLAN.md [Plan X of Y for Phase Z]` → parse_segments.
69
- </if>
70
-
71
- <if mode="interactive" OR="custom with gates.execute_next_plan true">
72
- Present plan identification, wait for confirmation.
73
- </if>
59
+ Plan content must be provided via GitHub Issue comment. Ensure GitHub integration is configured.
60
+ ```
74
61
  </step>
75
62
 
76
63
  <step name="record_start_time">
@@ -145,12 +132,7 @@ Pattern B only (verify-only checkpoints). Skip for A/C.
145
132
 
146
133
  The plan content IS the execution instructions. Follow exactly. If plan references CONTEXT.md: honor user's vision throughout.
147
134
 
148
- When plan was loaded from a GitHub comment (github_context passed): the plan content is already in memory from the load_plan_from_github step.
149
-
150
- When plan is loaded from a local file (fallback):
151
- ```bash
152
- cat .planning/phases/XX-name/{phase}-{plan}-PLAN.md
153
- ```
135
+ The plan content is already in memory from the load_plan_from_github step (loaded from the GitHub Issue comment passed by the orchestrator).
154
136
  </step>
155
137
 
156
138
  <step name="pre_execution_gates">
@@ -194,7 +176,7 @@ fi
194
176
  node ~/.claude/maxsim/bin/maxsim-tools.cjs phases list --type summaries --raw
195
177
  # Extract the second-to-last summary from the JSON result
196
178
  ```
197
- If previous phase has unresolved issues (check summary comments on phase issue or local SUMMARY.md "Issues Encountered" / "Next Phase Readiness" blockers): AskUserQuestion(header="Previous Issues", options: "Proceed anyway" | "Address first" | "Review previous").
179
+ If previous phase has unresolved issues (check summary comments on phase issue for "Issues Encountered" / "Next Phase Readiness" blockers): AskUserQuestion(header="Previous Issues", options: "Proceed anyway" | "Address first" | "Review previous").
198
180
  </step>
199
181
 
200
182
  <step name="execute">
@@ -363,11 +345,6 @@ Display: `CHECKPOINT: [Type]` box → Progress {X}/{Y} → Task name → type-sp
363
345
  | decision (9%) | Decision needed + context + options with pros/cons | "Select: option-id" |
364
346
  | human-action (1%) | What was automated + ONE manual step + verification plan | "done" |
365
347
 
366
- **Dashboard mode:** If `DASHBOARD_ACTIVE` (see @dashboard-bridge), present checkpoint content via `mcp__maxsim-dashboard__ask_question` instead of plain text:
367
- - human-verify: `options: [{value: "approved", label: "Approved"}, {value: "issues", label: "Report issues"}]`, `allow_free_text: true`
368
- - decision: one option per decision choice
369
- - human-action: `options: [{value: "done", label: "Done"}]`, `allow_free_text: true`
370
-
371
348
  After response: verify if specified. Pass → continue. Fail → inform, wait. WAIT for user — do NOT hallucinate completion.
372
349
 
373
350
  See ~/.claude/maxsim/references/checkpoints.md for details.
@@ -455,7 +432,7 @@ mcp_post_comment(
455
432
 
456
433
  Record the comment URL/ID as `SUMMARY_COMMENT_ID` for future reference.
457
434
 
458
- **Fallback (no GitHub integration):** Write `{phase}-{plan}-SUMMARY.md` to `.planning/phases/XX-name/` as before.
435
+ GitHub Issues is the source of truth -- summaries are always posted as GitHub comments.
459
436
  </step>
460
437
 
461
438
  <step name="review_cycle">
@@ -1044,7 +1021,7 @@ mcp_post_comment(
1044
1021
  )
1045
1022
  ```
1046
1023
 
1047
- **Fallback (no GitHub integration):** Write VERIFICATION.md and UAT.md to the phase directory as before.
1024
+ GitHub Issues is the source of truth -- verification and UAT results are always posted as GitHub comments.
1048
1025
  </step>
1049
1026
 
1050
1027
  <step name="update_codebase_map">
@@ -1072,12 +1049,6 @@ mcp_list_sub_issues(issue_number: phase_issue_number)
1072
1049
 
1073
1050
  Count open vs closed sub-issues. Map closed count to plans complete.
1074
1051
 
1075
- Fallback (no GitHub):
1076
- ```bash
1077
- ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
1078
- ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
1079
- ```
1080
-
1081
1052
  | Condition | Route | Action |
1082
1053
  |-----------|-------|--------|
1083
1054
  | open task sub-issues remain | **A: More plans** | Find next incomplete plan (by open sub-issues or missing summary comment). Yolo: auto-continue. Interactive: show next plan, suggest `/maxsim:execute {phase}`. STOP here. |
@@ -87,10 +87,13 @@ When GitHub integration is active (`phase_issue_number` is set):
87
87
  - `plan_count`: total plan comments found
88
88
  - `incomplete_count`: count of incomplete plans
89
89
 
90
- When GitHub integration is NOT active (no `phase_issue_number`), fall back to local file scanning:
91
- ```bash
92
- PLAN_INDEX=$(node .claude/maxsim/bin/maxsim-tools.cjs phase-plan-index "${PHASE_NUMBER}")
90
+ When GitHub integration is NOT active (no `phase_issue_number`):
91
+ ```
92
+ No plans found for Phase {phase_number}. GitHub Issues is the source of truth for plans.
93
+
94
+ Ensure GitHub integration is configured: run /maxsim:init to set up GitHub Issues.
93
95
  ```
96
+ Exit workflow.
94
97
 
95
98
  ### 2b. Check for External Edits (WIRE-06)
96
99
 
@@ -332,11 +335,6 @@ mcp_get_issue_detail(issue_number: phase_issue_number)
332
335
 
333
336
  Look for the `<!-- maxsim:type=verification -->` comment and parse the `status:` field from its body.
334
337
 
335
- Also fall back to reading locally:
336
- ```bash
337
- grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
338
- ```
339
-
340
338
  **If `passed`:** Show verification gate and proceed to completion.
341
339
 
342
340
  ```
@@ -510,7 +508,7 @@ Display final results:
510
508
 
511
509
  <success_criteria>
512
510
  - [ ] Phase validated against roadmap
513
- - [ ] Plan inventory loaded from GitHub issue comments (falling back to local files if no GitHub integration)
511
+ - [ ] Plan inventory loaded from GitHub issue comments (GitHub Issues is the source of truth)
514
512
  - [ ] External edit detection warns user if phase issue was modified externally
515
513
  - [ ] Current state correctly detected from task sub-issue closure and summary comments
516
514
  - [ ] Re-entry flow works for already-executed phases
@@ -160,13 +160,13 @@ Rule 5: Phase "To Do" on GitHub board (not yet started)?
160
160
  -> Action: /maxsim:plan {N}
161
161
  -> Reasoning: "Phase {N} ({name}) needs planning."
162
162
 
163
- Sub-check: Does local CONTEXT.md exist?
163
+ Sub-check: Does a context comment exist on the phase GitHub Issue?
164
164
  -> If yes: "Discussion complete, ready for research + planning."
165
165
  -> If no: "Starting from discussion stage."
166
166
 
167
167
  Rule 6: Current phase "In Review" on GitHub board?
168
168
  -> Check: mcp_get_all_progress returns a phase with status="In Review"
169
- -> Action: /maxsim:verify {N}
169
+ -> Action: /maxsim:execute {N}
170
170
  -> Reasoning: "Phase {N} ({name}) is awaiting verification."
171
171
 
172
172
  Rule 7: All phases "Done" on GitHub board?
@@ -233,7 +233,7 @@ Or describe what you'd like to do:
233
233
  - If no phases exist on board: show `/maxsim:plan` prominently
234
234
  - Always include `/maxsim:quick` as it is always relevant
235
235
  - Always include an open-ended fallback ("Or describe what you'd like to do")
236
- - If GitHub not available (mcp calls fail): fall back to local ROADMAP analysis and note degraded mode
236
+ - If GitHub not available (mcp calls fail): note degraded mode, recommend resolving GitHub connectivity
237
237
 
238
238
  Wait for user selection, then dispatch the chosen command.
239
239
  </step>
@@ -245,7 +245,7 @@ Wait for user selection, then dispatch the chosen command.
245
245
  - Always surface problems BEFORE suggesting actions
246
246
  - All problems block — no severity tiers, no "warnings"
247
247
  - No arguments accepted — this is pure auto-detection
248
- - No mention of old commands (plan-phase, execute-phase, etc.)
248
+ - No mention of old commands (plan, execute-phase, etc.)
249
249
  - Keep initial feedback fast — show "Analyzing..." before heavy operations
250
250
  - Primary source for phase state: live GitHub (mcp_get_all_progress, mcp_detect_interrupted)
251
251
  - Local reads: STATE.md for blockers/decisions, ROADMAP.md for phase ordering only
@@ -106,7 +106,7 @@ Systematic debugging with persistent state across context resets.
106
106
 
107
107
  - Scientific method: gather symptoms, hypothesize, test, verify
108
108
  - Persistent debug sessions in `.planning/debug/` -- survives `/clear`
109
- - Spawns isolated debugger agent (fresh 200K context per investigation)
109
+ - Spawns isolated verifier agent (fresh 200K context per investigation)
110
110
  - Run with no args to resume an active session
111
111
 
112
112
  Usage: `/maxsim:debug login form returns 500` or `/maxsim:debug` (resume)
@@ -6,15 +6,10 @@ Output: `.planning/` directory with config.json, PROJECT.md, REQUIREMENTS.md, RO
6
6
 
7
7
  <required_reading>
8
8
  Read all files referenced by the invoking prompt's execution_context before starting.
9
- @./references/dashboard-bridge.md
10
9
  @./references/thinking-partner.md
11
10
  @./references/questioning.md
12
11
  </required_reading>
13
12
 
14
- <tool_mandate>
15
- **Question routing:** At workflow start, probe for the dashboard (see @dashboard-bridge). If `DASHBOARD_ACTIVE = true`, route ALL `AskUserQuestion` calls through `mcp__maxsim-dashboard__ask_question` using the schema translation rules from @dashboard-bridge. If `DASHBOARD_ACTIVE = false`, use `AskUserQuestion` as normal.
16
- </tool_mandate>
17
-
18
13
  <auto_mode>
19
14
  ## Auto Mode Detection
20
15
 
@@ -7,14 +7,9 @@ Start a new milestone cycle for an existing project. Loads project context, gath
7
7
  <required_reading>
8
8
 
9
9
  Read all files referenced by the invoking prompt's execution_context before starting.
10
- @./references/dashboard-bridge.md
11
10
 
12
11
  </required_reading>
13
12
 
14
- <tool_mandate>
15
- **Question routing:** At workflow start, probe for the dashboard (see @dashboard-bridge). If `DASHBOARD_ACTIVE = true`, route ALL `AskUserQuestion` calls through `mcp__maxsim-dashboard__ask_question` using the schema translation rules from @dashboard-bridge. If `DASHBOARD_ACTIVE = false`, use `AskUserQuestion` as normal.
16
- </tool_mandate>
17
-
18
13
  <process>
19
14
 
20
15
  ## 1. Load Context
@@ -22,12 +17,12 @@ Read all files referenced by the invoking prompt's execution_context before star
22
17
  - Read PROJECT.md (existing project, validated requirements, decisions)
23
18
  - Read MILESTONES.md (what shipped previously)
24
19
  - Read STATE.md (pending todos, blockers)
25
- - Check for MILESTONE-CONTEXT.md (from /maxsim:discuss-milestone)
20
+ - Check for MILESTONE-CONTEXT.md (from /maxsim:plan)
26
21
 
27
22
  ## 2. Gather Milestone Goals
28
23
 
29
24
  **If MILESTONE-CONTEXT.md exists:**
30
- - Use features and scope from discuss-milestone
25
+ - Use features and scope from plan
31
26
  - Present summary for confirmation
32
27
 
33
28
  **If no context file:**
@@ -4,15 +4,10 @@ Initialize a new project through unified flow: questioning, research (optional),
4
4
 
5
5
  <required_reading>
6
6
  Read all files referenced by the invoking prompt's execution_context before starting.
7
- @./references/dashboard-bridge.md
8
7
  @./references/thinking-partner.md
9
8
  @./references/questioning.md
10
9
  </required_reading>
11
10
 
12
- <tool_mandate>
13
- **Question routing:** At workflow start, probe for the dashboard (see @dashboard-bridge). If `DASHBOARD_ACTIVE = true`, route ALL `AskUserQuestion` calls through `mcp__maxsim-dashboard__ask_question` using the schema translation rules from @dashboard-bridge. If `DASHBOARD_ACTIVE = false`, use `AskUserQuestion` as normal.
14
- </tool_mandate>
15
-
16
11
  <auto_mode>
17
12
  ## Auto Mode Detection
18
13
 
@@ -85,10 +85,9 @@ Call `mcp_query_board` with the project number (from init context / config). Gro
85
85
  | Done | 3 | #9, #10, #11 |
86
86
  ```
87
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
88
+ **Cross-reference with local ROADMAP.md (for phase ordering only -- GitHub is authoritative for status):**
89
+ - Run `ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)` to get local phase ordering data
90
+ - If local ROADMAP phase list differs from GitHub Issues, note in Issues Detected section (GitHub is the source of truth)
92
91
  </step>
93
92
 
94
93
  <step name="live_github_detail">
@@ -217,9 +216,9 @@ Identify the in-progress or interrupted phase (from `mcp_get_all_progress` or `m
217
216
 
218
217
  **Route B: Phase needs planning**
219
218
 
220
- Check if `{phase_num}-CONTEXT.md` exists in phase directory.
219
+ Check if a `<!-- maxsim:type=context -->` comment exists on the phase GitHub Issue.
221
220
 
222
- **If CONTEXT.md exists:**
221
+ **If context comment exists:**
223
222
 
224
223
  ```
225
224
  ---
@@ -236,7 +235,7 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
236
235
  ---
237
236
  ```
238
237
 
239
- **If CONTEXT.md does NOT exist:**
238
+ **If no context comment exists:**
240
239
 
241
240
  ```
242
241
  ---
@@ -244,7 +243,7 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
244
243
  ## ▶ Next Up
245
244
 
246
245
  **Phase {N}: {Name}** — {Goal from ROADMAP.md}
247
- <sub>No context yet — /maxsim:plan will start with discussion</sub>
246
+ <sub>No context comment yet — /maxsim:plan will start with discussion</sub>
248
247
 
249
248
  `/maxsim:plan {phase}`
250
249
 
@@ -335,8 +334,8 @@ Ready to plan the next milestone.
335
334
  - All work complete → offer milestone completion via `/maxsim:init`
336
335
  - Blockers present → highlight before offering to continue
337
336
  - 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
337
+ - Discrepancy between local ROADMAP and GitHub board → surface in Issues Detected (GitHub is authoritative)
338
+ - GitHub not available (mcp calls fail) → note degraded mode, recommend resolving GitHub connectivity
340
339
  </step>
341
340
 
342
341
  </process>
@@ -348,7 +347,7 @@ Ready to plan the next milestone.
348
347
  - [ ] Board column view shown via mcp_query_board
349
348
  - [ ] Per-phase task detail available via mcp_get_phase_progress and mcp_list_sub_issues
350
349
  - [ ] External edit detection via mcp_detect_external_edits
351
- - [ ] Cross-validation between local ROADMAP.md and GitHub board status
350
+ - [ ] Cross-reference local ROADMAP.md for phase ordering (GitHub is authoritative for status)
352
351
  - [ ] Phase gaps and discrepancies detected and surfaced in Issues Detected section
353
352
  - [ ] Current position clear with visual progress
354
353
  - [ ] What's next clearly explained
@@ -16,7 +16,6 @@ With `--todo` flag (or trigger words): enters Todo Mode for listing, capturing,
16
16
 
17
17
  <required_reading>
18
18
  Read all files referenced by the invoking prompt's execution_context before starting.
19
- @./references/dashboard-bridge.md
20
19
  </required_reading>
21
20
 
22
21
  <process>
@@ -14,8 +14,6 @@ Fresh context per task. No context bleeding between tasks. Review is mandatory,
14
14
 
15
15
  <required_reading>
16
16
  Read STATE.md before any operation to load project context.
17
-
18
- @./references/dashboard-bridge.md
19
17
  </required_reading>
20
18
 
21
19
  <process>
@@ -34,15 +32,16 @@ Parse JSON for: `executor_model`, `verifier_model`, `commit_docs`, `phase_found`
34
32
  </step>
35
33
 
36
34
  <step name="discover_plans">
37
- Find incomplete plans skip any plan that already has a matching SUMMARY.md:
35
+ Find incomplete plans by querying GitHub Issues (the source of truth for plans and completion status):
38
36
 
39
- ```bash
40
- PLAN_INDEX=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs phase-plan-index "${PHASE_NUMBER}")
37
+ ```
38
+ mcp_get_issue_detail(issue_number: phase_issue_number)
39
+ mcp_list_sub_issues(issue_number: phase_issue_number)
41
40
  ```
42
41
 
43
- Parse JSON for: `plans[]` (each with `id`, `objective`, `files_modified`, `task_count`, `has_summary`), `incomplete`.
42
+ Parse plan comments (`<!-- maxsim:type=plan -->`) from the phase issue. A plan is complete when all its task sub-issues are closed.
44
43
 
45
- **Filtering:** Skip plans where `has_summary: true`. If all plans complete: "All plans in phase already have summaries" — exit.
44
+ **Filtering:** Skip plans where all task sub-issues are closed. If all plans complete: "All plans in phase are already complete" — exit.
46
45
 
47
46
  Report:
48
47
  ```
@@ -60,11 +59,7 @@ Report:
60
59
  </step>
61
60
 
62
61
  <step name="load_plan">
63
- For each incomplete plan, read the plan file and extract the ordered task list:
64
-
65
- ```bash
66
- cat ${PHASE_DIR}/${PLAN_FILE}
67
- ```
62
+ For each incomplete plan, read the plan content from the GitHub Issue comment (loaded in discover_plans) and extract the ordered task list.
68
63
 
69
64
  Extract for each task:
70
65
  - **Task number** (sequential order in plan)
@@ -327,14 +322,7 @@ Display task completion:
327
322
  </step>
328
323
 
329
324
  <step name="create_summary">
330
- After all tasks in a plan complete, create SUMMARY.md:
331
-
332
- ```bash
333
- # Get the summary template
334
- cat ~/.claude/maxsim/templates/summary.md
335
- ```
336
-
337
- Create `{phase}-{plan}-SUMMARY.md` in the phase directory. Include:
325
+ After all tasks in a plan complete, build the summary content in memory and post it as a GitHub comment on the phase issue. Include:
338
326
 
339
327
  **Frontmatter:** phase, plan, subsystem, tags, requires/provides/affects, tech-stack, key-files.created/modified, key-decisions, requirements-completed (copy from PLAN.md frontmatter), duration, completed date.
340
328
 
@@ -358,12 +346,19 @@ Create `{phase}-{plan}-SUMMARY.md` in the phase directory. Include:
358
346
  - Deviations (if any)
359
347
  - Issues encountered
360
348
 
361
- Use `node ~/.claude/maxsim/bin/maxsim-tools.cjs` for template operations as needed.
349
+ Post summary to GitHub:
350
+ ```
351
+ mcp_post_comment(
352
+ issue_number: phase_issue_number,
353
+ type: "summary",
354
+ body: {summary_content}
355
+ )
356
+ ```
362
357
 
363
358
  Self-check:
364
359
  - Verify first 2 files from `key-files.created` exist on disk
365
360
  - Check `git log --oneline --all --grep="{phase}-{plan}"` returns commits
366
- - Append `## Self-Check: PASSED` or `## Self-Check: FAILED`
361
+ - Append `## Self-Check: PASSED` or `## Self-Check: FAILED` to summary content before posting
367
362
  </step>
368
363
 
369
364
  <step name="update_state">
@@ -398,23 +393,27 @@ node ~/.claude/maxsim/bin/maxsim-tools.cjs requirements mark-complete ${REQ_IDS}
398
393
  Task code already committed per-task. Commit planning artifacts:
399
394
 
400
395
  ```bash
401
- node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs({phase}-{plan}): complete SDD execution" --files .planning/phases/${PHASE_DIR_NAME}/${PHASE}-${PLAN}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
396
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs({phase}-{plan}): complete SDD execution" --files .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
402
397
  ```
398
+
399
+ Note: No local SUMMARY.md is committed -- summary was posted to GitHub as a comment.
403
400
  </step>
404
401
 
405
402
  <step name="offer_next">
406
403
  After all plans in the phase are processed:
407
404
 
408
- ```bash
409
- ls -1 .planning/phases/${PHASE_DIR_NAME}/*-PLAN.md 2>/dev/null | wc -l
410
- ls -1 .planning/phases/${PHASE_DIR_NAME}/*-SUMMARY.md 2>/dev/null | wc -l
405
+ Check completion by querying the phase issue's task sub-issues:
411
406
  ```
407
+ mcp_list_sub_issues(issue_number: phase_issue_number)
408
+ ```
409
+
410
+ Count open vs closed sub-issues to determine completion.
412
411
 
413
412
  | Condition | Route | Action |
414
413
  |-----------|-------|--------|
415
- | summaries < plans | **A: More plans** | Find next incomplete plan. Show next plan, suggest `/maxsim:execute {phase}` (SDD mode) to continue. |
416
- | summaries = plans, more phases exist | **B: Phase done** | Show completion, suggest `/maxsim:execute {phase}` (verification) then `/maxsim:plan {next}`. |
417
- | summaries = plans, last phase | **C: Milestone done** | Show banner, suggest `/maxsim:progress` (milestone completion) + `/maxsim:execute` (verification). |
414
+ | open sub-issues remain | **A: More plans** | Find next incomplete plan (by open sub-issues). Show next plan, suggest `/maxsim:execute {phase}` (SDD mode) to continue. |
415
+ | all sub-issues closed, more phases exist | **B: Phase done** | Show completion, suggest `/maxsim:execute {phase}` (verification) then `/maxsim:plan {next}`. |
416
+ | all sub-issues closed, last phase | **C: Milestone done** | Show banner, suggest `/maxsim:progress` (milestone completion) + `/maxsim:execute` (verification). |
418
417
 
419
418
  All routes: recommend `/clear` first for fresh context.
420
419
  </step>
@@ -430,5 +429,5 @@ All routes: recommend `/clear` first for fresh context.
430
429
  </failure_handling>
431
430
 
432
431
  <resumption>
433
- Re-run `/maxsim:execute {phase}` (SDD mode) — discover_plans finds completed SUMMARYs, skips them, resumes from first incomplete plan. Within a plan, completed tasks (those with commits matching the plan pattern) can be detected and skipped.
432
+ Re-run `/maxsim:execute {phase}` (SDD mode) — discover_plans queries GitHub for task sub-issue status, skips plans with all sub-issues closed, resumes from first incomplete plan. Within a plan, completed tasks (those with commits matching the plan pattern) can be detected and skipped.
434
433
  </resumption>
@@ -4,13 +4,8 @@ Interactive configuration of MAXSIM workflow agents (research, plan_checker, ver
4
4
 
5
5
  <required_reading>
6
6
  Read all files referenced by the invoking prompt's execution_context before starting.
7
- @./references/dashboard-bridge.md
8
7
  </required_reading>
9
8
 
10
- <tool_mandate>
11
- **Question routing:** At workflow start, probe for the dashboard (see @dashboard-bridge). If `DASHBOARD_ACTIVE = true`, route ALL `AskUserQuestion` calls through `mcp__maxsim-dashboard__ask_question` using the schema translation rules from @dashboard-bridge. If `DASHBOARD_ACTIVE = false`, use `AskUserQuestion` as normal.
12
- </tool_mandate>
13
-
14
9
  <process>
15
10
 
16
11
  <step name="ensure_and_load_config">
@@ -33,7 +28,7 @@ Parse current values (default to `true` if not present):
33
28
  - `workflow.research` — spawn researcher during /maxsim:plan
34
29
  - `workflow.plan_checker` — spawn plan checker during /maxsim:plan
35
30
  - `workflow.verifier` — spawn verifier during /maxsim:execute
36
- - `workflow.nyquist_validation` — validation architecture research during plan-phase
31
+ - `workflow.nyquist_validation` — validation architecture research during planning
37
32
  - `model_profile` — which model each agent uses (default: `balanced`)
38
33
  - `git.branching_strategy` — branching approach (default: `"none"`)
39
34
  </step>
@@ -94,7 +89,7 @@ AskUserQuestion([
94
89
  header: "Nyquist",
95
90
  multiSelect: false,
96
91
  options: [
97
- { label: "Yes (Recommended)", description: "Research automated test coverage during plan-phase. Adds validation requirements to plans. Blocks approval if tasks lack automated verify." },
92
+ { label: "Yes (Recommended)", description: "Research automated test coverage during planning. Adds validation requirements to plans. Blocks approval if tasks lack automated verify." },
98
93
  { label: "No", description: "Skip validation research. Good for rapid prototyping or no-test phases." }
99
94
  ]
100
95
  },
@@ -15,7 +15,6 @@ No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. D
15
15
  </philosophy>
16
16
 
17
17
  <required_reading>
18
- @./references/dashboard-bridge.md
19
18
  </required_reading>
20
19
 
21
20
  <template>
@@ -178,20 +177,7 @@ Proceed to `present_test`.
178
177
 
179
178
  Read Current Test section from UAT file.
180
179
 
181
- **If `DASHBOARD_ACTIVE`** (see @dashboard-bridge): present test via MCP tool:
182
- ```
183
- mcp__maxsim-dashboard__ask_question(
184
- question: "**Test {number}: {name}**\n\n{expected}\n\n---\nSelect result or describe what's wrong:",
185
- options: [
186
- { value: "pass", label: "Pass" },
187
- { value: "skip", label: "Skip" }
188
- ],
189
- allow_free_text: true
190
- )
191
- ```
192
- Map response: "pass"/"skip" → handle as pass/skip. Any other text → logged as issue.
193
-
194
- **If `DASHBOARD_ACTIVE = false`**: display using checkpoint box format:
180
+ Display using checkpoint box format:
195
181
 
196
182
  ```
197
183
  ╔══════════════════════════════════════════════════════════════╗
@@ -253,7 +239,7 @@ reported: "{verbatim user response}"
253
239
  severity: {inferred}
254
240
  ```
255
241
 
256
- Append to Gaps section (structured YAML for plan-phase --gaps):
242
+ Append to Gaps section (structured YAML for plan --gaps):
257
243
  ```yaml
258
244
  - truth: "{expected behavior from test}"
259
245
  status: failed