maxsimcli 5.0.7 → 5.1.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 (91) hide show
  1. package/README.md +101 -99
  2. package/dist/assets/CHANGELOG.md +7 -0
  3. package/dist/assets/hooks/maxsim-capture-learnings.cjs +128 -0
  4. package/dist/assets/hooks/maxsim-capture-learnings.cjs.map +1 -0
  5. package/dist/assets/hooks/maxsim-check-update.cjs +126 -88
  6. package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
  7. package/dist/assets/hooks/maxsim-notification-sound.cjs +87 -43
  8. package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -1
  9. package/dist/assets/hooks/maxsim-statusline.cjs +45 -171
  10. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
  11. package/dist/assets/hooks/maxsim-stop-sound.cjs +86 -43
  12. package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -1
  13. package/dist/assets/hooks/maxsim-sync-reminder.cjs +72 -21
  14. package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
  15. package/dist/assets/templates/agents/AGENTS.md +62 -51
  16. package/dist/assets/templates/agents/executor.md +44 -59
  17. package/dist/assets/templates/agents/planner.md +36 -31
  18. package/dist/assets/templates/agents/researcher.md +35 -43
  19. package/dist/assets/templates/agents/verifier.md +29 -31
  20. package/dist/assets/templates/commands/maxsim/debug.md +20 -154
  21. package/dist/assets/templates/commands/maxsim/execute.md +19 -33
  22. package/dist/assets/templates/commands/maxsim/go.md +21 -20
  23. package/dist/assets/templates/commands/maxsim/help.md +5 -14
  24. package/dist/assets/templates/commands/maxsim/init.md +18 -40
  25. package/dist/assets/templates/commands/maxsim/plan.md +22 -37
  26. package/dist/assets/templates/commands/maxsim/progress.md +15 -16
  27. package/dist/assets/templates/commands/maxsim/quick.md +18 -29
  28. package/dist/assets/templates/commands/maxsim/settings.md +18 -26
  29. package/dist/assets/templates/references/continuation-format.md +2 -4
  30. package/dist/assets/templates/references/model-profiles.md +2 -2
  31. package/dist/assets/templates/references/planning-config.md +10 -11
  32. package/dist/assets/templates/references/self-improvement.md +120 -0
  33. package/dist/assets/templates/rules/conventions.md +1 -1
  34. package/dist/assets/templates/rules/verification-protocol.md +1 -1
  35. package/dist/assets/templates/skills/brainstorming/SKILL.md +35 -26
  36. package/dist/assets/templates/skills/code-review/SKILL.md +78 -55
  37. package/dist/assets/templates/skills/commit-conventions/SKILL.md +70 -36
  38. package/dist/assets/templates/skills/github-operations/SKILL.md +142 -0
  39. package/dist/assets/templates/skills/handoff-contract/SKILL.md +62 -28
  40. package/dist/assets/templates/skills/maxsim-batch/SKILL.md +68 -42
  41. package/dist/assets/templates/skills/maxsim-simplify/SKILL.md +65 -40
  42. package/dist/assets/templates/skills/project-memory/SKILL.md +121 -0
  43. package/dist/assets/templates/skills/research/SKILL.md +126 -0
  44. package/dist/assets/templates/skills/roadmap-writing/SKILL.md +71 -68
  45. package/dist/assets/templates/skills/systematic-debugging/SKILL.md +37 -25
  46. package/dist/assets/templates/skills/tdd/SKILL.md +36 -39
  47. package/dist/assets/templates/skills/using-maxsim/SKILL.md +69 -55
  48. package/dist/assets/templates/skills/verification/SKILL.md +167 -0
  49. package/dist/assets/templates/workflows/batch.md +249 -268
  50. package/dist/assets/templates/workflows/diagnose-issues.md +225 -151
  51. package/dist/assets/templates/workflows/execute-plan.md +191 -981
  52. package/dist/assets/templates/workflows/execute.md +350 -309
  53. package/dist/assets/templates/workflows/go.md +119 -138
  54. package/dist/assets/templates/workflows/health.md +71 -114
  55. package/dist/assets/templates/workflows/help.md +85 -147
  56. package/dist/assets/templates/workflows/init-existing.md +180 -1373
  57. package/dist/assets/templates/workflows/init.md +53 -165
  58. package/dist/assets/templates/workflows/new-milestone.md +91 -334
  59. package/dist/assets/templates/workflows/new-project.md +165 -1384
  60. package/dist/assets/templates/workflows/plan-create.md +182 -73
  61. package/dist/assets/templates/workflows/plan-discuss.md +89 -82
  62. package/dist/assets/templates/workflows/plan-research.md +191 -85
  63. package/dist/assets/templates/workflows/plan.md +122 -58
  64. package/dist/assets/templates/workflows/progress.md +76 -310
  65. package/dist/assets/templates/workflows/quick.md +70 -495
  66. package/dist/assets/templates/workflows/sdd.md +231 -221
  67. package/dist/assets/templates/workflows/settings.md +90 -120
  68. package/dist/assets/templates/workflows/verify-phase.md +296 -258
  69. package/dist/cli.cjs +17 -23465
  70. package/dist/cli.cjs.map +1 -1
  71. package/dist/install.cjs +356 -8358
  72. package/dist/install.cjs.map +1 -1
  73. package/package.json +16 -22
  74. package/dist/assets/templates/skills/agent-system-map/SKILL.md +0 -92
  75. package/dist/assets/templates/skills/evidence-collection/SKILL.md +0 -87
  76. package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +0 -67
  77. package/dist/assets/templates/skills/github-tools-guide/SKILL.md +0 -89
  78. package/dist/assets/templates/skills/input-validation/SKILL.md +0 -51
  79. package/dist/assets/templates/skills/memory-management/SKILL.md +0 -75
  80. package/dist/assets/templates/skills/research-methodology/SKILL.md +0 -137
  81. package/dist/assets/templates/skills/sdd/SKILL.md +0 -91
  82. package/dist/assets/templates/skills/tool-priority-guide/SKILL.md +0 -80
  83. package/dist/assets/templates/skills/verification-before-completion/SKILL.md +0 -71
  84. package/dist/assets/templates/skills/verification-gates/SKILL.md +0 -169
  85. package/dist/assets/templates/workflows/discuss-phase.md +0 -683
  86. package/dist/assets/templates/workflows/research-phase.md +0 -73
  87. package/dist/assets/templates/workflows/verify-work.md +0 -572
  88. package/dist/core-D5zUr9cb.cjs +0 -4305
  89. package/dist/core-D5zUr9cb.cjs.map +0 -1
  90. package/dist/skills-CjFWZIGM.cjs +0 -6824
  91. package/dist/skills-CjFWZIGM.cjs.map +0 -1
@@ -1,354 +1,409 @@
1
1
  <sanity_check>
2
2
  Before executing any step in this workflow, verify:
3
- 1. The current directory contains a `.planning/` folder -- if not, stop and tell the user to run `/maxsim:init` first.
4
- 2. `.planning/ROADMAP.md` exists -- if not, stop and tell the user to initialize the project.
3
+ 1. The current directory contains a `.planning/` folder if not, stop and tell the user to run `/maxsim:init` first.
4
+ 2. `.planning/ROADMAP.md` exists if not, stop and tell the user to initialize the project.
5
+ 3. Git is initialized (`git rev-parse --git-dir` succeeds) — worktrees require a git repository.
5
6
  </sanity_check>
6
7
 
7
8
  <purpose>
8
- Thin orchestrator for the /maxsim:execute state machine. Detects the current state of a phase (already done, needs verification, needs execution), delegates per-plan execution to execute-plan.md subagents, runs auto-verification, and handles retry with gap closure.
9
-
10
- This file is the ORCHESTRATOR ONLY. Per-plan execution logic lives in:
11
- - @~/.claude/maxsim/workflows/execute-plan.md (per-plan subagent execution)
12
-
13
- Verification is handled inline (spawning verifier agent) since it is a stage of this workflow, not a separate command.
9
+ Wave-based parallel orchestrator for phase execution. GitHub Issues is the SOLE source of truth for plans, task status, and completion. Every executor runs in an isolated git worktree. Agents are spawned in a SINGLE message block per wave for maximum parallelism. Verification is automatic and strict (max 3 total attempts).
14
10
  </purpose>
15
11
 
16
12
  <process>
17
13
 
18
14
  ## 1. Initialize
19
15
 
20
- Load phase state in one call:
16
+ Resolve executor model and load phase state in one call:
21
17
 
22
18
  ```bash
19
+ EXECUTOR_MODEL=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs resolve-model executor --raw)
20
+ VERIFIER_MODEL=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs resolve-model verifier --raw)
23
21
  INIT=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs init execute-phase "$PHASE")
24
22
  ```
25
23
 
26
- Parse `$ARGUMENTS` for: phase number (required), `--worktrees` (force worktree mode), `--no-worktrees` (force standard mode), `--auto` (auto-advance), `--gaps-only` (gap plans only).
24
+ Parse `$ARGUMENTS` for: phase number (required), `--auto` (skip confirmation prompts), `--gaps-only` (execute gap-closure plans only).
27
25
 
28
- Parse JSON for: `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `has_verification`, `commit_docs`, `executor_model`, `verifier_model`, `parallelization`, `state_path`, `roadmap_path`, `requirements_path`, `phase_req_ids`, `phase_issue_number`, `task_mappings`.
29
-
30
- All flags from `$ARGUMENTS` are passed through to the execute-phase workflow steps so they are available for execution mode decision and auto-advance detection.
26
+ Parse JSON for: `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `has_verification`, `executor_model`, `verifier_model`, `parallelization`, `phase_issue_number`, `task_mappings`.
31
27
 
32
28
  **If `phase_found` is false:**
33
29
  ```
34
30
  Phase [X] not found in roadmap.
35
-
36
31
  Use /maxsim:progress to see available phases.
37
32
  ```
38
33
  Exit workflow.
39
34
 
40
- **If `plan_count` is 0 (GitHub check):**
35
+ ## 2. Load Phase Inventory from GitHub Issues
41
36
 
42
- When GitHub integration is active (phase_issue_number is set), check for plan comments on the phase issue before reporting no plans:
37
+ GitHub Issues is the SOLE source of truth. All plan discovery happens here.
43
38
 
44
- ```bash
45
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue --issue-number $PHASE_ISSUE_NUMBER --include-comments
46
- ```
39
+ **Step 2a — Fetch phase issue and sub-issues:**
47
40
 
48
- Parse the response to find comments with `<!-- maxsim:type=plan -->` markers or `## Plan NN` headings. If no plan comments are found:
49
-
50
- ```
51
- No plans found for Phase {phase_number}.
41
+ ```bash
42
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue \
43
+ --issue-number $PHASE_ISSUE_NUMBER --include-comments
52
44
 
53
- Run /maxsim:plan {phase_number} first to create execution plans.
45
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues \
46
+ --phase-issue-number $PHASE_ISSUE_NUMBER
54
47
  ```
55
- Exit workflow.
56
48
 
57
- ## 2. Detect State
49
+ **Step 2b Parse plan comments:**
58
50
 
59
- ### 2a. Load Plan Inventory from GitHub
51
+ A plan comment is one that contains either:
52
+ - A `<!-- maxsim:type=plan -->` HTML marker, OR
53
+ - A heading matching `## Plan NN`
60
54
 
61
- When GitHub integration is active (`phase_issue_number` is set):
55
+ For each plan comment, extract:
56
+ - Plan number (from `## Plan NN` heading or frontmatter)
57
+ - YAML frontmatter: `wave`, `dependencies`, `autonomous`, `objective`, `gap_closure`
58
+ - Task list and success criteria
59
+ - Associated task sub-issue numbers (from `task_mappings`)
62
60
 
63
- 1. Fetch the phase issue and its comments:
64
- ```bash
65
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue --issue-number $PHASE_ISSUE_NUMBER --include-comments
66
- ```
61
+ **Step 2c Determine completion per plan:**
67
62
 
68
- 2. Parse issue comments to identify plan comments. A plan comment is one that contains either:
69
- - A `<!-- maxsim:type=plan -->` HTML comment marker, OR
70
- - A heading matching `## Plan NN` (where NN is a number)
63
+ A plan is complete when ALL its task sub-issues are closed. Also accept `<!-- maxsim:type=summary -->` comments as a secondary signal.
71
64
 
72
- 3. For each plan comment found:
73
- - Extract the plan number (from the `## Plan NN` heading or frontmatter)
74
- - Parse YAML frontmatter from the comment body for: `wave`, `dependencies`, `autonomous`, `objective`, `gap_closure`
75
- - Store plan content in memory as `PLAN_COMMENTS[]`
65
+ **Step 2d Build plan inventory:**
76
66
 
77
- 4. Check completion status for each plan by calling:
78
- ```bash
79
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues --phase-issue-number $PHASE_ISSUE_NUMBER
80
- ```
81
- A plan is considered complete when ALL of its task sub-issues are closed (state: closed).
82
- Additionally, check for `<!-- maxsim:type=summary -->` comments on the phase issue as a secondary completion signal.
83
-
84
- 5. Build `plan_inventory` from GitHub data:
85
- - `plans[]`: each with `id`, `wave`, `autonomous`, `objective`, `has_summary` (derived from sub-issue closure)
86
- - `incomplete_plans[]`: plans where not all task sub-issues are closed
87
- - `plan_count`: total plan comments found
88
- - `incomplete_count`: count of incomplete plans
89
-
90
- When GitHub integration is NOT active (no `phase_issue_number`):
91
67
  ```
92
- No plans found for Phase {phase_number}. GitHub Issues is the source of truth for plans.
68
+ plan_inventory:
69
+ plans[] — all plans with id, wave, autonomous, objective, task_issue_numbers
70
+ incomplete[] — plans with at least one open task sub-issue
71
+ plan_count — total plan comments found
72
+ incomplete_count — count of incomplete plans
73
+ ```
93
74
 
94
- Ensure GitHub integration is configured: run /maxsim:init to set up GitHub Issues.
75
+ **If no plan comments found:**
76
+ ```
77
+ No plans found for Phase {phase_number}.
78
+ Run /maxsim:plan {phase_number} first to create execution plans.
95
79
  ```
96
80
  Exit workflow.
97
81
 
98
- ### 2b. Check for External Edits (WIRE-06)
99
-
100
- If phase_issue_number is set, optionally detect whether the phase issue was externally modified since last read:
82
+ **Step 2e Detect external edits (WIRE-06):**
101
83
 
102
84
  ```bash
103
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github detect-external-edits --phase-number "$PHASE_NUMBER"
85
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github detect-external-edits \
86
+ --phase-number "$PHASE_NUMBER"
104
87
  ```
105
88
 
106
- If external edits are detected: warn the user before proceeding.
89
+ If external edits detected, warn before proceeding:
107
90
  ```
108
- ⚠️ Phase issue #{phase_issue_number} was modified externally since last check.
109
- Review the changes before continuing? (yes/no)
91
+ Warning: Phase issue #{phase_issue_number} was modified externally since last check.
92
+ Review changes before continuing? (yes/no)
110
93
  ```
111
94
 
112
- ### 2c. Determine Execution State
113
-
114
- Determine where to start based on phase artifacts:
95
+ ## 3. Detect Execution State
115
96
 
116
97
  | Condition | State | Action |
117
98
  |-----------|-------|--------|
118
- | `incomplete_count == 0` AND `has_verification == true` | Already done | Go to **Re-entry flow** (step 3) |
119
- | `incomplete_count == 0` AND `has_verification == false` | Needs verification | Start at **Auto-Verify** (step 5) |
120
- | `incomplete_count > 0` | Needs execution | Start at **Execute Plans** (step 4) |
99
+ | `incomplete_count == 0` AND `has_verification == true` | Already done | Go to Re-entry flow (step 4) |
100
+ | `incomplete_count == 0` AND `has_verification == false` | Needs verification | Go to Auto-Verify (step 7) |
101
+ | `incomplete_count > 0` | Needs execution | Go to Plan Mode (step 5) |
121
102
 
122
103
  Display detected state:
123
104
  ```
124
105
  Phase {phase_number}: {phase_name}
125
- Current state: {Already executed | Needs verification | Ready to execute}
106
+ State: {Already executed | Needs verification | Ready to execute}
126
107
  Plans: {plan_count} total, {incomplete_count} incomplete
127
108
  ```
128
109
 
129
- ## 3. Re-entry Flow (Already Executed and Verified)
130
-
131
- When all plans are complete and verification has passed, show status and offer options.
110
+ ## 4. Re-entry Flow (Already Executed and Verified)
132
111
 
133
112
  Display:
134
113
  ```
135
114
  ## Phase {phase_number} Already Executed
136
115
 
137
- **Plans:** {plan_count} plan(s) -- all complete
138
- **Verification:** Passed
139
- **Phase issue:** #{phase_issue_number} (if GitHub active)
116
+ Plans: {plan_count} all complete
117
+ Verification: Passed
118
+ Phase issue: #{phase_issue_number}
140
119
 
141
- **Options:**
142
- 1. View results -- show plan summaries from GitHub comments
143
- 2. Re-execute from scratch -- reopen task sub-issues and restart execution
144
- 3. View verification -- show verification comment on phase issue
120
+ Options:
121
+ 1. View results show plan summaries from GitHub comments
122
+ 2. Re-execute from scratch reopen task sub-issues and restart
123
+ 3. View verification show verification comment
145
124
  4. Done (exit)
146
125
  ```
147
126
 
148
- Wait for user choice via natural conversation.
149
-
150
- - **View results:** Fetch and display summary comments (`<!-- maxsim:type=summary -->`) from the phase issue, then re-show options.
151
- - **Re-execute:** Reopen task sub-issues via `github reopen-issue` for each task sub-issue, restart from Execute Plans (step 4).
152
- - **View verification:** Fetch and display the verification comment (`<!-- maxsim:type=verification -->`) from the phase issue, then re-show options.
127
+ Wait for user choice:
128
+ - **View results:** Fetch and display `<!-- maxsim:type=summary -->` comments, re-show options.
129
+ - **Re-execute:** Reopen all task sub-issues via `github reopen-issue`, restart at step 5.
130
+ - **View verification:** Fetch and display `<!-- maxsim:type=verification -->` comment, re-show options.
153
131
  - **Done:** Exit workflow.
154
132
 
155
- ## 4. Execute Plans
133
+ ## 5. Plan Mode — Review and Confirm
134
+
135
+ **Enter Plan Mode before spawning any executors.**
156
136
 
157
- Execute all plans in wave order, delegating each plan to a subagent via execute-plan.md.
137
+ Group incomplete plans by wave. Display the full execution plan:
158
138
 
159
- ### 4.1 Discover and Group Plans
139
+ ```
140
+ ## Execution Plan
160
141
 
161
- Use the plan inventory built in step 2 (from GitHub comments or local files).
142
+ Phase {phase_number}: {phase_name} {incomplete_count} plans across {wave_count} waves
162
143
 
163
- Skip plans where `has_summary: true` (already complete -- supports resume).
144
+ | Wave | Plan ID | Objective |
145
+ |------|---------|-----------|
146
+ | 1 | {id} | {from plan objective, 5-10 words} |
147
+ | 1 | {id} | ... |
148
+ | 2 | {id} | ... |
164
149
 
165
- If all plans already have summaries: skip to Auto-Verify (step 5).
150
+ Execution model: {executor_model}
151
+ Parallelism: {parallelization}
152
+ Isolation: worktree (each agent gets its own git worktree)
166
153
 
167
- Report:
154
+ Confirm to begin execution? (yes/no)
168
155
  ```
169
- ## Execution Plan
170
156
 
171
- **Phase {phase_number}: {phase_name}** -- {total_plans} plans across {wave_count} waves
157
+ Wait for user confirmation unless `--auto` flag is set.
172
158
 
173
- | Wave | Plans | What it builds |
174
- |------|-------|----------------|
175
- | 1 | 03-01, 03-02 | {from plan objectives, 3-8 words} |
176
- | 2 | 03-03 | ... |
177
- ```
159
+ **Exit Plan Mode after user confirms.** Begin wave execution.
178
160
 
179
- ### 4.2 Execute Waves
161
+ ## 6. Execute Waves
180
162
 
181
- Execute each wave in sequence. Within a wave: parallel if `parallelization` is true, sequential if false.
163
+ Execute each wave in sequence. Within a wave, spawn ALL agents in a SINGLE message block (all Agent calls at once) with `run_in_background: true` for parallelism.
182
164
 
183
165
  **For each wave:**
184
166
 
185
- 1. **Describe what is being built (BEFORE spawning):**
167
+ ### 6.1 Describe wave before spawning
168
+
169
+ For each plan in the wave, read its `objective`. Display:
170
+
171
+ ```
172
+ ---
173
+ ## Wave {N} — Spawning {count} agent(s)
174
+
175
+ **{Plan ID}: {Plan Name}**
176
+ {2-3 sentences: what this builds, technical approach, why it matters}
186
177
 
187
- Read each plan's `<objective>`. Extract what is being built and why.
178
+ [Additional plans in this wave...]
179
+ ---
180
+ ```
188
181
 
189
- ```
190
- ---
191
- ## Wave {N}
182
+ ### 6.2 Spawn all wave agents in ONE message block
192
183
 
193
- **{Plan ID}: {Plan Name}**
194
- {2-3 sentences: what this builds, technical approach, why it matters}
184
+ All Agent calls for the wave are issued simultaneously. Each agent is isolated in its own worktree.
195
185
 
196
- Spawning {count} agent(s)...
197
- ---
198
- ```
186
+ For each plan in the wave:
199
187
 
200
- 2. **Spawn executor agents:**
188
+ ```
189
+ Agent(
190
+ subagent_type="executor",
191
+ model="{executor_model}",
192
+ isolation="worktree",
193
+ run_in_background=true,
194
+ prompt="
195
+ You are an executor agent for MaxsimCLI v6.
196
+
197
+ <objective>
198
+ Execute plan {plan_id} of phase {phase_number}: {phase_name}.
199
+ You are running in an isolated git worktree. Work only in your worktree.
200
+ Commit each task atomically using conventional commits.
201
+ Post a summary comment to the phase GitHub issue when all tasks complete.
202
+ Move task sub-issues on the board as you work (open -> In Progress -> Done per task).
203
+ </objective>
204
+
205
+ <plan_content>
206
+ {full plan_comment_body for this plan, including all tasks and success criteria}
207
+ </plan_content>
208
+
209
+ <github_context>
210
+ Phase issue number: {phase_issue_number}
211
+ Plan ID: {plan_id}
212
+ Task sub-issue numbers: {task_issue_numbers for this plan}
213
+ Task mappings: {task_mappings for this plan}
214
+ </github_context>
215
+
216
+ <files_to_read>
217
+ Read these files at execution start:
218
+ - .planning/STATE.md
219
+ - .planning/config.json (if exists)
220
+ - ./CLAUDE.md (if exists — follow project conventions)
221
+ </files_to_read>
222
+
223
+ <codebase_conventions>
224
+ - Follow conventional commits: type(scope): description
225
+ - Commit each task individually — one commit per task
226
+ - Stage specific files (never git add . or git add -A)
227
+ - Run tests relevant to changed files before committing
228
+ - Do not touch files outside your worktree scope
229
+ </codebase_conventions>
230
+
231
+ <board_transitions>
232
+ When starting a task: move its sub-issue to In Progress
233
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number {task_issue} --status 'In Progress'
234
+ When completing a task: move its sub-issue to Done, then close it
235
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number {task_issue} --status 'Done'
236
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github close-issue --issue-number {task_issue}
237
+ </board_transitions>
238
+
239
+ <summary_posting>
240
+ After all tasks complete, post a summary comment on the phase issue:
241
+ TMPFILE=\$(mktemp)
242
+ cat > \"\$TMPFILE\" << 'SUMMARY_EOF'
243
+ {summary content including: one-liner, task table, commits, deviations}
244
+ <!-- maxsim:type=summary -->
245
+ SUMMARY_EOF
246
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \\
247
+ --issue-number {phase_issue_number} --body-file \"\$TMPFILE\" --type summary
248
+ </summary_posting>
249
+
250
+ <success_criteria>
251
+ - [ ] All tasks in plan executed
252
+ - [ ] Each task committed individually with conventional commit message
253
+ - [ ] Task sub-issues moved: In Progress when started, Done and closed when complete
254
+ - [ ] Summary posted as GitHub comment (type=summary) on phase issue
255
+ - [ ] Final line of output: RESULT: PASS or RESULT: FAIL — {reason}
256
+ </success_criteria>
257
+ "
258
+ )
259
+ ```
201
260
 
202
- Pass plan content and GitHub context -- executors read the plan from GitHub comment content passed in the prompt.
261
+ ### 6.3 Wait for all wave agents to complete
203
262
 
204
- ```
205
- Task(
206
- subagent_type="executor",
207
- model="{executor_model}",
208
- prompt="
209
- <objective>
210
- Execute plan {plan_number} of phase {phase_number}-{phase_name}.
211
- Commit each task atomically. Post SUMMARY as GitHub comment. Update STATE.md and ROADMAP.md.
212
- Move task sub-issues on the board as you work (In Progress → Done per task).
213
- </objective>
263
+ Do not proceed until every agent in the current wave has returned.
214
264
 
215
- <execution_context>
216
- @~/.claude/maxsim/workflows/execute-plan.md
217
- @~/.claude/maxsim/templates/summary.md
218
- @~/.claude/maxsim/references/checkpoints.md
219
- @~/.claude/maxsim/references/tdd.md
220
- </execution_context>
265
+ ### 6.4 Verify completed tasks (automatic)
221
266
 
222
- <github_context>
223
- Phase issue number: {phase_issue_number}
224
- Plan comment: {plan_comment_body}
225
- Task mappings: {task_mappings_for_this_plan}
226
- </github_context>
267
+ For each plan completed in this wave, run spot-checks:
227
268
 
228
- <files_to_read>
229
- Read these files at execution start using the Read tool:
230
- - .planning/STATE.md (State)
231
- - .planning/config.json (Config, if exists)
232
- - ./CLAUDE.md (Project instructions, if exists)
233
- </files_to_read>
269
+ ```bash
270
+ # Check summary comment exists
271
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue \
272
+ --issue-number $PHASE_ISSUE_NUMBER --include-comments
273
+ # Look for <!-- maxsim:type=summary --> comment for this plan
234
274
 
235
- <success_criteria>
236
- - [ ] All tasks executed
237
- - [ ] Each task committed individually
238
- - [ ] Summary posted as GitHub comment (`github post-comment` with type=summary) on phase issue
239
- - [ ] Task sub-issues moved: In Progress when started, Done when completed
240
- - [ ] STATE.md updated with position and decisions
241
- - [ ] ROADMAP.md updated with plan progress
242
- </success_criteria>
243
- "
244
- )
245
- ```
275
+ # Check at least one commit exists for this plan
276
+ git log --oneline --all --grep="{phase_number}-{plan_id}" 2>/dev/null
246
277
 
247
- 3. **Wait for all agents in wave to complete.**
278
+ # Check all task sub-issues for this plan are closed
279
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues \
280
+ --phase-issue-number $PHASE_ISSUE_NUMBER
281
+ ```
248
282
 
249
- 4. **Spot-check results:**
283
+ Spot-check passes when:
284
+ - A `<!-- maxsim:type=summary -->` comment exists for this plan
285
+ - At least 1 commit found matching `{phase}-{plan}` grep
286
+ - All task sub-issues for this plan are closed
287
+ - No `## Self-Check: FAILED` in the summary comment body
250
288
 
251
- For each completed plan:
252
- - Check that a `<!-- maxsim:type=summary -->` comment exists on the phase issue for this plan
253
- - Check `git log --oneline --all --grep="{phase}-{plan}"` returns at least 1 commit
254
- - Verify task sub-issues for this plan are all closed
255
- - Check for `## Self-Check: FAILED` in the summary comment body
256
- - Check for `## Review Cycle` section in summary -- verify both Spec and Code stages show PASS
289
+ If any spot-check fails: report which plan failed. Ask user: "Retry plan or continue with remaining waves?"
257
290
 
258
- If ANY spot-check fails: report which plan failed, ask "Retry plan?" or "Continue with remaining waves?"
291
+ ### 6.5 Report wave completion
259
292
 
260
- 5. **Report wave completion:**
293
+ ```
294
+ ---
295
+ ## Wave {N} Complete
261
296
 
262
- ```
263
- ---
264
- ## Wave {N} Complete
297
+ {For each plan in wave:}
298
+ **{Plan ID}: {Plan Name}**
299
+ {What was built — from summary comment one-liner}
300
+ {Notable deviations, if any}
265
301
 
266
- **{Plan ID}: {Plan Name}**
267
- {What was built -- from summary comment}
268
- {Notable deviations, if any}
302
+ {If more waves remain: what this wave enables for wave N+1}
303
+ ---
304
+ ```
269
305
 
270
- {If more waves: what this enables for next wave}
271
- ---
272
- ```
306
+ ### 6.6 Handle checkpoint plans
273
307
 
274
- 6. **Handle checkpoint plans:** Plans with `autonomous: false` may return checkpoints. Present checkpoint to user, spawn continuation agent after user responds, wait for completion before proceeding.
308
+ Plans with `autonomous: false` may pause for user input. When a checkpoint is returned:
309
+ 1. Present the checkpoint to the user
310
+ 2. Collect user response
311
+ 3. Spawn a continuation agent for that plan
312
+ 4. Wait for continuation to complete before advancing to next wave
275
313
 
276
- 7. **Proceed to next wave.**
314
+ ### 6.7 Advance to next wave
277
315
 
278
- ### 4.3 Execution Summary Gate
316
+ Repeat steps 6.1–6.6 for each subsequent wave.
317
+
318
+ ## 7. Execution Summary Gate
279
319
 
280
320
  After all waves complete:
281
321
 
282
322
  ```
283
323
  ## Gate: Execution Complete
284
324
 
285
- **Plans executed:** {completed}/{total}
286
- **Waves:** {wave_count}
287
- **Commits:** {list of commit summaries from summary comments}
325
+ Plans executed: {completed}/{total}
326
+ Waves: {wave_count}
327
+ Commits: {list commit summaries from summary comments}
288
328
 
289
- Proceeding to verification...
329
+ Moving phase to In Review and proceeding to verification...
290
330
  ```
291
331
 
292
- **Move phase issue to "In Review" on GitHub (WIRE-08):**
332
+ Move phase issue to "In Review":
333
+
293
334
  ```bash
294
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number $PHASE_ISSUE_NUMBER --status "In Review"
335
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue \
336
+ --issue-number $PHASE_ISSUE_NUMBER --status "In Review"
295
337
  ```
296
- This signals all tasks are complete and the phase is awaiting verification. The phase moves to "Done" only after verification passes.
297
-
298
- Wait for user confirmation before proceeding to verification.
299
-
300
- ## 5. Auto-Verify
301
338
 
302
- Verify that the phase achieved its GOAL, not just that tasks completed.
339
+ Unless `--auto` is set, confirm with user before starting verification.
303
340
 
304
- ### 5.1 Spawn Verifier
341
+ ## 8. Auto-Verify
305
342
 
306
- Resolve verifier model and spawn the verifier agent:
343
+ Spawn the verifier agent to check phase goal achievement:
307
344
 
308
345
  ```bash
309
346
  VERIFIER_MODEL=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs resolve-model verifier --raw)
310
347
  ```
311
348
 
312
349
  ```
313
- Task(
314
- prompt="Verify phase {phase_number} goal achievement.
315
- Phase directory: {phase_dir}
316
- Phase issue: #{phase_issue_number}
317
- Phase goal: {goal from ROADMAP.md}
318
- Phase requirement IDs: {phase_req_ids}
319
- Check must_haves against actual codebase.
320
- Cross-reference requirement IDs from plan frontmatter against REQUIREMENTS.md.
321
- Post verification results as a GitHub comment (`github post-comment` with type=verification) on the phase issue.
322
- Also write VERIFICATION.md to the phase directory for local reference.",
350
+ Agent(
323
351
  subagent_type="verifier",
324
- model="{verifier_model}"
352
+ model="{verifier_model}",
353
+ prompt="
354
+ Verify phase {phase_number}: {phase_name} goal achievement.
355
+
356
+ Phase issue: #{phase_issue_number}
357
+ Phase goal: {goal from ROADMAP.md}
358
+ Phase requirement IDs: {phase_req_ids}
359
+
360
+ Instructions:
361
+ 1. Load the phase issue and all comments from GitHub
362
+ 2. Check must-haves from ROADMAP.md success_criteria against the actual codebase
363
+ 3. Cross-reference requirement IDs from plan frontmatter against REQUIREMENTS.md
364
+ 4. Run automated checks: tests, build, lint (detect runners from package.json / config files)
365
+ 5. Identify any gaps or stubs
366
+
367
+ Post verification result as a GitHub comment on the phase issue:
368
+ TMPFILE=\$(mktemp)
369
+ cat > \"\$TMPFILE\" << 'VERIFY_EOF'
370
+ {verification result with status, score, evidence per criterion}
371
+ <!-- maxsim:type=verification -->
372
+ VERIFY_EOF
373
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \\
374
+ --issue-number {phase_issue_number} --body-file \"\$TMPFILE\" --type verification
375
+
376
+ Return: RESULT: PASS or RESULT: FAIL — {gaps list}
377
+ "
325
378
  )
326
379
  ```
327
380
 
328
- ### 5.2 Parse Verifier Result
381
+ ### 8.1 Parse verifier result
329
382
 
330
- Read verification status from the verification comment on the phase issue:
383
+ Read the verification comment from GitHub:
331
384
 
332
385
  ```bash
333
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue --issue-number $PHASE_ISSUE_NUMBER --include-comments
386
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue \
387
+ --issue-number $PHASE_ISSUE_NUMBER --include-comments
334
388
  ```
335
389
 
336
- Look for the `<!-- maxsim:type=verification -->` comment and parse the `status:` field from its body.
390
+ Look for `<!-- maxsim:type=verification -->` comment and parse its `status:` field.
337
391
 
338
- **If `passed`:** Show verification gate and proceed to completion.
392
+ **If passed:** Show gate and proceed to step 9.
339
393
 
340
394
  ```
341
395
  ## Gate: Verification Passed
342
396
 
343
- **Status:** All must-haves verified
344
- **Evidence:** {summary from verification comment}
397
+ Status: All must-haves verified
398
+ Evidence: {summary from verification comment}
345
399
 
346
400
  Phase {phase_number} complete!
347
401
  ```
348
402
 
349
- Move phase issue to "Done" status:
403
+ Move phase issue to Done:
350
404
  ```bash
351
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number $PHASE_ISSUE_NUMBER --status "Done"
405
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue \
406
+ --issue-number $PHASE_ISSUE_NUMBER --status "Done"
352
407
  ```
353
408
 
354
409
  Post phase completion comment:
@@ -359,136 +414,125 @@ cat > "$TMPFILE" << 'BODY_EOF'
359
414
 
360
415
  All plans executed and verified.
361
416
 
362
- **Plans:** {completed}/{total}
363
- **Waves:** {wave_count}
364
- **Verification:** Passed
417
+ Plans: {completed}/{total}
418
+ Waves: {wave_count}
419
+ Verification: Passed (attempt {attempt_count}/3)
420
+ <!-- maxsim:type=phase-complete -->
365
421
  BODY_EOF
366
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type phase-complete
422
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \
423
+ --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type phase-complete
367
424
  ```
368
425
 
369
- Mark phase complete:
426
+ Mark phase complete and update tracking:
370
427
  ```bash
371
- COMPLETION=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs phase complete "${PHASE_NUMBER}")
428
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs phase complete "${PHASE_NUMBER}"
429
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit \
430
+ "docs(phase-{X}): complete phase execution" \
431
+ --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
372
432
  ```
373
433
 
374
- Update tracking files:
375
- ```bash
376
- node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md {phase_dir}/*-VERIFICATION.md
377
- ```
434
+ **If gaps_found:** Post gaps comment, then proceed to Retry Loop (step 9).
378
435
 
379
- **If `gaps_found`:** Post a gaps comment on the phase issue, then proceed to Retry Loop (step 6).
436
+ **If human_needed:** Present items for human testing. If approved, treat as passed. If issues reported, proceed to Retry Loop.
380
437
 
381
- ```bash
382
- TMPFILE=$(mktemp)
383
- cat > "$TMPFILE" << 'BODY_EOF'
384
- ## Verification Gaps Found
385
-
386
- {gap summaries from verification result}
387
- BODY_EOF
388
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type verification-gaps
389
- ```
390
-
391
- **If `human_needed`:** Present items for human testing, get approval or feedback. If approved, treat as passed. If issues reported, proceed to Retry Loop.
392
-
393
- ## 6. Retry Loop (Max 2 Retries)
394
-
395
- If verification failed, attempt gap closure. Maximum 2 retries (3 total attempts including the initial execution).
438
+ ## 9. Retry Loop (Max 2 Retries — 3 Total Attempts)
396
439
 
397
440
  Initialize: `attempt_count = 1`
398
441
 
399
- ### 6.1 Check Attempt Budget
442
+ ### 9.1 Check attempt budget
400
443
 
401
444
  If `attempt_count > 2`:
402
445
  ```
403
446
  ## Verification Failed After 3 Attempts
404
447
 
405
- **Status:** Could not resolve all gaps
406
- **Attempts:** 3 (initial + 2 retries)
448
+ Status: Could not resolve all gaps
449
+ Attempts: 3 (initial + 2 retries)
407
450
 
408
451
  ### What Failed
409
- {List of unresolved gaps from verification comment with evidence}
452
+ {List unresolved gaps with evidence from verification comment}
410
453
 
411
454
  ### Options
412
- 1. Fix manually and re-run `/maxsim:execute {phase_number}`
413
- 2. Run `/maxsim:debug` to investigate failing items
414
- 3. Accept as-is and continue to next phase
455
+ 1. Fix manually and re-run /maxsim:execute {phase_number}
456
+ 2. Accept as-is and continue to next phase
415
457
  ```
458
+ Exit workflow.
416
459
 
417
- Wait for user decision. Exit workflow.
418
-
419
- ### 6.2 Plan Gap Closure
460
+ ### 9.2 Plan gap closure
420
461
 
421
462
  Display: "Verification failed. Retrying... (attempt {attempt_count + 1}/3)"
422
463
 
423
- Spawn planner in gap-closure mode to create fix plans:
464
+ Spawn planner in gap-closure mode:
424
465
 
425
466
  ```
426
- Task(
427
- prompt="
428
- <planning_context>
429
- **Phase:** {phase_number}
430
- **Mode:** gap_closure
431
-
432
- <files_to_read>
433
- - {phase_dir}/{phase_num}-VERIFICATION.md (Verification with gaps)
434
- - .planning/STATE.md (Project State)
435
- - .planning/ROADMAP.md (Roadmap)
436
- </files_to_read>
437
- </planning_context>
438
-
439
- <downstream_consumer>
440
- Output consumed by /maxsim:execute.
441
- Plans must be executable prompts.
442
- Post gap-closure plans as comments on phase issue #{phase_issue_number} using `github post-comment` with type=plan.
443
- </downstream_consumer>
444
- ",
467
+ Agent(
445
468
  subagent_type="planner",
446
- model="{planner_model}"
469
+ model="{planner_model}",
470
+ prompt="
471
+ <planning_context>
472
+ Phase: {phase_number}
473
+ Mode: gap_closure
474
+ Phase issue: #{phase_issue_number}
475
+
476
+ Read these files:
477
+ - .planning/STATE.md
478
+ - .planning/ROADMAP.md
479
+ </planning_context>
480
+
481
+ Load the verification comment (type=verification) from the phase issue.
482
+ Identify all gaps listed as FAILED or MISSING.
483
+
484
+ Create focused gap-closure plans — one plan per gap cluster.
485
+ Post each plan as a comment on phase issue #{phase_issue_number}:
486
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \\
487
+ --issue-number {phase_issue_number} --body-file plan_file --type plan
488
+
489
+ Each plan must include frontmatter with gap_closure: true.
490
+ "
447
491
  )
448
492
  ```
449
493
 
450
- ### 6.3 Execute Gap Plans
494
+ ### 9.3 Execute gap-closure plans
451
495
 
452
- After the planner posts gap-closure plan comments on the phase issue, re-read the phase issue to discover the new plan comments. Execute the newly created gap-closure plans using the same wave execution logic from step 4. Only execute plans with `gap_closure: true` in frontmatter.
496
+ Re-read the phase issue to discover new plan comments with `gap_closure: true` in frontmatter.
497
+ Execute them using the same wave logic (steps 6.1–6.6).
453
498
 
454
- ### 6.4 Re-verify
499
+ ### 9.4 Re-verify
455
500
 
456
- Spawn verifier again (back to step 5). Increment `attempt_count`.
501
+ Spawn verifier again (step 8). Increment `attempt_count`.
457
502
 
458
- If verification passes: proceed to completion.
459
- If verification fails and attempts remain: loop back to 6.1.
503
+ If verification passes: proceed to step 9 completion.
504
+ If verification fails and attempts remain: loop to 9.1.
460
505
 
461
- ## 7. Checkpoint Before /clear
506
+ ## 10. Checkpoint Before /clear
462
507
 
463
- At any point during the workflow, if context is getting full (conversation is long, many tool calls made), recommend checkpointing before `/clear`.
508
+ When context is filling up, checkpoint automatically:
464
509
 
465
- **Checkpoint protocol:**
466
- 1. Post a checkpoint comment to the phase's GitHub Issue (if issue tracking is active):
467
510
  ```bash
468
511
  TMPFILE=$(mktemp)
469
512
  cat > "$TMPFILE" << 'BODY_EOF'
470
513
  ## MAXSIM Checkpoint
471
514
 
472
- **Command:** /maxsim:execute
473
- **Stage:** {current_stage}
474
- **Plans completed:** {completed_count}/{total_count}
475
- **Verification attempts:** {attempt_count}/3
476
- **Resume from:** {next_action}
477
- **Timestamp:** {ISO timestamp}
515
+ Command: /maxsim:execute
516
+ Stage: {current_stage}
517
+ Plans completed: {completed_count}/{total_count}
518
+ Verification attempts: {attempt_count}/3
519
+ Resume from: {next_action}
520
+ Timestamp: {ISO timestamp}
521
+ <!-- maxsim:type=checkpoint -->
478
522
  BODY_EOF
479
- node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type checkpoint
523
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \
524
+ --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type checkpoint
480
525
  ```
481
526
 
482
- 2. Display checkpoint recommendation:
527
+ Display:
483
528
  ```
484
- Context is filling up. Recommended: save progress and /clear.
529
+ Context is filling up. Checkpoint saved to GitHub issue #{phase_issue_number}.
485
530
 
486
- Your progress has been checkpointed on GitHub issue #{phase_issue_number}. Re-run `/maxsim:execute {phase_number}` after /clear -- it will detect completed plans (via closed task sub-issues) and resume from where it left off.
531
+ Re-run /maxsim:execute {phase_number} after /clear completed plans (with closed task
532
+ sub-issues) are detected automatically and skipped on resume.
487
533
  ```
488
534
 
489
- The state detection in step 2 handles resume automatically -- completed plans have all their task sub-issues closed, which is detected on re-entry.
490
-
491
- ## 8. Update State
535
+ ## 11. Update State and Complete
492
536
 
493
537
  After verification passes, update STATE.md:
494
538
 
@@ -498,43 +542,40 @@ node ~/.claude/maxsim/bin/maxsim-tools.cjs state record-session \
498
542
  --resume-file "${phase_dir}"
499
543
  ```
500
544
 
501
- ## 9. Completion
502
-
503
- Display final results:
545
+ Display final report:
504
546
 
505
547
  ```
506
- ## Phase {phase_number}: {phase_name} -- Execution Complete
548
+ ## Phase {phase_number}: {phase_name} Execution Complete
507
549
 
508
- **Plans:** {completed}/{total} complete
509
- **Waves:** {wave_count}
510
- **Verification:** Passed (attempt {attempt_count}/3)
511
- **Phase issue:** #{phase_issue_number} (closed)
550
+ Plans: {completed}/{total} complete
551
+ Waves: {wave_count}
552
+ Verification: Passed (attempt {attempt_count}/3)
553
+ Phase issue: #{phase_issue_number} (closed)
512
554
 
513
555
  ### Plan Details
514
- 1. **{plan_id}**: {one-liner from summary comment}
515
- 2. **{plan_id}**: {one-liner from summary comment}
556
+ {For each plan: plan_id one-liner from summary comment}
516
557
 
517
558
  ### Next Steps
518
- - `/maxsim:plan {next_phase}` -- Plan next phase
519
- - `/maxsim:progress` -- View overall progress
559
+ - /maxsim:plan {next_phase} Plan next phase
560
+ - /maxsim:progress View overall progress
520
561
  ```
521
562
 
522
563
  </process>
523
564
 
524
565
  <success_criteria>
525
566
  - [ ] Phase validated against roadmap
526
- - [ ] Plan inventory loaded from GitHub issue comments (GitHub Issues is the source of truth)
527
- - [ ] External edit detection warns user if phase issue was modified externally
528
- - [ ] Current state correctly detected from task sub-issue closure and summary comments
529
- - [ ] Re-entry flow works for already-executed phases
530
- - [ ] Plans discovered from GitHub comments and grouped by wave
531
- - [ ] Per-plan execution delegates to execute-plan.md sub-workflow via Task with GitHub context
532
- - [ ] Spot-check reads summary comments and checks sub-issue closure instead of local SUMMARY.md
533
- - [ ] Gate confirmation shown after execution completes
534
- - [ ] Auto-verification spawns verifier agent that posts to GitHub
567
+ - [ ] Executor model resolved via maxsim-tools resolve-model
568
+ - [ ] Plan inventory loaded exclusively from GitHub Issue comments
569
+ - [ ] External edit detection warns user before proceeding
570
+ - [ ] Execution state correctly detected from task sub-issue closure and summary comments
571
+ - [ ] Plan Mode (EnterPlanMode) entered before spawning any executors
572
+ - [ ] All wave agents spawned in a SINGLE message block with isolation="worktree" and run_in_background=true
573
+ - [ ] All spawned agents use the Agent tool (NOT Task)
574
+ - [ ] Spot-checks read GitHub comments and sub-issue status (not local files)
535
575
  - [ ] Phase issue moved to "In Review" after all tasks complete (before verification)
536
576
  - [ ] Phase issue moved to "Done" on verification pass
577
+ - [ ] Summaries posted as GitHub comments: <!-- maxsim:type=summary -->
578
+ - [ ] Verification results posted as GitHub comments: <!-- maxsim:type=verification -->
537
579
  - [ ] Retry loop with gap closure (max 2 retries, 3 total attempts)
538
- - [ ] Checkpoint-before-clear posts to GitHub issue
539
- - [ ] No references to old SUMMARY.md local file checks for completion detection
580
+ - [ ] Checkpoint before /clear posts to GitHub issue
540
581
  </success_criteria>