maxsimcli 5.0.7 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -99
- package/dist/assets/CHANGELOG.md +7 -0
- package/dist/assets/hooks/maxsim-capture-learnings.cjs +128 -0
- package/dist/assets/hooks/maxsim-capture-learnings.cjs.map +1 -0
- package/dist/assets/hooks/maxsim-check-update.cjs +126 -88
- package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-notification-sound.cjs +87 -43
- package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-statusline.cjs +45 -171
- package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-stop-sound.cjs +86 -43
- package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-sync-reminder.cjs +72 -21
- package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
- package/dist/assets/templates/agents/AGENTS.md +62 -51
- package/dist/assets/templates/agents/executor.md +44 -59
- package/dist/assets/templates/agents/planner.md +36 -31
- package/dist/assets/templates/agents/researcher.md +35 -43
- package/dist/assets/templates/agents/verifier.md +29 -31
- package/dist/assets/templates/commands/maxsim/debug.md +20 -154
- package/dist/assets/templates/commands/maxsim/execute.md +19 -33
- package/dist/assets/templates/commands/maxsim/go.md +21 -20
- package/dist/assets/templates/commands/maxsim/help.md +5 -14
- package/dist/assets/templates/commands/maxsim/init.md +18 -40
- package/dist/assets/templates/commands/maxsim/plan.md +22 -37
- package/dist/assets/templates/commands/maxsim/progress.md +15 -16
- package/dist/assets/templates/commands/maxsim/quick.md +18 -29
- package/dist/assets/templates/commands/maxsim/settings.md +18 -26
- package/dist/assets/templates/references/continuation-format.md +2 -4
- package/dist/assets/templates/references/model-profiles.md +2 -2
- package/dist/assets/templates/references/planning-config.md +10 -11
- package/dist/assets/templates/references/self-improvement.md +120 -0
- package/dist/assets/templates/rules/conventions.md +1 -1
- package/dist/assets/templates/rules/verification-protocol.md +1 -1
- package/dist/assets/templates/skills/brainstorming/SKILL.md +35 -26
- package/dist/assets/templates/skills/code-review/SKILL.md +78 -55
- package/dist/assets/templates/skills/commit-conventions/SKILL.md +70 -36
- package/dist/assets/templates/skills/github-operations/SKILL.md +142 -0
- package/dist/assets/templates/skills/handoff-contract/SKILL.md +62 -28
- package/dist/assets/templates/skills/maxsim-batch/SKILL.md +68 -42
- package/dist/assets/templates/skills/maxsim-simplify/SKILL.md +65 -40
- package/dist/assets/templates/skills/project-memory/SKILL.md +121 -0
- package/dist/assets/templates/skills/research/SKILL.md +126 -0
- package/dist/assets/templates/skills/roadmap-writing/SKILL.md +71 -68
- package/dist/assets/templates/skills/systematic-debugging/SKILL.md +37 -25
- package/dist/assets/templates/skills/tdd/SKILL.md +36 -39
- package/dist/assets/templates/skills/using-maxsim/SKILL.md +69 -55
- package/dist/assets/templates/skills/verification/SKILL.md +167 -0
- package/dist/assets/templates/workflows/batch.md +249 -268
- package/dist/assets/templates/workflows/diagnose-issues.md +225 -151
- package/dist/assets/templates/workflows/execute-plan.md +191 -981
- package/dist/assets/templates/workflows/execute.md +350 -309
- package/dist/assets/templates/workflows/go.md +119 -138
- package/dist/assets/templates/workflows/health.md +71 -114
- package/dist/assets/templates/workflows/help.md +85 -147
- package/dist/assets/templates/workflows/init-existing.md +180 -1373
- package/dist/assets/templates/workflows/init.md +53 -165
- package/dist/assets/templates/workflows/new-milestone.md +91 -334
- package/dist/assets/templates/workflows/new-project.md +165 -1384
- package/dist/assets/templates/workflows/plan-create.md +182 -73
- package/dist/assets/templates/workflows/plan-discuss.md +89 -82
- package/dist/assets/templates/workflows/plan-research.md +191 -85
- package/dist/assets/templates/workflows/plan.md +122 -58
- package/dist/assets/templates/workflows/progress.md +76 -310
- package/dist/assets/templates/workflows/quick.md +70 -495
- package/dist/assets/templates/workflows/sdd.md +231 -221
- package/dist/assets/templates/workflows/settings.md +90 -120
- package/dist/assets/templates/workflows/verify-phase.md +296 -258
- package/dist/cli.cjs +17 -23465
- package/dist/cli.cjs.map +1 -1
- package/dist/install.cjs +356 -8358
- package/dist/install.cjs.map +1 -1
- package/package.json +16 -22
- package/dist/assets/templates/skills/agent-system-map/SKILL.md +0 -92
- package/dist/assets/templates/skills/evidence-collection/SKILL.md +0 -87
- package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +0 -67
- package/dist/assets/templates/skills/github-tools-guide/SKILL.md +0 -89
- package/dist/assets/templates/skills/input-validation/SKILL.md +0 -51
- package/dist/assets/templates/skills/memory-management/SKILL.md +0 -75
- package/dist/assets/templates/skills/research-methodology/SKILL.md +0 -137
- package/dist/assets/templates/skills/sdd/SKILL.md +0 -91
- package/dist/assets/templates/skills/tool-priority-guide/SKILL.md +0 -80
- package/dist/assets/templates/skills/verification-before-completion/SKILL.md +0 -71
- package/dist/assets/templates/skills/verification-gates/SKILL.md +0 -169
- package/dist/assets/templates/workflows/discuss-phase.md +0 -683
- package/dist/assets/templates/workflows/research-phase.md +0 -73
- package/dist/assets/templates/workflows/verify-work.md +0 -572
- package/dist/core-D5zUr9cb.cjs +0 -4305
- package/dist/core-D5zUr9cb.cjs.map +0 -1
- package/dist/skills-CjFWZIGM.cjs +0 -6824
- package/dist/skills-CjFWZIGM.cjs.map +0 -1
|
@@ -5,278 +5,296 @@ Before executing any step in this workflow, verify:
|
|
|
5
5
|
</sanity_check>
|
|
6
6
|
|
|
7
7
|
<purpose>
|
|
8
|
-
|
|
8
|
+
Spec-Driven Dispatch: fresh-agent-per-task execution for maximum context isolation. Each task gets a new executor agent with only the minimum context it needs. After each task, two reviewer agents check spec compliance and code quality. Review is a hard gate — the next task never starts until the current task passes both reviews. Max 3 fix attempts per task before escalation.
|
|
9
|
+
|
|
10
|
+
GitHub Issues is the SOLE source of truth for plan content, task status, and completion.
|
|
9
11
|
</purpose>
|
|
10
12
|
|
|
11
13
|
<core_principle>
|
|
12
|
-
Fresh context per task. No context bleeding between tasks. Review is mandatory
|
|
14
|
+
Fresh context per task. No context bleeding between tasks. Review is mandatory and never skippable. Previous task diffs and agent conversations are NEVER passed to subsequent agents.
|
|
13
15
|
</core_principle>
|
|
14
16
|
|
|
15
|
-
<required_reading>
|
|
16
|
-
Read STATE.md before any operation to load project context.
|
|
17
|
-
</required_reading>
|
|
18
|
-
|
|
19
17
|
<process>
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
Reuse the execute-phase init to load phase directory, plans, and model configuration:
|
|
19
|
+
## Step 1 — Initialize
|
|
23
20
|
|
|
24
21
|
```bash
|
|
22
|
+
EXECUTOR_MODEL=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs resolve-model executor --raw)
|
|
25
23
|
INIT=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs init execute-phase "${PHASE_ARG}")
|
|
26
24
|
```
|
|
27
25
|
|
|
28
|
-
Parse JSON
|
|
26
|
+
Parse JSON: `executor_model`, `verifier_model`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_issue_number`, `plan_count`, `incomplete_count`.
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
</step>
|
|
28
|
+
If `phase_found` is false: error — phase not found.
|
|
29
|
+
If `plan_count` is 0: error — no plans found. Run `/maxsim:plan {phase}` first.
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
## Step 2 — Load Plans from GitHub Issues
|
|
32
|
+
|
|
33
|
+
GitHub Issues is the sole source of truth. Fetch phase issue and its plan comments:
|
|
36
34
|
|
|
37
35
|
```bash
|
|
38
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue
|
|
39
|
-
|
|
36
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github get-issue \
|
|
37
|
+
--issue-number $PHASE_ISSUE_NUMBER --include-comments
|
|
38
|
+
|
|
39
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues \
|
|
40
|
+
--phase-issue-number $PHASE_ISSUE_NUMBER
|
|
40
41
|
```
|
|
41
42
|
|
|
42
|
-
Parse plan comments (`<!-- maxsim:type=plan -->`)
|
|
43
|
+
Parse plan comments (`<!-- maxsim:type=plan -->`). A plan is complete when all its task sub-issues are closed.
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
Skip plans where all task sub-issues are closed (resume support).
|
|
46
|
+
|
|
47
|
+
If all plans are complete: exit with "All plans in phase are already complete."
|
|
45
48
|
|
|
46
49
|
Report:
|
|
47
50
|
```
|
|
48
51
|
## SDD Execution Plan
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
Phase {phase_number}: {phase_name} — {incomplete_count} plans to execute
|
|
51
54
|
|
|
52
55
|
| Plan | Tasks | Objective |
|
|
53
56
|
|------|-------|-----------|
|
|
54
|
-
|
|
|
55
|
-
| 01-02 | 3 | ... |
|
|
57
|
+
| {plan_id} | {task_count} | {objective, 5-10 words} |
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
Mode: Spec-Driven Dispatch — fresh agent per task, 2-stage review gate between tasks
|
|
58
60
|
```
|
|
59
|
-
</step>
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
For each incomplete plan, read the plan content from the GitHub Issue comment (loaded in discover_plans) and extract the ordered task list.
|
|
62
|
+
## Step 3 — Dispatch Loop
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
- **Task number** (sequential order in plan)
|
|
66
|
-
- **Task name**
|
|
67
|
-
- **Description** (what to implement)
|
|
68
|
-
- **Acceptance criteria** (done criteria from plan)
|
|
69
|
-
- **Relevant files** (files to read and/or modify)
|
|
70
|
-
- **Done criteria** (verification steps)
|
|
64
|
+
For each incomplete plan, execute all tasks in sequence.
|
|
71
65
|
|
|
72
|
-
|
|
73
|
-
</step>
|
|
66
|
+
### Step 3a — Parse plan tasks
|
|
74
67
|
|
|
75
|
-
|
|
76
|
-
|
|
68
|
+
From the plan comment body, extract an ordered task list. For each task:
|
|
69
|
+
- Task number
|
|
70
|
+
- Task name
|
|
71
|
+
- Description
|
|
72
|
+
- Files to read and/or modify
|
|
73
|
+
- Acceptance criteria
|
|
74
|
+
- Done criteria
|
|
77
75
|
|
|
78
|
-
|
|
76
|
+
### Step 3b — For each task: Assemble minimal context
|
|
79
77
|
|
|
80
|
-
Build
|
|
81
|
-
- Task description and acceptance criteria
|
|
82
|
-
- Relevant files list (files to read and modify)
|
|
83
|
-
- Previous task commit hashes and files modified (NOT full diffs, NOT previous agent conversations)
|
|
84
|
-
- Project CLAUDE.md (if exists) for coding conventions
|
|
85
|
-
- .skills/ SKILL.md files (if exist) for relevant project rules
|
|
78
|
+
Build the minimum context for this task executor. Include ONLY:
|
|
86
79
|
|
|
87
|
-
Context table (SDD principle):
|
|
88
80
|
| Item | Include? |
|
|
89
81
|
|------|----------|
|
|
90
82
|
| Task description + acceptance criteria | ALWAYS |
|
|
91
|
-
|
|
|
83
|
+
| Files to read and modify | ALWAYS |
|
|
92
84
|
| Project CLAUDE.md | ALWAYS (if exists) |
|
|
93
|
-
| Previous task commit hash + files modified | YES
|
|
85
|
+
| Previous task commit hash + files modified | YES — minimal summary only |
|
|
94
86
|
| Previous task full diff | NEVER |
|
|
95
87
|
| Previous agent conversation | NEVER |
|
|
96
|
-
| Full plan
|
|
97
|
-
|
|
98
|
-
**4b — Spawn Executor**
|
|
88
|
+
| Full plan content | NO — only current task extracted |
|
|
99
89
|
|
|
100
|
-
|
|
90
|
+
### Step 3c — Spawn executor (fresh agent per task)
|
|
101
91
|
|
|
102
92
|
```
|
|
103
|
-
|
|
93
|
+
Agent(
|
|
104
94
|
subagent_type="executor",
|
|
105
95
|
model="{executor_model}",
|
|
96
|
+
isolation="worktree",
|
|
106
97
|
prompt="
|
|
98
|
+
You are executing a single task in a Spec-Driven Dispatch workflow.
|
|
99
|
+
You receive only the context for THIS task. Do not ask about other tasks.
|
|
100
|
+
|
|
107
101
|
<objective>
|
|
108
|
-
Execute task {task_number} of plan {plan_id} in phase {phase_number}
|
|
109
|
-
Commit atomically when
|
|
102
|
+
Execute task {task_number} of plan {plan_id} in phase {phase_number}: {phase_name}.
|
|
103
|
+
Commit atomically when complete.
|
|
104
|
+
Move the task sub-issue on the board: In Progress when starting, Done when complete.
|
|
110
105
|
</objective>
|
|
111
106
|
|
|
112
107
|
<task>
|
|
113
108
|
Name: {task_name}
|
|
114
109
|
Description: {task_description}
|
|
115
|
-
Acceptance criteria:
|
|
116
|
-
|
|
110
|
+
Acceptance criteria:
|
|
111
|
+
{acceptance_criteria}
|
|
112
|
+
Done criteria:
|
|
113
|
+
{done_criteria}
|
|
117
114
|
</task>
|
|
118
115
|
|
|
119
116
|
<files_to_read>
|
|
120
|
-
Read these files at execution start
|
|
121
|
-
|
|
122
|
-
- ./CLAUDE.md (
|
|
123
|
-
- .skills/ (
|
|
117
|
+
Read these files at execution start:
|
|
118
|
+
{relevant_files_list}
|
|
119
|
+
- ./CLAUDE.md (if exists — follow coding conventions)
|
|
120
|
+
- .skills/ (if exists — read SKILL.md for each relevant skill)
|
|
124
121
|
</files_to_read>
|
|
125
122
|
|
|
126
123
|
<previous_task_context>
|
|
127
124
|
{If first task: 'This is the first task in the plan.'}
|
|
128
|
-
{If not first: 'Previous task
|
|
125
|
+
{If not first: 'Previous task: {task_name}, commit: {commit_hash}, files modified: {file_list}. Do NOT re-read or re-implement previous work.'}
|
|
129
126
|
</previous_task_context>
|
|
130
127
|
|
|
128
|
+
<board_transition>
|
|
129
|
+
Task sub-issue number: {task_issue_number}
|
|
130
|
+
Mark In Progress when starting:
|
|
131
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number {task_issue_number} --status 'In Progress'
|
|
132
|
+
Mark Done when complete (before committing):
|
|
133
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github move-issue --issue-number {task_issue_number} --status 'Done'
|
|
134
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github close-issue --issue-number {task_issue_number}
|
|
135
|
+
</board_transition>
|
|
136
|
+
|
|
131
137
|
<commit_protocol>
|
|
132
138
|
After implementation:
|
|
133
139
|
1. Run tests relevant to changed files
|
|
134
|
-
2. Stage files
|
|
135
|
-
3. Commit: {type}({
|
|
136
|
-
4. Report:
|
|
140
|
+
2. Stage specific files only (NEVER git add . or git add -A)
|
|
141
|
+
3. Commit: {type}({phase_number}-{plan_id}): {task_description_as_message}
|
|
142
|
+
4. Report exactly: COMMIT: {hash} | FILES: {comma-separated list}
|
|
137
143
|
</commit_protocol>
|
|
138
144
|
|
|
139
145
|
<success_criteria>
|
|
140
146
|
- [ ] All acceptance criteria met
|
|
141
147
|
- [ ] Done criteria verified
|
|
142
148
|
- [ ] Tests pass
|
|
149
|
+
- [ ] Task sub-issue marked In Progress then Done and closed
|
|
143
150
|
- [ ] Atomic commit created
|
|
151
|
+
- [ ] Final output includes: COMMIT: {hash} | FILES: {list}
|
|
144
152
|
</success_criteria>
|
|
145
153
|
"
|
|
146
154
|
)
|
|
147
155
|
```
|
|
148
156
|
|
|
149
|
-
Record the commit hash from
|
|
157
|
+
Record the commit hash from executor output.
|
|
150
158
|
|
|
151
|
-
|
|
159
|
+
### Step 3d — Review Stage 1: Spec Compliance
|
|
152
160
|
|
|
153
|
-
Spawn
|
|
161
|
+
Spawn reviewer immediately after executor completes (foreground, no worktree):
|
|
154
162
|
|
|
155
163
|
```
|
|
156
|
-
|
|
164
|
+
Agent(
|
|
157
165
|
subagent_type="verifier",
|
|
158
166
|
model="{executor_model}",
|
|
159
167
|
prompt="
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
## Suggested Skills: verification-gates, evidence-collection
|
|
163
|
-
|
|
164
|
-
<objective>
|
|
165
|
-
Review task {task_number} of plan {plan_id} for spec compliance.
|
|
166
|
-
</objective>
|
|
168
|
+
Review task {task_number} of plan {plan_id} for SPEC COMPLIANCE.
|
|
167
169
|
|
|
168
170
|
<task_spec>
|
|
169
171
|
Name: {task_name}
|
|
170
172
|
Description: {task_description}
|
|
171
173
|
Acceptance criteria: {acceptance_criteria}
|
|
172
174
|
Done criteria: {done_criteria}
|
|
173
|
-
|
|
175
|
+
Files to modify: {relevant_files}
|
|
174
176
|
</task_spec>
|
|
175
177
|
|
|
176
178
|
<commit>
|
|
177
179
|
Commit hash: {task_commit_hash}
|
|
178
180
|
</commit>
|
|
179
181
|
|
|
180
|
-
|
|
182
|
+
Instructions:
|
|
181
183
|
1. Read each file in the relevant files list
|
|
182
|
-
2.
|
|
183
|
-
3. Verify
|
|
184
|
-
4.
|
|
185
|
-
5.
|
|
186
|
-
6. If FAIL: list each unmet criterion with specific
|
|
187
|
-
|
|
184
|
+
2. Run: git diff --name-only {task_commit_hash}^..{task_commit_hash}
|
|
185
|
+
3. Verify every acceptance criterion is met in the implementation
|
|
186
|
+
4. Verify done criteria pass
|
|
187
|
+
5. Verify ONLY the specified files were modified (no extra files)
|
|
188
|
+
6. If FAIL: list each unmet criterion with specific file:line evidence
|
|
189
|
+
|
|
190
|
+
Evidence format (use for each criterion):
|
|
191
|
+
CLAIM: {criterion text}
|
|
192
|
+
EVIDENCE: {file:line or command run}
|
|
193
|
+
OUTPUT: {what was found}
|
|
194
|
+
VERDICT: PASS | FAIL — {reason if fail}
|
|
195
|
+
|
|
196
|
+
Final line must be exactly:
|
|
197
|
+
SPEC REVIEW: PASS or SPEC REVIEW: FAIL — {unmet criteria list}
|
|
188
198
|
"
|
|
189
199
|
)
|
|
190
200
|
```
|
|
191
201
|
|
|
192
|
-
|
|
202
|
+
### Step 3e — Review Stage 2: Code Quality
|
|
193
203
|
|
|
194
|
-
Spawn
|
|
204
|
+
Spawn second reviewer in parallel with stage 1 or immediately after (foreground, no worktree):
|
|
195
205
|
|
|
196
206
|
```
|
|
197
|
-
|
|
207
|
+
Agent(
|
|
198
208
|
subagent_type="verifier",
|
|
199
209
|
model="{executor_model}",
|
|
200
210
|
prompt="
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
## Suggested Skills: code-review
|
|
204
|
-
|
|
205
|
-
<objective>
|
|
206
|
-
Review task {task_number} of plan {plan_id} for code quality.
|
|
207
|
-
Spec compliance already verified.
|
|
208
|
-
</objective>
|
|
211
|
+
Review task {task_number} of plan {plan_id} for CODE QUALITY.
|
|
212
|
+
Spec compliance is being checked separately.
|
|
209
213
|
|
|
210
214
|
<commit>
|
|
211
215
|
Commit hash: {task_commit_hash}
|
|
212
216
|
Files modified: {files_from_commit}
|
|
213
217
|
</commit>
|
|
214
218
|
|
|
215
|
-
|
|
216
|
-
1. Read CLAUDE.md for project conventions
|
|
219
|
+
Instructions:
|
|
220
|
+
1. Read ./CLAUDE.md for project conventions (if exists)
|
|
217
221
|
2. Read each modified file
|
|
218
|
-
3. Check for:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
+
3. Check for BLOCKERS:
|
|
223
|
+
- Bugs or logical errors
|
|
224
|
+
- Unhandled error paths
|
|
225
|
+
- Missing error handling for I/O or network calls
|
|
226
|
+
- Security issues (unsanitized input, exposed secrets)
|
|
227
|
+
- Convention violations (from CLAUDE.md)
|
|
228
|
+
4. Check for ADVISORIES:
|
|
229
|
+
- Minor style inconsistencies
|
|
230
|
+
- Missing edge case handling (non-critical)
|
|
231
|
+
- Optimization opportunities
|
|
232
|
+
|
|
233
|
+
Evidence format:
|
|
234
|
+
CLAIM: {what was checked}
|
|
235
|
+
EVIDENCE: {file:line}
|
|
236
|
+
OUTPUT: {what was found}
|
|
237
|
+
VERDICT: PASS | FAIL — BLOCKER: {reason}
|
|
238
|
+
|
|
239
|
+
Final line must be exactly:
|
|
240
|
+
CODE REVIEW: PASS or CODE REVIEW: FAIL — {blocker list}
|
|
222
241
|
"
|
|
223
242
|
)
|
|
224
243
|
```
|
|
225
244
|
|
|
226
|
-
|
|
245
|
+
### Step 3f — Handle Review Failure (Max 3 Fix Attempts)
|
|
227
246
|
|
|
228
|
-
If EITHER review
|
|
247
|
+
If EITHER review returns FAIL:
|
|
229
248
|
|
|
230
|
-
|
|
231
|
-
- Original task spec (description + acceptance criteria)
|
|
232
|
-
- Review feedback (specific failures from reviewer)
|
|
233
|
-
- Current file state (files to read, NOT previous agent conversation)
|
|
234
|
-
- Instruction: fix ONLY the review issues, do NOT add new features
|
|
249
|
+
Spawn a fresh fix executor with only what is needed:
|
|
235
250
|
|
|
236
251
|
```
|
|
237
|
-
|
|
252
|
+
Agent(
|
|
238
253
|
subagent_type="executor",
|
|
239
254
|
model="{executor_model}",
|
|
255
|
+
isolation="worktree",
|
|
240
256
|
prompt="
|
|
241
|
-
<objective>
|
|
242
257
|
Fix review failures for task {task_number} of plan {plan_id}.
|
|
243
|
-
Fix ONLY the issues listed
|
|
244
|
-
</objective>
|
|
258
|
+
Fix ONLY the issues listed. Do NOT add features or refactor beyond what is required.
|
|
245
259
|
|
|
246
260
|
<original_task>
|
|
247
261
|
Name: {task_name}
|
|
248
|
-
Description: {task_description}
|
|
249
262
|
Acceptance criteria: {acceptance_criteria}
|
|
250
263
|
</original_task>
|
|
251
264
|
|
|
252
265
|
<review_failures>
|
|
253
|
-
{
|
|
254
|
-
{
|
|
266
|
+
{spec_failures if any — each as: CRITERION: {text} | VERDICT: FAIL — {reason}}
|
|
267
|
+
{code_failures if any — each as: BLOCKER: {description} | EVIDENCE: {file:line}}
|
|
255
268
|
</review_failures>
|
|
256
269
|
|
|
257
270
|
<files_to_read>
|
|
258
|
-
{files modified by
|
|
271
|
+
{files modified by failed attempt — read current state from disk}
|
|
259
272
|
</files_to_read>
|
|
260
273
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
274
|
+
Instructions:
|
|
275
|
+
1. Read each file in files_to_read to see current state
|
|
276
|
+
2. Fix each listed issue precisely
|
|
277
|
+
3. Run tests after fixing
|
|
278
|
+
4. Commit: fix({phase_number}-{plan_id}): address review feedback for task {task_number}
|
|
279
|
+
5. Report: COMMIT: {hash} | FILES: {list}
|
|
264
280
|
"
|
|
265
281
|
)
|
|
266
282
|
```
|
|
267
283
|
|
|
268
|
-
|
|
269
|
-
|
|
284
|
+
Re-run BOTH review stages (3d and 3e) on the fix commit.
|
|
285
|
+
|
|
286
|
+
**Cap at 3 fix attempts total.** If still failing after 3 attempts, hard-stop and escalate:
|
|
270
287
|
|
|
271
288
|
```
|
|
272
289
|
## TASK BLOCKED — Review Failed After 3 Fix Attempts
|
|
273
290
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
291
|
+
Task: {task_number} — {task_name}
|
|
292
|
+
Plan: {plan_id}
|
|
293
|
+
Phase: {phase_number}: {phase_name}
|
|
277
294
|
|
|
278
|
-
### Unresolved
|
|
279
|
-
{remaining failures
|
|
295
|
+
### Unresolved Failures
|
|
296
|
+
{remaining spec failures}
|
|
297
|
+
{remaining code blockers}
|
|
280
298
|
|
|
281
299
|
### Fix Attempt History
|
|
282
300
|
| Attempt | Spec Review | Code Review | Commit |
|
|
@@ -286,150 +304,142 @@ Task(
|
|
|
286
304
|
| 3 | {PASS/FAIL} | {PASS/FAIL} | {hash} |
|
|
287
305
|
|
|
288
306
|
Options:
|
|
289
|
-
- "fix manually" —
|
|
290
|
-
- "skip task" —
|
|
291
|
-
- "stop" —
|
|
307
|
+
- "fix manually" — fix issues yourself, then type "resume" to continue
|
|
308
|
+
- "skip task" — mark incomplete, continue to next task
|
|
309
|
+
- "stop" — halt SDD execution
|
|
292
310
|
```
|
|
293
311
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
After both reviews PASS, record task completion:
|
|
297
|
-
- Commit hash
|
|
298
|
-
- Files modified
|
|
299
|
-
|
|
300
|
-
Pass ONLY this minimal summary to the next task context. Do NOT pass:
|
|
301
|
-
- Full diff output
|
|
302
|
-
- Review conversation content
|
|
303
|
-
- Previous agent's reasoning or approach
|
|
312
|
+
### Step 3g — Advance to next task
|
|
304
313
|
|
|
305
|
-
|
|
314
|
+
After both reviews PASS:
|
|
315
|
+
- Record commit hash and files-modified list
|
|
316
|
+
- Pass ONLY this minimal summary to the next task's `previous_task_context`
|
|
317
|
+
- Do NOT pass diffs, review content, or agent reasoning
|
|
306
318
|
|
|
307
319
|
Display task completion:
|
|
308
|
-
|
|
309
320
|
```
|
|
310
321
|
---
|
|
311
322
|
## Task {N}/{total}: {task_name} — COMPLETE
|
|
312
323
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
{If
|
|
324
|
+
Commit: {commit_hash}
|
|
325
|
+
Files modified: {count}
|
|
326
|
+
Spec Review: PASS
|
|
327
|
+
Code Review: PASS
|
|
328
|
+
{If fix_iterations > 0: Fix iterations: {count}}
|
|
318
329
|
|
|
319
|
-
{If more tasks: Dispatching
|
|
330
|
+
{If more tasks remain: Dispatching task {N+1}...}
|
|
320
331
|
---
|
|
321
332
|
```
|
|
322
|
-
</step>
|
|
323
333
|
|
|
324
|
-
|
|
325
|
-
|
|
334
|
+
Repeat step 3b–3g for the next task.
|
|
335
|
+
|
|
336
|
+
## Step 4 — Post Plan Summary to GitHub
|
|
326
337
|
|
|
327
|
-
|
|
338
|
+
After all tasks in a plan complete, post a summary comment on the phase issue:
|
|
328
339
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
340
|
+
```bash
|
|
341
|
+
SUMMARY_FILE=$(mktemp)
|
|
342
|
+
cat > "$SUMMARY_FILE" << 'SUMMARY_EOF'
|
|
343
|
+
---
|
|
344
|
+
phase: {phase_number}
|
|
345
|
+
plan: {plan_id}
|
|
346
|
+
execution_mode: sdd
|
|
347
|
+
completed: {ISO timestamp}
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## {Plan ID}: {Objective}
|
|
351
|
+
|
|
352
|
+
{One-liner: substantive description of what was built}
|
|
332
353
|
|
|
333
|
-
```markdown
|
|
334
354
|
## Task Execution (SDD)
|
|
335
355
|
|
|
336
356
|
| Task | Name | Status | Commit | Fix Iterations |
|
|
337
357
|
|------|------|--------|--------|----------------|
|
|
338
|
-
| 1 | {name} | PASS | {hash} |
|
|
339
|
-
| 2 | {name} | PASS | {hash} |
|
|
340
|
-
| 3 | {name} | PASS | {hash} | 0 |
|
|
358
|
+
| 1 | {name} | PASS | {hash} | {count} |
|
|
359
|
+
| 2 | {name} | PASS | {hash} | 0 |
|
|
341
360
|
|
|
342
|
-
**Execution mode:** Spec-Driven Dispatch
|
|
343
|
-
```
|
|
361
|
+
**Execution mode:** Spec-Driven Dispatch — fresh agent per task, 2-stage review gate
|
|
344
362
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
- Issues encountered
|
|
363
|
+
## Deviations
|
|
364
|
+
{List any departures from plan spec with rationale. "None." if clean.}
|
|
348
365
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
{
|
|
366
|
+
## Issues Encountered
|
|
367
|
+
{List problems and resolutions. "None." if clean.}
|
|
368
|
+
|
|
369
|
+
## Self-Check
|
|
370
|
+
{Verify first 2 created files exist: [ -f {file} ]}
|
|
371
|
+
{Verify commits: git log --oneline --all --grep="{phase_number}-{plan_id}"}
|
|
372
|
+
## Self-Check: PASSED | ## Self-Check: FAILED — {reason}
|
|
373
|
+
|
|
374
|
+
<!-- maxsim:type=summary -->
|
|
355
375
|
SUMMARY_EOF
|
|
356
376
|
|
|
357
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment
|
|
377
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github post-comment \
|
|
378
|
+
--issue-number {phase_issue_number} \
|
|
379
|
+
--body-file "$SUMMARY_FILE" \
|
|
380
|
+
--type summary
|
|
358
381
|
```
|
|
359
382
|
|
|
360
|
-
|
|
361
|
-
- Verify first 2 files from `key-files.created` exist on disk
|
|
362
|
-
- Check `git log --oneline --all --grep="{phase}-{plan}"` returns commits
|
|
363
|
-
- Append `## Self-Check: PASSED` or `## Self-Check: FAILED` to summary content before posting
|
|
364
|
-
</step>
|
|
365
|
-
|
|
366
|
-
<step name="update_state">
|
|
367
|
-
Standard state updates after plan completion:
|
|
383
|
+
## Step 5 — Update State Files
|
|
368
384
|
|
|
369
385
|
```bash
|
|
370
|
-
# Advance plan counter
|
|
371
386
|
node ~/.claude/maxsim/bin/maxsim-tools.cjs state advance-plan
|
|
372
|
-
|
|
373
|
-
# Recalculate progress
|
|
374
387
|
node ~/.claude/maxsim/bin/maxsim-tools.cjs state update-progress
|
|
375
|
-
|
|
376
|
-
# Record execution metrics
|
|
377
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs state record-metric \
|
|
378
|
-
--phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
|
|
379
|
-
--tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
|
|
380
|
-
|
|
381
|
-
# Record session
|
|
382
388
|
node ~/.claude/maxsim/bin/maxsim-tools.cjs state record-session \
|
|
383
|
-
--stopped-at "Completed
|
|
389
|
+
--stopped-at "Completed {phase_number}-{plan_id} (SDD)" \
|
|
384
390
|
--resume-file "None"
|
|
391
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap update-plan-progress "{phase_number}"
|
|
385
392
|
|
|
386
|
-
#
|
|
387
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs requirements mark-complete ${REQ_IDS}
|
|
393
|
+
# Task code committed per-task; commit only planning artifacts
|
|
394
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit \
|
|
395
|
+
"docs({phase_number}-{plan_id}): complete SDD execution" \
|
|
396
|
+
--files .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
|
|
391
397
|
```
|
|
392
|
-
</step>
|
|
393
398
|
|
|
394
|
-
|
|
395
|
-
Task code already committed per-task. Commit planning artifacts:
|
|
399
|
+
## Step 6 — Completion Check and Next Steps
|
|
396
400
|
|
|
397
|
-
|
|
398
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs({phase}-{plan}): complete SDD execution" --files .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
Note: No local SUMMARY.md is committed -- summary was posted to GitHub as a comment.
|
|
402
|
-
</step>
|
|
401
|
+
After all plans are processed:
|
|
403
402
|
|
|
404
|
-
<step name="offer_next">
|
|
405
|
-
After all plans in the phase are processed:
|
|
406
|
-
|
|
407
|
-
Check completion by querying the phase issue's task sub-issues:
|
|
408
403
|
```bash
|
|
409
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues
|
|
404
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github list-sub-issues \
|
|
405
|
+
--phase-issue-number $PHASE_ISSUE_NUMBER
|
|
410
406
|
```
|
|
411
407
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
|
415
|
-
|
|
416
|
-
|
|
|
417
|
-
| all sub-issues closed, more phases exist | **B: Phase done** | Show completion, suggest `/maxsim:execute {phase}` (verification) then `/maxsim:plan {next}`. |
|
|
418
|
-
| all sub-issues closed, last phase | **C: Milestone done** | Show banner, suggest `/maxsim:progress` (milestone completion) + `/maxsim:execute` (verification). |
|
|
408
|
+
| Condition | Action |
|
|
409
|
+
|-----------|--------|
|
|
410
|
+
| Open sub-issues remain | Suggest `/maxsim:execute {phase}` (SDD mode) to continue |
|
|
411
|
+
| All sub-issues closed, more phases exist | Suggest `/maxsim:execute {phase}` (verification) then `/maxsim:plan {next}` |
|
|
412
|
+
| All sub-issues closed, last phase | Show completion banner, suggest `/maxsim:progress` |
|
|
419
413
|
|
|
420
|
-
|
|
421
|
-
</step>
|
|
414
|
+
Always recommend `/clear` before continuing to next phase.
|
|
422
415
|
|
|
423
416
|
</process>
|
|
424
417
|
|
|
418
|
+
<success_criteria>
|
|
419
|
+
- [ ] Plan content loaded from GitHub Issue comments (not local PLAN.md)
|
|
420
|
+
- [ ] Plans with all closed task sub-issues skipped (resume support)
|
|
421
|
+
- [ ] Each task gets a FRESH executor agent with minimal context (no diff bleed)
|
|
422
|
+
- [ ] Previous task context is commit hash + files only (never full diff)
|
|
423
|
+
- [ ] Each executor uses isolation="worktree" and the Agent tool (not Task)
|
|
424
|
+
- [ ] Task sub-issues moved: In Progress when starting, Done+closed when complete
|
|
425
|
+
- [ ] Spec compliance review spawned after each executor
|
|
426
|
+
- [ ] Code quality review spawned after each executor
|
|
427
|
+
- [ ] Both reviews must PASS before next task starts (hard gate)
|
|
428
|
+
- [ ] Fix agents cap at 3 attempts before escalation to user
|
|
429
|
+
- [ ] Summary posted as GitHub comment: <!-- maxsim:type=summary -->
|
|
430
|
+
- [ ] No local SUMMARY.md written
|
|
431
|
+
- [ ] State files updated after each plan completes
|
|
432
|
+
</success_criteria>
|
|
433
|
+
|
|
425
434
|
<failure_handling>
|
|
426
|
-
- **
|
|
427
|
-
- **Review agent fails to return
|
|
428
|
-
- **3 fix attempts exhausted:** Hard stop on task,
|
|
429
|
-
- **classifyHandoffIfNeeded
|
|
430
|
-
- **All tasks in plan blocked:** Stop plan, report to user, suggest manual intervention
|
|
435
|
+
- **Executor returns no commit:** Ask user — retry task or skip
|
|
436
|
+
- **Review agent fails to return PASS/FAIL line:** Treat as FAIL, re-run review
|
|
437
|
+
- **3 fix attempts exhausted:** Hard stop on task, present full failure history to user
|
|
438
|
+
- **classifyHandoffIfNeeded error:** Claude Code runtime bug. Check if commit exists. If yes, treat as success and extract hash from git log.
|
|
439
|
+
- **All tasks in a plan blocked:** Stop plan, report to user, suggest manual intervention
|
|
440
|
+
- **GitHub sub-issue transition fails:** Log error, continue execution, note in summary
|
|
431
441
|
</failure_handling>
|
|
432
442
|
|
|
433
443
|
<resumption>
|
|
434
|
-
Re-run `/maxsim:execute {phase}`
|
|
444
|
+
Re-run `/maxsim:execute {phase}` — load_plans queries GitHub for task sub-issue status, skips plans with all sub-issues closed. Within a plan, completed tasks (commits matching `{phase}-{plan}` grep) can be detected and skipped if needed.
|
|
435
445
|
</resumption>
|