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.
- package/dist/assets/CHANGELOG.md +14 -0
- package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-notification-sound.cjs +70 -0
- package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -0
- package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-stop-sound.cjs +70 -0
- package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -0
- package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
- package/dist/assets/templates/agents/AGENTS.md +1 -1
- package/dist/assets/templates/agents/executor.md +3 -3
- package/dist/assets/templates/agents/planner.md +5 -5
- package/dist/assets/templates/agents/verifier.md +1 -1
- package/dist/assets/templates/commands/maxsim/quick.md +2 -2
- package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +8 -8
- package/dist/assets/templates/skills/github-tools-guide/SKILL.md +96 -0
- package/dist/assets/templates/workflows/execute-plan.md +90 -99
- package/dist/assets/templates/workflows/execute.md +58 -45
- package/dist/assets/templates/workflows/go.md +22 -17
- package/dist/assets/templates/workflows/init-existing.md +13 -16
- package/dist/assets/templates/workflows/new-milestone.md +23 -1
- package/dist/assets/templates/workflows/new-project.md +13 -16
- package/dist/assets/templates/workflows/plan-create.md +16 -24
- package/dist/assets/templates/workflows/plan-discuss.md +6 -8
- package/dist/assets/templates/workflows/plan-research.md +7 -6
- package/dist/assets/templates/workflows/plan.md +21 -14
- package/dist/assets/templates/workflows/progress.md +54 -30
- package/dist/assets/templates/workflows/quick.md +21 -13
- package/dist/assets/templates/workflows/sdd.md +29 -26
- package/dist/assets/templates/workflows/verify-phase.md +77 -58
- package/dist/cli.cjs +10894 -8290
- package/dist/cli.cjs.map +1 -1
- package/dist/core-D5zUr9cb.cjs.map +1 -1
- package/dist/install.cjs +60 -37
- package/dist/install.cjs.map +1 -1
- package/dist/skills-CjFWZIGM.cjs.map +1 -1
- package/package.json +2 -4
- package/dist/assets/templates/workflows/discovery-phase.md +0 -292
- package/dist/assets/templates/workflows/execute-phase.md +0 -768
- package/dist/mcp-server.cjs +0 -40900
- 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 —
|
|
112
|
-
```
|
|
113
|
-
|
|
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 `
|
|
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 `
|
|
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,
|
|
1178
|
-
```
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
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
|
-
- [ ] `
|
|
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
|
-
- [ ] `
|
|
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 —
|
|
104
|
-
```
|
|
105
|
-
|
|
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 `
|
|
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 `
|
|
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,
|
|
1322
|
-
```
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
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
|
-
- [ ] `
|
|
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
|
-
- [ ] `
|
|
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
|
-
|
|
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
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
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
|
-
|
|
324
|
+
Run `github batch-create-tasks` with the full tasks array and the phase issue number:
|
|
324
325
|
|
|
325
|
-
```
|
|
326
|
-
|
|
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
|
-
|
|
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
|
|
383
|
-
- Phase issue moved to "In Progress" via
|
|
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
|
-
|
|
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
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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-
|
|
89
|
-
- Run `ROADMAP=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap analyze)` to get local phase data
|
|
90
|
-
-
|
|
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
|
-
-
|
|
99
|
-
-
|
|
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,
|
|
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:
|
|
113
|
-
- Check for interrupted phases via `
|
|
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
|
|
153
|
+
[formatted table from github all-progress — see live_github_phase_overview step]
|
|
134
154
|
|
|
135
155
|
## Board Status (Live)
|
|
136
|
-
[column view from
|
|
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
|
-
|
|
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
|
-
|
|
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 `
|
|
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
|
|
244
|
+
Check if a `<!-- maxsim:type=context -->` comment exists on the phase GitHub Issue.
|
|
221
245
|
|
|
222
|
-
**If
|
|
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
|
|
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
|
|
339
|
-
- GitHub not available (
|
|
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
|
|
348
|
-
- [ ] Board column view shown via
|
|
349
|
-
- [ ] Per-phase task detail available via
|
|
350
|
-
- [ ] External edit detection via
|
|
351
|
-
- [ ] Cross-
|
|
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
|
|
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
|
|
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.
|
|
672
|
-
-
|
|
673
|
-
- If
|
|
674
|
-
|
|
675
|
-
|
|
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.
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
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
|
|