maxsimcli 3.11.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 (197) 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 +36 -0
  7. package/dist/assets/dashboard/client/assets/{index-CZ8WC97G.js → index-C_eAetZJ.js} +66 -66
  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 +94 -0
  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/commands/maxsim/settings.md +1 -1
  22. package/dist/assets/templates/references/thinking-partner.md +41 -0
  23. package/dist/assets/templates/skills/batch-worktree/SKILL.md +137 -0
  24. package/dist/assets/templates/skills/brainstorming/SKILL.md +159 -0
  25. package/dist/assets/templates/skills/code-review/SKILL.md +151 -0
  26. package/dist/assets/templates/skills/memory-management/SKILL.md +174 -0
  27. package/dist/assets/templates/skills/roadmap-writing/SKILL.md +198 -0
  28. package/dist/assets/templates/skills/sdd/SKILL.md +175 -0
  29. package/dist/assets/templates/skills/simplify/SKILL.md +185 -0
  30. package/dist/assets/templates/skills/using-maxsim/SKILL.md +120 -0
  31. package/dist/assets/templates/templates/acceptance-criteria.md +10 -0
  32. package/dist/assets/templates/templates/config.json +1 -1
  33. package/dist/assets/templates/templates/decisions.md +10 -0
  34. package/dist/assets/templates/templates/no-gos.md +9 -0
  35. package/dist/assets/templates/workflows/add-tests.md +3 -3
  36. package/dist/assets/templates/workflows/add-todo.md +89 -0
  37. package/dist/assets/templates/workflows/complete-milestone.md +1 -1
  38. package/dist/assets/templates/workflows/discuss-phase.md +85 -1
  39. package/dist/assets/templates/workflows/execute-phase.md +26 -16
  40. package/dist/assets/templates/workflows/execute-plan.md +166 -0
  41. package/dist/assets/templates/workflows/init-existing.md +123 -3
  42. package/dist/assets/templates/workflows/new-milestone.md +4 -0
  43. package/dist/assets/templates/workflows/new-project.md +111 -3
  44. package/dist/assets/templates/workflows/plan-phase.md +5 -5
  45. package/dist/assets/templates/workflows/quick.md +2 -2
  46. package/dist/assets/templates/workflows/settings.md +8 -4
  47. package/dist/assets/templates/workflows/verify-work.md +1 -1
  48. package/dist/cli.cjs +1512 -1026
  49. package/dist/cli.cjs.map +1 -1
  50. package/dist/cli.js +170 -278
  51. package/dist/cli.js.map +1 -1
  52. package/dist/core/artefakte.d.ts +12 -0
  53. package/dist/core/artefakte.d.ts.map +1 -0
  54. package/dist/core/artefakte.js +136 -0
  55. package/dist/core/artefakte.js.map +1 -0
  56. package/dist/core/commands.d.ts +13 -13
  57. package/dist/core/commands.d.ts.map +1 -1
  58. package/dist/core/commands.js +48 -58
  59. package/dist/core/commands.js.map +1 -1
  60. package/dist/core/config.d.ts +4 -3
  61. package/dist/core/config.d.ts.map +1 -1
  62. package/dist/core/config.js +14 -18
  63. package/dist/core/config.js.map +1 -1
  64. package/dist/core/context-loader.d.ts +20 -0
  65. package/dist/core/context-loader.d.ts.map +1 -0
  66. package/dist/core/context-loader.js +154 -0
  67. package/dist/core/context-loader.js.map +1 -0
  68. package/dist/core/core.d.ts +26 -2
  69. package/dist/core/core.d.ts.map +1 -1
  70. package/dist/core/core.js +90 -24
  71. package/dist/core/core.js.map +1 -1
  72. package/dist/core/dashboard-launcher.d.ts +56 -0
  73. package/dist/core/dashboard-launcher.d.ts.map +1 -0
  74. package/dist/core/dashboard-launcher.js +246 -0
  75. package/dist/core/dashboard-launcher.js.map +1 -0
  76. package/dist/core/frontmatter.d.ts +5 -5
  77. package/dist/core/frontmatter.d.ts.map +1 -1
  78. package/dist/core/frontmatter.js +21 -26
  79. package/dist/core/frontmatter.js.map +1 -1
  80. package/dist/core/index.d.ts +10 -3
  81. package/dist/core/index.d.ts.map +1 -1
  82. package/dist/core/index.js +40 -2
  83. package/dist/core/index.js.map +1 -1
  84. package/dist/core/init.d.ts +14 -15
  85. package/dist/core/init.d.ts.map +1 -1
  86. package/dist/core/init.js +93 -155
  87. package/dist/core/init.js.map +1 -1
  88. package/dist/core/milestone.d.ts +3 -3
  89. package/dist/core/milestone.d.ts.map +1 -1
  90. package/dist/core/milestone.js +9 -9
  91. package/dist/core/milestone.js.map +1 -1
  92. package/dist/core/phase.d.ts +9 -9
  93. package/dist/core/phase.d.ts.map +1 -1
  94. package/dist/core/phase.js +65 -63
  95. package/dist/core/phase.js.map +1 -1
  96. package/dist/core/roadmap.d.ts +4 -3
  97. package/dist/core/roadmap.d.ts.map +1 -1
  98. package/dist/core/roadmap.js +46 -108
  99. package/dist/core/roadmap.js.map +1 -1
  100. package/dist/core/skills.d.ts +19 -0
  101. package/dist/core/skills.d.ts.map +1 -0
  102. package/dist/core/skills.js +145 -0
  103. package/dist/core/skills.js.map +1 -0
  104. package/dist/core/start.d.ts +15 -0
  105. package/dist/core/start.d.ts.map +1 -0
  106. package/dist/core/start.js +80 -0
  107. package/dist/core/start.js.map +1 -0
  108. package/dist/core/state.d.ts +13 -13
  109. package/dist/core/state.d.ts.map +1 -1
  110. package/dist/core/state.js +125 -130
  111. package/dist/core/state.js.map +1 -1
  112. package/dist/core/template.d.ts +3 -3
  113. package/dist/core/template.d.ts.map +1 -1
  114. package/dist/core/template.js +12 -14
  115. package/dist/core/template.js.map +1 -1
  116. package/dist/core/types.d.ts +15 -4
  117. package/dist/core/types.d.ts.map +1 -1
  118. package/dist/core/types.js +9 -2
  119. package/dist/core/types.js.map +1 -1
  120. package/dist/core/verify.d.ts +10 -9
  121. package/dist/core/verify.d.ts.map +1 -1
  122. package/dist/core/verify.js +38 -48
  123. package/dist/core/verify.js.map +1 -1
  124. package/dist/core-TFSlUjV1.cjs +4312 -0
  125. package/dist/core-TFSlUjV1.cjs.map +1 -0
  126. package/dist/install/adapters.d.ts +6 -0
  127. package/dist/install/adapters.d.ts.map +1 -0
  128. package/dist/install/adapters.js +65 -0
  129. package/dist/install/adapters.js.map +1 -0
  130. package/dist/install/copy.d.ts +6 -0
  131. package/dist/install/copy.d.ts.map +1 -0
  132. package/dist/install/copy.js +71 -0
  133. package/dist/install/copy.js.map +1 -0
  134. package/dist/install/dashboard.d.ts +16 -0
  135. package/dist/install/dashboard.d.ts.map +1 -0
  136. package/dist/install/dashboard.js +273 -0
  137. package/dist/install/dashboard.js.map +1 -0
  138. package/dist/install/hooks.d.ts +31 -0
  139. package/dist/install/hooks.d.ts.map +1 -0
  140. package/dist/install/hooks.js +260 -0
  141. package/dist/install/hooks.js.map +1 -0
  142. package/dist/install/index.d.ts +2 -0
  143. package/dist/install/index.d.ts.map +1 -0
  144. package/dist/install/index.js +535 -0
  145. package/dist/install/index.js.map +1 -0
  146. package/dist/install/manifest.d.ts +23 -0
  147. package/dist/install/manifest.d.ts.map +1 -0
  148. package/dist/install/manifest.js +129 -0
  149. package/dist/install/manifest.js.map +1 -0
  150. package/dist/install/patches.d.ts +10 -0
  151. package/dist/install/patches.d.ts.map +1 -0
  152. package/dist/install/patches.js +124 -0
  153. package/dist/install/patches.js.map +1 -0
  154. package/dist/install/shared.d.ts +56 -0
  155. package/dist/install/shared.d.ts.map +1 -0
  156. package/dist/install/shared.js +172 -0
  157. package/dist/install/shared.js.map +1 -0
  158. package/dist/install/uninstall.d.ts +5 -0
  159. package/dist/install/uninstall.d.ts.map +1 -0
  160. package/dist/install/uninstall.js +222 -0
  161. package/dist/install/uninstall.js.map +1 -0
  162. package/dist/install.cjs +793 -1648
  163. package/dist/install.cjs.map +1 -1
  164. package/dist/mcp-server.cjs +38 -14
  165. package/dist/mcp-server.cjs.map +1 -1
  166. package/dist/skills-BOSxYUzf.cjs +6812 -0
  167. package/dist/skills-BOSxYUzf.cjs.map +1 -0
  168. package/package.json +1 -1
  169. package/dist/adapters/codex.d.ts +0 -19
  170. package/dist/adapters/codex.d.ts.map +0 -1
  171. package/dist/adapters/codex.js +0 -94
  172. package/dist/adapters/codex.js.map +0 -1
  173. package/dist/adapters/gemini.d.ts +0 -19
  174. package/dist/adapters/gemini.d.ts.map +0 -1
  175. package/dist/adapters/gemini.js +0 -96
  176. package/dist/adapters/gemini.js.map +0 -1
  177. package/dist/adapters/opencode.d.ts +0 -17
  178. package/dist/adapters/opencode.d.ts.map +0 -1
  179. package/dist/adapters/opencode.js +0 -111
  180. package/dist/adapters/opencode.js.map +0 -1
  181. package/dist/adapters/transforms/content.d.ts +0 -39
  182. package/dist/adapters/transforms/content.d.ts.map +0 -1
  183. package/dist/adapters/transforms/content.js +0 -125
  184. package/dist/adapters/transforms/content.js.map +0 -1
  185. package/dist/adapters/transforms/frontmatter.d.ts +0 -42
  186. package/dist/adapters/transforms/frontmatter.d.ts.map +0 -1
  187. package/dist/adapters/transforms/frontmatter.js +0 -204
  188. package/dist/adapters/transforms/frontmatter.js.map +0 -1
  189. package/dist/adapters/transforms/tool-maps.d.ts +0 -20
  190. package/dist/adapters/transforms/tool-maps.d.ts.map +0 -1
  191. package/dist/adapters/transforms/tool-maps.js +0 -64
  192. package/dist/adapters/transforms/tool-maps.js.map +0 -1
  193. package/dist/assets/dashboard/client/assets/index-DzJChB-D.css +0 -32
  194. package/dist/install.d.ts +0 -2
  195. package/dist/install.d.ts.map +0 -1
  196. package/dist/install.js +0 -1841
  197. package/dist/install.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: simplify
3
+ description: Use after implementation and before commit — requires reviewing changed code for reuse opportunities, quality issues, and unnecessary complexity
4
+ ---
5
+
6
+ # Simplify
7
+
8
+ Every line of code is a liability. Less code that does the same thing is always better.
9
+
10
+ **If you have not looked for ways to simplify, you are shipping the first draft.**
11
+
12
+ ## The Iron Law
13
+
14
+ <HARD-GATE>
15
+ NO COMMIT WITHOUT REVIEWING FOR SIMPLIFICATION.
16
+ If you have not checked for duplication, dead code, and unnecessary complexity, you CANNOT commit.
17
+ "It works" is the starting point, not the finish line.
18
+ Violating this rule is a violation — not a preference.
19
+ </HARD-GATE>
20
+
21
+ ## The Gate Function
22
+
23
+ After implementation is complete and tests pass, BEFORE committing:
24
+
25
+ ### 1. DIFF — Review What Changed
26
+
27
+ - Run `git diff --staged` (or `git diff` for unstaged changes)
28
+ - Read every line you are about to commit
29
+ - Flag anything that feels "off" — trust that instinct
30
+
31
+ ```bash
32
+ # Review staged changes
33
+ git diff --staged
34
+ # Or all uncommitted changes
35
+ git diff
36
+ ```
37
+
38
+ ### 2. DUPLICATION — Find Reuse Opportunities
39
+
40
+ - Does any new code duplicate existing logic in the codebase?
41
+ - Are there two or more blocks that do similar things and could share a helper?
42
+ - Could an existing utility, library function, or helper replace new code?
43
+ - Is there copy-paste from another file that should be extracted?
44
+
45
+ **Rule of three:** If the same pattern appears three times, extract it. Two occurrences are acceptable.
46
+
47
+ ### 3. DEAD CODE — Remove What Is Not Used
48
+
49
+ - Are there unused imports, variables, or functions?
50
+ - Are there commented-out code blocks? (Delete them — git has history)
51
+ - Are there unreachable branches or impossible conditions?
52
+ - Are there parameters that are always passed the same value?
53
+
54
+ **If it is not called, it does not belong. Delete it.**
55
+
56
+ ### 4. COMPLEXITY — Question Every Abstraction
57
+
58
+ - Is there a wrapper that adds no value beyond indirection?
59
+ - Is there a generic solution where a specific one would be simpler?
60
+ - Are there feature flags, configuration options, or extension points for hypothetical future needs?
61
+ - Could a 3-line inline block replace a 20-line abstraction?
62
+
63
+ **The right amount of abstraction is the minimum needed for the current requirements.**
64
+
65
+ ### 5. CLARITY — Improve Readability
66
+
67
+ - Are variable and function names self-explanatory?
68
+ - Could a confusing block be rewritten more clearly without comments?
69
+ - Are there nested conditions that could be flattened with early returns?
70
+ - Is the control flow straightforward or unnecessarily clever?
71
+
72
+ ### 6. EFFICIENCY — Check for Obvious Issues
73
+
74
+ - Are there O(n^2) operations where O(n) is straightforward?
75
+ - Are there repeated computations that could be cached or hoisted?
76
+ - Are there unnecessary allocations in hot paths?
77
+ - Is data being transformed multiple times when once would suffice?
78
+
79
+ **Only fix efficiency issues that are obvious. Do not optimize without evidence of a problem.**
80
+
81
+ ## Review Checklist
82
+
83
+ | Category | Question | Action if Yes |
84
+ |----------|----------|---------------|
85
+ | Duplication | Same logic exists elsewhere? | Extract shared helper or reuse existing |
86
+ | Duplication | Copy-paste from another file? | Extract to shared module |
87
+ | Dead code | Unused imports or variables? | Delete them |
88
+ | Dead code | Commented-out code? | Delete it (git has history) |
89
+ | Complexity | Abstraction for one call site? | Inline it |
90
+ | Complexity | Generic where specific suffices? | Simplify to specific |
91
+ | Complexity | Config for hypothetical needs? | Remove until needed |
92
+ | Clarity | Confusing variable name? | Rename to describe purpose |
93
+ | Clarity | Deep nesting? | Flatten with early returns |
94
+ | Efficiency | O(n^2) with obvious O(n) fix? | Fix it now |
95
+ | Efficiency | Same computation in a loop? | Hoist outside the loop |
96
+
97
+ ## Common Rationalizations — REJECT THESE
98
+
99
+ | Excuse | Why It Violates the Rule |
100
+ |--------|--------------------------|
101
+ | "It works, don't touch it" | Working is the minimum bar. Simplify before it becomes legacy. |
102
+ | "We might need the flexibility later" | YAGNI. Add flexibility when you need it, not before. |
103
+ | "Refactoring is risky" | Small simplifications with passing tests are safe. Large refactors are a separate task. |
104
+ | "The duplication is minor" | Minor duplication compounds. Three occurrences is the threshold, not six. |
105
+ | "I'll clean it up in a follow-up" | Follow-ups rarely happen. Simplify now while context is fresh. |
106
+ | "It's just a few extra lines" | Every unnecessary line is maintenance cost. Delete it. |
107
+
108
+ ## Red Flags — STOP If You Catch Yourself:
109
+
110
+ - Committing without reading your own diff
111
+ - Keeping dead code "just in case"
112
+ - Adding a utility class for a single use case
113
+ - Building configuration for features no one has requested
114
+ - Writing a comment to explain code that could be rewritten to be self-evident
115
+ - Skipping simplification because "it's good enough"
116
+
117
+ **If any red flag triggers: STOP. Review the diff again. Simplify before committing.**
118
+
119
+ ## Verification Checklist
120
+
121
+ Before committing, confirm:
122
+
123
+ - [ ] All staged changes have been reviewed line by line
124
+ - [ ] No duplication with existing codebase logic (or duplication is below threshold)
125
+ - [ ] No dead code: unused imports, variables, unreachable branches, commented code
126
+ - [ ] No unnecessary abstractions, wrappers, or premature generalizations
127
+ - [ ] Naming is clear and consistent with codebase conventions
128
+ - [ ] No obvious efficiency issues (unnecessary O(n^2), repeated computations)
129
+ - [ ] Tests still pass after simplification changes
130
+
131
+ ## In MAXSIM Plan Execution
132
+
133
+ Simplification applies at the task level, after implementation and before commit:
134
+ - After task implementation is complete and tests pass, run this review
135
+ - Make simplification changes as part of the same commit (not a separate task)
136
+ - If simplification reveals a larger refactoring opportunity, file a todo — do not scope-creep
137
+ - Track significant simplifications in the task's commit message (e.g., "extracted shared helper for X")
138
+
139
+ ## Parallel 3-Reviewer Pattern (Execution Pipeline)
140
+
141
+ When invoked as part of the Execute-Review-Simplify-Review cycle in `execute-plan.md`, simplification runs as 3 parallel review agents. Each reviewer focuses on one dimension:
142
+
143
+ ### Reviewer 1: Code Reuse
144
+ - Find duplicated logic across the codebase (not just within changed files)
145
+ - Identify copy-paste from other files that should be extracted to shared modules
146
+ - Suggest shared helpers for patterns appearing 3+ times (Rule of Three)
147
+ - Check if existing utility functions, library methods, or helpers could replace new code
148
+ - **Output:** List of reuse opportunities with file paths and line ranges
149
+
150
+ ### Reviewer 2: Code Quality
151
+ - Check naming consistency with codebase conventions (read CLAUDE.md first)
152
+ - Verify error handling covers all external calls and edge cases
153
+ - Look for dead code: unused imports, variables, unreachable branches, commented-out code
154
+ - Check for unnecessary abstractions, wrappers, or premature generalizations
155
+ - Verify security: no hardcoded secrets, no unsanitized inputs, no data exposure
156
+ - **Output:** List of quality issues categorized by severity (BLOCKER, HIGH, MEDIUM)
157
+
158
+ ### Reviewer 3: Efficiency
159
+ - Find O(n^2) operations where O(n) is straightforward
160
+ - Identify repeated computations that could be cached or hoisted out of loops
161
+ - Check for unnecessary allocations in hot paths
162
+ - Look for redundant data transformations (data processed multiple times when once suffices)
163
+ - Only flag obvious issues — do not optimize without evidence of a problem
164
+ - **Output:** List of efficiency issues with suggested fixes
165
+
166
+ ### Consolidation
167
+
168
+ After all 3 reviewers report, the orchestrating agent:
169
+ 1. Merges findings into a single deduplicated list
170
+ 2. Prioritizes: BLOCKER > HIGH > MEDIUM > informational
171
+ 3. Applies fixes for all actionable items (BLOCKER and HIGH)
172
+ 4. Files MEDIUM issues as todos if they require larger refactoring
173
+ 5. Runs tests to confirm fixes do not break anything
174
+ 6. Reports final status: CLEAN (nothing found), FIXED (issues found and resolved), or BLOCKED (cannot fix without architectural change)
175
+
176
+ ### Spawning Pattern
177
+
178
+ Each reviewer is spawned as a parallel agent via the Agent tool:
179
+ ```
180
+ # All 3 run in parallel
181
+ Task(prompt="Reviewer 1: Code Reuse — {files_to_review} ...", subagent_type="maxsim-executor")
182
+ Task(prompt="Reviewer 2: Code Quality — {files_to_review} ...", subagent_type="maxsim-executor")
183
+ Task(prompt="Reviewer 3: Efficiency — {files_to_review} ...", subagent_type="maxsim-executor")
184
+ # Wait for all 3 to complete, then consolidate
185
+ ```
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: using-maxsim
3
+ description: Entry skill that establishes MAXSIM workflow rules — triggers before any action to route work through the correct MAXSIM commands, skills, and agents
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # Using MAXSIM
8
+
9
+ MAXSIM is a spec-driven development system. Work flows through phases, plans, and tasks — not ad-hoc coding.
10
+
11
+ **If you are about to write code without a plan, STOP. Route through MAXSIM first.**
12
+
13
+ ## The Iron Law
14
+
15
+ <HARD-GATE>
16
+ NO IMPLEMENTATION WITHOUT A PLAN.
17
+ If there is no .planning/ directory, run `/maxsim:init` first.
18
+ If there is no current phase, run `/maxsim:plan-phase` first.
19
+ If there is no PLAN.md for the current phase, run `/maxsim:plan-phase` first.
20
+ If there IS a plan, run `/maxsim:execute-phase` to execute it.
21
+ Skipping the workflow is a violation — not a shortcut.
22
+ </HARD-GATE>
23
+
24
+ ## When This Skill Triggers
25
+
26
+ This skill applies to ALL work sessions. Before starting any task:
27
+
28
+ 1. **Check for `.planning/` directory** — if missing, initialize with `/maxsim:init`
29
+ 2. **Check STATE.md** — resume from last checkpoint if one exists
30
+ 3. **Check current phase** — determine what phase is active in ROADMAP.md
31
+ 4. **Route to the correct command** based on the situation (see routing table below)
32
+
33
+ ## Routing Table
34
+
35
+ | Situation | Route To |
36
+ |-----------|----------|
37
+ | No `.planning/` directory | `/maxsim:init` |
38
+ | No ROADMAP.md or empty roadmap | `/maxsim:plan-roadmap` |
39
+ | Active phase has no PLAN.md | `/maxsim:plan-phase` |
40
+ | Active phase has PLAN.md, not started | `/maxsim:execute-phase` |
41
+ | Checkpoint exists in STATE.md | `/maxsim:resume-work` |
42
+ | Bug found during execution | `/maxsim:debug` (triggers systematic-debugging skill) |
43
+ | Phase complete, needs verification | `/maxsim:verify-phase` (triggers verification-before-completion skill) |
44
+ | Quick standalone task | `/maxsim:quick` |
45
+ | User asks for help | `/maxsim:help` |
46
+
47
+ ## Available Skills
48
+
49
+ Skills are behavioral rules that activate automatically based on context:
50
+
51
+ | Skill | Triggers When |
52
+ |-------|---------------|
53
+ | `using-maxsim` | Always (alwaysApply) — entry point for all MAXSIM work |
54
+ | `systematic-debugging` | Any bug, test failure, or unexpected behavior encountered |
55
+ | `tdd` | Implementing any feature or bug fix (write test first) |
56
+ | `verification-before-completion` | Before claiming any work is complete or passing |
57
+ | `memory-management` | Recurring patterns, errors, or decisions worth persisting |
58
+ | `brainstorming` | Before implementing any significant feature or design |
59
+ | `roadmap-writing` | When creating or restructuring a project roadmap |
60
+ | `simplify` | When reviewing and cleaning up code changes |
61
+ | `code-review` | When reviewing implementation quality |
62
+
63
+ ## Available Agents
64
+
65
+ Agents are specialized subagent prompts spawned by MAXSIM commands:
66
+
67
+ | Agent | Purpose | Triggered By |
68
+ |-------|---------|-------------|
69
+ | `maxsim-executor` | Executes plans with atomic commits | `/maxsim:execute-phase` |
70
+ | `maxsim-planner` | Creates structured PLAN.md files | `/maxsim:plan-phase` |
71
+ | `maxsim-debugger` | Investigates bugs systematically | `/maxsim:debug` |
72
+ | `maxsim-verifier` | Verifies phase goal achievement | `/maxsim:verify-phase` |
73
+ | `maxsim-roadmapper` | Creates project roadmaps | `/maxsim:plan-roadmap` |
74
+ | `maxsim-phase-researcher` | Researches phase requirements | `/maxsim:plan-phase` |
75
+ | `maxsim-code-reviewer` | Reviews code changes | `/maxsim:review` |
76
+ | `maxsim-spec-reviewer` | Reviews specifications | `/maxsim:plan-roadmap` |
77
+ | `maxsim-plan-checker` | Validates plan completeness | `/maxsim:plan-phase` |
78
+ | `maxsim-project-researcher` | Researches project context | `/maxsim:init` |
79
+ | `maxsim-research-synthesizer` | Synthesizes research findings | `/maxsim:plan-phase` |
80
+ | `maxsim-codebase-mapper` | Maps codebase structure | `/maxsim:init` |
81
+ | `maxsim-integration-checker` | Checks integration points | `/maxsim:verify-phase` |
82
+
83
+ ## Common Rationalizations — REJECT THESE
84
+
85
+ | Excuse | Why It Violates the Rule |
86
+ |--------|--------------------------|
87
+ | "It's just a small fix" | Small fixes have context and consequences. Use `/maxsim:quick`. |
88
+ | "I know what to do, I don't need a plan" | Plans catch what you miss. The plan is the checkpoint. |
89
+ | "MAXSIM overhead is too much for this" | `/maxsim:quick` exists for lightweight tasks. Use it. |
90
+ | "I'll plan it in my head" | Plans in your head die with context. Write them down. |
91
+ | "The user said 'just do it'" | Route through `/maxsim:quick` — it is fast and still tracked. |
92
+
93
+ ## Red Flags — STOP If You Catch Yourself:
94
+
95
+ - Writing implementation code without a PLAN.md
96
+ - Skipping `/maxsim:init` because "the project is simple"
97
+ - Ignoring STATE.md checkpoints from previous sessions
98
+ - Working outside the current phase without explicit user approval
99
+ - Making architectural decisions without documenting them in STATE.md
100
+ - Finishing work without running verification
101
+
102
+ **If any red flag triggers: STOP. Check the routing table. Follow the workflow.**
103
+
104
+ ## Verification Checklist
105
+
106
+ Before ending any work session:
107
+
108
+ - [ ] All work was routed through MAXSIM commands (not ad-hoc)
109
+ - [ ] STATE.md reflects current progress and decisions
110
+ - [ ] Any bugs encountered were debugged systematically (not guessed)
111
+ - [ ] Tests were written before implementation (TDD)
112
+ - [ ] Completion claims have verification evidence
113
+ - [ ] Recurring patterns or errors were saved to memory
114
+
115
+ ## Integration with CLAUDE.md
116
+
117
+ When a project has a `CLAUDE.md`, both apply:
118
+ - `CLAUDE.md` defines project-specific conventions (language, tools, style)
119
+ - MAXSIM skills define workflow rules (how work is structured and verified)
120
+ - If they conflict, `CLAUDE.md` project conventions take priority for code style; MAXSIM takes priority for workflow structure
@@ -0,0 +1,10 @@
1
+ # Acceptance Criteria
2
+
3
+ > Conditions that must be met for deliverables to be accepted.
4
+
5
+ **Created:** {{date}}
6
+
7
+ ## Criteria
8
+
9
+ | # | Criterion | Status | Verified |
10
+ |---|-----------|--------|----------|
@@ -3,7 +3,7 @@
3
3
  "depth": "standard",
4
4
  "workflow": {
5
5
  "research": true,
6
- "plan_check": true,
6
+ "plan_checker": true,
7
7
  "verifier": true,
8
8
  "auto_advance": false,
9
9
  "nyquist_validation": false
@@ -0,0 +1,10 @@
1
+ # Decisions
2
+
3
+ > Architectural and design decisions for this project.
4
+
5
+ **Created:** {{date}}
6
+
7
+ ## Decision Log
8
+
9
+ | # | Decision | Rationale | Date | Phase |
10
+ |---|----------|-----------|------|-------|
@@ -0,0 +1,9 @@
1
+ # No-Gos
2
+
3
+ > Things explicitly out of scope or forbidden.
4
+
5
+ **Created:** {{date}}
6
+
7
+ ## Boundaries
8
+
9
+ - _No entries yet._
@@ -141,10 +141,10 @@ If user selects "Cancel": exit gracefully.
141
141
  Before generating the test plan, discover the project's existing test structure:
142
142
 
143
143
  ```bash
144
- # Find existing test directories
145
- find . -type d -name "*test*" -o -name "*spec*" -o -name "*__tests__*" 2>/dev/null | head -20
144
+ # Find existing test directories and files (cross-platform)
145
+ git ls-files --others --cached --exclude-standard | grep -E "(test|spec|__tests__)" | head -20
146
146
  # Find existing test files for convention matching
147
- find . -type f \( -name "*.test.*" -o -name "*.spec.*" -o -name "*Tests.fs" -o -name "*Test.fs" \) 2>/dev/null | head -20
147
+ git ls-files --others --cached --exclude-standard | grep -E "\.(test|spec)\.|Tests\.(fs|cs)|Test\.(fs|cs)" | head -20
148
148
  # Check for test runners
149
149
  ls package.json *.sln 2>/dev/null
150
150
  ```
@@ -5,6 +5,7 @@ Capture an idea, task, or issue that surfaces during a MAXSIM session as a struc
5
5
  <required_reading>
6
6
  Read all files referenced by the invoking prompt's execution_context before starting.
7
7
  @./references/dashboard-bridge.md
8
+ @./references/thinking-partner.md
8
9
  </required_reading>
9
10
 
10
11
  <process>
@@ -42,6 +43,57 @@ Formulate:
42
43
  - `files`: Relevant paths with line numbers from conversation
43
44
  </step>
44
45
 
46
+ <step name="discussion_mode">
47
+ **Discussion mode triggers:**
48
+
49
+ 1. `--discuss` flag is present in $ARGUMENTS
50
+ 2. Complexity detected: title contains "refactor", "redesign", "migrate", "architecture", or problem description exceeds 3 sentences
51
+
52
+ **If neither trigger:** Skip to infer_area (quick-add path).
53
+
54
+ **If discussion mode activated:**
55
+
56
+ ```
57
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
58
+ MAXSIM ► TODO DISCUSSION
59
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
60
+ ```
61
+
62
+ Apply thinking-partner behaviors to clarify the todo before filing:
63
+
64
+ **Round 1 — Scope clarification (2-3 questions):**
65
+
66
+ Use AskUserQuestion to probe:
67
+ - What exactly is the problem? (Challenge vagueness)
68
+ - What does "done" look like for this? (Make abstract concrete)
69
+ - Is this one thing or multiple things? (Surface hidden scope)
70
+
71
+ **Round 2 — Approach exploration (2-3 questions):**
72
+
73
+ Use AskUserQuestion to explore:
74
+ - What approaches have you considered? (Propose alternatives with trade-offs)
75
+ - What constraints exist? (Surface unstated assumptions)
76
+ - What could go wrong? (Make consequences visible)
77
+
78
+ **Round 3 — Readiness check:**
79
+
80
+ Use AskUserQuestion:
81
+ - header: "Todo"
82
+ - question: "Ready to file this todo?"
83
+ - options:
84
+ - "File it" -- Capture what we discussed
85
+ - "Keep discussing" -- I want to explore more
86
+ - "Split into multiple" -- This is actually several todos
87
+
88
+ If "Keep discussing": ask 2-3 more probing questions, then check again.
89
+ If "Split into multiple": help user define 2-3 separate todos, file each one.
90
+ If "File it": continue to infer_area.
91
+
92
+ **Discussion mode enriches the todo file** — the Problem section includes discussion insights, and a new "## Approach" section captures approach decisions (replacing "## Solution" with richer content).
93
+
94
+ **Time budget:** 20-30 minutes max. After 6 rounds of questions, offer to file what you have.
95
+ </step>
96
+
45
97
  <step name="infer_area">
46
98
  Infer area from file paths:
47
99
 
@@ -89,11 +141,14 @@ slug=$(node ~/.claude/maxsim/bin/maxsim-tools.cjs generate-slug "$title" --raw)
89
141
 
90
142
  Write to `.planning/todos/pending/${date}-${slug}.md`:
91
143
 
144
+ **Quick mode format:**
145
+
92
146
  ```markdown
93
147
  ---
94
148
  created: [timestamp]
95
149
  title: [title]
96
150
  area: [area]
151
+ mode: quick
97
152
  files:
98
153
  - [file:lines]
99
154
  ---
@@ -106,6 +161,40 @@ files:
106
161
 
107
162
  [approach hints or "TBD"]
108
163
  ```
164
+
165
+ **Discussion mode format (enriched):**
166
+
167
+ ```markdown
168
+ ---
169
+ created: [timestamp]
170
+ title: [title]
171
+ area: [area]
172
+ mode: discussed
173
+ files:
174
+ - [file:lines]
175
+ ---
176
+
177
+ ## Problem
178
+
179
+ [problem description enriched with discussion insights]
180
+
181
+ ## Scope
182
+
183
+ [What's in scope and what's not — from discussion round 1]
184
+
185
+ ## Approach
186
+
187
+ [Approach decisions with trade-offs explored — from discussion round 2]
188
+ [Include alternatives considered and why this approach was chosen]
189
+
190
+ ## Risks
191
+
192
+ [What could go wrong — from discussion]
193
+
194
+ ## Solution
195
+
196
+ [Concrete next steps or "TBD"]
197
+ ```
109
198
  </step>
110
199
 
111
200
  <step name="update_state">
@@ -128,7 +128,7 @@ Calculate milestone statistics:
128
128
  ```bash
129
129
  git log --oneline --grep="feat(" | head -20
130
130
  git diff --stat FIRST_COMMIT..LAST_COMMIT | tail -1
131
- find . -name "*.swift" -o -name "*.ts" -o -name "*.py" | xargs wc -l 2>/dev/null
131
+ git ls-files --cached --exclude-standard -- "*.swift" "*.ts" "*.py" | xargs wc -l 2>/dev/null
132
132
  git log --format="%ai" FIRST_COMMIT | tail -1
133
133
  git log --format="%ai" LAST_COMMIT | head -1
134
134
  ```
@@ -12,6 +12,7 @@ You are a thinking partner, not an interviewer. The user is the visionary — yo
12
12
 
13
13
  <required_reading>
14
14
  @./references/dashboard-bridge.md
15
+ @./references/thinking-partner.md
15
16
  </required_reading>
16
17
 
17
18
  <tool_mandate>
@@ -52,7 +53,7 @@ Every question directed at the user MUST use a structured tool. NEVER write a qu
52
53
  </downstream_awareness>
53
54
 
54
55
  <philosophy>
55
- **User = founder/visionary. Claude = builder.**
56
+ **User = founder/visionary. Claude = thinking partner and builder.**
56
57
 
57
58
  The user knows:
58
59
  - How they imagine it working
@@ -67,6 +68,16 @@ The user doesn't know (and shouldn't be asked):
67
68
  - Success metrics (inferred from the work)
68
69
 
69
70
  Ask about vision and implementation choices. Capture decisions for downstream agents.
71
+
72
+ **Thinking-partner behaviors (from thinking-partner.md):**
73
+ - **Challenge vague answers** — "Cards" could mean many things. Push for specifics.
74
+ - **Surface unstated assumptions** — "You're assuming mobile-first — is that intentional?"
75
+ - **Propose alternatives with trade-offs** — Don't just accept first choice. Offer 2-3 options.
76
+ - **Make consequences visible** — "Infinite scroll means no shareable page positions."
77
+ - **Disagree constructively** — If an approach has risks, name them.
78
+ - **Follow the thread** — Build on what they just said. Don't jump topics.
79
+
80
+ Apply these behaviors within each discussion area. The user should feel like they're thinking through decisions with a collaborator, not answering a survey.
70
81
  </philosophy>
71
82
 
72
83
  <scope_guardrail>
@@ -314,6 +325,15 @@ Ask 4 questions per area before offering to continue or move on. Each answer oft
314
325
  - Loop: discuss new areas, then prompt again
315
326
  - If "I'm ready for context": Proceed to write_context
316
327
 
328
+ **Adaptive probing (thinking-partner mode):**
329
+
330
+ Within each area, adapt your questioning based on the user's certainty level:
331
+ - **User is confident** (picks options quickly) — probe deeper: "You chose X — have you considered how that interacts with Y?"
332
+ - **User is uncertain** (picks "Other", hedges) — propose alternatives: "Here are 3 approaches with trade-offs..."
333
+ - **User defers** (picks "You decide") — accept but name consequences: "I'll go with X because [reason]. That means Y."
334
+
335
+ Challenge decisions that may have hidden costs. If the user picks something that conflicts with an earlier decision, surface it: "Earlier you said A, but this implies B. Which takes priority?"
336
+
317
337
  **Question design:**
318
338
  - Options should be concrete, not abstract ("Cards" not "Option A")
319
339
  - Each answer should inform the next question
@@ -400,6 +420,70 @@ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
400
420
  ```
401
421
 
402
422
  Write file.
423
+
424
+ **Generate phase-specific artefakte:**
425
+
426
+ After writing CONTEXT.md, append phase-specific entries to the project-level artefakte files.
427
+
428
+ **Append to DECISIONS.md:**
429
+
430
+ ```bash
431
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/DECISIONS.md
432
+ ```
433
+
434
+ Append content:
435
+
436
+ ```markdown
437
+
438
+ ## Phase [X]: [Name]
439
+
440
+ | # | Decision | Rationale | Alternatives Considered | Status |
441
+ |---|----------|-----------|------------------------|--------|
442
+ | [next #] | [Decision from discussion] | [Why chosen] | [What else was offered] | Locked |
443
+ ```
444
+
445
+ **Append to ACCEPTANCE-CRITERIA.md:**
446
+
447
+ ```bash
448
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/ACCEPTANCE-CRITERIA.md
449
+ ```
450
+
451
+ Append content under "Phase-Level Criteria":
452
+
453
+ ```markdown
454
+
455
+ ### Phase [X]: [Name]
456
+
457
+ - [ ] [Observable outcome from decisions — e.g., "User sees card-based layout on feed page"]
458
+ - [ ] [Observable outcome from decisions — e.g., "Infinite scroll loads next batch on scroll"]
459
+ - [ ] [Observable outcome from decisions — e.g., "Empty state shows onboarding prompt"]
460
+ ```
461
+
462
+ **Append to NO-GOS.md (if applicable):**
463
+
464
+ If any "don't do this" or "avoid this approach" decisions were made during discussion:
465
+
466
+ ```bash
467
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/NO-GOS.md
468
+ ```
469
+
470
+ Append content:
471
+
472
+ ```markdown
473
+
474
+ ## Phase [X]: [Name]
475
+
476
+ - [Approach to avoid] -- [why, from discussion]
477
+ ```
478
+
479
+ If no no-gos emerged from discussion, skip this append.
480
+
481
+ **Commit artefakte updates:**
482
+
483
+ ```bash
484
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs(${padded_phase}): update artefakte from phase discussion" --files .planning/DECISIONS.md .planning/ACCEPTANCE-CRITERIA.md .planning/NO-GOS.md
485
+ ```
486
+
403
487
  </step>
404
488
 
405
489
  <step name="confirm_creation">