maxsimcli 4.15.4 → 5.0.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 (40) hide show
  1. package/dist/assets/CHANGELOG.md +14 -0
  2. package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
  3. package/dist/assets/hooks/maxsim-notification-sound.cjs +70 -0
  4. package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -0
  5. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
  6. package/dist/assets/hooks/maxsim-stop-sound.cjs +70 -0
  7. package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -0
  8. package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
  9. package/dist/assets/templates/agents/AGENTS.md +1 -1
  10. package/dist/assets/templates/agents/executor.md +3 -3
  11. package/dist/assets/templates/agents/planner.md +5 -5
  12. package/dist/assets/templates/agents/verifier.md +1 -1
  13. package/dist/assets/templates/commands/maxsim/quick.md +2 -2
  14. package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +8 -8
  15. package/dist/assets/templates/skills/github-tools-guide/SKILL.md +96 -0
  16. package/dist/assets/templates/workflows/execute-plan.md +90 -99
  17. package/dist/assets/templates/workflows/execute.md +58 -45
  18. package/dist/assets/templates/workflows/go.md +22 -17
  19. package/dist/assets/templates/workflows/init-existing.md +13 -16
  20. package/dist/assets/templates/workflows/new-milestone.md +23 -1
  21. package/dist/assets/templates/workflows/new-project.md +13 -16
  22. package/dist/assets/templates/workflows/plan-create.md +16 -24
  23. package/dist/assets/templates/workflows/plan-discuss.md +6 -8
  24. package/dist/assets/templates/workflows/plan-research.md +7 -6
  25. package/dist/assets/templates/workflows/plan.md +21 -14
  26. package/dist/assets/templates/workflows/progress.md +54 -30
  27. package/dist/assets/templates/workflows/quick.md +21 -13
  28. package/dist/assets/templates/workflows/sdd.md +29 -26
  29. package/dist/assets/templates/workflows/verify-phase.md +77 -58
  30. package/dist/cli.cjs +10894 -8290
  31. package/dist/cli.cjs.map +1 -1
  32. package/dist/core-D5zUr9cb.cjs.map +1 -1
  33. package/dist/install.cjs +60 -37
  34. package/dist/install.cjs.map +1 -1
  35. package/dist/skills-CjFWZIGM.cjs.map +1 -1
  36. package/package.json +2 -4
  37. package/dist/assets/templates/workflows/discovery-phase.md +0 -292
  38. package/dist/assets/templates/workflows/execute-phase.md +0 -768
  39. package/dist/mcp-server.cjs +0 -40900
  40. package/dist/mcp-server.cjs.map +0 -1
@@ -108,16 +108,16 @@ Parse init context for `has_github_remote` and `gh_authenticated`:
108
108
  ```
109
109
  - Do NOT proceed with initialization.
110
110
 
111
- 3. Both checks passed — call `mcp_github_setup` with the project name as the milestone title:
112
- ```
113
- mcp_github_setup({ milestone_title: "[project name]" })
111
+ 3. Both checks passed — run `github setup` with the project name as the milestone title:
112
+ ```bash
113
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github setup --milestone-title "[project name]"
114
114
  ```
115
115
 
116
- 4. If `mcp_github_setup` fails:
116
+ 4. If `github setup` fails:
117
117
  - STOP with the error message returned by the tool.
118
118
  - Do not fall back to local-only mode.
119
119
 
120
- 5. Record the `project_number` and board details returned by `mcp_github_setup` for use in the Phase Issue Creation step.
120
+ 5. Record the `project_number` and board details returned by `github setup` for use in the Phase Issue Creation step.
121
121
 
122
122
  ## Step 2: Conflict Resolution
123
123
 
@@ -1174,15 +1174,12 @@ Display banner:
1174
1174
  - `requirements` (list of REQ-IDs mapped to this phase)
1175
1175
  - `success_criteria` (list of observable outcomes)
1176
1176
 
1177
- 2. For each phase, call `mcp_create_phase_issue`:
1178
- ```
1179
- mcp_create_phase_issue({
1180
- phase_number: "[phase_number]",
1181
- phase_name: "[phase_name]",
1182
- goal: "[goal]",
1183
- requirements: ["REQ-01", "REQ-02", ...],
1184
- success_criteria: ["criterion 1", "criterion 2", ...]
1185
- })
1177
+ 2. For each phase, run `github create-phase`:
1178
+ ```bash
1179
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github create-phase \
1180
+ --phase-number "[phase_number]" \
1181
+ --phase-name "[phase_name]" \
1182
+ --goal "[goal]"
1186
1183
  ```
1187
1184
  The tool auto-adds each issue to the project board with "To Do" status.
1188
1185
 
@@ -1457,7 +1454,7 @@ Print next steps:
1457
1454
  - [ ] Git repo initialized (if not already)
1458
1455
  - [ ] GitHub remote detected (gate passed)
1459
1456
  - [ ] GitHub CLI authenticated (gate passed)
1460
- - [ ] `mcp_github_setup` called successfully — project_number recorded
1457
+ - [ ] `github setup` called successfully — project_number recorded
1461
1458
  - [ ] Conflict detection completed (merge/overwrite/cancel dialog)
1462
1459
  - [ ] Codebase scan completed (4 mapper agents spawned)
1463
1460
  - [ ] README validated against scan findings
@@ -1469,7 +1466,7 @@ Print next steps:
1469
1466
  - [ ] PROJECT.md created with brownfield extra sections
1470
1467
  - [ ] REQUIREMENTS.md created with stage-aware format
1471
1468
  - [ ] ROADMAP.md created with 3-5 concrete phases (no TBD)
1472
- - [ ] `mcp_create_phase_issue` called for every phase — all issues on board with "To Do" status
1469
+ - [ ] `github create-phase` called for every phase — all issues on board with "To Do" status
1473
1470
  - [ ] STATE.md created with pre-populated decisions and blockers
1474
1471
  - [ ] config.json created with workflow settings
1475
1472
  - [ ] .planning/codebase/ populated with scan documents
@@ -333,6 +333,26 @@ Success criteria:
333
333
  node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
334
334
  ```
335
335
 
336
+ ## 10b. Create Phase Tracking Issues on GitHub
337
+
338
+ **This step is MANDATORY — GitHub Issues are the single source of truth for phase tracking.**
339
+
340
+ For each phase in the roadmap, run `github create-phase` to create a tracking issue:
341
+
342
+ ```bash
343
+ # For each phase:
344
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github create-phase \
345
+ --phase-number "[N]" \
346
+ --phase-name "[Phase Name]" \
347
+ --goal "[Phase Goal from ROADMAP.md]"
348
+ ```
349
+
350
+ Track results. If any phase issue creation fails, warn and suggest manual creation.
351
+
352
+ ```
353
+ ✓ Created {N} phase issues on GitHub Project Board
354
+ ```
355
+
336
356
  ## 11. Done
337
357
 
338
358
  ```
@@ -348,8 +368,9 @@ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: create milestone v[X.Y]
348
368
  | Research | `.planning/research/` |
349
369
  | Requirements | `.planning/REQUIREMENTS.md` |
350
370
  | Roadmap | `.planning/ROADMAP.md` |
371
+ | Phase Issues | GitHub Project Board |
351
372
 
352
- **[N] phases** | **[X] requirements** | Ready to build ✓
373
+ **[N] phases** | **[X] requirements** | **[N] GitHub issues** | Ready to build ✓
353
374
 
354
375
  ## ▶ Next Up
355
376
 
@@ -375,6 +396,7 @@ Also: `/maxsim:plan [N]` — skip discussion, plan directly
375
396
  - [ ] Roadmap files written immediately (not draft)
376
397
  - [ ] User feedback incorporated (if any)
377
398
  - [ ] ROADMAP.md phases continue from previous milestone
399
+ - [ ] `github create-phase` called for every phase — all issues on GitHub board
378
400
  - [ ] All commits made (if planning docs committed)
379
401
  - [ ] User knows next step: `/maxsim:plan [N]`
380
402
 
@@ -100,16 +100,16 @@ Parse init context for `has_github_remote` and `gh_authenticated`:
100
100
  ```
101
101
  - Do NOT proceed with project setup.
102
102
 
103
- 3. Both checks passed — call `mcp_github_setup` with the project name as the milestone title:
104
- ```
105
- mcp_github_setup({ milestone_title: "[project name]" })
103
+ 3. Both checks passed — run `github setup` with the project name as the milestone title:
104
+ ```bash
105
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github setup --milestone-title "[project name]"
106
106
  ```
107
107
 
108
- 4. If `mcp_github_setup` fails:
108
+ 4. If `github setup` fails:
109
109
  - STOP with the error message returned by the tool.
110
110
  - Do not fall back to local-only mode.
111
111
 
112
- 5. Record the `project_number` and board details returned by `mcp_github_setup` for use in the Phase Issue Creation step.
112
+ 5. Record the `project_number` and board details returned by `github setup` for use in the Phase Issue Creation step.
113
113
 
114
114
  ## 2. Brownfield Offer
115
115
 
@@ -1318,15 +1318,12 @@ Display banner:
1318
1318
  - `requirements` (list of REQ-IDs mapped to this phase)
1319
1319
  - `success_criteria` (list of observable outcomes)
1320
1320
 
1321
- 2. For each phase, call `mcp_create_phase_issue`:
1322
- ```
1323
- mcp_create_phase_issue({
1324
- phase_number: "[phase_number]",
1325
- phase_name: "[phase_name]",
1326
- goal: "[goal]",
1327
- requirements: ["REQ-01", "REQ-02", ...],
1328
- success_criteria: ["criterion 1", "criterion 2", ...]
1329
- })
1321
+ 2. For each phase, run `github create-phase`:
1322
+ ```bash
1323
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github create-phase \
1324
+ --phase-number "[phase_number]" \
1325
+ --phase-name "[phase_name]" \
1326
+ --goal "[goal]"
1330
1327
  ```
1331
1328
  The tool auto-adds each issue to the project board with "To Do" status.
1332
1329
 
@@ -1487,7 +1484,7 @@ Exit skill and invoke SlashCommand("/maxsim:plan 1 --auto")
1487
1484
  - [ ] REQUIREMENTS.md created with REQ-IDs → **committed**
1488
1485
  - [ ] GitHub remote detected (gate passed)
1489
1486
  - [ ] GitHub CLI authenticated (gate passed)
1490
- - [ ] `mcp_github_setup` called successfully — project_number recorded
1487
+ - [ ] `github setup` called successfully — project_number recorded
1491
1488
  - [ ] planner (roadmap mode) spawned with context
1492
1489
  - [ ] Roadmap files written immediately (not draft)
1493
1490
  - [ ] User feedback incorporated (if any)
@@ -1496,7 +1493,7 @@ Exit skill and invoke SlashCommand("/maxsim:plan 1 --auto")
1496
1493
  - [ ] REQUIREMENTS.md traceability updated
1497
1494
  - [ ] CONVENTIONS.md generated with 4 must-have sections (Tech Stack, File Layout, Error Handling, Testing)
1498
1495
  - [ ] NO-GOS.md populated from confirmed no-gos during questioning
1499
- - [ ] `mcp_create_phase_issue` called for every phase — all issues on board with "To Do" status
1496
+ - [ ] `github create-phase` called for every phase — all issues on board with "To Do" status
1500
1497
  - [ ] Agent dry-run validation passed (Quality Score >= 7)
1501
1498
  - [ ] User knows next step is `/maxsim:plan 1`
1502
1499
 
@@ -28,8 +28,8 @@ CHECKER_MODEL=$(node .claude/maxsim/bin/maxsim-tools.cjs resolve-model planner -
28
28
  ## Step 3: Check Existing Plans
29
29
 
30
30
  Query the phase GitHub Issue for existing plan comments:
31
- ```
32
- mcp_get_issue_detail(issue_number={phase_issue_number})
31
+ ```bash
32
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments
33
33
  ```
34
34
 
35
35
  Look for comments that contain `<!-- maxsim:type=plan -->`.
@@ -295,12 +295,13 @@ After verification passes (or is skipped), post each plan as a separate comment
295
295
 
296
296
  For each plan in `plans_content`:
297
297
 
298
- ```
299
- mcp_post_plan_comment(
300
- phase_issue_number={phase_issue_number},
301
- plan_number={plan_number}, // e.g. "01", "02"
302
- plan_content="<!-- maxsim:type=plan -->\n" + {plan_content}
303
- )
298
+ ```bash
299
+ TMPFILE=$(mktemp)
300
+ cat > "$TMPFILE" << 'BODY_EOF'
301
+ <!-- maxsim:type=plan -->
302
+ {plan_content}
303
+ BODY_EOF
304
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-plan-comment --phase-issue-number $PHASE_ISSUE_NUMBER --plan-number "{plan_number}" --plan-content-file "$TMPFILE"
304
305
  ```
305
306
 
306
307
  If posting any plan comment fails:
@@ -320,16 +321,10 @@ Parse tasks from the posted plans. For each `<task>` element in the plan XML, ex
320
321
  - `title`
321
322
  - `description` / body content
322
323
 
323
- Call `mcp_batch_create_tasks` with the full tasks array and the phase issue number:
324
+ Run `github batch-create-tasks` with the full tasks array and the phase issue number:
324
325
 
325
- ```
326
- mcp_batch_create_tasks(
327
- phase_issue_number={phase_issue_number},
328
- tasks=[
329
- { id: "1.1", title: "Task title", description: "Task body" },
330
- ...
331
- ]
332
- )
326
+ ```bash
327
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github batch-create-tasks --phase-number "$PHASE_NUMBER" --parent-issue-number $PHASE_ISSUE_NUMBER --tasks-json '[{"id":"1.1","title":"Task title","description":"Task body"}, ...]'
333
328
  ```
334
329
 
335
330
  Each task becomes a GitHub sub-issue linked to the phase issue.
@@ -348,11 +343,8 @@ Task sub-issues created: {task_count} tasks linked to Issue #{phase_issue_number
348
343
 
349
344
  After all plans are posted and task sub-issues are created, move the phase issue to "In Progress" on the project board:
350
345
 
351
- ```
352
- mcp_move_issue(
353
- issue_number={phase_issue_number},
354
- status="In Progress"
355
- )
346
+ ```bash
347
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number $PHASE_ISSUE_NUMBER --status "In Progress"
356
348
  ```
357
349
 
358
350
  Display:
@@ -379,8 +371,8 @@ Planning complete. {plan_count} plan(s) posted to GitHub Issue #{phase_issue_num
379
371
  - Checker verification loop runs (max 3 iterations) unless --skip-verify
380
372
  - Revision loop passes in-memory plan content to planner for targeted fixes
381
373
  - Plans posted to GitHub Issue #{phase_issue_number} as comments with <!-- maxsim:type=plan --> markers
382
- - Task sub-issues created via mcp_batch_create_tasks linked to phase issue
383
- - Phase issue moved to "In Progress" via mcp_move_issue
374
+ - Task sub-issues created via `github batch-create-tasks` linked to phase issue
375
+ - Phase issue moved to "In Progress" via `github move-issue`
384
376
  - Failed task creation surfaced with retry option (WIRE-07)
385
377
  - Control returned to orchestrator without showing gate or next steps
386
378
  </success_criteria>
@@ -140,8 +140,8 @@ Also extract `phase_issue_number` passed from the orchestrator.
140
140
  ## Step 2: Check Existing Context
141
141
 
142
142
  Check if a context comment already exists on the phase GitHub Issue by calling:
143
- ```
144
- mcp_get_issue_detail(issue_number={phase_issue_number})
143
+ ```bash
144
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments
145
145
  ```
146
146
 
147
147
  Look for a comment that contains `<!-- maxsim:type=context -->`.
@@ -313,12 +313,10 @@ Build the context content in memory, then post it as a comment on the phase GitH
313
313
  ```
314
314
 
315
315
  Post the comment to GitHub:
316
- ```
317
- mcp_post_comment(
318
- issue_number={phase_issue_number},
319
- type="context",
320
- content={context_content_above}
321
- )
316
+ ```bash
317
+ TMPFILE=$(mktemp)
318
+ echo "$CONTEXT_CONTENT" > "$TMPFILE"
319
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type context
322
320
  ```
323
321
 
324
322
  Context decisions are posted as a GitHub comment on phase issue #{phase_issue_number}. No local CONTEXT.md file is written.
@@ -117,12 +117,13 @@ Parse the researcher's return message:
117
117
  Extract the research findings document from the researcher's response.
118
118
 
119
119
  Post research findings to GitHub:
120
- ```
121
- mcp_post_comment(
122
- issue_number={phase_issue_number},
123
- type="research",
124
- content="<!-- maxsim:type=research -->\n" + {research_findings_document}
125
- )
120
+ ```bash
121
+ TMPFILE=$(mktemp)
122
+ cat > "$TMPFILE" << 'BODY_EOF'
123
+ <!-- maxsim:type=research -->
124
+ {research_findings_document}
125
+ BODY_EOF
126
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type research
126
127
  ```
127
128
 
128
129
  Research findings are posted as a GitHub comment on phase issue #{phase_issue_number}. No local RESEARCH.md file is written.
@@ -45,9 +45,9 @@ Detect planning stage by querying the phase GitHub Issue:
45
45
 
46
46
  1. Get `phase_issue_number` from the init context parsed above.
47
47
  2. **If no `phase_issue_number` exists:** The phase has not been set up on GitHub yet.
48
- - Call `mcp_create_phase_issue` to create the issue (uses roadmap data).
48
+ - Run `node ~/.claude/maxsim/bin/maxsim-tools.cjs github create-phase --phase-number "$PHASE_NUMBER" --phase-name "$PHASE_NAME" --goal "$GOAL" --requirements "$REQUIREMENTS" --success-criteria "$SUCCESS_CRITERIA"` to create the issue (uses roadmap data).
49
49
  - Store the returned issue number as `phase_issue_number`.
50
- 3. Call `mcp_get_issue_detail` with `phase_issue_number` to read the phase issue body and comments.
50
+ 3. Run `node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments` to read the phase issue body and comments.
51
51
  4. Check issue comments for existing artifacts using HTML marker comments:
52
52
  - Has a comment containing `<!-- maxsim:type=context -->`? → Discussion stage complete
53
53
  - Has a comment containing `<!-- maxsim:type=research -->`? → Research stage complete
@@ -104,8 +104,8 @@ Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_
104
104
  **After discussion completes (context posted as GitHub comment):**
105
105
 
106
106
  Re-query the phase issue to verify the `type=context` comment now exists:
107
- ```
108
- mcp_get_issue_detail(issue_number={phase_issue_number})
107
+ ```bash
108
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments
109
109
  ```
110
110
 
111
111
  Show gate:
@@ -139,8 +139,8 @@ Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_
139
139
  **After research completes (research posted as GitHub comment or already exists):**
140
140
 
141
141
  Re-query the phase issue to verify the `type=research` comment now exists:
142
- ```
143
- mcp_get_issue_detail(issue_number={phase_issue_number})
142
+ ```bash
143
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments
144
144
  ```
145
145
 
146
146
  Show gate:
@@ -171,8 +171,8 @@ Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_
171
171
  **After planning completes (plans posted as GitHub comments and task sub-issues created):**
172
172
 
173
173
  Re-query the phase issue to verify `type=plan` comments exist:
174
- ```
175
- mcp_get_issue_detail(issue_number={phase_issue_number})
174
+ ```bash
175
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue $PHASE_ISSUE_NUMBER --comments
176
176
  ```
177
177
 
178
178
  Show final gate:
@@ -200,12 +200,19 @@ At any point during the workflow, if context is getting full (conversation is lo
200
200
 
201
201
  **Checkpoint protocol:**
202
202
  1. Post a checkpoint comment to the phase's GitHub Issue:
203
- ```
204
- mcp_post_comment(
205
- issue_number={phase_issue_number},
206
- type="checkpoint",
207
- content="## MAXSIM Checkpoint\n\n**Command:** /maxsim:plan\n**Stage:** {current_stage} ({stage_num}/3)\n**Completed:**\n{list of completed stages with summaries}\n**Resume from:** {next_stage}\n**Timestamp:** {ISO timestamp}"
208
- )
203
+ ```bash
204
+ TMPFILE=$(mktemp)
205
+ cat > "$TMPFILE" << 'BODY_EOF'
206
+ ## MAXSIM Checkpoint
207
+
208
+ **Command:** /maxsim:plan
209
+ **Stage:** {current_stage} ({stage_num}/3)
210
+ **Completed:**
211
+ {list of completed stages with summaries}
212
+ **Resume from:** {next_stage}
213
+ **Timestamp:** {ISO timestamp}
214
+ BODY_EOF
215
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number $PHASE_ISSUE_NUMBER --body-file "$TMPFILE" --type checkpoint
209
216
  ```
210
217
 
211
218
  2. Display checkpoint recommendation:
@@ -54,10 +54,13 @@ This minimizes orchestrator context usage.
54
54
  <step name="live_github_phase_overview">
55
55
  **Get live phase status from GitHub (primary source — always-live, no cached state):**
56
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)
57
+ Run `github all-progress` to get progress for all phases. This returns live data from GitHub Issues:
58
+
59
+ ```bash
60
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github all-progress
61
+ ```
62
+
63
+ Returns: `phase_number`, `title`, `issue_number`, `total_tasks`, `completed_tasks`, `remaining_tasks`, `status` (the GitHub board column: To Do / In Progress / In Review / Done)
61
64
 
62
65
  Display as formatted table:
63
66
 
@@ -72,7 +75,11 @@ Display as formatted table:
72
75
 
73
76
  **Also get board column view:**
74
77
 
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:
78
+ Run `github 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:
79
+
80
+ ```bash
81
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github query-board --project-number PROJECT_NUMBER
82
+ ```
76
83
 
77
84
  ```
78
85
  ## Board Status (Live)
@@ -85,23 +92,31 @@ Call `mcp_query_board` with the project number (from init context / config). Gro
85
92
  | Done | 3 | #9, #10, #11 |
86
93
  ```
87
94
 
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
95
+ **Cross-reference with local ROADMAP.md (for phase ordering only -- GitHub is authoritative for status):**
96
+ - Run `ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)` to get local phase ordering data
97
+ - If local ROADMAP phase list differs from GitHub Issues, note in Issues Detected section (GitHub is the source of truth)
92
98
  </step>
93
99
 
94
100
  <step name="live_github_detail">
95
101
  **Per-phase detail (when user requests or for current phase):**
96
102
 
97
103
  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
104
+ - Run `github phase-progress` with the phase issue number to get task-level progress
105
+ - Run `github list-sub-issues` to get individual task status with sub-issue details
100
106
  - Display task breakdown with status indicators (✓ done / ⏳ in progress / ○ to do)
101
107
 
108
+ ```bash
109
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github phase-progress --phase-issue-number N
110
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues N
111
+ ```
112
+
102
113
  **Detect external edits:**
103
114
 
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.
115
+ After reading phase data from GitHub, run `github 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.
116
+
117
+ ```bash
118
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github detect-external-edits --phase-number "XX"
119
+ ```
105
120
  </step>
106
121
 
107
122
  <step name="position">
@@ -109,8 +124,13 @@ After reading phase data from GitHub, call `mcp_detect_external_edits` for each
109
124
 
110
125
  - Use `current_phase` and `next_phase` from `$ROADMAP` (local) cross-referenced with GitHub board status
111
126
  - Note `paused_at` if work was paused (from `$STATE`)
112
- - Count pending todos: use `mcp_list_todos` for live todo count
113
- - Check for interrupted phases via `mcp_detect_interrupted`
127
+ - Count pending todos: run `github list-todos` for live todo count
128
+ - Check for interrupted phases via `github detect-interrupted`
129
+
130
+ ```bash
131
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-todos --status pending
132
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github detect-interrupted --phase-issue-number N
133
+ ```
114
134
  </step>
115
135
 
116
136
  <step name="report">
@@ -130,10 +150,10 @@ Present (GitHub Issues is the primary progress source; local ROADMAP is cross-va
130
150
  **Profile:** [quality/balanced/budget]
131
151
 
132
152
  ## GitHub Issues Progress (Live)
133
- [formatted table from mcp_get_all_progress — see live_github_phase_overview step]
153
+ [formatted table from github all-progress — see live_github_phase_overview step]
134
154
 
135
155
  ## Board Status (Live)
136
- [column view from mcp_query_board — see live_github_phase_overview step]
156
+ [column view from github query-board — see live_github_phase_overview step]
137
157
 
138
158
  ## Current Position
139
159
  Phase [N] of [total]: [phase-name]
@@ -175,14 +195,18 @@ When displaying the performance metrics table from STATE.md (the `## Performance
175
195
 
176
196
  **Step 1: Get live phase state from GitHub**
177
197
 
178
- Call `mcp_get_all_progress` (already fetched above). Identify:
198
+ Use `github all-progress` output (already fetched above). Identify:
179
199
  - Phases with status "In Progress" that have remaining tasks
180
200
  - Phases with status "To Do" (not yet started)
181
201
  - Phases with status "Done"
182
202
 
183
203
  **Step 1.5: Check for interrupted or external edit issues**
184
204
 
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.
205
+ Run `github detect-interrupted` to check for any phases that were interrupted mid-execution. If any are found, note them — they take priority over new work.
206
+
207
+ ```bash
208
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github detect-interrupted --phase-issue-number N
209
+ ```
186
210
 
187
211
  **Step 2: Route based on live GitHub status**
188
212
 
@@ -197,7 +221,7 @@ Call `mcp_detect_interrupted` to check for any phases that were interrupted mid-
197
221
 
198
222
  **Route A: Phase in progress or interrupted — continue execution**
199
223
 
200
- Identify the in-progress or interrupted phase (from `mcp_get_all_progress` or `mcp_detect_interrupted`).
224
+ Identify the in-progress or interrupted phase (from `github all-progress` or `github detect-interrupted`).
201
225
 
202
226
  ```
203
227
  ---
@@ -217,9 +241,9 @@ Identify the in-progress or interrupted phase (from `mcp_get_all_progress` or `m
217
241
 
218
242
  **Route B: Phase needs planning**
219
243
 
220
- Check if `{phase_num}-CONTEXT.md` exists in phase directory.
244
+ Check if a `<!-- maxsim:type=context -->` comment exists on the phase GitHub Issue.
221
245
 
222
- **If CONTEXT.md exists:**
246
+ **If context comment exists:**
223
247
 
224
248
  ```
225
249
  ---
@@ -236,7 +260,7 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
236
260
  ---
237
261
  ```
238
262
 
239
- **If CONTEXT.md does NOT exist:**
263
+ **If no context comment exists:**
240
264
 
241
265
  ```
242
266
  ---
@@ -244,7 +268,7 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
244
268
  ## ▶ Next Up
245
269
 
246
270
  **Phase {N}: {Name}** — {Goal from ROADMAP.md}
247
- <sub>No context yet — /maxsim:plan will start with discussion</sub>
271
+ <sub>No context comment yet — /maxsim:plan will start with discussion</sub>
248
272
 
249
273
  `/maxsim:plan {phase}`
250
274
 
@@ -335,8 +359,8 @@ Ready to plan the next milestone.
335
359
  - All work complete → offer milestone completion via `/maxsim:init`
336
360
  - Blockers present → highlight before offering to continue
337
361
  - 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
362
+ - Discrepancy between local ROADMAP and GitHub board → surface in Issues Detected (GitHub is authoritative)
363
+ - GitHub not available (CLI calls fail) → show error: "GitHub integration required for progress tracking. Run `/maxsim:init` to configure GitHub." Do NOT fall back to local file scanning.
340
364
  </step>
341
365
 
342
366
  </process>
@@ -344,11 +368,11 @@ Ready to plan the next milestone.
344
368
  <success_criteria>
345
369
 
346
370
  - [ ] 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
371
+ - [ ] GitHub Issues progress shown as primary source (always-live reads via `github all-progress`)
372
+ - [ ] Board column view shown via `github query-board`
373
+ - [ ] Per-phase task detail available via `github phase-progress` and `github list-sub-issues`
374
+ - [ ] External edit detection via `github detect-external-edits`
375
+ - [ ] Cross-reference local ROADMAP.md for phase ordering (GitHub is authoritative for status)
352
376
  - [ ] Phase gaps and discrepancies detected and surfaced in Issues Detected section
353
377
  - [ ] Current position clear with visual progress
354
378
  - [ ] What's next clearly explained
@@ -5,13 +5,13 @@ Before executing any step in this workflow, verify:
5
5
  </sanity_check>
6
6
 
7
7
  <purpose>
8
- Execute small, ad-hoc tasks with MAXSIM guarantees (atomic commits, STATE.md tracking). Also supports "save for later" todo capture -- managing ideas as local todos with best-effort GitHub Issue creation.
8
+ Execute small, ad-hoc tasks with MAXSIM guarantees (atomic commits, STATE.md tracking). Also supports "save for later" todo capture via GitHub Issues.
9
9
 
10
- Quick mode spawns planner (quick mode) + executor(s), tracks tasks in `.planning/quick/`, and updates STATE.md's "Quick Tasks Completed" table.
10
+ Quick mode spawns planner (quick mode) + executor(s), tracks tasks as GitHub Issues (label: "quick"), and updates STATE.md's "Quick Tasks Completed" table.
11
11
 
12
12
  With `--full` flag: enables plan-checking (max 2 iterations) and post-execution verification for quality guarantees without full milestone ceremony.
13
13
 
14
- With `--todo` flag (or trigger words): enters Todo Mode for listing, capturing, completing, and triaging todos.
14
+ With `--todo` flag (or trigger words): enters Todo Mode for listing, capturing, completing, and triaging todos via GitHub Issues.
15
15
  </purpose>
16
16
 
17
17
  <required_reading>
@@ -668,11 +668,16 @@ files: []
668
668
  TBD
669
669
  ```
670
670
 
671
- 5. Best-effort GitHub Issue creation:
672
- - Always attempt: `node ~/.claude/maxsim/bin/maxsim-tools.cjs todos add "$TITLE" "$PRIORITY" 2>/dev/null || true`
673
- - If `github_ready` is true in init context: also call `mcp_create_todo_issue` with title, priority, area, and description to create a tracked GitHub Issue linked to the todo file
674
- 6. Commit: `node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: capture todo - ${TITLE}" --files .planning/todos/pending/${date}-${slug}.md`
675
- 7. Confirm: "Saved: ${TITLE} (priority: ${PRIORITY})"
671
+ 5. GitHub Issue creation (primary):
672
+ - Run `github add-todo` with title, priority, area, and description to create a tracked GitHub Issue (label: "todo")
673
+ - If GitHub is unavailable, fall back to local file only and warn user: "Todo saved locally. Run `/maxsim:init` to enable GitHub tracking."
674
+
675
+ ```bash
676
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github add-todo --title "${TITLE}" --description "${DESCRIPTION}" --area "${AREA}"
677
+ ```
678
+ 6. Local file cache: also create the local todo file for offline access
679
+ 7. Commit: `node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: capture todo - ${TITLE}" --files .planning/todos/pending/${date}-${slug}.md`
680
+ 8. Confirm: "Saved: ${TITLE} (priority: ${PRIORITY}) — GitHub Issue #{number}"
676
681
 
677
682
  Exit after confirm.
678
683
 
@@ -683,11 +688,14 @@ Exit after confirm.
683
688
  If user references an existing todo to complete:
684
689
 
685
690
  1. Parse identifier (number from list, or title fragment)
686
- 2. Find matching todo in `.planning/todos/pending/`
687
- 3. Move to done: `mv ".planning/todos/pending/[filename]" ".planning/todos/done/"`
688
- 4. Best-effort: close corresponding GitHub Issue
689
- 5. Commit: `node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: complete todo - ${TITLE}" --files .planning/todos/done/${filename}`
690
- 6. Confirm: "Completed: ${TITLE}"
691
+ 2. Close the corresponding GitHub Issue (primary): run `github close-issue` with the todo's issue number
692
+
693
+ ```bash
694
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs github close-issue N
695
+ ```
696
+ 3. Move local cache file: `mv ".planning/todos/pending/[filename]" ".planning/todos/done/"`
697
+ 4. Commit: `node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: complete todo - ${TITLE}" --files .planning/todos/done/${filename}`
698
+ 5. Confirm: "Completed: ${TITLE} — GitHub Issue closed"
691
699
 
692
700
  Exit after confirm.
693
701