maxsimcli 4.16.0 → 5.0.1
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 +31 -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/executor.md +2 -2
- package/dist/assets/templates/agents/planner.md +1 -1
- 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 +82 -68
- package/dist/assets/templates/workflows/execute.md +51 -36
- package/dist/assets/templates/workflows/go.md +21 -16
- 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 +45 -20
- package/dist/assets/templates/workflows/quick.md +21 -13
- package/dist/assets/templates/workflows/sdd.md +13 -11
- package/dist/assets/templates/workflows/verify-phase.md +77 -58
- package/dist/cli.cjs +4410 -2265
- package/dist/cli.cjs.map +1 -1
- package/dist/install.cjs +61 -38
- package/dist/install.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 -752
- package/dist/mcp-server.cjs +0 -41031
- package/dist/mcp-server.cjs.map +0 -1
|
@@ -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)
|
|
@@ -94,13 +101,22 @@ Call `mcp_query_board` with the project number (from init context / config). Gro
|
|
|
94
101
|
**Per-phase detail (when user requests or for current phase):**
|
|
95
102
|
|
|
96
103
|
For the current active phase (or any phase requested by user):
|
|
97
|
-
-
|
|
98
|
-
-
|
|
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
|
|
99
106
|
- Display task breakdown with status indicators (✓ done / ⏳ in progress / ○ to do)
|
|
100
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
|
+
|
|
101
113
|
**Detect external edits:**
|
|
102
114
|
|
|
103
|
-
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
|
+
```
|
|
104
120
|
</step>
|
|
105
121
|
|
|
106
122
|
<step name="position">
|
|
@@ -108,8 +124,13 @@ After reading phase data from GitHub, call `mcp_detect_external_edits` for each
|
|
|
108
124
|
|
|
109
125
|
- Use `current_phase` and `next_phase` from `$ROADMAP` (local) cross-referenced with GitHub board status
|
|
110
126
|
- Note `paused_at` if work was paused (from `$STATE`)
|
|
111
|
-
- Count pending todos:
|
|
112
|
-
- 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
|
+
```
|
|
113
134
|
</step>
|
|
114
135
|
|
|
115
136
|
<step name="report">
|
|
@@ -129,10 +150,10 @@ Present (GitHub Issues is the primary progress source; local ROADMAP is cross-va
|
|
|
129
150
|
**Profile:** [quality/balanced/budget]
|
|
130
151
|
|
|
131
152
|
## GitHub Issues Progress (Live)
|
|
132
|
-
[formatted table from
|
|
153
|
+
[formatted table from github all-progress — see live_github_phase_overview step]
|
|
133
154
|
|
|
134
155
|
## Board Status (Live)
|
|
135
|
-
[column view from
|
|
156
|
+
[column view from github query-board — see live_github_phase_overview step]
|
|
136
157
|
|
|
137
158
|
## Current Position
|
|
138
159
|
Phase [N] of [total]: [phase-name]
|
|
@@ -174,14 +195,18 @@ When displaying the performance metrics table from STATE.md (the `## Performance
|
|
|
174
195
|
|
|
175
196
|
**Step 1: Get live phase state from GitHub**
|
|
176
197
|
|
|
177
|
-
|
|
198
|
+
Use `github all-progress` output (already fetched above). Identify:
|
|
178
199
|
- Phases with status "In Progress" that have remaining tasks
|
|
179
200
|
- Phases with status "To Do" (not yet started)
|
|
180
201
|
- Phases with status "Done"
|
|
181
202
|
|
|
182
203
|
**Step 1.5: Check for interrupted or external edit issues**
|
|
183
204
|
|
|
184
|
-
|
|
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
|
+
```
|
|
185
210
|
|
|
186
211
|
**Step 2: Route based on live GitHub status**
|
|
187
212
|
|
|
@@ -196,7 +221,7 @@ Call `mcp_detect_interrupted` to check for any phases that were interrupted mid-
|
|
|
196
221
|
|
|
197
222
|
**Route A: Phase in progress or interrupted — continue execution**
|
|
198
223
|
|
|
199
|
-
Identify the in-progress or interrupted phase (from `
|
|
224
|
+
Identify the in-progress or interrupted phase (from `github all-progress` or `github detect-interrupted`).
|
|
200
225
|
|
|
201
226
|
```
|
|
202
227
|
---
|
|
@@ -335,7 +360,7 @@ Ready to plan the next milestone.
|
|
|
335
360
|
- Blockers present → highlight before offering to continue
|
|
336
361
|
- External edits detected → surface in Issues Detected section before routing
|
|
337
362
|
- Discrepancy between local ROADMAP and GitHub board → surface in Issues Detected (GitHub is authoritative)
|
|
338
|
-
- GitHub not available (
|
|
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.
|
|
339
364
|
</step>
|
|
340
365
|
|
|
341
366
|
</process>
|
|
@@ -343,10 +368,10 @@ Ready to plan the next milestone.
|
|
|
343
368
|
<success_criteria>
|
|
344
369
|
|
|
345
370
|
- [ ] Rich context provided (decisions, blockers, issues)
|
|
346
|
-
- [ ] GitHub Issues progress shown as primary source (always-live reads via
|
|
347
|
-
- [ ] Board column view shown via
|
|
348
|
-
- [ ] Per-phase task detail available via
|
|
349
|
-
- [ ] External edit detection via
|
|
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`
|
|
350
375
|
- [ ] Cross-reference local ROADMAP.md for phase ordering (GitHub is authoritative for status)
|
|
351
376
|
- [ ] Phase gaps and discrepancies detected and surfaced in Issues Detected section
|
|
352
377
|
- [ ] Current position clear with visual progress
|
|
@@ -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
|
|
|
@@ -34,9 +34,9 @@ Parse JSON for: `executor_model`, `verifier_model`, `commit_docs`, `phase_found`
|
|
|
34
34
|
<step name="discover_plans">
|
|
35
35
|
Find incomplete plans by querying GitHub Issues (the source of truth for plans and completion status):
|
|
36
36
|
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
```bash
|
|
38
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue ${phase_issue_number} --comments
|
|
39
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues ${phase_issue_number}
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Parse plan comments (`<!-- maxsim:type=plan -->`) from the phase issue. A plan is complete when all its task sub-issues are closed.
|
|
@@ -347,12 +347,14 @@ After all tasks in a plan complete, build the summary content in memory and post
|
|
|
347
347
|
- Issues encountered
|
|
348
348
|
|
|
349
349
|
Post summary to GitHub:
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
350
|
+
```bash
|
|
351
|
+
# Write summary content to tmpfile
|
|
352
|
+
SUMMARY_FILE=$(mktemp)
|
|
353
|
+
cat > "$SUMMARY_FILE" << 'SUMMARY_EOF'
|
|
354
|
+
{summary_content}
|
|
355
|
+
SUMMARY_EOF
|
|
356
|
+
|
|
357
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment --issue-number ${phase_issue_number} --body-file "$SUMMARY_FILE" --type summary
|
|
356
358
|
```
|
|
357
359
|
|
|
358
360
|
Self-check:
|
|
@@ -403,8 +405,8 @@ Note: No local SUMMARY.md is committed -- summary was posted to GitHub as a comm
|
|
|
403
405
|
After all plans in the phase are processed:
|
|
404
406
|
|
|
405
407
|
Check completion by querying the phase issue's task sub-issues:
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
+
```bash
|
|
409
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues ${phase_issue_number}
|
|
408
410
|
```
|
|
409
411
|
|
|
410
412
|
Count open vs closed sub-issues to determine completion.
|