maxsimcli 3.12.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapters/index.d.ts +0 -11
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +4 -40
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/assets/CHANGELOG.md +17 -0
  7. package/dist/assets/dashboard/client/assets/{index-wtQDvXzr.js → index-C_eAetZJ.js} +60 -60
  8. package/dist/assets/dashboard/client/assets/index-CmiJKqOU.css +32 -0
  9. package/dist/assets/dashboard/client/index.html +2 -2
  10. package/dist/assets/dashboard/server.js +467 -271
  11. package/dist/assets/templates/agents/AGENTS.md +13 -1
  12. package/dist/assets/templates/agents/maxsim-debugger.md +2 -2
  13. package/dist/assets/templates/agents/maxsim-executor.md +5 -5
  14. package/dist/assets/templates/agents/maxsim-phase-researcher.md +2 -2
  15. package/dist/assets/templates/agents/maxsim-plan-checker.md +2 -2
  16. package/dist/assets/templates/agents/maxsim-planner.md +3 -3
  17. package/dist/assets/templates/commands/maxsim/add-todo.md +15 -5
  18. package/dist/assets/templates/commands/maxsim/discuss-phase.md +1 -0
  19. package/dist/assets/templates/commands/maxsim/init-existing.md +4 -0
  20. package/dist/assets/templates/commands/maxsim/new-project.md +4 -0
  21. package/dist/assets/templates/references/thinking-partner.md +41 -0
  22. package/dist/assets/templates/skills/batch-worktree/SKILL.md +137 -0
  23. package/dist/assets/templates/skills/brainstorming/SKILL.md +159 -0
  24. package/dist/assets/templates/skills/roadmap-writing/SKILL.md +198 -0
  25. package/dist/assets/templates/skills/sdd/SKILL.md +175 -0
  26. package/dist/assets/templates/skills/simplify/SKILL.md +48 -0
  27. package/dist/assets/templates/skills/using-maxsim/SKILL.md +6 -1
  28. package/dist/assets/templates/templates/acceptance-criteria.md +10 -0
  29. package/dist/assets/templates/templates/decisions.md +10 -0
  30. package/dist/assets/templates/templates/no-gos.md +9 -0
  31. package/dist/assets/templates/workflows/add-todo.md +89 -0
  32. package/dist/assets/templates/workflows/discuss-phase.md +85 -1
  33. package/dist/assets/templates/workflows/execute-phase.md +22 -2
  34. package/dist/assets/templates/workflows/execute-plan.md +166 -0
  35. package/dist/assets/templates/workflows/init-existing.md +116 -0
  36. package/dist/assets/templates/workflows/new-project.md +105 -1
  37. package/dist/assets/templates/workflows/plan-phase.md +3 -3
  38. package/dist/assets/templates/workflows/quick.md +2 -2
  39. package/dist/cli.cjs +1264 -882
  40. package/dist/cli.cjs.map +1 -1
  41. package/dist/cli.js +97 -74
  42. package/dist/cli.js.map +1 -1
  43. package/dist/core/artefakte.d.ts +12 -0
  44. package/dist/core/artefakte.d.ts.map +1 -0
  45. package/dist/core/artefakte.js +136 -0
  46. package/dist/core/artefakte.js.map +1 -0
  47. package/dist/core/commands.d.ts +13 -13
  48. package/dist/core/commands.d.ts.map +1 -1
  49. package/dist/core/commands.js +44 -57
  50. package/dist/core/commands.js.map +1 -1
  51. package/dist/core/config.d.ts +4 -3
  52. package/dist/core/config.d.ts.map +1 -1
  53. package/dist/core/config.js +14 -18
  54. package/dist/core/config.js.map +1 -1
  55. package/dist/core/context-loader.d.ts +20 -0
  56. package/dist/core/context-loader.d.ts.map +1 -0
  57. package/dist/core/context-loader.js +154 -0
  58. package/dist/core/context-loader.js.map +1 -0
  59. package/dist/core/core.d.ts +8 -2
  60. package/dist/core/core.d.ts.map +1 -1
  61. package/dist/core/core.js +47 -11
  62. package/dist/core/core.js.map +1 -1
  63. package/dist/core/dashboard-launcher.d.ts +1 -1
  64. package/dist/core/dashboard-launcher.d.ts.map +1 -1
  65. package/dist/core/dashboard-launcher.js +18 -15
  66. package/dist/core/dashboard-launcher.js.map +1 -1
  67. package/dist/core/frontmatter.d.ts +5 -5
  68. package/dist/core/frontmatter.d.ts.map +1 -1
  69. package/dist/core/frontmatter.js +21 -26
  70. package/dist/core/frontmatter.js.map +1 -1
  71. package/dist/core/index.d.ts +8 -3
  72. package/dist/core/index.d.ts.map +1 -1
  73. package/dist/core/index.js +23 -3
  74. package/dist/core/index.js.map +1 -1
  75. package/dist/core/init.d.ts +14 -14
  76. package/dist/core/init.d.ts.map +1 -1
  77. package/dist/core/init.js +93 -154
  78. package/dist/core/init.js.map +1 -1
  79. package/dist/core/milestone.d.ts +3 -3
  80. package/dist/core/milestone.d.ts.map +1 -1
  81. package/dist/core/milestone.js +9 -9
  82. package/dist/core/milestone.js.map +1 -1
  83. package/dist/core/phase.d.ts +9 -9
  84. package/dist/core/phase.d.ts.map +1 -1
  85. package/dist/core/phase.js +64 -68
  86. package/dist/core/phase.js.map +1 -1
  87. package/dist/core/roadmap.d.ts +4 -3
  88. package/dist/core/roadmap.d.ts.map +1 -1
  89. package/dist/core/roadmap.js +46 -109
  90. package/dist/core/roadmap.js.map +1 -1
  91. package/dist/core/skills.d.ts +19 -0
  92. package/dist/core/skills.d.ts.map +1 -0
  93. package/dist/core/skills.js +145 -0
  94. package/dist/core/skills.js.map +1 -0
  95. package/dist/core/start.d.ts +15 -0
  96. package/dist/core/start.d.ts.map +1 -0
  97. package/dist/core/start.js +80 -0
  98. package/dist/core/start.js.map +1 -0
  99. package/dist/core/state.d.ts +13 -13
  100. package/dist/core/state.d.ts.map +1 -1
  101. package/dist/core/state.js +119 -126
  102. package/dist/core/state.js.map +1 -1
  103. package/dist/core/template.d.ts +3 -3
  104. package/dist/core/template.d.ts.map +1 -1
  105. package/dist/core/template.js +12 -14
  106. package/dist/core/template.js.map +1 -1
  107. package/dist/core/types.d.ts +14 -2
  108. package/dist/core/types.d.ts.map +1 -1
  109. package/dist/core/types.js +8 -0
  110. package/dist/core/types.js.map +1 -1
  111. package/dist/core/verify.d.ts +10 -9
  112. package/dist/core/verify.d.ts.map +1 -1
  113. package/dist/core/verify.js +38 -48
  114. package/dist/core/verify.js.map +1 -1
  115. package/dist/core-TFSlUjV1.cjs +4312 -0
  116. package/dist/core-TFSlUjV1.cjs.map +1 -0
  117. package/dist/install/adapters.d.ts +2 -11
  118. package/dist/install/adapters.d.ts.map +1 -1
  119. package/dist/install/adapters.js +16 -154
  120. package/dist/install/adapters.js.map +1 -1
  121. package/dist/install/copy.d.ts +1 -10
  122. package/dist/install/copy.d.ts.map +1 -1
  123. package/dist/install/copy.js +5 -125
  124. package/dist/install/copy.js.map +1 -1
  125. package/dist/install/hooks.d.ts +4 -5
  126. package/dist/install/hooks.d.ts.map +1 -1
  127. package/dist/install/hooks.js +46 -71
  128. package/dist/install/hooks.js.map +1 -1
  129. package/dist/install/index.js +163 -226
  130. package/dist/install/index.js.map +1 -1
  131. package/dist/install/manifest.d.ts +5 -2
  132. package/dist/install/manifest.d.ts.map +1 -1
  133. package/dist/install/manifest.js +20 -26
  134. package/dist/install/manifest.js.map +1 -1
  135. package/dist/install/patches.d.ts +1 -2
  136. package/dist/install/patches.d.ts.map +1 -1
  137. package/dist/install/patches.js +4 -16
  138. package/dist/install/patches.js.map +1 -1
  139. package/dist/install/shared.d.ts +24 -18
  140. package/dist/install/shared.d.ts.map +1 -1
  141. package/dist/install/shared.js +65 -35
  142. package/dist/install/shared.js.map +1 -1
  143. package/dist/install/uninstall.d.ts +2 -3
  144. package/dist/install/uninstall.d.ts.map +1 -1
  145. package/dist/install/uninstall.js +24 -82
  146. package/dist/install/uninstall.js.map +1 -1
  147. package/dist/install.cjs +321 -1230
  148. package/dist/install.cjs.map +1 -1
  149. package/dist/mcp-server.cjs +38 -14
  150. package/dist/mcp-server.cjs.map +1 -1
  151. package/dist/skills-BOSxYUzf.cjs +6812 -0
  152. package/dist/skills-BOSxYUzf.cjs.map +1 -0
  153. package/package.json +1 -1
  154. package/dist/adapters/codex.d.ts +0 -19
  155. package/dist/adapters/codex.d.ts.map +0 -1
  156. package/dist/adapters/codex.js +0 -94
  157. package/dist/adapters/codex.js.map +0 -1
  158. package/dist/adapters/gemini.d.ts +0 -19
  159. package/dist/adapters/gemini.d.ts.map +0 -1
  160. package/dist/adapters/gemini.js +0 -96
  161. package/dist/adapters/gemini.js.map +0 -1
  162. package/dist/adapters/opencode.d.ts +0 -17
  163. package/dist/adapters/opencode.d.ts.map +0 -1
  164. package/dist/adapters/opencode.js +0 -111
  165. package/dist/adapters/opencode.js.map +0 -1
  166. package/dist/adapters/transforms/content.d.ts +0 -39
  167. package/dist/adapters/transforms/content.d.ts.map +0 -1
  168. package/dist/adapters/transforms/content.js +0 -125
  169. package/dist/adapters/transforms/content.js.map +0 -1
  170. package/dist/adapters/transforms/frontmatter.d.ts +0 -42
  171. package/dist/adapters/transforms/frontmatter.d.ts.map +0 -1
  172. package/dist/adapters/transforms/frontmatter.js +0 -204
  173. package/dist/adapters/transforms/frontmatter.js.map +0 -1
  174. package/dist/adapters/transforms/tool-maps.d.ts +0 -20
  175. package/dist/adapters/transforms/tool-maps.d.ts.map +0 -1
  176. package/dist/adapters/transforms/tool-maps.js +0 -64
  177. package/dist/adapters/transforms/tool-maps.js.map +0 -1
  178. package/dist/assets/dashboard/client/assets/index-CxFKStBk.css +0 -32
@@ -8,6 +8,14 @@ When a MAXSIM agent is spawned, it checks this registry to determine which skill
8
8
 
9
9
  Agents load skills by reading `SKILL.md` from each skill directory listed in their entry below. Skills are loaded once at agent startup and enforced throughout the session.
10
10
 
11
+ ### Auto-Trigger Skills
12
+
13
+ Skills with `alwaysApply: true` in their frontmatter are loaded automatically at the start of every conversation, without requiring an explicit command or agent spawn. This ensures foundational workflow rules are always active.
14
+
15
+ | Skill | Purpose |
16
+ |-------|---------|
17
+ | `using-maxsim` | Routes all work through MAXSIM commands — prevents ad-hoc coding without plans |
18
+
11
19
  ## Registry
12
20
 
13
21
  ### maxsim-executor
@@ -71,8 +79,12 @@ The integration checker validates cross-component wiring. Verification ensures i
71
79
  | `systematic-debugging` | `skills/systematic-debugging/` | Root cause investigation before fixes |
72
80
  | `tdd` | `skills/tdd/` | Failing test before implementation |
73
81
  | `verification-before-completion` | `skills/verification-before-completion/` | Evidence before completion claims |
74
- | `using-maxsim` | `skills/using-maxsim/` | Workflow routing and structure |
82
+ | `using-maxsim` | `skills/using-maxsim/` | Workflow routing and structure (alwaysApply) |
75
83
  | `memory-management` | `skills/memory-management/` | Pattern and error persistence |
84
+ | `brainstorming` | `skills/brainstorming/` | Multi-approach exploration before design |
85
+ | `roadmap-writing` | `skills/roadmap-writing/` | Phased planning with success criteria |
86
+ | `simplify` | `skills/simplify/` | Code simplification and cleanup |
87
+ | `code-review` | `skills/code-review/` | Implementation quality review |
76
88
 
77
89
  ## Adding New Skills
78
90
 
@@ -1273,8 +1273,8 @@ When any trigger condition below applies, read the full skill file via the Read
1273
1273
 
1274
1274
  | Skill | Read | Trigger |
1275
1275
  |-------|------|---------|
1276
- | Systematic Debugging | `.agents/skills/systematic-debugging/SKILL.md` | Always — you are a debugger, this is your primary skill |
1277
- | Verification Before Completion | `.agents/skills/verification-before-completion/SKILL.md` | Before claiming a bug is fixed or a debug session is complete |
1276
+ | Systematic Debugging | `.skills/systematic-debugging/SKILL.md` | Always — you are a debugger, this is your primary skill |
1277
+ | Verification Before Completion | `.skills/verification-before-completion/SKILL.md` | Before claiming a bug is fixed or a debug session is complete |
1278
1278
 
1279
1279
  **Project skills override built-in skills.**
1280
1280
 
@@ -23,7 +23,7 @@ Before executing, discover project context:
23
23
 
24
24
  **Self-improvement lessons:** Read `.planning/LESSONS.md` if it exists — accumulated lessons from past executions on this codebase. Apply them proactively to avoid known mistakes before they become deviations.
25
25
 
26
- **Project skills:** Check `.agents/skills/` directory if it exists:
26
+ **Project skills:** Check `.skills/` directory if it exists:
27
27
  1. List available skills (subdirectories)
28
28
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
29
29
  3. Load specific `rules/*.md` files as needed during implementation
@@ -612,11 +612,11 @@ Do not rely on memory of the skill content — always read the file fresh.
612
612
 
613
613
  | Skill | Read | Trigger |
614
614
  |-------|------|---------|
615
- | TDD Enforcement | `.agents/skills/tdd/SKILL.md` | Before writing implementation code for a new feature, bug fix, or when plan type is `tdd` |
616
- | Systematic Debugging | `.agents/skills/systematic-debugging/SKILL.md` | When encountering any bug, test failure, or unexpected behavior during execution |
617
- | Verification Before Completion | `.agents/skills/verification-before-completion/SKILL.md` | Before claiming any task is done, fixed, or passing |
615
+ | TDD Enforcement | `.skills/tdd/SKILL.md` | Before writing implementation code for a new feature, bug fix, or when plan type is `tdd` |
616
+ | Systematic Debugging | `.skills/systematic-debugging/SKILL.md` | When encountering any bug, test failure, or unexpected behavior during execution |
617
+ | Verification Before Completion | `.skills/verification-before-completion/SKILL.md` | Before claiming any task is done, fixed, or passing |
618
618
 
619
- **Project skills override built-in skills.** If a skill with the same name exists in `.agents/skills/` in the project, load that one instead.
619
+ **Project skills override built-in skills.** If a skill with the same name exists in `.skills/` in the project, load that one instead.
620
620
 
621
621
  </available_skills>
622
622
 
@@ -26,7 +26,7 @@ Before researching, discover project context:
26
26
 
27
27
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
28
28
 
29
- **Project skills:** Check `.agents/skills/` directory if it exists:
29
+ **Project skills:** Check `.skills/` directory if it exists:
30
30
  1. List available skills (subdirectories)
31
31
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
32
32
  3. Load specific `rules/*.md` files as needed during research
@@ -559,7 +559,7 @@ When any trigger condition below applies, read the full skill file via the Read
559
559
 
560
560
  | Skill | Read | Trigger |
561
561
  |-------|------|---------|
562
- | Verification Before Completion | `.agents/skills/verification-before-completion/SKILL.md` | Before concluding research with confidence ratings |
562
+ | Verification Before Completion | `.skills/verification-before-completion/SKILL.md` | Before concluding research with confidence ratings |
563
563
 
564
564
  **Project skills override built-in skills.**
565
565
 
@@ -33,7 +33,7 @@ Before verifying, discover project context:
33
33
 
34
34
  **Self-improvement lessons:** Read `.planning/LESSONS.md` if it exists — accumulated lessons from past executions. Use planning insights as an additional verification dimension: flag plans that repeat known gap patterns or ignore documented codebase conventions.
35
35
 
36
- **Project skills:** Check `.agents/skills/` directory if it exists:
36
+ **Project skills:** Check `.skills/` directory if it exists:
37
37
  1. List available skills (subdirectories)
38
38
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
39
39
  3. Load specific `rules/*.md` files as needed during verification
@@ -707,7 +707,7 @@ When any trigger condition below applies, read the full skill file via the Read
707
707
 
708
708
  | Skill | Read | Trigger |
709
709
  |-------|------|---------|
710
- | Verification Before Completion | `.agents/skills/verification-before-completion/SKILL.md` | Before issuing final PASS/FAIL verdict on a plan |
710
+ | Verification Before Completion | `.skills/verification-before-completion/SKILL.md` | Before issuing final PASS/FAIL verdict on a plan |
711
711
 
712
712
  **Project skills override built-in skills.**
713
713
 
@@ -35,7 +35,7 @@ Before planning, discover project context:
35
35
 
36
36
  **Self-improvement lessons:** Read `.planning/LESSONS.md` if it exists — accumulated lessons from past executions on this codebase. Apply planning insights proactively: avoid known gaps, include wiring tasks for patterns that historically broke, reference codebase-specific conventions in task actions.
37
37
 
38
- **Project skills:** Check `.agents/skills/` directory if it exists:
38
+ **Project skills:** Check `.skills/` directory if it exists:
39
39
  1. List available skills (subdirectories)
40
40
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
41
41
  3. Load specific `rules/*.md` files as needed during planning
@@ -1199,8 +1199,8 @@ When any trigger condition below applies, read the full skill file via the Read
1199
1199
 
1200
1200
  | Skill | Read | Trigger |
1201
1201
  |-------|------|---------|
1202
- | TDD Enforcement | `.agents/skills/tdd/SKILL.md` | When identifying TDD candidates during task breakdown |
1203
- | Verification Before Completion | `.agents/skills/verification-before-completion/SKILL.md` | When writing <verify> sections for tasks |
1202
+ | TDD Enforcement | `.skills/tdd/SKILL.md` | When identifying TDD candidates during task breakdown |
1203
+ | Verification Before Completion | `.skills/verification-before-completion/SKILL.md` | When writing <verify> sections for tasks |
1204
1204
 
1205
1205
  **Project skills override built-in skills.**
1206
1206
 
@@ -12,11 +12,16 @@ allowed-tools:
12
12
  <objective>
13
13
  Capture an idea, task, or issue that surfaces during a MAXSIM session as a structured todo for later work.
14
14
 
15
+ **Modes:**
16
+ - **Quick mode (default):** Fast capture — extract, file, commit. Use when the todo is clear.
17
+ - **Discussion mode (`--discuss`):** Collaborative thinking for complex todos — clarify scope, surface assumptions, explore approach before filing. 20-30 min max.
18
+
15
19
  Routes to the add-todo workflow which handles:
16
20
  - Directory structure creation
17
21
  - Content extraction from arguments or conversation
18
22
  - Area inference from file paths
19
23
  - Duplicate detection and resolution
24
+ - Discussion mode for complex todos (optional)
20
25
  - Todo file creation with frontmatter
21
26
  - STATE.md updates
22
27
  - Git commits
@@ -24,11 +29,15 @@ Routes to the add-todo workflow which handles:
24
29
 
25
30
  <execution_context>
26
31
  @./workflows/add-todo.md
32
+ @./references/thinking-partner.md
27
33
  </execution_context>
28
34
 
29
35
  <context>
30
36
  Arguments: $ARGUMENTS (optional todo description)
31
37
 
38
+ **Flags:**
39
+ - `--discuss` — Enter discussion mode for complex todos. Clarify scope and approach before filing.
40
+
32
41
  State is resolved in-workflow via `init todos` and targeted reads.
33
42
  </context>
34
43
 
@@ -39,9 +48,10 @@ The workflow handles all logic including:
39
48
  1. Directory ensuring
40
49
  2. Existing area checking
41
50
  3. Content extraction (arguments or conversation)
42
- 4. Area inference
43
- 5. Duplicate checking
44
- 6. File creation with slug generation
45
- 7. STATE.md updates
46
- 8. Git commits
51
+ 4. Discussion mode (if `--discuss` flag or complexity detected)
52
+ 5. Area inference
53
+ 6. Duplicate checking
54
+ 7. File creation with slug generation
55
+ 8. STATE.md updates
56
+ 9. Git commits
47
57
  </process>
@@ -29,6 +29,7 @@ Every single question to the user MUST use the `AskUserQuestion` tool. NEVER ask
29
29
 
30
30
  <execution_context>
31
31
  @./workflows/discuss-phase.md
32
+ @./references/thinking-partner.md
32
33
  @./templates/context.md
33
34
  </execution_context>
34
35
 
@@ -24,6 +24,9 @@ Initialize MAXSIM in an existing codebase through scan-first flow: codebase anal
24
24
  - `.planning/REQUIREMENTS.md` — stage-aware requirements
25
25
  - `.planning/ROADMAP.md` — milestone + suggested phases
26
26
  - `.planning/STATE.md` — pre-populated project memory
27
+ - `.planning/DECISIONS.md` — key decisions with rationale (artefakte)
28
+ - `.planning/ACCEPTANCE-CRITERIA.md` — measurable success criteria (artefakte)
29
+ - `.planning/NO-GOS.md` — explicit exclusions and anti-patterns (artefakte)
27
30
 
28
31
  **After this command:** Run `/maxsim:plan-phase 1` to start execution.
29
32
  </objective>
@@ -31,6 +34,7 @@ Initialize MAXSIM in an existing codebase through scan-first flow: codebase anal
31
34
  <execution_context>
32
35
  @./workflows/init-existing.md
33
36
  @./references/questioning.md
37
+ @./references/thinking-partner.md
34
38
  @./references/ui-brand.md
35
39
  @./templates/project.md
36
40
  @./templates/requirements.md
@@ -24,6 +24,9 @@ Initialize a new project through unified flow: questioning → research (optiona
24
24
  - `.planning/REQUIREMENTS.md` — scoped requirements
25
25
  - `.planning/ROADMAP.md` — phase structure
26
26
  - `.planning/STATE.md` — project memory
27
+ - `.planning/DECISIONS.md` — key decisions with rationale (artefakte)
28
+ - `.planning/ACCEPTANCE-CRITERIA.md` — measurable success criteria (artefakte)
29
+ - `.planning/NO-GOS.md` — explicit exclusions and anti-patterns (artefakte)
27
30
 
28
31
  **After this command:** Run `/maxsim:plan-phase 1` to start execution.
29
32
  </objective>
@@ -31,6 +34,7 @@ Initialize a new project through unified flow: questioning → research (optiona
31
34
  <execution_context>
32
35
  @./workflows/new-project.md
33
36
  @./references/questioning.md
37
+ @./references/thinking-partner.md
34
38
  @./references/ui-brand.md
35
39
  @./templates/project.md
36
40
  @./templates/requirements.md
@@ -0,0 +1,41 @@
1
+ <thinking_partner>
2
+
3
+ You are a thinking partner, not a task executor. Your role is to help the user arrive at better decisions through collaborative reasoning.
4
+
5
+ <core_behaviors>
6
+
7
+ **Challenge vague answers.** When the user says something unclear, don't accept it. Push for specifics. "Good UX" means what? "It should be fast" — fast how? "Users need X" — which users, doing what?
8
+
9
+ **Surface unstated assumptions.** The user often assumes things without realizing it. Name the assumption: "You're assuming users will sign up before browsing — is that intentional?" "This assumes a single-tenant architecture — is that the plan?"
10
+
11
+ **Propose alternatives with trade-offs.** Don't just accept the first approach. Offer 2-3 alternatives with clear trade-offs: "Option A is simpler but limits future X. Option B handles X but adds complexity in Y. Option C splits the difference but needs Z." Let the user weigh the trade-offs.
12
+
13
+ **Suggest directions, don't dictate.** Frame suggestions as possibilities: "Have you considered...?" "One approach would be..." "What if instead of X, you Y?" The user decides. You illuminate paths.
14
+
15
+ **Make consequences visible.** When a decision has downstream effects, name them: "If we go with X, that means Y and Z will need to change too." "This locks us into A — are you comfortable with that?"
16
+
17
+ **Disagree constructively.** If you see a problem with the user's direction, say so: "I see a risk with that approach — [specific concern]. How do you want to handle it?" Don't just comply. Don't lecture either.
18
+
19
+ </core_behaviors>
20
+
21
+ <conversation_style>
22
+
23
+ - **Follow the thread.** Build on what the user just said. Don't jump topics.
24
+ - **Be concise.** Short, pointed questions beat long-winded explanations.
25
+ - **React to energy.** If the user is excited about something, explore it. If they're uncertain, help them get clarity.
26
+ - **One thing at a time.** Don't overload with multiple questions. Focus on the most important open question.
27
+ - **Name the tension.** When trade-offs exist, state them directly: "The tension here is between X and Y."
28
+
29
+ </conversation_style>
30
+
31
+ <anti_patterns>
32
+
33
+ - **Rubber-stamping** — agreeing with everything without pushback
34
+ - **Interrogation mode** — firing questions without building on answers
35
+ - **Over-qualifying** — "it depends" without narrowing what it depends on
36
+ - **Premature solutions** — jumping to implementation before understanding the problem
37
+ - **Passive compliance** — doing exactly what's asked without flagging concerns
38
+
39
+ </anti_patterns>
40
+
41
+ </thinking_partner>
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: batch-worktree
3
+ description: Orchestrate parallel work across isolated git worktrees with independent PRs
4
+ ---
5
+
6
+ # Batch Worktree
7
+
8
+ Decompose large tasks into independent units, execute each in an isolated worktree, and produce one PR per unit.
9
+
10
+ **If units share overlapping files, you cannot parallelize them. Serialize or redesign.**
11
+
12
+ ## When to Use
13
+
14
+ - The task is decomposable into 5-30 independent units
15
+ - Each unit can be implemented, tested, and merged independently
16
+ - Units touch non-overlapping files (no merge conflicts between units)
17
+ - You want parallel execution with isolated git state per unit
18
+
19
+ Do NOT use this skill when:
20
+ - Units have sequential dependencies (use SDD instead)
21
+ - The task has fewer than 3 units (overhead is not worth it)
22
+ - Units modify the same files (merge conflicts will block you)
23
+
24
+ ## The Iron Law
25
+
26
+ <HARD-GATE>
27
+ EVERY UNIT MUST BE INDEPENDENTLY MERGEABLE.
28
+ If merging unit A would break the build without unit B, they are not independent — combine them or serialize them.
29
+ No exceptions. No "we'll merge them in order." No "it'll probably be fine."
30
+ Violating this rule produces unmergeable PRs — wasted work.
31
+ </HARD-GATE>
32
+
33
+ ## Process
34
+
35
+ ### 1. DECOMPOSE — Split Task into Independent Units
36
+
37
+ - List all units with a clear one-line description each
38
+ - For each unit, list the files it will create or modify
39
+ - Verify NO file appears in more than one unit
40
+ - If overlap exists: merge the overlapping units into one, or extract shared code into a prerequisite unit that runs first
41
+
42
+ ```bash
43
+ # Document the decomposition
44
+ node .claude/maxsim/bin/maxsim-tools.cjs state-add-decision "Batch decomposition: N units identified, no file overlap confirmed"
45
+ ```
46
+
47
+ ### 2. VALIDATE — Confirm Independence
48
+
49
+ For each pair of units, verify:
50
+ - No shared file modifications
51
+ - No runtime dependency (unit A's output is not unit B's input)
52
+ - Each unit's tests pass without the other unit's changes
53
+
54
+ If validation fails: redesign the decomposition. Do not proceed with overlapping units.
55
+
56
+ ### 3. SPAWN — Create Worktree Per Unit
57
+
58
+ For each unit, create an isolated worktree and spawn an agent:
59
+
60
+ ```bash
61
+ # Create worktree branch for each unit
62
+ git worktree add .claude/worktrees/unit-NN unit/NN-description -b unit/NN-description
63
+ ```
64
+
65
+ Spawn one agent per unit with `isolation: "worktree"`. Each agent receives:
66
+ - The unit description and acceptance criteria
67
+ - The list of files it owns (and ONLY those files)
68
+ - The base branch to branch from
69
+ - Instructions to: implement, test, commit, push, create PR
70
+
71
+ ### 4. EXECUTE — Each Agent Works Independently
72
+
73
+ Each spawned agent follows this sequence:
74
+ 1. Read the unit description and relevant source files
75
+ 2. Implement the changes (apply TDD or simplify skills as configured)
76
+ 3. Run tests — all must pass
77
+ 4. Commit with a descriptive message referencing the unit
78
+ 5. Push the branch
79
+ 6. Create a PR with unit description as the body
80
+
81
+ ### 5. TRACK — Monitor Progress
82
+
83
+ Maintain a status table and update it as agents report back:
84
+
85
+ ```markdown
86
+ | # | Unit | Status | PR |
87
+ |---|------|--------|----|
88
+ | 1 | description | done | #123 |
89
+ | 2 | description | in-progress | — |
90
+ | 3 | description | failed | — |
91
+ ```
92
+
93
+ Statuses: `pending`, `in-progress`, `done`, `failed`, `needs-review`
94
+
95
+ ### 6. REPORT — Collect Results
96
+
97
+ When all units complete:
98
+ - List all created PRs
99
+ - Flag any failed units with error summaries
100
+ - If any unit failed: spawn a fix agent for that unit only
101
+
102
+ ## Handling Failures
103
+
104
+ | Situation | Action |
105
+ |-----------|--------|
106
+ | Unit fails tests | Spawn a fix agent in the same worktree |
107
+ | Unit has merge conflict | The decomposition was wrong — fix overlap, re-run unit |
108
+ | Agent times out | Re-spawn with the same unit description |
109
+ | 3+ failures on same unit | Stop and escalate to user — likely an architectural issue |
110
+
111
+ ## Common Rationalizations — REJECT THESE
112
+
113
+ | Excuse | Why It Violates the Rule |
114
+ |--------|--------------------------|
115
+ | "The overlap is minor" | Minor overlap = merge conflicts. Split the shared code into a prerequisite unit. |
116
+ | "We'll merge in the right order" | Order-dependent merges are not independent. Serialize those units. |
117
+ | "It's faster to do them all in one branch" | One branch means one context window. Worktrees give each unit fresh context. |
118
+ | "Only 2 units, let's still use worktrees" | Worktree overhead is not worth it for <3 units. Use sequential execution. |
119
+
120
+ ## Verification Checklist
121
+
122
+ Before reporting completion, confirm:
123
+
124
+ - [ ] All units were verified to touch non-overlapping files
125
+ - [ ] Each unit was implemented in an isolated worktree
126
+ - [ ] Each unit's tests pass independently
127
+ - [ ] Each unit has its own PR
128
+ - [ ] No PR depends on another PR being merged first
129
+ - [ ] Status table is complete with all PR links
130
+
131
+ ## In MAXSIM Plan Execution
132
+
133
+ When a plan specifies `skill: "batch-worktree"`:
134
+ - The orchestrator decomposes the plan's tasks into independent units
135
+ - Each unit becomes a worktree agent with its own branch and PR
136
+ - The orchestrator tracks progress and reports the final PR list in SUMMARY.md
137
+ - Failed units are retried once before escalating
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: brainstorming
3
+ description: Use before implementing any significant feature or design — requires exploring multiple approaches and getting explicit design approval before writing code
4
+ ---
5
+
6
+ # Brainstorming
7
+
8
+ The first idea is rarely the best idea. Explore the space before committing to a direction.
9
+
10
+ **If you have not considered alternatives, you are building the first thing that came to mind.**
11
+
12
+ ## The Iron Law
13
+
14
+ <HARD-GATE>
15
+ NO IMPLEMENTATION WITHOUT DESIGN APPROVAL.
16
+ If you have not presented approaches, discussed trade-offs, and received explicit approval, you CANNOT write implementation code.
17
+ "I already know the best approach" is an assumption, not a conclusion.
18
+ Violating this rule is a violation — not a judgment call.
19
+ </HARD-GATE>
20
+
21
+ ## The Gate Function
22
+
23
+ Follow these steps IN ORDER before implementing any significant feature, architecture change, or design decision.
24
+
25
+ ### 1. FRAME — Define the Problem
26
+
27
+ Ask the user ONE question at a time to understand the problem space. Do not bundle multiple questions — each response informs the next question.
28
+
29
+ - What is the goal? What does success look like?
30
+ - What are the constraints (performance, compatibility, timeline)?
31
+ - What has already been tried or considered?
32
+ - What are the non-negotiables vs. nice-to-haves?
33
+
34
+ **Rule: ONE question at a time. Wait for the answer before asking the next.**
35
+
36
+ ### 2. RESEARCH — Understand the Context
37
+
38
+ Before proposing solutions, gather evidence:
39
+
40
+ - Read the relevant code and understand current architecture
41
+ - Check `.planning/` for existing decisions and constraints
42
+ - Review ROADMAP.md for phase dependencies and scope
43
+ - Identify related patterns already in the codebase
44
+
45
+ ```bash
46
+ # Check existing decisions
47
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs state read --raw
48
+
49
+ # Check current roadmap context
50
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap read --raw
51
+ ```
52
+
53
+ ### 3. PROPOSE — Present 2-3 Approaches
54
+
55
+ For each approach, provide:
56
+
57
+ | Aspect | What to Include |
58
+ |--------|----------------|
59
+ | **Summary** | One-sentence description of the approach |
60
+ | **How it works** | Key implementation steps (3-5 bullets) |
61
+ | **Pros** | Concrete advantages — not vague ("simpler" is vague, "200 fewer lines" is concrete) |
62
+ | **Cons** | Honest drawbacks — do not hide weaknesses to sell a preferred option |
63
+ | **Effort** | Relative complexity (low / medium / high) |
64
+ | **Risk** | What could go wrong and how recoverable is it |
65
+
66
+ **Present exactly 2-3 approaches.** One option is not brainstorming. Four or more creates decision paralysis.
67
+
68
+ If one approach is clearly superior, say so — but still present alternatives so the user can validate your reasoning.
69
+
70
+ ### 4. DISCUSS — Refine with the User
71
+
72
+ - Ask the user which approach they prefer (or if they want a hybrid)
73
+ - Answer follow-up questions honestly — do not advocate for a single approach
74
+ - If the user raises concerns, address them specifically
75
+ - If no approach fits, propose new ones informed by the discussion
76
+
77
+ **Continue ONE question at a time. Do not assume consensus until stated.**
78
+
79
+ ### 5. DECIDE — Get Explicit Approval
80
+
81
+ The user must explicitly approve the chosen approach. Acceptable approvals:
82
+
83
+ - "Go with approach A"
84
+ - "Let's do option 2"
85
+ - "Approved" / "LGTM" / "Ship it"
86
+
87
+ Not acceptable as approval:
88
+
89
+ - "Sounds good" (too vague — clarify which approach)
90
+ - "Interesting" (not a decision)
91
+ - Silence (not consent)
92
+
93
+ **If approval is ambiguous, ask: "To confirm — should I proceed with [specific approach]?"**
94
+
95
+ ### 6. DOCUMENT — Record the Decision
96
+
97
+ After approval, write a design doc and record the decision:
98
+
99
+ ```bash
100
+ # Record the decision in STATE.md
101
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs add-decision \
102
+ --phase "current-phase" \
103
+ --summary "Chose approach X for [feature] because [reason]" \
104
+ --rationale "Evaluated 3 approaches: A (rejected — too complex), B (rejected — performance risk), C (approved — best trade-off of simplicity and extensibility)"
105
+ ```
106
+
107
+ The design doc should include:
108
+ - **Chosen approach** and why
109
+ - **Rejected alternatives** and why they were rejected
110
+ - **Key implementation decisions** that flow from the choice
111
+ - **Risks** and mitigation strategies
112
+
113
+ ### 7. IMPLEMENT — Build the Approved Design
114
+
115
+ Only after steps 1-6 are complete:
116
+ - Follow the approved design — do not deviate without re-discussion
117
+ - If implementation reveals a flaw in the design, STOP and return to step 4
118
+ - Reference the design doc in commit messages
119
+
120
+ ## Common Rationalizations — REJECT THESE
121
+
122
+ | Excuse | Why It Violates the Rule |
123
+ |--------|--------------------------|
124
+ | "I already know the best approach" | You know YOUR preferred approach. Alternatives may be better. |
125
+ | "There's only one way to do this" | There is almost never only one way. You have not looked hard enough. |
126
+ | "The user won't care about the design" | Users care about the outcome. Bad design leads to bad outcomes. |
127
+ | "Brainstorming slows us down" | Building the wrong thing is slower. 30 minutes of design saves days of rework. |
128
+ | "I'll refactor if the first approach is wrong" | Refactoring is expensive. Choosing well upfront is cheaper. |
129
+ | "The scope is too small for brainstorming" | If it touches architecture, it needs brainstorming regardless of size. |
130
+
131
+ ## Red Flags — STOP If You Catch Yourself:
132
+
133
+ - Writing implementation code before presenting approaches to the user
134
+ - Presenting only one approach and calling it "brainstorming"
135
+ - Asking multiple questions at once instead of one at a time
136
+ - Assuming approval without an explicit statement
137
+ - Skipping the documentation step because "we'll remember"
138
+ - Deviating from the approved design without discussion
139
+
140
+ **If any red flag triggers: STOP. Return to the appropriate step.**
141
+
142
+ ## Verification Checklist
143
+
144
+ Before starting implementation, confirm:
145
+
146
+ - [ ] Problem has been framed with user input (not assumptions)
147
+ - [ ] Relevant code and context have been researched
148
+ - [ ] 2-3 approaches have been presented with concrete trade-offs
149
+ - [ ] User has explicitly approved one specific approach
150
+ - [ ] Decision has been recorded in STATE.md
151
+ - [ ] Design doc captures chosen approach, rejected alternatives, and risks
152
+
153
+ ## In MAXSIM Plan Execution
154
+
155
+ Brainstorming applies before significant implementation work:
156
+ - Use during phase planning when design choices affect multiple tasks
157
+ - Use before any task that introduces new architecture, patterns, or external dependencies
158
+ - The decision record in STATE.md persists across sessions — future agents inherit context
159
+ - If a brainstorming session spans multiple interactions, record partial progress in STATE.md blockers