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
|
@@ -1,1503 +1,284 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
|
|
2
|
+
Full initialization for a new project. Takes a repo from zero to a GitHub-tracked MAXSIM project with a config, labels, project board, and optional initial roadmap. Proceeds in five phases: scan (if code exists), interview, GitHub setup, local setup, roadmap.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
|
-
<required_reading>
|
|
6
|
-
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
-
@~/.claude/maxsim/references/thinking-partner.md
|
|
8
|
-
@~/.claude/maxsim/references/questioning.md
|
|
9
|
-
</required_reading>
|
|
10
|
-
|
|
11
|
-
<auto_mode>
|
|
12
|
-
## Auto Mode Detection
|
|
13
|
-
|
|
14
|
-
Check if `--auto` flag is present in $ARGUMENTS.
|
|
15
|
-
|
|
16
|
-
**If auto mode:**
|
|
17
|
-
- Skip brownfield mapping offer (assume greenfield)
|
|
18
|
-
- Skip deep questioning (extract context from provided document)
|
|
19
|
-
- Config: YOLO mode is implicit (skip that question), but ask depth/git/agents FIRST (Step 2a)
|
|
20
|
-
- After config: run Steps 6-9 automatically with smart defaults:
|
|
21
|
-
- Research: Always yes
|
|
22
|
-
- Requirements: Include all table stakes + features from provided document
|
|
23
|
-
- Requirements approval: Auto-approve
|
|
24
|
-
- Roadmap approval: Auto-approve
|
|
25
|
-
|
|
26
|
-
**Document requirement:**
|
|
27
|
-
Auto mode requires an idea document — either:
|
|
28
|
-
- File reference: `/maxsim:init --auto @prd.md`
|
|
29
|
-
- Pasted/written text in the prompt
|
|
30
|
-
|
|
31
|
-
If no document content provided, error:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Error: --auto requires an idea document.
|
|
35
|
-
|
|
36
|
-
Usage:
|
|
37
|
-
/maxsim:init --auto @your-idea.md
|
|
38
|
-
/maxsim:init --auto [paste or write your idea here]
|
|
39
|
-
|
|
40
|
-
The document should describe what you want to build.
|
|
41
|
-
```
|
|
42
|
-
</auto_mode>
|
|
43
|
-
|
|
44
5
|
<process>
|
|
45
6
|
|
|
46
|
-
## 1
|
|
47
|
-
|
|
48
|
-
**MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
|
|
49
|
-
|
|
50
|
-
**If `INIT_CONTEXT` was already loaded by the router** (the init.md workflow runs this before delegating), use that JSON directly — do NOT re-run the CLI command.
|
|
51
|
-
|
|
52
|
-
**Otherwise**, run:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
INIT=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs init new-project)
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`, `project_path`, `github_ready`, `has_github_remote`, `gh_authenticated`.
|
|
59
|
-
|
|
60
|
-
**If `project_exists` is true:** Error — project already initialized. Use `/maxsim:progress`.
|
|
61
|
-
|
|
62
|
-
**If `has_git` is false:** Initialize git:
|
|
63
|
-
```bash
|
|
64
|
-
git init
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## 1b. GitHub Prerequisites Gate
|
|
68
|
-
|
|
69
|
-
**This gate is MANDATORY. Do not proceed if it fails.**
|
|
70
|
-
|
|
71
|
-
Parse init context for `has_github_remote` and `gh_authenticated`:
|
|
72
|
-
|
|
73
|
-
1. If `has_github_remote` is false:
|
|
74
|
-
- STOP. Tell user:
|
|
75
|
-
```
|
|
76
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
77
|
-
MAXSIM ► NO GITHUB REMOTE FOUND
|
|
78
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
-
|
|
80
|
-
MAXSIM requires a GitHub remote to track phases as Issues.
|
|
81
|
-
|
|
82
|
-
To fix: git remote add origin <your-repo-url>
|
|
83
|
-
|
|
84
|
-
Then re-run /maxsim:init.
|
|
85
|
-
```
|
|
86
|
-
- Do NOT proceed with project setup.
|
|
87
|
-
|
|
88
|
-
2. If `gh_authenticated` is false:
|
|
89
|
-
- STOP. Tell user:
|
|
90
|
-
```
|
|
91
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
92
|
-
MAXSIM ► GITHUB CLI NOT AUTHENTICATED
|
|
93
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
94
|
-
|
|
95
|
-
MAXSIM requires GitHub CLI authentication to create phase issues.
|
|
96
|
-
|
|
97
|
-
To fix: gh auth login
|
|
98
|
-
|
|
99
|
-
Then re-run /maxsim:init.
|
|
100
|
-
```
|
|
101
|
-
- Do NOT proceed with project setup.
|
|
102
|
-
|
|
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
|
-
```
|
|
107
|
-
|
|
108
|
-
4. If `github setup` fails:
|
|
109
|
-
- STOP with the error message returned by the tool.
|
|
110
|
-
- Do not fall back to local-only mode.
|
|
111
|
-
|
|
112
|
-
5. Record the `project_number` and board details returned by `github setup` for use in the Phase Issue Creation step.
|
|
113
|
-
|
|
114
|
-
## 2. Brownfield Offer
|
|
115
|
-
|
|
116
|
-
**If auto mode:** Skip to Step 4 (assume greenfield, synthesize PROJECT.md from provided document).
|
|
117
|
-
|
|
118
|
-
**If `needs_codebase_map` is true** (from init — existing code detected but no codebase map):
|
|
119
|
-
|
|
120
|
-
Use AskUserQuestion:
|
|
121
|
-
- header: "Codebase"
|
|
122
|
-
- question: "I detected existing code in this directory. Would you like to map the codebase first?"
|
|
123
|
-
- options:
|
|
124
|
-
- "Map codebase first" — Run /maxsim:init (codebase mapping stage) to understand existing architecture (Recommended)
|
|
125
|
-
- "Skip mapping" — Proceed with project initialization
|
|
126
|
-
|
|
127
|
-
**If "Map codebase first":**
|
|
128
|
-
```
|
|
129
|
-
Run `/maxsim:init (codebase mapping stage)` first, then return to `/maxsim:init`
|
|
130
|
-
```
|
|
131
|
-
Exit command.
|
|
132
|
-
|
|
133
|
-
**If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
|
|
134
|
-
|
|
135
|
-
## 2a. Auto Mode Config (auto mode only)
|
|
136
|
-
|
|
137
|
-
**If auto mode:** Collect config settings upfront before processing the idea document.
|
|
138
|
-
|
|
139
|
-
YOLO mode is implicit (auto = YOLO). Ask remaining config questions:
|
|
140
|
-
|
|
141
|
-
**Round 1 — Core settings (3 questions, no Mode question):**
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
AskUserQuestion([
|
|
145
|
-
{
|
|
146
|
-
header: "Depth",
|
|
147
|
-
question: "How thorough should planning be?",
|
|
148
|
-
multiSelect: false,
|
|
149
|
-
options: [
|
|
150
|
-
{ label: "Quick (Recommended)", description: "Ship fast (3-5 phases, 1-3 plans each)" },
|
|
151
|
-
{ label: "Standard", description: "Balanced scope and speed (5-8 phases, 3-5 plans each)" },
|
|
152
|
-
{ label: "Comprehensive", description: "Thorough coverage (8-12 phases, 5-10 plans each)" }
|
|
153
|
-
]
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
header: "Execution",
|
|
157
|
-
question: "Run plans in parallel?",
|
|
158
|
-
multiSelect: false,
|
|
159
|
-
options: [
|
|
160
|
-
{ label: "Parallel (Recommended)", description: "Independent plans run simultaneously" },
|
|
161
|
-
{ label: "Sequential", description: "One plan at a time" }
|
|
162
|
-
]
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
header: "Git Tracking",
|
|
166
|
-
question: "Commit planning docs to git?",
|
|
167
|
-
multiSelect: false,
|
|
168
|
-
options: [
|
|
169
|
-
{ label: "Yes (Recommended)", description: "Planning docs tracked in version control" },
|
|
170
|
-
{ label: "No", description: "Keep .planning/ local-only (add to .gitignore)" }
|
|
171
|
-
]
|
|
172
|
-
}
|
|
173
|
-
])
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Round 2 — Workflow agents (same as Step 5):**
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
AskUserQuestion([
|
|
180
|
-
{
|
|
181
|
-
header: "Research",
|
|
182
|
-
question: "Research before planning each phase? (adds tokens/time)",
|
|
183
|
-
multiSelect: false,
|
|
184
|
-
options: [
|
|
185
|
-
{ label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
|
|
186
|
-
{ label: "No", description: "Plan directly from requirements" }
|
|
187
|
-
]
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
header: "Plan Check",
|
|
191
|
-
question: "Verify plans will achieve their goals? (adds tokens/time)",
|
|
192
|
-
multiSelect: false,
|
|
193
|
-
options: [
|
|
194
|
-
{ label: "Yes (Recommended)", description: "Catch gaps before execution starts" },
|
|
195
|
-
{ label: "No", description: "Execute plans without verification" }
|
|
196
|
-
]
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
header: "Verifier",
|
|
200
|
-
question: "Verify work satisfies requirements after each phase? (adds tokens/time)",
|
|
201
|
-
multiSelect: false,
|
|
202
|
-
options: [
|
|
203
|
-
{ label: "Yes (Recommended)", description: "Confirm deliverables match phase goals" },
|
|
204
|
-
{ label: "No", description: "Trust execution, skip verification" }
|
|
205
|
-
]
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
header: "AI Models",
|
|
209
|
-
question: "Which AI models for planning agents?",
|
|
210
|
-
multiSelect: false,
|
|
211
|
-
options: [
|
|
212
|
-
{ label: "Balanced (Recommended)", description: "Sonnet for most agents — good quality/cost ratio" },
|
|
213
|
-
{ label: "Quality", description: "Opus for research/roadmap — higher cost, deeper analysis" },
|
|
214
|
-
{ label: "Budget", description: "Haiku where possible — fastest, lowest cost" }
|
|
215
|
-
]
|
|
216
|
-
}
|
|
217
|
-
])
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
Create `.planning/config.json` with mode set to "yolo":
|
|
221
|
-
|
|
222
|
-
```json
|
|
223
|
-
{
|
|
224
|
-
"mode": "yolo",
|
|
225
|
-
"depth": "[selected]",
|
|
226
|
-
"parallelization": true|false,
|
|
227
|
-
"commit_docs": true|false,
|
|
228
|
-
"model_profile": "quality|balanced|budget",
|
|
229
|
-
"workflow": {
|
|
230
|
-
"research": true|false,
|
|
231
|
-
"plan_checker": true|false,
|
|
232
|
-
"verifier": true|false,
|
|
233
|
-
"auto_advance": true
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
```
|
|
7
|
+
## Phase 1: Prerequisites Gate
|
|
237
8
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
**Commit config.json:**
|
|
9
|
+
Before any user interaction, verify GitHub is accessible.
|
|
241
10
|
|
|
242
11
|
```bash
|
|
243
|
-
|
|
244
|
-
|
|
12
|
+
gh auth status 2>/dev/null && echo "AUTH_OK" || echo "AUTH_FAIL"
|
|
13
|
+
git remote get-url origin 2>/dev/null && echo "REMOTE_OK" || echo "REMOTE_FAIL"
|
|
245
14
|
```
|
|
246
15
|
|
|
247
|
-
**
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs config-set workflow.auto_advance true
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
Proceed to Step 4 (skip Steps 3 and 5).
|
|
254
|
-
|
|
255
|
-
## 3. Deep Questioning
|
|
256
|
-
|
|
257
|
-
**If auto mode:** Skip (already handled in Step 2a). Extract project context from provided document instead and proceed to Step 4.
|
|
258
|
-
|
|
259
|
-
**Display stage banner:**
|
|
16
|
+
**If AUTH_FAIL:**
|
|
260
17
|
|
|
261
18
|
```
|
|
262
19
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
263
|
-
MAXSIM ►
|
|
20
|
+
MAXSIM ► GITHUB CLI NOT AUTHENTICATED
|
|
264
21
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
**Open the conversation:**
|
|
268
|
-
|
|
269
|
-
Ask inline (freeform, NOT AskUserQuestion):
|
|
270
|
-
|
|
271
|
-
"What do you want to build?"
|
|
272
|
-
|
|
273
|
-
Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
|
|
274
|
-
|
|
275
|
-
**Follow the thread (thinking-partner mode):**
|
|
276
|
-
|
|
277
|
-
Based on what they said, ask follow-up questions that dig into their response. Use AskUserQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
|
|
278
|
-
|
|
279
|
-
Apply thinking-partner behaviors from `thinking-partner.md`:
|
|
280
|
-
- **Challenge vague answers** — "Good UX" means what? Push for specifics.
|
|
281
|
-
- **Surface unstated assumptions** — Name assumptions the user didn't realize they were making.
|
|
282
|
-
- **Propose alternatives with trade-offs** — Don't just accept the first approach. Offer 2-3 paths.
|
|
283
|
-
- **Suggest directions** — "Have you considered...?" Frame as possibilities, not mandates.
|
|
284
|
-
- **Make consequences visible** — "If we go with X, that means Y will need to change."
|
|
285
|
-
- **Disagree constructively** — If you see a risk, say so.
|
|
286
|
-
|
|
287
|
-
Keep following threads. Each answer opens new threads to explore. Ask about:
|
|
288
|
-
- What excited them
|
|
289
|
-
- What problem sparked this
|
|
290
|
-
- What they mean by vague terms
|
|
291
|
-
- What it would actually look like
|
|
292
|
-
- What's already decided
|
|
293
|
-
|
|
294
|
-
Consult `questioning.md` for techniques:
|
|
295
|
-
- Challenge vagueness
|
|
296
|
-
- Make abstract concrete
|
|
297
|
-
- Surface assumptions
|
|
298
|
-
- Find edges
|
|
299
|
-
- Reveal motivation
|
|
300
|
-
|
|
301
|
-
**Track context with domain checklist (background, not out loud):**
|
|
302
|
-
|
|
303
|
-
Follow the `<domain_checklist>` from `questioning.md`. Silently track which domains have been COVERED, marked N/A, or remain UNCOVERED as the conversation progresses. Do NOT show the checklist or switch to checklist mode. Weave uncovered domains naturally when the conversation allows.
|
|
304
|
-
|
|
305
|
-
Also follow the `<nogos_tracking>` from `questioning.md`:
|
|
306
|
-
- Watch for rejection signals, past failures, and strong opinions throughout
|
|
307
|
-
- Silently accumulate no-gos — do NOT confirm each one as it comes up
|
|
308
|
-
- After 5+ rounds, weave challenge-based probing naturally ("What would make this project fail?")
|
|
309
|
-
- After understanding the domain, suggest common anti-patterns for their project type
|
|
310
|
-
|
|
311
|
-
**Count questioning rounds internally.** Each AskUserQuestion call counts as one round. Do NOT show the count to the user.
|
|
312
22
|
|
|
313
|
-
|
|
23
|
+
MAXSIM requires GitHub CLI authentication.
|
|
314
24
|
|
|
315
|
-
|
|
316
|
-
1. Round count >= 10 (at least 10 questioning rounds completed)
|
|
317
|
-
2. Domain coverage >= 80% (at least 80% of relevant domains are COVERED or N/A)
|
|
25
|
+
Fix: gh auth login
|
|
318
26
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
When both conditions are met, **first display a coverage summary** (this IS shown to the user):
|
|
322
|
-
|
|
323
|
-
```
|
|
324
|
-
## Domain Coverage Summary
|
|
325
|
-
|
|
326
|
-
**Core:** Auth (COVERED), Data Model (COVERED), API Style (N/A), Deployment (COVERED), Error Handling (UNCOVERED), Testing (COVERED)
|
|
327
|
-
**Infrastructure:** Caching (N/A), Search (N/A), Monitoring (COVERED), CI/CD (COVERED), Environments (COVERED)
|
|
328
|
-
**UX/Product:** Roles (COVERED), Notifications (N/A), File Uploads (N/A), i18n (N/A), Accessibility (N/A)
|
|
329
|
-
**Scale/Ops:** Performance (COVERED), Concurrency (N/A), Migration (N/A), Backup (N/A), Rate Limiting (N/A)
|
|
330
|
-
|
|
331
|
-
Coverage: [X]% ([covered + na] / [total]) — [X] rounds completed
|
|
27
|
+
Then re-run /maxsim:init.
|
|
332
28
|
```
|
|
333
29
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
- header: "Ready?"
|
|
337
|
-
- question: "I think I understand what you're after. Ready to create PROJECT.md?"
|
|
338
|
-
- options:
|
|
339
|
-
- "Create PROJECT.md" — Let's move forward
|
|
340
|
-
- "Keep exploring" — I want to share more / ask me more
|
|
341
|
-
|
|
342
|
-
If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
|
|
343
|
-
|
|
344
|
-
**No-Gos Confirmation (after user selects "Create PROJECT.md"):**
|
|
30
|
+
Stop. Do not proceed.
|
|
345
31
|
|
|
346
|
-
|
|
32
|
+
**If REMOTE_FAIL:**
|
|
347
33
|
|
|
348
34
|
```
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
### Hard Constraints
|
|
354
|
-
- [constraint 1]
|
|
355
|
-
|
|
356
|
-
### Anti-Patterns
|
|
357
|
-
- [pattern to avoid 1]
|
|
35
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
+
MAXSIM ► NO GITHUB REMOTE FOUND
|
|
37
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
358
38
|
|
|
359
|
-
|
|
360
|
-
- [past failure 1]
|
|
39
|
+
MAXSIM requires a GitHub remote to track phases as Issues.
|
|
361
40
|
|
|
362
|
-
|
|
363
|
-
|
|
41
|
+
Options:
|
|
42
|
+
Create a new repo: gh repo create --private
|
|
43
|
+
Link existing repo: git remote add origin <url>
|
|
364
44
|
|
|
365
|
-
|
|
45
|
+
Then re-run /maxsim:init.
|
|
366
46
|
```
|
|
367
47
|
|
|
368
|
-
|
|
369
|
-
- header: "No-Gos"
|
|
370
|
-
- question: "Confirm these no-gos?"
|
|
371
|
-
- options:
|
|
372
|
-
- "Confirmed" — Lock these no-gos
|
|
373
|
-
- "Adjust" — I want to add/remove/change some
|
|
374
|
-
|
|
375
|
-
If "Adjust": capture changes via freeform, update the list, re-confirm.
|
|
376
|
-
|
|
377
|
-
Loop until "Confirmed" selected. These confirmed no-gos flow into NO-GOS.md using the structured template from `templates/no-gos.md`.
|
|
378
|
-
|
|
379
|
-
## 4. Write PROJECT.md
|
|
380
|
-
|
|
381
|
-
**If auto mode:** Synthesize from provided document. No "Ready?" gate was shown — proceed directly to commit.
|
|
382
|
-
|
|
383
|
-
Synthesize all context into `.planning/PROJECT.md` using the template from `templates/project.md`.
|
|
384
|
-
|
|
385
|
-
**For greenfield projects:**
|
|
386
|
-
|
|
387
|
-
Initialize requirements as hypotheses:
|
|
48
|
+
Stop. Do not proceed.
|
|
388
49
|
|
|
389
|
-
|
|
390
|
-
## Requirements
|
|
50
|
+
## Phase 2: Scan (if code exists)
|
|
391
51
|
|
|
392
|
-
|
|
52
|
+
Check for existing code:
|
|
393
53
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
### Active
|
|
397
|
-
|
|
398
|
-
- [ ] [Requirement 1]
|
|
399
|
-
- [ ] [Requirement 2]
|
|
400
|
-
- [ ] [Requirement 3]
|
|
401
|
-
|
|
402
|
-
### Out of Scope
|
|
403
|
-
|
|
404
|
-
- [Exclusion 1] — [why]
|
|
405
|
-
- [Exclusion 2] — [why]
|
|
54
|
+
```bash
|
|
55
|
+
HAS_CODE=$(find . -maxdepth 2 -not -path './.git/*' -not -name '.gitignore' -type f 2>/dev/null | head -5 | wc -l)
|
|
406
56
|
```
|
|
407
57
|
|
|
408
|
-
|
|
58
|
+
If `HAS_CODE > 0`, spawn parallel Research agents to analyze the repo. Use the Agent tool with `isolation: "worktree"` and `run_in_background: true`.
|
|
409
59
|
|
|
410
|
-
|
|
60
|
+
Spawn these agents simultaneously (adjust count to repo size, 5–10 agents):
|
|
411
61
|
|
|
412
|
-
|
|
62
|
+
**Agent 1 — README and docs:**
|
|
63
|
+
Prompt: "Read the README.md, CONTRIBUTING.md, and any docs/ directory in this repo. Summarize: project purpose, target users, key features described, setup instructions, and any stated non-goals. Return a JSON object with keys: purpose, target_users, key_features (array), stack_mentioned (array), non_goals (array)."
|
|
413
64
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
3. These become the initial Validated set
|
|
65
|
+
**Agent 2 — Package manifest and dependencies:**
|
|
66
|
+
Prompt: "Read package.json, pyproject.toml, Cargo.toml, go.mod, or equivalent manifest files in this repo. Summarize: project name, version, runtime dependencies (top 10), dev dependencies (top 10), defined scripts/tasks. Return JSON with keys: project_name, version, runtime_deps (array), dev_deps (array), scripts (object)."
|
|
417
67
|
|
|
418
|
-
|
|
419
|
-
|
|
68
|
+
**Agent 3 — CI/CD configuration:**
|
|
69
|
+
Prompt: "Read .github/workflows/, .circleci/, .gitlab-ci.yml, Jenkinsfile, or equivalent CI config in this repo. Summarize: CI provider, workflow triggers, test commands, build commands, deploy targets. Return JSON with keys: ci_provider, triggers (array), test_commands (array), build_commands (array), deploy_targets (array)."
|
|
420
70
|
|
|
421
|
-
|
|
71
|
+
**Agent 4 — Test setup:**
|
|
72
|
+
Prompt: "Find test files in this repo (*.test.*, *.spec.*, tests/, __tests__/). Summarize: test framework(s) used, approximate test count, test coverage tooling if any, test patterns observed. Return JSON with keys: frameworks (array), approx_test_count, coverage_tool, patterns (array)."
|
|
422
73
|
|
|
423
|
-
|
|
424
|
-
-
|
|
425
|
-
- ✓ [Existing capability 3] — existing
|
|
74
|
+
**Agent 5 — File structure and architecture:**
|
|
75
|
+
Prompt: "List the top-level directories and key files in this repo (exclude .git, node_modules, vendor). Identify the architectural pattern: monorepo, monolith, microservices, library, CLI tool, etc. Return JSON with keys: top_level_dirs (array), architecture_pattern, entry_points (array), config_files (array)."
|
|
426
76
|
|
|
427
|
-
|
|
77
|
+
**Agents 6–10 (spawn if repo is large or complex):**
|
|
428
78
|
|
|
429
|
-
|
|
430
|
-
|
|
79
|
+
**Agent 6 — Linting and formatting:**
|
|
80
|
+
Prompt: "Read .eslintrc*, .prettierrc*, pyproject.toml [tool.ruff], .rubocop.yml, or equivalent lint/format config. Summarize: linter, formatter, key rules enforced. Return JSON with keys: linter, formatter, key_rules (array)."
|
|
431
81
|
|
|
432
|
-
|
|
82
|
+
**Agent 7 — Environment and secrets:**
|
|
83
|
+
Prompt: "Read .env.example, .env.sample, or any documented environment variable files (do NOT read actual .env files). List all required environment variables and their purpose. Return JSON with keys: env_vars (array of {name, purpose})."
|
|
433
84
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
**Key Decisions:**
|
|
438
|
-
|
|
439
|
-
Initialize with any decisions made during questioning:
|
|
440
|
-
|
|
441
|
-
```markdown
|
|
442
|
-
## Key Decisions
|
|
443
|
-
|
|
444
|
-
| Decision | Rationale | Outcome |
|
|
445
|
-
|----------|-----------|---------|
|
|
446
|
-
| [Choice from questioning] | [Why] | — Pending |
|
|
447
|
-
```
|
|
85
|
+
**Agent 8 — Database and data layer:**
|
|
86
|
+
Prompt: "Look for ORM configs, migration files, schema files, or database connection setup in this repo. Summarize: database type, ORM/query builder, migration tool, schema highlights. Return JSON with keys: db_type, orm, migration_tool, schema_notes."
|
|
448
87
|
|
|
449
|
-
**
|
|
88
|
+
**Agent 9 — Deployment and infrastructure:**
|
|
89
|
+
Prompt: "Look for Dockerfile, docker-compose.yml, Kubernetes manifests, Terraform, CDK, or serverless configs. Summarize: containerization approach, orchestration, cloud provider, infrastructure-as-code tool. Return JSON with keys: containerized, orchestration, cloud_provider, iac_tool."
|
|
450
90
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
*Last updated: [date] after initialization*
|
|
454
|
-
```
|
|
91
|
+
**Agent 10 — Open issues and tech debt:**
|
|
92
|
+
Prompt: "Search for TODO, FIXME, HACK, and DEPRECATED comments across source files. List the top 10 by frequency of occurrence. Also check if there are open GitHub issues via: gh issue list --state open --json number,title,labels. Return JSON with keys: todo_hotspots (array of {file, count}), open_issues (array of {number, title})."
|
|
455
93
|
|
|
456
|
-
|
|
94
|
+
After all agents complete, synthesize their JSON outputs into a single findings object. This feeds into the interview phase to pre-fill answers and skip redundant questions.
|
|
457
95
|
|
|
458
|
-
|
|
96
|
+
## Phase 3: Interview
|
|
459
97
|
|
|
460
|
-
|
|
461
|
-
mkdir -p .planning
|
|
462
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: initialize project" --files .planning/PROJECT.md
|
|
463
|
-
```
|
|
98
|
+
Use AskUserQuestion to gather project context. Maximum 4 questions per call. Skip any question for which the scan already produced a confident answer.
|
|
464
99
|
|
|
465
|
-
|
|
100
|
+
**Batch 1 — Core identity (always ask):**
|
|
466
101
|
|
|
467
|
-
|
|
102
|
+
Use AskUserQuestion:
|
|
103
|
+
- header: "New Project Setup (1/3)"
|
|
104
|
+
- questions:
|
|
105
|
+
1. "What is the project name?" (prefill from scan: `project_name` if found)
|
|
106
|
+
2. "Describe the project in one sentence — what does it do and for whom?"
|
|
107
|
+
3. "What are the 3 most important goals for this project?" (freeform)
|
|
108
|
+
4. "What is the primary tech stack?" (prefill from scan: `stack_mentioned` if found)
|
|
468
109
|
|
|
469
|
-
**
|
|
110
|
+
**Batch 2 — Conventions and constraints:**
|
|
470
111
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
112
|
+
Use AskUserQuestion:
|
|
113
|
+
- header: "New Project Setup (2/3)"
|
|
114
|
+
- questions:
|
|
115
|
+
1. "What testing strategy will you use? (unit, integration, e2e, TDD, etc.)" (prefill from scan if found)
|
|
116
|
+
2. "What are the coding conventions or style rules to enforce?" (prefill from scan lint findings)
|
|
117
|
+
3. "What are the acceptance criteria for the first milestone?" (freeform)
|
|
118
|
+
4. "What are the explicit no-gos — things MAXSIM agents must never do?" (freeform)
|
|
474
119
|
|
|
475
|
-
|
|
120
|
+
**Batch 3 — Optional context:**
|
|
476
121
|
|
|
477
|
-
|
|
478
|
-
|
|
122
|
+
Use AskUserQuestion:
|
|
123
|
+
- header: "New Project Setup (3/3)"
|
|
124
|
+
- questions:
|
|
125
|
+
1. "Are there any external APIs or services this project depends on?" (prefill from scan env_vars if found)
|
|
126
|
+
2. "Any additional context agents should know? (team size, deadlines, constraints)" (freeform, optional)
|
|
479
127
|
|
|
480
|
-
|
|
481
|
-
**Source:** Project initialization questioning
|
|
128
|
+
Collect and store all answers as `PROJECT_CONTEXT`.
|
|
482
129
|
|
|
483
|
-
|
|
484
|
-
|---|----------|-----------|------------------------|--------|
|
|
485
|
-
| 1 | [Choice from questioning] | [Why this was chosen] | [What else was discussed] | Locked |
|
|
486
|
-
| 2 | [Choice from questioning] | [Why this was chosen] | [What else was discussed] | Locked |
|
|
130
|
+
## Phase 4: GitHub Setup
|
|
487
131
|
|
|
488
|
-
|
|
489
|
-
*Decisions captured during /maxsim:init initialization*
|
|
490
|
-
```
|
|
132
|
+
Execute in sequence:
|
|
491
133
|
|
|
492
|
-
**
|
|
134
|
+
**4a. Ensure labels:**
|
|
493
135
|
|
|
494
136
|
```bash
|
|
495
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs
|
|
137
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github ensure-labels
|
|
496
138
|
```
|
|
497
139
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
```markdown
|
|
501
|
-
# Acceptance Criteria
|
|
502
|
-
|
|
503
|
-
**Generated:** [date]
|
|
504
|
-
**Source:** Project initialization
|
|
140
|
+
This creates the standard MAXSIM label set (phase:N, status:*, priority:*, bug, etc.).
|
|
505
141
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
These define what "done" looks like for the entire project:
|
|
509
|
-
|
|
510
|
-
- [ ] [Observable outcome from user's vision]
|
|
511
|
-
- [ ] [Observable outcome from user's vision]
|
|
512
|
-
- [ ] [Observable outcome from user's vision]
|
|
513
|
-
|
|
514
|
-
## Phase-Level Criteria
|
|
515
|
-
|
|
516
|
-
Populated per-phase during /maxsim:plan.
|
|
517
|
-
|
|
518
|
-
---
|
|
519
|
-
*Criteria derived from project initialization*
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
**NO-GOS.md** — Explicit exclusions and anti-patterns:
|
|
142
|
+
**4b. Create GitHub Project Board:**
|
|
523
143
|
|
|
524
144
|
```bash
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
Write content:
|
|
529
|
-
|
|
530
|
-
```markdown
|
|
531
|
-
# No-Gos
|
|
532
|
-
|
|
533
|
-
**Generated:** [date]
|
|
534
|
-
**Source:** Project initialization
|
|
145
|
+
REPO=$(gh repo view --json owner,name -q '"\(.owner.login)/\(.name)"')
|
|
146
|
+
OWNER=$(gh repo view --json owner -q '.owner.login')
|
|
147
|
+
PROJECT_NAME="{project_name} — MAXSIM"
|
|
535
148
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
- [Feature explicitly excluded] — [why]
|
|
539
|
-
|
|
540
|
-
## Anti-Patterns
|
|
541
|
-
|
|
542
|
-
- [Approach to avoid] — [why]
|
|
543
|
-
|
|
544
|
-
## Scope Boundaries
|
|
545
|
-
|
|
546
|
-
- [What this project is NOT]
|
|
547
|
-
|
|
548
|
-
---
|
|
549
|
-
*No-gos captured during /maxsim:init initialization*
|
|
149
|
+
gh project create --owner "$OWNER" --title "$PROJECT_NAME"
|
|
550
150
|
```
|
|
551
151
|
|
|
552
|
-
|
|
152
|
+
Capture the project number from the output.
|
|
553
153
|
|
|
554
|
-
|
|
154
|
+
**4c. Store project board number in config:**
|
|
555
155
|
|
|
556
|
-
**If research has already run (Step 6 completed):**
|
|
557
|
-
Populate from research recommendations + questioning confirmations:
|
|
558
|
-
- Tech Stack: from locked decisions in research synthesis
|
|
559
|
-
- File Layout: from recommended framework conventions
|
|
560
|
-
- Error Handling: from user's stated preference during questioning
|
|
561
|
-
- Testing: from user's stated testing strategy during questioning
|
|
562
|
-
- Set `{{source}}` to "new-project init (research-informed)"
|
|
563
|
-
- Set `{{generated_or_confirmed}}` to "generated"
|
|
564
|
-
|
|
565
|
-
**If no research (Step 6 was skipped):**
|
|
566
|
-
Populate from questioning context + reasonable defaults:
|
|
567
|
-
- Tech Stack: from any technology choices mentioned during questioning
|
|
568
|
-
- File Layout: from framework conventions (infer from chosen framework)
|
|
569
|
-
- Error Handling: from user's stated preference or framework default
|
|
570
|
-
- Testing: from user's stated strategy or framework default
|
|
571
|
-
- Set `{{source}}` to "new-project init (questioning-derived)"
|
|
572
|
-
- Set `{{generated_or_confirmed}}` to "generated"
|
|
573
|
-
|
|
574
|
-
Write content using the 4 must-have sections (Tech Stack, File Layout, Error Handling, Testing). Remove HTML comment examples and replace with actual project-specific conventions.
|
|
575
|
-
|
|
576
|
-
Write `.planning/CONVENTIONS.md` directly using the Write tool (CONVENTIONS.md is not a valid artefakt type):
|
|
577
156
|
```bash
|
|
578
|
-
|
|
157
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github set-project --number {PROJECT_NUMBER}
|
|
579
158
|
```
|
|
580
159
|
|
|
581
|
-
**
|
|
160
|
+
**4d. Create initial milestone:**
|
|
582
161
|
|
|
583
162
|
```bash
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
## 5. Workflow Preferences
|
|
590
|
-
|
|
591
|
-
**If auto mode:** Skip — config was collected in Step 2a. Proceed to Step 5.5.
|
|
592
|
-
|
|
593
|
-
**Check for global defaults** at `~/.maxsim/defaults.json`. If the file exists, offer to use saved defaults:
|
|
594
|
-
|
|
595
|
-
```
|
|
596
|
-
AskUserQuestion([
|
|
597
|
-
{
|
|
598
|
-
question: "Use your saved default settings? (from ~/.maxsim/defaults.json)",
|
|
599
|
-
header: "Defaults",
|
|
600
|
-
multiSelect: false,
|
|
601
|
-
options: [
|
|
602
|
-
{ label: "Yes (Recommended)", description: "Use saved defaults, skip settings questions" },
|
|
603
|
-
{ label: "No", description: "Configure settings manually" }
|
|
604
|
-
]
|
|
605
|
-
}
|
|
606
|
-
])
|
|
607
|
-
```
|
|
608
|
-
|
|
609
|
-
If "Yes": read `~/.maxsim/defaults.json`, use those values for config.json, and skip directly to **Commit config.json** below.
|
|
610
|
-
|
|
611
|
-
If "No" or `~/.maxsim/defaults.json` doesn't exist: proceed with the questions below.
|
|
612
|
-
|
|
613
|
-
**Round 1 — Core workflow settings (4 questions):**
|
|
614
|
-
|
|
615
|
-
```
|
|
616
|
-
questions: [
|
|
617
|
-
{
|
|
618
|
-
header: "Mode",
|
|
619
|
-
question: "How do you want to work?",
|
|
620
|
-
multiSelect: false,
|
|
621
|
-
options: [
|
|
622
|
-
{ label: "YOLO (Recommended)", description: "Auto-approve, just execute" },
|
|
623
|
-
{ label: "Interactive", description: "Confirm at each step" }
|
|
624
|
-
]
|
|
625
|
-
},
|
|
626
|
-
{
|
|
627
|
-
header: "Depth",
|
|
628
|
-
question: "How thorough should planning be?",
|
|
629
|
-
multiSelect: false,
|
|
630
|
-
options: [
|
|
631
|
-
{ label: "Quick", description: "Ship fast (3-5 phases, 1-3 plans each)" },
|
|
632
|
-
{ label: "Standard", description: "Balanced scope and speed (5-8 phases, 3-5 plans each)" },
|
|
633
|
-
{ label: "Comprehensive", description: "Thorough coverage (8-12 phases, 5-10 plans each)" }
|
|
634
|
-
]
|
|
635
|
-
},
|
|
636
|
-
{
|
|
637
|
-
header: "Execution",
|
|
638
|
-
question: "Run plans in parallel?",
|
|
639
|
-
multiSelect: false,
|
|
640
|
-
options: [
|
|
641
|
-
{ label: "Parallel (Recommended)", description: "Independent plans run simultaneously" },
|
|
642
|
-
{ label: "Sequential", description: "One plan at a time" }
|
|
643
|
-
]
|
|
644
|
-
},
|
|
645
|
-
{
|
|
646
|
-
header: "Git Tracking",
|
|
647
|
-
question: "Commit planning docs to git?",
|
|
648
|
-
multiSelect: false,
|
|
649
|
-
options: [
|
|
650
|
-
{ label: "Yes (Recommended)", description: "Planning docs tracked in version control" },
|
|
651
|
-
{ label: "No", description: "Keep .planning/ local-only (add to .gitignore)" }
|
|
652
|
-
]
|
|
653
|
-
}
|
|
654
|
-
]
|
|
163
|
+
gh api repos/$REPO/milestones \
|
|
164
|
+
--method POST \
|
|
165
|
+
--field title="Milestone 1 — {project_name}" \
|
|
166
|
+
--field description="Initial milestone created by MAXSIM" \
|
|
167
|
+
--field state="open"
|
|
655
168
|
```
|
|
656
169
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
These spawn additional agents during planning/execution. They add tokens and time but improve quality.
|
|
660
|
-
|
|
661
|
-
| Agent | When it runs | What it does |
|
|
662
|
-
|-------|--------------|--------------|
|
|
663
|
-
| **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
|
|
664
|
-
| **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
|
|
665
|
-
| **Verifier** | After phase execution | Confirms must-haves were delivered |
|
|
666
|
-
|
|
667
|
-
All recommended for important projects. Skip for quick experiments.
|
|
170
|
+
## Phase 5: Local Setup
|
|
668
171
|
|
|
669
|
-
|
|
670
|
-
questions: [
|
|
671
|
-
{
|
|
672
|
-
header: "Research",
|
|
673
|
-
question: "Research before planning each phase? (adds tokens/time)",
|
|
674
|
-
multiSelect: false,
|
|
675
|
-
options: [
|
|
676
|
-
{ label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
|
|
677
|
-
{ label: "No", description: "Plan directly from requirements" }
|
|
678
|
-
]
|
|
679
|
-
},
|
|
680
|
-
{
|
|
681
|
-
header: "Plan Check",
|
|
682
|
-
question: "Verify plans will achieve their goals? (adds tokens/time)",
|
|
683
|
-
multiSelect: false,
|
|
684
|
-
options: [
|
|
685
|
-
{ label: "Yes (Recommended)", description: "Catch gaps before execution starts" },
|
|
686
|
-
{ label: "No", description: "Execute plans without verification" }
|
|
687
|
-
]
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
header: "Verifier",
|
|
691
|
-
question: "Verify work satisfies requirements after each phase? (adds tokens/time)",
|
|
692
|
-
multiSelect: false,
|
|
693
|
-
options: [
|
|
694
|
-
{ label: "Yes (Recommended)", description: "Confirm deliverables match phase goals" },
|
|
695
|
-
{ label: "No", description: "Trust execution, skip verification" }
|
|
696
|
-
]
|
|
697
|
-
},
|
|
698
|
-
{
|
|
699
|
-
header: "AI Models",
|
|
700
|
-
question: "Which AI models for planning agents?",
|
|
701
|
-
multiSelect: false,
|
|
702
|
-
options: [
|
|
703
|
-
{ label: "Balanced (Recommended)", description: "Sonnet for most agents — good quality/cost ratio" },
|
|
704
|
-
{ label: "Quality", description: "Opus for research/roadmap — higher cost, deeper analysis" },
|
|
705
|
-
{ label: "Budget", description: "Haiku where possible — fastest, lowest cost" }
|
|
706
|
-
]
|
|
707
|
-
}
|
|
708
|
-
]
|
|
709
|
-
```
|
|
172
|
+
**5a. Write .claude/maxsim/config.json:**
|
|
710
173
|
|
|
711
|
-
Create `.
|
|
174
|
+
Create `.claude/maxsim/config.json` with:
|
|
712
175
|
|
|
713
176
|
```json
|
|
714
177
|
{
|
|
715
|
-
"
|
|
716
|
-
"
|
|
717
|
-
"
|
|
718
|
-
"
|
|
719
|
-
"
|
|
720
|
-
"
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
178
|
+
"version": "6",
|
|
179
|
+
"project_name": "{project_name}",
|
|
180
|
+
"description": "{one_sentence_description}",
|
|
181
|
+
"tech_stack": ["{stack items}"],
|
|
182
|
+
"testing_strategy": "{testing_strategy}",
|
|
183
|
+
"conventions": "{conventions}",
|
|
184
|
+
"no_gos": ["{no_go items}"],
|
|
185
|
+
"acceptance_criteria": "{acceptance_criteria}",
|
|
186
|
+
"github": {
|
|
187
|
+
"repo": "{owner/repo}",
|
|
188
|
+
"project_number": {PROJECT_NUMBER},
|
|
189
|
+
"milestone_number": {MILESTONE_NUMBER}
|
|
190
|
+
},
|
|
191
|
+
"initialized_at": "{ISO timestamp}"
|
|
725
192
|
}
|
|
726
193
|
```
|
|
727
194
|
|
|
728
|
-
**
|
|
729
|
-
- Set `commit_docs: false` in config.json
|
|
730
|
-
- Add `.planning/` to `.gitignore` (create if needed)
|
|
731
|
-
|
|
732
|
-
**If commit_docs = Yes:**
|
|
733
|
-
- No additional gitignore entries needed
|
|
195
|
+
**5b. Write or update CLAUDE.md:**
|
|
734
196
|
|
|
735
|
-
|
|
197
|
+
Use the install system to write project-level CLAUDE.md context:
|
|
736
198
|
|
|
737
199
|
```bash
|
|
738
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
**Note:** Run `/maxsim:settings` anytime to update these preferences.
|
|
742
|
-
|
|
743
|
-
## 5.5. Resolve Model Profile
|
|
744
|
-
|
|
745
|
-
Use models from init: `researcher_model`, `synthesizer_model`, `roadmapper_model`.
|
|
746
|
-
|
|
747
|
-
## 6. Research Decision
|
|
748
|
-
|
|
749
|
-
**If auto mode:** Default to "Research first" without asking.
|
|
750
|
-
|
|
751
|
-
Use AskUserQuestion:
|
|
752
|
-
- header: "Research"
|
|
753
|
-
- question: "Research the domain ecosystem before defining requirements?"
|
|
754
|
-
- options:
|
|
755
|
-
- "Research first (Recommended)" — Discover standard stacks, expected features, architecture patterns
|
|
756
|
-
- "Skip research" — I know this domain well, go straight to requirements
|
|
757
|
-
|
|
758
|
-
**If "Research first":**
|
|
759
|
-
|
|
760
|
-
Display stage banner:
|
|
761
|
-
```
|
|
762
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
763
|
-
MAXSIM ► RESEARCHING
|
|
764
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
765
|
-
|
|
766
|
-
Researching [domain] ecosystem...
|
|
767
|
-
```
|
|
768
|
-
|
|
769
|
-
Create research directory:
|
|
770
|
-
```bash
|
|
771
|
-
mkdir -p .planning/research
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
**Determine milestone context:**
|
|
775
|
-
|
|
776
|
-
Check if this is greenfield or subsequent milestone:
|
|
777
|
-
- If no "Validated" requirements in PROJECT.md → Greenfield (building from scratch)
|
|
778
|
-
- If "Validated" requirements exist → Subsequent milestone (adding to existing app)
|
|
779
|
-
|
|
780
|
-
Display spawning indicator:
|
|
781
|
-
```
|
|
782
|
-
◆ Spawning 4 researchers in parallel...
|
|
783
|
-
→ Stack research
|
|
784
|
-
→ Features research
|
|
785
|
-
→ Architecture research
|
|
786
|
-
→ Pitfalls research
|
|
787
|
-
```
|
|
788
|
-
|
|
789
|
-
Spawn 4 parallel researcher agents with path references:
|
|
790
|
-
|
|
791
|
-
```
|
|
792
|
-
Task(prompt="
|
|
793
|
-
|
|
794
|
-
<research_type>
|
|
795
|
-
Project Research — Stack dimension for [domain].
|
|
796
|
-
</research_type>
|
|
797
|
-
|
|
798
|
-
<milestone_context>
|
|
799
|
-
[greenfield OR subsequent]
|
|
800
|
-
|
|
801
|
-
Greenfield: Research the standard stack for building [domain] from scratch.
|
|
802
|
-
Subsequent: Research what's needed to add [target features] to an existing [domain] app. Don't re-research the existing system.
|
|
803
|
-
</milestone_context>
|
|
804
|
-
|
|
805
|
-
<question>
|
|
806
|
-
What's the standard 2025 stack for [domain]?
|
|
807
|
-
</question>
|
|
808
|
-
|
|
809
|
-
<files_to_read>
|
|
810
|
-
- {project_path} (Project context and goals)
|
|
811
|
-
</files_to_read>
|
|
812
|
-
|
|
813
|
-
<downstream_consumer>
|
|
814
|
-
Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
815
|
-
- Specific libraries with versions
|
|
816
|
-
- Clear rationale for each choice
|
|
817
|
-
- What NOT to use and why
|
|
818
|
-
</downstream_consumer>
|
|
819
|
-
|
|
820
|
-
<quality_gate>
|
|
821
|
-
- [ ] Versions are current (verify with Context7/official docs, not training data)
|
|
822
|
-
- [ ] Rationale explains WHY, not just WHAT
|
|
823
|
-
- [ ] Confidence levels assigned to each recommendation
|
|
824
|
-
</quality_gate>
|
|
825
|
-
|
|
826
|
-
<output>
|
|
827
|
-
Write to: .planning/research/STACK.md
|
|
828
|
-
Use template: ~/.claude/maxsim/templates/research-project/STACK.md
|
|
829
|
-
</output>
|
|
830
|
-
", subagent_type="researcher", model="{researcher_model}", description="Stack research")
|
|
831
|
-
|
|
832
|
-
Task(prompt="
|
|
833
|
-
|
|
834
|
-
<research_type>
|
|
835
|
-
Project Research — Features dimension for [domain].
|
|
836
|
-
</research_type>
|
|
837
|
-
|
|
838
|
-
<milestone_context>
|
|
839
|
-
[greenfield OR subsequent]
|
|
840
|
-
|
|
841
|
-
Greenfield: What features do [domain] products have? What's table stakes vs differentiating?
|
|
842
|
-
Subsequent: How do [target features] typically work? What's expected behavior?
|
|
843
|
-
</milestone_context>
|
|
844
|
-
|
|
845
|
-
<question>
|
|
846
|
-
What features do [domain] products have? What's table stakes vs differentiating?
|
|
847
|
-
</question>
|
|
848
|
-
|
|
849
|
-
<files_to_read>
|
|
850
|
-
- {project_path} (Project context)
|
|
851
|
-
</files_to_read>
|
|
852
|
-
|
|
853
|
-
<downstream_consumer>
|
|
854
|
-
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
855
|
-
- Table stakes (must have or users leave)
|
|
856
|
-
- Differentiators (competitive advantage)
|
|
857
|
-
- Anti-features (things to deliberately NOT build)
|
|
858
|
-
</downstream_consumer>
|
|
859
|
-
|
|
860
|
-
<quality_gate>
|
|
861
|
-
- [ ] Categories are clear (table stakes vs differentiators vs anti-features)
|
|
862
|
-
- [ ] Complexity noted for each feature
|
|
863
|
-
- [ ] Dependencies between features identified
|
|
864
|
-
</quality_gate>
|
|
865
|
-
|
|
866
|
-
<output>
|
|
867
|
-
Write to: .planning/research/FEATURES.md
|
|
868
|
-
Use template: ~/.claude/maxsim/templates/research-project/FEATURES.md
|
|
869
|
-
</output>
|
|
870
|
-
", subagent_type="researcher", model="{researcher_model}", description="Features research")
|
|
871
|
-
|
|
872
|
-
Task(prompt="
|
|
873
|
-
|
|
874
|
-
<research_type>
|
|
875
|
-
Project Research — Architecture dimension for [domain].
|
|
876
|
-
</research_type>
|
|
877
|
-
|
|
878
|
-
<milestone_context>
|
|
879
|
-
[greenfield OR subsequent]
|
|
880
|
-
|
|
881
|
-
Greenfield: How are [domain] systems typically structured? What are major components?
|
|
882
|
-
Subsequent: How do [target features] integrate with existing [domain] architecture?
|
|
883
|
-
</milestone_context>
|
|
884
|
-
|
|
885
|
-
<question>
|
|
886
|
-
How are [domain] systems typically structured? What are major components?
|
|
887
|
-
</question>
|
|
888
|
-
|
|
889
|
-
<files_to_read>
|
|
890
|
-
- {project_path} (Project context)
|
|
891
|
-
</files_to_read>
|
|
892
|
-
|
|
893
|
-
<downstream_consumer>
|
|
894
|
-
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
895
|
-
- Component boundaries (what talks to what)
|
|
896
|
-
- Data flow (how information moves)
|
|
897
|
-
- Suggested build order (dependencies between components)
|
|
898
|
-
</downstream_consumer>
|
|
899
|
-
|
|
900
|
-
<quality_gate>
|
|
901
|
-
- [ ] Components clearly defined with boundaries
|
|
902
|
-
- [ ] Data flow direction explicit
|
|
903
|
-
- [ ] Build order implications noted
|
|
904
|
-
</quality_gate>
|
|
905
|
-
|
|
906
|
-
<output>
|
|
907
|
-
Write to: .planning/research/ARCHITECTURE.md
|
|
908
|
-
Use template: ~/.claude/maxsim/templates/research-project/ARCHITECTURE.md
|
|
909
|
-
</output>
|
|
910
|
-
", subagent_type="researcher", model="{researcher_model}", description="Architecture research")
|
|
911
|
-
|
|
912
|
-
Task(prompt="
|
|
913
|
-
|
|
914
|
-
<research_type>
|
|
915
|
-
Project Research — Pitfalls dimension for [domain].
|
|
916
|
-
</research_type>
|
|
917
|
-
|
|
918
|
-
<milestone_context>
|
|
919
|
-
[greenfield OR subsequent]
|
|
920
|
-
|
|
921
|
-
Greenfield: What do [domain] projects commonly get wrong? Critical mistakes?
|
|
922
|
-
Subsequent: What are common mistakes when adding [target features] to [domain]?
|
|
923
|
-
</milestone_context>
|
|
924
|
-
|
|
925
|
-
<question>
|
|
926
|
-
What do [domain] projects commonly get wrong? Critical mistakes?
|
|
927
|
-
</question>
|
|
928
|
-
|
|
929
|
-
<files_to_read>
|
|
930
|
-
- {project_path} (Project context)
|
|
931
|
-
</files_to_read>
|
|
932
|
-
|
|
933
|
-
<downstream_consumer>
|
|
934
|
-
Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
935
|
-
- Warning signs (how to detect early)
|
|
936
|
-
- Prevention strategy (how to avoid)
|
|
937
|
-
- Which phase should address it
|
|
938
|
-
</downstream_consumer>
|
|
939
|
-
|
|
940
|
-
<quality_gate>
|
|
941
|
-
- [ ] Pitfalls are specific to this domain (not generic advice)
|
|
942
|
-
- [ ] Prevention strategies are actionable
|
|
943
|
-
- [ ] Phase mapping included where relevant
|
|
944
|
-
</quality_gate>
|
|
945
|
-
|
|
946
|
-
<output>
|
|
947
|
-
Write to: .planning/research/PITFALLS.md
|
|
948
|
-
Use template: ~/.claude/maxsim/templates/research-project/PITFALLS.md
|
|
949
|
-
</output>
|
|
950
|
-
", subagent_type="researcher", model="{researcher_model}", description="Pitfalls research")
|
|
951
|
-
```
|
|
952
|
-
|
|
953
|
-
After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
|
|
954
|
-
|
|
955
|
-
```
|
|
956
|
-
Task(prompt="
|
|
957
|
-
<task>
|
|
958
|
-
Synthesize research outputs into SUMMARY.md.
|
|
959
|
-
</task>
|
|
960
|
-
|
|
961
|
-
<files_to_read>
|
|
962
|
-
- .planning/research/STACK.md
|
|
963
|
-
- .planning/research/FEATURES.md
|
|
964
|
-
- .planning/research/ARCHITECTURE.md
|
|
965
|
-
- .planning/research/PITFALLS.md
|
|
966
|
-
</files_to_read>
|
|
967
|
-
|
|
968
|
-
<output>
|
|
969
|
-
Write to: .planning/research/SUMMARY.md
|
|
970
|
-
Use template: ~/.claude/maxsim/templates/research-project/SUMMARY.md
|
|
971
|
-
Commit after writing.
|
|
972
|
-
</output>
|
|
973
|
-
", subagent_type="researcher", model="{synthesizer_model}", description="Synthesize research")
|
|
974
|
-
```
|
|
975
|
-
|
|
976
|
-
**Locked Decisions Approval Gate:**
|
|
977
|
-
|
|
978
|
-
After synthesis completes, read `.planning/research/SUMMARY.md` and extract the "Locked Decisions" section. Present these to the user for approval:
|
|
979
|
-
|
|
980
|
-
```
|
|
981
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
982
|
-
MAXSIM ► RESEARCH COMPLETE ✓
|
|
983
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
984
|
-
|
|
985
|
-
## Key Findings
|
|
986
|
-
|
|
987
|
-
**Stack:** [from SUMMARY.md]
|
|
988
|
-
**Table Stakes:** [from SUMMARY.md]
|
|
989
|
-
**Watch Out For:** [from SUMMARY.md]
|
|
990
|
-
|
|
991
|
-
Files: `.planning/research/`
|
|
992
|
-
|
|
993
|
-
## Locked Decisions (Approval Required)
|
|
994
|
-
|
|
995
|
-
These decisions will flow to the planner as constraints:
|
|
996
|
-
|
|
997
|
-
| # | Decision | Rationale | Alternatives Rejected | Effort |
|
|
998
|
-
|---|----------|-----------|----------------------|--------|
|
|
999
|
-
| 1 | [from SUMMARY.md] | ... | ... | ... |
|
|
1000
|
-
| 2 | [from SUMMARY.md] | ... | ... | ... |
|
|
200
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs install write-claude-md \
|
|
201
|
+
--project-name "{project_name}" \
|
|
202
|
+
--description "{description}"
|
|
1001
203
|
```
|
|
1002
204
|
|
|
1003
|
-
|
|
1004
|
-
- header: "Decisions"
|
|
1005
|
-
- question: "Approve these locked decisions? You can override any of them."
|
|
1006
|
-
- options:
|
|
1007
|
-
- "Approve all" — Lock these decisions as-is
|
|
1008
|
-
- "Override some" — I want to change some decisions
|
|
1009
|
-
- "Reject all" — Start fresh on decisions
|
|
1010
|
-
|
|
1011
|
-
If "Override some": ask which decisions to change, capture overrides, update the locked decisions list.
|
|
1012
|
-
If "Reject all": remove locked decisions section from SUMMARY.md; decisions will emerge during requirements/roadmap instead.
|
|
1013
|
-
|
|
1014
|
-
**After approval, update PROJECT.md** with the "Tech Stack Decisions" section (from template `templates/project.md`):
|
|
1015
|
-
|
|
1016
|
-
Read the current `.planning/PROJECT.md` and append the Tech Stack Decisions section populated from the approved locked decisions. Use the format from the project.md template.
|
|
205
|
+
If the command is unavailable, write `.claude/maxsim/PROJECT.md` directly with the full project context gathered in the interview phase.
|
|
1017
206
|
|
|
1018
|
-
|
|
1019
|
-
# PROJECT.md already exists from Step 4 — update it with tech stack decisions
|
|
1020
|
-
```
|
|
207
|
+
**5c. Commit initialization files:**
|
|
1021
208
|
|
|
1022
|
-
Commit the updated PROJECT.md:
|
|
1023
209
|
```bash
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
**If "Skip research":** Continue to Step 7.
|
|
1028
|
-
|
|
1029
|
-
## 7. Define Requirements
|
|
1030
|
-
|
|
1031
|
-
Display stage banner:
|
|
210
|
+
git add .claude/
|
|
211
|
+
git commit -m "chore: initialize MAXSIM v6"
|
|
1032
212
|
```
|
|
1033
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1034
|
-
MAXSIM ► DEFINING REQUIREMENTS
|
|
1035
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1036
|
-
```
|
|
1037
|
-
|
|
1038
|
-
**Load context:**
|
|
1039
|
-
|
|
1040
|
-
Read PROJECT.md and extract:
|
|
1041
|
-
- Core value (the ONE thing that must work)
|
|
1042
|
-
- Stated constraints (budget, timeline, tech limitations)
|
|
1043
|
-
- Any explicit scope boundaries
|
|
1044
|
-
|
|
1045
|
-
**If research exists:** Read research/FEATURES.md and extract feature categories.
|
|
1046
|
-
|
|
1047
|
-
**If auto mode:**
|
|
1048
|
-
- Auto-include all table stakes features (users expect these)
|
|
1049
|
-
- Include features explicitly mentioned in provided document
|
|
1050
|
-
- Auto-defer differentiators not mentioned in document
|
|
1051
|
-
- Skip per-category AskUserQuestion loops
|
|
1052
|
-
- Skip "Any additions?" question
|
|
1053
|
-
- Skip requirements approval gate
|
|
1054
|
-
- Generate REQUIREMENTS.md and commit directly
|
|
1055
|
-
|
|
1056
|
-
**Present features by category (interactive mode only):**
|
|
1057
|
-
|
|
1058
|
-
```
|
|
1059
|
-
Here are the features for [domain]:
|
|
1060
|
-
|
|
1061
|
-
## Authentication
|
|
1062
|
-
**Table stakes:**
|
|
1063
|
-
- Sign up with email/password
|
|
1064
|
-
- Email verification
|
|
1065
|
-
- Password reset
|
|
1066
|
-
- Session management
|
|
1067
213
|
|
|
1068
|
-
|
|
1069
|
-
- Magic link login
|
|
1070
|
-
- OAuth (Google, GitHub)
|
|
1071
|
-
- 2FA
|
|
1072
|
-
|
|
1073
|
-
**Research notes:** [any relevant notes]
|
|
1074
|
-
|
|
1075
|
-
---
|
|
1076
|
-
|
|
1077
|
-
## [Next Category]
|
|
1078
|
-
...
|
|
1079
|
-
```
|
|
1080
|
-
|
|
1081
|
-
**If no research:** Gather requirements through conversation instead.
|
|
1082
|
-
|
|
1083
|
-
Ask: "What are the main things users need to be able to do?"
|
|
1084
|
-
|
|
1085
|
-
For each capability mentioned:
|
|
1086
|
-
- Ask clarifying questions to make it specific
|
|
1087
|
-
- Probe for related capabilities
|
|
1088
|
-
- Group into categories
|
|
1089
|
-
|
|
1090
|
-
**Scope each category:**
|
|
1091
|
-
|
|
1092
|
-
For each category, use AskUserQuestion:
|
|
1093
|
-
|
|
1094
|
-
- header: "[Category]" (max 12 chars)
|
|
1095
|
-
- question: "Which [category] features are in v1?"
|
|
1096
|
-
- multiSelect: true
|
|
1097
|
-
- options:
|
|
1098
|
-
- "[Feature 1]" — [brief description]
|
|
1099
|
-
- "[Feature 2]" — [brief description]
|
|
1100
|
-
- "[Feature 3]" — [brief description]
|
|
1101
|
-
- "None for v1" — Defer entire category
|
|
1102
|
-
|
|
1103
|
-
Track responses:
|
|
1104
|
-
- Selected features → v1 requirements
|
|
1105
|
-
- Unselected table stakes → v2 (users expect these)
|
|
1106
|
-
- Unselected differentiators → out of scope
|
|
1107
|
-
|
|
1108
|
-
**Identify gaps:**
|
|
214
|
+
## Phase 6: Roadmap (Optional)
|
|
1109
215
|
|
|
1110
216
|
Use AskUserQuestion:
|
|
1111
|
-
- header: "
|
|
1112
|
-
- question: "
|
|
217
|
+
- header: "Initial Roadmap"
|
|
218
|
+
- question: "Would you like to create an initial roadmap now? I'll generate phase issues on GitHub based on your project goals."
|
|
1113
219
|
- options:
|
|
1114
|
-
- "
|
|
1115
|
-
- "
|
|
1116
|
-
|
|
1117
|
-
**Validate core value:**
|
|
220
|
+
- "Yes, create roadmap" — create phase issues
|
|
221
|
+
- "No, I'll plan phases later with /maxsim:plan" — skip
|
|
1118
222
|
|
|
1119
|
-
|
|
223
|
+
**If "No":** Print the completion message below and exit.
|
|
1120
224
|
|
|
1121
|
-
**
|
|
225
|
+
**If "Yes":**
|
|
1122
226
|
|
|
1123
|
-
|
|
1124
|
-
- v1 Requirements grouped by category (checkboxes, REQ-IDs)
|
|
1125
|
-
- v2 Requirements (deferred)
|
|
1126
|
-
- Out of Scope (explicit exclusions with reasoning)
|
|
1127
|
-
- Traceability section (empty, filled by roadmap)
|
|
227
|
+
Use the Agent tool with `run_in_background: false` to spawn a single Roadmap agent with this prompt:
|
|
1128
228
|
|
|
1129
|
-
|
|
229
|
+
"You are creating an initial GitHub roadmap for a MAXSIM v6 project. The project details are:
|
|
1130
230
|
|
|
1131
|
-
|
|
231
|
+
Name: {project_name}
|
|
232
|
+
Description: {description}
|
|
233
|
+
Goals: {goals}
|
|
234
|
+
Tech stack: {tech_stack}
|
|
235
|
+
Acceptance criteria: {acceptance_criteria}
|
|
1132
236
|
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
237
|
+
Create 3–7 phase GitHub Issues on the repo {owner/repo}. Each phase issue should:
|
|
238
|
+
1. Have title format: 'Phase N: {phase_name}'
|
|
239
|
+
2. Have label 'phase:{N}'
|
|
240
|
+
3. Have a body describing the phase goal and 5–10 acceptance criteria as a task list (- [ ] item)
|
|
241
|
+
4. Be added to milestone #{MILESTONE_NUMBER}
|
|
1138
242
|
|
|
1139
|
-
|
|
1140
|
-
- "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
|
|
1141
|
-
- "Support sharing" → "User can share post via link that opens in recipient's browser"
|
|
243
|
+
Use: gh issue create --title 'Phase N: {name}' --label 'phase:{N}' --milestone {MILESTONE_NUMBER} --body '{body}'
|
|
1142
244
|
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
Show every requirement (not counts) for user confirmation:
|
|
1146
|
-
|
|
1147
|
-
```
|
|
1148
|
-
## v1 Requirements
|
|
245
|
+
After creating all issues, add each one to the GitHub Project Board:
|
|
246
|
+
gh project item-add {PROJECT_NUMBER} --owner {OWNER} --url {issue_url}
|
|
1149
247
|
|
|
1150
|
-
|
|
1151
|
-
-
|
|
1152
|
-
- [ ] **AUTH-02**: User can log in and stay logged in across sessions
|
|
1153
|
-
- [ ] **AUTH-03**: User can log out from any page
|
|
248
|
+
Set each issue status to 'To Do' on the board using:
|
|
249
|
+
node ~/.claude/maxsim/bin/maxsim-tools.cjs github set-status --issue-number {N} --status 'To Do'
|
|
1154
250
|
|
|
1155
|
-
|
|
1156
|
-
- [ ] **CONT-01**: User can create posts with text
|
|
1157
|
-
- [ ] **CONT-02**: User can edit their own posts
|
|
251
|
+
Return the list of created issue numbers and titles."
|
|
1158
252
|
|
|
1159
|
-
|
|
253
|
+
After the agent completes, display the phase list.
|
|
1160
254
|
|
|
1161
|
-
|
|
255
|
+
## Completion
|
|
1162
256
|
|
|
1163
|
-
Does this capture what you're building? (yes / adjust)
|
|
1164
|
-
```
|
|
1165
|
-
|
|
1166
|
-
If "adjust": Return to scoping.
|
|
1167
|
-
|
|
1168
|
-
**Commit requirements:**
|
|
1169
|
-
|
|
1170
|
-
```bash
|
|
1171
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md
|
|
1172
|
-
```
|
|
1173
|
-
|
|
1174
|
-
## 8. Create Roadmap
|
|
1175
|
-
|
|
1176
|
-
Display stage banner:
|
|
1177
257
|
```
|
|
1178
258
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1179
|
-
MAXSIM ►
|
|
259
|
+
MAXSIM ► PROJECT INITIALIZED
|
|
1180
260
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1181
261
|
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
```
|
|
1188
|
-
Task(prompt="
|
|
1189
|
-
<planning_context>
|
|
1190
|
-
|
|
1191
|
-
<files_to_read>
|
|
1192
|
-
- .planning/PROJECT.md (Project context)
|
|
1193
|
-
- .planning/REQUIREMENTS.md (v1 Requirements)
|
|
1194
|
-
- .planning/research/SUMMARY.md (Research findings - if exists)
|
|
1195
|
-
- .planning/config.json (Depth and mode settings)
|
|
1196
|
-
</files_to_read>
|
|
1197
|
-
|
|
1198
|
-
</planning_context>
|
|
1199
|
-
|
|
1200
|
-
<instructions>
|
|
1201
|
-
Create roadmap:
|
|
1202
|
-
1. Derive phases from requirements (don't impose structure)
|
|
1203
|
-
2. Map every v1 requirement to exactly one phase
|
|
1204
|
-
3. Derive 2-5 success criteria per phase (observable user behaviors)
|
|
1205
|
-
4. Validate 100% coverage
|
|
1206
|
-
5. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
|
|
1207
|
-
6. Return ROADMAP CREATED with summary
|
|
1208
|
-
|
|
1209
|
-
Write files first, then return. This ensures artifacts persist even if context is lost.
|
|
1210
|
-
</instructions>
|
|
1211
|
-
", subagent_type="planner", model="{roadmapper_model}", description="Create roadmap")
|
|
1212
|
-
```
|
|
1213
|
-
|
|
1214
|
-
**Handle roadmapper return:**
|
|
1215
|
-
|
|
1216
|
-
**If `## ROADMAP BLOCKED`:**
|
|
1217
|
-
- Present blocker information
|
|
1218
|
-
- Work with user to resolve
|
|
1219
|
-
- Re-spawn when resolved
|
|
1220
|
-
|
|
1221
|
-
**If `## ROADMAP CREATED`:**
|
|
1222
|
-
|
|
1223
|
-
Read the created ROADMAP.md and present it nicely inline:
|
|
1224
|
-
|
|
1225
|
-
```
|
|
1226
|
-
---
|
|
1227
|
-
|
|
1228
|
-
## Proposed Roadmap
|
|
1229
|
-
|
|
1230
|
-
**[N] phases** | **[X] requirements mapped** | All v1 requirements covered ✓
|
|
1231
|
-
|
|
1232
|
-
| # | Phase | Goal | Requirements | Success Criteria |
|
|
1233
|
-
|---|-------|------|--------------|------------------|
|
|
1234
|
-
| 1 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
1235
|
-
| 2 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
1236
|
-
| 3 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
1237
|
-
...
|
|
1238
|
-
|
|
1239
|
-
### Phase Details
|
|
1240
|
-
|
|
1241
|
-
**Phase 1: [Name]**
|
|
1242
|
-
Goal: [goal]
|
|
1243
|
-
Requirements: [REQ-IDs]
|
|
1244
|
-
Success criteria:
|
|
1245
|
-
1. [criterion]
|
|
1246
|
-
2. [criterion]
|
|
1247
|
-
3. [criterion]
|
|
1248
|
-
|
|
1249
|
-
**Phase 2: [Name]**
|
|
1250
|
-
Goal: [goal]
|
|
1251
|
-
Requirements: [REQ-IDs]
|
|
1252
|
-
Success criteria:
|
|
1253
|
-
1. [criterion]
|
|
1254
|
-
2. [criterion]
|
|
1255
|
-
|
|
1256
|
-
[... continue for all phases ...]
|
|
1257
|
-
|
|
1258
|
-
---
|
|
1259
|
-
```
|
|
1260
|
-
|
|
1261
|
-
**If auto mode:** Skip approval gate — auto-approve and commit directly.
|
|
1262
|
-
|
|
1263
|
-
**CRITICAL: Ask for approval before committing (interactive mode only):**
|
|
1264
|
-
|
|
1265
|
-
Use AskUserQuestion:
|
|
1266
|
-
- header: "Roadmap"
|
|
1267
|
-
- question: "Does this roadmap structure work for you?"
|
|
1268
|
-
- options:
|
|
1269
|
-
- "Approve" — Commit and continue
|
|
1270
|
-
- "Adjust phases" — Tell me what to change
|
|
1271
|
-
- "Review full file" — Show raw ROADMAP.md
|
|
1272
|
-
|
|
1273
|
-
**If "Approve":** Continue to commit.
|
|
1274
|
-
|
|
1275
|
-
**If "Adjust phases":**
|
|
1276
|
-
- Get user's adjustment notes
|
|
1277
|
-
- Re-spawn roadmapper with revision context:
|
|
1278
|
-
```
|
|
1279
|
-
Task(prompt="
|
|
1280
|
-
<revision>
|
|
1281
|
-
User feedback on roadmap:
|
|
1282
|
-
[user's notes]
|
|
1283
|
-
|
|
1284
|
-
<files_to_read>
|
|
1285
|
-
- .planning/ROADMAP.md (Current roadmap to revise)
|
|
1286
|
-
</files_to_read>
|
|
1287
|
-
|
|
1288
|
-
Update the roadmap based on feedback. Edit files in place.
|
|
1289
|
-
Return ROADMAP REVISED with changes made.
|
|
1290
|
-
</revision>
|
|
1291
|
-
", subagent_type="planner", model="{roadmapper_model}", description="Revise roadmap")
|
|
1292
|
-
```
|
|
1293
|
-
- Present revised roadmap
|
|
1294
|
-
- Loop until user approves
|
|
1295
|
-
|
|
1296
|
-
**If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
|
|
1297
|
-
|
|
1298
|
-
**Commit roadmap (after approval or auto mode):**
|
|
1299
|
-
|
|
1300
|
-
```bash
|
|
1301
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
1302
|
-
```
|
|
1303
|
-
|
|
1304
|
-
## 8b. Create Phase Issues on GitHub
|
|
1305
|
-
|
|
1306
|
-
After the roadmap is finalized and committed, create a GitHub Issue for each phase. This is a mandatory step — phase tracking lives in GitHub, not in local `.planning/phases/` files (per WIRE-02).
|
|
1307
|
-
|
|
1308
|
-
Display banner:
|
|
1309
|
-
```
|
|
1310
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1311
|
-
MAXSIM ► CREATING GITHUB PHASE ISSUES
|
|
1312
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1313
|
-
```
|
|
1314
|
-
|
|
1315
|
-
1. Parse `.planning/ROADMAP.md` to extract all phases. For each phase, collect:
|
|
1316
|
-
- `phase_number` (e.g., `01`, `02`)
|
|
1317
|
-
- `phase_name` (e.g., "Foundation")
|
|
1318
|
-
- `goal` (the phase goal statement)
|
|
1319
|
-
- `requirements` (list of REQ-IDs mapped to this phase)
|
|
1320
|
-
- `success_criteria` (list of observable outcomes)
|
|
1321
|
-
|
|
1322
|
-
2. For each phase, run `github create-phase`:
|
|
1323
|
-
```bash
|
|
1324
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs github create-phase \
|
|
1325
|
-
--phase-number "[phase_number]" \
|
|
1326
|
-
--phase-name "[phase_name]" \
|
|
1327
|
-
--goal "[goal]"
|
|
1328
|
-
```
|
|
1329
|
-
The tool auto-adds each issue to the project board with "To Do" status.
|
|
1330
|
-
|
|
1331
|
-
3. Track results per phase. If any phase issue creation fails:
|
|
1332
|
-
- Log which phases succeeded and which failed.
|
|
1333
|
-
- Offer targeted retry for failed phases only (do not re-create successful ones).
|
|
1334
|
-
|
|
1335
|
-
4. Report completion:
|
|
1336
|
-
```
|
|
1337
|
-
✓ Created {N} phase issues on GitHub Project Board #{project_number}
|
|
1338
|
-
```
|
|
1339
|
-
|
|
1340
|
-
**Note:** Per WIRE-02, phase-level artifact files (PLAN.md, SUMMARY.md, RESEARCH.md, CONTEXT.md) are NOT created in `.planning/phases/` during init. These live exclusively as GitHub Issue comments and bodies. The following local files are still created and committed: PROJECT.md, REQUIREMENTS.md, config.json, STATE.md, ROADMAP.md.
|
|
1341
|
-
|
|
1342
|
-
## 8c. Agent Dry-Run Validation
|
|
1343
|
-
|
|
1344
|
-
**Always runs after all documents are generated — this is the quality gate for init output.**
|
|
1345
|
-
|
|
1346
|
-
Spawn a test agent to validate that all generated docs contain enough information for a fresh agent to start Phase 1 without asking clarifying questions.
|
|
1347
|
-
|
|
1348
|
-
```
|
|
1349
|
-
Task(prompt="
|
|
1350
|
-
You are a fresh agent about to start Phase 1 of this project.
|
|
1351
|
-
Read the following files and report what you would need to ask before starting work.
|
|
1352
|
-
|
|
1353
|
-
Do NOT infer missing information. If a specific library version is not stated, report it as a gap.
|
|
1354
|
-
If the error handling pattern is not described, report it as a gap.
|
|
1355
|
-
Your job is to find what is NOT written, not to demonstrate you could figure it out.
|
|
1356
|
-
|
|
1357
|
-
<files_to_read>
|
|
1358
|
-
- .planning/PROJECT.md
|
|
1359
|
-
- .planning/REQUIREMENTS.md
|
|
1360
|
-
- .planning/CONVENTIONS.md
|
|
1361
|
-
- .planning/NO-GOS.md
|
|
1362
|
-
- .planning/ROADMAP.md
|
|
1363
|
-
</files_to_read>
|
|
1364
|
-
|
|
1365
|
-
Report format:
|
|
1366
|
-
|
|
1367
|
-
## DRY-RUN RESULT
|
|
1368
|
-
|
|
1369
|
-
### Can Start: YES/NO
|
|
1370
|
-
|
|
1371
|
-
### Gaps Found:
|
|
1372
|
-
- [What information is missing]
|
|
1373
|
-
- [What is ambiguous]
|
|
1374
|
-
- [What would need clarification]
|
|
1375
|
-
|
|
1376
|
-
### Quality Score: [1-10]
|
|
1377
|
-
(10 = could start immediately with zero questions, 1 = need major clarifications)
|
|
1378
|
-
", model="{planner_model}", description="Agent readiness dry-run")
|
|
1379
|
-
```
|
|
1380
|
-
|
|
1381
|
-
**Handle dry-run results:**
|
|
1382
|
-
|
|
1383
|
-
**If gaps found (Can Start = NO or Quality Score < 7):**
|
|
1384
|
-
- For each gap, update the relevant document to fill it:
|
|
1385
|
-
- Missing tech versions → update CONVENTIONS.md Tech Stack
|
|
1386
|
-
- Missing error handling → update CONVENTIONS.md Error Handling
|
|
1387
|
-
- Ambiguous requirements → update REQUIREMENTS.md
|
|
1388
|
-
- Missing constraints → update NO-GOS.md
|
|
1389
|
-
- Commit the fixes:
|
|
1390
|
-
```bash
|
|
1391
|
-
node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: fill gaps from agent dry-run validation" --files .planning/PROJECT.md .planning/REQUIREMENTS.md .planning/CONVENTIONS.md .planning/NO-GOS.md
|
|
1392
|
-
```
|
|
1393
|
-
|
|
1394
|
-
**If no gaps (Can Start = YES and Quality Score >= 7):**
|
|
1395
|
-
- Continue to Step 9.
|
|
1396
|
-
|
|
1397
|
-
## 9. Done
|
|
1398
|
-
|
|
1399
|
-
Present completion summary:
|
|
1400
|
-
|
|
1401
|
-
```
|
|
1402
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1403
|
-
MAXSIM ► PROJECT INITIALIZED ✓
|
|
1404
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1405
|
-
|
|
1406
|
-
**[Project Name]**
|
|
1407
|
-
|
|
1408
|
-
| Artifact | Location |
|
|
1409
|
-
|----------------|-----------------------------|
|
|
1410
|
-
| Project | `.planning/PROJECT.md` |
|
|
1411
|
-
| Config | `.planning/config.json` |
|
|
1412
|
-
| Conventions | `.planning/CONVENTIONS.md` |
|
|
1413
|
-
| Research | `.planning/research/` |
|
|
1414
|
-
| Requirements | `.planning/REQUIREMENTS.md` |
|
|
1415
|
-
| Roadmap | `.planning/ROADMAP.md` |
|
|
1416
|
-
| Phase Issues | GitHub Project Board #{project_number} |
|
|
1417
|
-
|
|
1418
|
-
**[N] phases** | **[X] requirements** | **[N] GitHub issues created** | Ready to build ✓
|
|
1419
|
-
```
|
|
1420
|
-
|
|
1421
|
-
**If auto mode:**
|
|
1422
|
-
|
|
1423
|
-
```
|
|
1424
|
-
╔══════════════════════════════════════════╗
|
|
1425
|
-
║ AUTO-ADVANCING → DISCUSS PHASE 1 ║
|
|
1426
|
-
╚══════════════════════════════════════════╝
|
|
1427
|
-
```
|
|
1428
|
-
|
|
1429
|
-
Exit skill and invoke SlashCommand("/maxsim:plan 1 --auto")
|
|
1430
|
-
|
|
1431
|
-
**If interactive mode:**
|
|
1432
|
-
|
|
1433
|
-
```
|
|
1434
|
-
───────────────────────────────────────────────────────────────
|
|
1435
|
-
|
|
1436
|
-
## ▶ Next Up
|
|
1437
|
-
|
|
1438
|
-
**Phase 1: [Phase Name]** — [Goal from ROADMAP.md]
|
|
1439
|
-
|
|
1440
|
-
/maxsim:plan 1 — gather context and clarify approach
|
|
1441
|
-
|
|
1442
|
-
<sub>/clear first → fresh context window</sub>
|
|
1443
|
-
|
|
1444
|
-
---
|
|
1445
|
-
|
|
1446
|
-
**Also available:**
|
|
1447
|
-
- /maxsim:plan 1 — skip discussion, plan directly
|
|
262
|
+
Project: {project_name}
|
|
263
|
+
GitHub: {owner/repo}
|
|
264
|
+
Board: {project_name} — MAXSIM (#{PROJECT_NUMBER})
|
|
265
|
+
Milestone: Milestone 1 (#{MILESTONE_NUMBER})
|
|
266
|
+
Phases: {N} phases created (or "none yet")
|
|
1448
267
|
|
|
1449
|
-
|
|
268
|
+
Next step: /maxsim:go
|
|
1450
269
|
```
|
|
1451
270
|
|
|
1452
271
|
</process>
|
|
1453
272
|
|
|
1454
|
-
<
|
|
1455
|
-
|
|
1456
|
-
-
|
|
1457
|
-
-
|
|
1458
|
-
-
|
|
1459
|
-
-
|
|
1460
|
-
-
|
|
1461
|
-
-
|
|
1462
|
-
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
- `PITFALLS.md`
|
|
1467
|
-
- `SUMMARY.md`
|
|
1468
|
-
- `.planning/REQUIREMENTS.md`
|
|
1469
|
-
- `.planning/ROADMAP.md`
|
|
1470
|
-
- `.planning/STATE.md`
|
|
1471
|
-
|
|
1472
|
-
</output>
|
|
1473
|
-
|
|
1474
|
-
<success_criteria>
|
|
1475
|
-
|
|
1476
|
-
- [ ] .planning/ directory created
|
|
1477
|
-
- [ ] Git repo initialized
|
|
1478
|
-
- [ ] Brownfield detection completed
|
|
1479
|
-
- [ ] Deep questioning completed (threads followed, not rushed)
|
|
1480
|
-
- [ ] PROJECT.md captures full context → **committed**
|
|
1481
|
-
- [ ] config.json has workflow mode, depth, parallelization → **committed**
|
|
1482
|
-
- [ ] Research completed (if selected) — 4 parallel agents spawned → **committed**
|
|
1483
|
-
- [ ] Requirements gathered (from research or conversation)
|
|
1484
|
-
- [ ] User scoped each category (v1/v2/out of scope)
|
|
1485
|
-
- [ ] REQUIREMENTS.md created with REQ-IDs → **committed**
|
|
1486
|
-
- [ ] GitHub remote detected (gate passed)
|
|
1487
|
-
- [ ] GitHub CLI authenticated (gate passed)
|
|
1488
|
-
- [ ] `github setup` called successfully — project_number recorded
|
|
1489
|
-
- [ ] planner (roadmap mode) spawned with context
|
|
1490
|
-
- [ ] Roadmap files written immediately (not draft)
|
|
1491
|
-
- [ ] User feedback incorporated (if any)
|
|
1492
|
-
- [ ] ROADMAP.md created with phases, requirement mappings, success criteria
|
|
1493
|
-
- [ ] STATE.md initialized
|
|
1494
|
-
- [ ] REQUIREMENTS.md traceability updated
|
|
1495
|
-
- [ ] CONVENTIONS.md generated with 4 must-have sections (Tech Stack, File Layout, Error Handling, Testing)
|
|
1496
|
-
- [ ] NO-GOS.md populated from confirmed no-gos during questioning
|
|
1497
|
-
- [ ] `github create-phase` called for every phase — all issues on board with "To Do" status
|
|
1498
|
-
- [ ] Agent dry-run validation passed (Quality Score >= 7)
|
|
1499
|
-
- [ ] User knows next step is `/maxsim:plan 1`
|
|
1500
|
-
|
|
1501
|
-
**Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
|
|
1502
|
-
|
|
1503
|
-
</success_criteria>
|
|
273
|
+
<constraints>
|
|
274
|
+
- Tool name is Agent (NOT Task)
|
|
275
|
+
- No SlashCommand tool
|
|
276
|
+
- GitHub Issues is the SOLE source of truth — no local .planning/ directory
|
|
277
|
+
- Use `node ~/.claude/maxsim/bin/maxsim-tools.cjs` for CLI operations
|
|
278
|
+
- EnterPlanMode must be used before any code-modifying execution steps
|
|
279
|
+
- Agent spawning uses: Agent tool with isolation:"worktree", run_in_background:true (for parallel research) or run_in_background:false (for sequential work)
|
|
280
|
+
- Self-contained agent prompts — include all context the agent needs inline
|
|
281
|
+
- Maximum 4 questions per AskUserQuestion call
|
|
282
|
+
- Skip interview questions already answered by scan findings
|
|
283
|
+
- Do not read actual .env files — only .env.example or documented equivalents
|
|
284
|
+
</constraints>
|