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,151 @@
1
+ ---
2
+ name: code-review
3
+ description: Use after completing a phase or significant implementation — requires reviewing all changed code for critical issues before sign-off
4
+ ---
5
+
6
+ # Code Review
7
+
8
+ Shipping unreviewed code is shipping unknown risk. Review before sign-off.
9
+
10
+ **If you have not reviewed every changed file, you cannot approve the phase.**
11
+
12
+ ## The Iron Law
13
+
14
+ <HARD-GATE>
15
+ NO PHASE SIGN-OFF WITHOUT REVIEWING ALL CHANGED CODE.
16
+ If you have not read every diff introduced in this phase, you CANNOT mark it complete.
17
+ "It works" is not "it's correct." Passing tests do not prove code quality.
18
+ Violating this rule is a violation — not a shortcut.
19
+ </HARD-GATE>
20
+
21
+ ## The Gate Function
22
+
23
+ Follow these steps IN ORDER before approving any phase or significant implementation.
24
+
25
+ ### 1. SCOPE — Identify All Changes
26
+
27
+ - Run `git diff` against the phase's starting point to see every changed file
28
+ - List all new files, modified files, and deleted files
29
+ - Do NOT skip generated files, config changes, or "minor" edits
30
+
31
+ ```bash
32
+ # Example: see all changes since phase branch point
33
+ git diff --stat main...HEAD
34
+ git diff main...HEAD
35
+ ```
36
+
37
+ ### 2. SECURITY — Check for Vulnerabilities
38
+
39
+ Review every changed file for:
40
+
41
+ | Category | What to Look For |
42
+ |----------|-----------------|
43
+ | Injection | Unsanitized user input in SQL, shell commands, HTML output, template strings |
44
+ | Authentication | Missing auth checks, hardcoded credentials, tokens in source |
45
+ | Authorization | Missing permission checks, privilege escalation paths |
46
+ | Data exposure | Secrets in logs, overly broad API responses, sensitive data in error messages |
47
+ | Dependencies | New dependencies with known vulnerabilities, unnecessary dependencies |
48
+
49
+ **Any security issue is a blocking finding. No exceptions.**
50
+
51
+ ### 3. INTERFACES — Verify API Contracts
52
+
53
+ - Do public function signatures match their documentation?
54
+ - Are return types accurate and complete?
55
+ - Do error types cover all failure modes?
56
+ - Are breaking changes documented and intentional?
57
+ - Do exported interfaces maintain backward compatibility (or is the break intentional)?
58
+
59
+ ### 4. ERROR HANDLING — Check Failure Paths
60
+
61
+ - Are all external calls (I/O, network, user input) wrapped in error handling?
62
+ - Do error messages provide enough context to diagnose the issue?
63
+ - Are errors propagated correctly (not swallowed silently)?
64
+ - Are edge cases handled (empty input, null values, boundary conditions)?
65
+
66
+ ### 5. TESTS — Evaluate Coverage
67
+
68
+ - Does every new public function have corresponding tests?
69
+ - Do tests cover both success and failure paths?
70
+ - Are edge cases tested (empty, null, boundary, error conditions)?
71
+ - Do tests verify behavior, not implementation details?
72
+
73
+ ### 6. QUALITY — Assess Maintainability
74
+
75
+ - Is naming consistent with the existing codebase conventions?
76
+ - Are there code duplication opportunities that should be extracted?
77
+ - Is the complexity justified by the requirements?
78
+ - Are comments present where logic is non-obvious (and absent where code is self-evident)?
79
+
80
+ ## Critical Issues — Block Phase Sign-Off
81
+
82
+ These categories MUST be resolved before the phase can be marked complete:
83
+
84
+ | Severity | Category | Example |
85
+ |----------|----------|---------|
86
+ | **Blocker** | Security vulnerability | SQL injection, XSS, hardcoded secrets |
87
+ | **Blocker** | Broken interface | Public API returns wrong type, missing required field |
88
+ | **Blocker** | Missing error handling | Unhandled promise rejection, swallowed exceptions on I/O |
89
+ | **Blocker** | Data loss risk | Destructive operation without confirmation, missing transaction |
90
+ | **High** | Performance regression | O(n^2) where O(n) is trivial, unbounded memory allocation |
91
+ | **High** | Missing critical tests | No tests for error paths, no tests for new public API |
92
+ | **Medium** | Naming inconsistency | Convention mismatch with existing codebase |
93
+ | **Medium** | Dead code | Unreachable branches, unused imports, commented-out code |
94
+
95
+ **Blocker and High severity issues block sign-off. Medium issues should be filed for follow-up.**
96
+
97
+ ## Common Rationalizations — REJECT THESE
98
+
99
+ | Excuse | Why It Violates the Rule |
100
+ |--------|--------------------------|
101
+ | "Tests pass, so the code is fine" | Tests verify behavior, not code quality. Review is separate. |
102
+ | "I wrote it, so I know it's correct" | Author bias is real. Review as if someone else wrote it. |
103
+ | "It's just a small change" | Small changes cause large outages. Review proportional effort, not zero effort. |
104
+ | "We'll clean it up later" | "Later" accumulates. Fix blockers now, file medium issues. |
105
+ | "The deadline is tight" | Shipping broken code costs more time than reviewing. |
106
+ | "Generated code doesn't need review" | Generated code has the same bugs. Review it. |
107
+
108
+ ## Red Flags — STOP If You Catch Yourself:
109
+
110
+ - Skipping files because they "look fine" from the diff stat
111
+ - Approving without reading the actual code changes
112
+ - Ignoring a gut feeling that something is wrong
113
+ - Rushing through review to meet a deadline
114
+ - Assuming tests cover everything without checking
115
+ - Skipping error handling review because "the happy path works"
116
+
117
+ **If any red flag triggers: STOP. Go back to step 1 (SCOPE) and review properly.**
118
+
119
+ ## Verification Checklist
120
+
121
+ Before signing off on a phase, confirm:
122
+
123
+ - [ ] All changed files have been reviewed (not just the "important" ones)
124
+ - [ ] No security vulnerabilities found (or all found issues resolved)
125
+ - [ ] Public interfaces match their contracts and documentation
126
+ - [ ] Error handling covers all external calls and edge cases
127
+ - [ ] Test coverage exists for new public functions and error paths
128
+ - [ ] Naming and style are consistent with codebase conventions
129
+ - [ ] No blocker or high severity issues remain open
130
+
131
+ ## Review Output Format
132
+
133
+ Produce a review summary for phase documentation:
134
+
135
+ ```
136
+ REVIEW SCOPE: [number] files changed, [number] additions, [number] deletions
137
+ SECURITY: PASS | ISSUES FOUND (list)
138
+ INTERFACES: PASS | ISSUES FOUND (list)
139
+ ERROR HANDLING: PASS | ISSUES FOUND (list)
140
+ TEST COVERAGE: PASS | GAPS FOUND (list)
141
+ QUALITY: PASS | ISSUES FOUND (list)
142
+ VERDICT: APPROVED | BLOCKED (list blocking issues)
143
+ ```
144
+
145
+ ## In MAXSIM Plan Execution
146
+
147
+ Code review applies at phase boundaries:
148
+ - After all tasks in a phase are complete, run this review before marking the phase done
149
+ - Blocking issues must be resolved before phase completion
150
+ - Medium issues should be captured as todos for the next phase
151
+ - The review summary should be included in the phase SUMMARY.md
@@ -0,0 +1,174 @@
1
+ ---
2
+ name: memory-management
3
+ description: Use when encountering recurring patterns, errors, or decisions that should persist across sessions — defines when and how to save to project memory
4
+ ---
5
+
6
+ # Memory Management
7
+
8
+ Context dies with each session. Patterns discovered but not saved are patterns lost.
9
+
10
+ **If you encountered it twice, save it. You will encounter it again.**
11
+
12
+ ## The Iron Law
13
+
14
+ <HARD-GATE>
15
+ RECURRING PATTERNS MUST BE PERSISTED.
16
+ If you have seen the same error, pattern, or decision twice in this session or across sessions, you MUST save it.
17
+ "I'll remember" is a lie — your context resets. Write it down.
18
+ Violating this rule guarantees repeated mistakes across sessions.
19
+ </HARD-GATE>
20
+
21
+ ## When to Save
22
+
23
+ ### Auto-Save Triggers (MUST save)
24
+
25
+ These situations require immediate memory persistence:
26
+
27
+ | Trigger | Threshold | What to Save |
28
+ |---------|-----------|-------------|
29
+ | Same error encountered | 2+ occurrences | Error pattern, root cause, fix |
30
+ | Same debugging path followed | 2+ times | The shortcut or solution |
31
+ | Architectural decision made | Once (if significant) | Decision, rationale, alternatives rejected |
32
+ | Non-obvious convention discovered | Once | The convention and where it applies |
33
+ | Workaround for tooling/framework quirk | Once | The quirk and the workaround |
34
+ | Project-specific pattern confirmed | 2+ uses | The pattern and when to apply it |
35
+
36
+ ### Do NOT Save
37
+
38
+ - Session-specific context (current task details, in-progress work)
39
+ - Information already in CLAUDE.md or project documentation
40
+ - Speculative conclusions from reading a single file
41
+ - Temporary workarounds that will be removed
42
+ - Obvious patterns that any developer would know
43
+
44
+ ## Where to Save
45
+
46
+ Memory files live in `.claude/memory/` (for Claude Code) or the equivalent runtime memory directory.
47
+
48
+ ### File Organization
49
+
50
+ ```
51
+ .claude/memory/
52
+ MEMORY.md # Index file — always loaded into context
53
+ patterns.md # Code patterns and conventions
54
+ errors.md # Error patterns and solutions
55
+ architecture.md # Architectural decisions and rationale
56
+ tooling.md # Tool quirks and workarounds
57
+ ```
58
+
59
+ - **MEMORY.md** is the index: keep it under 200 lines, link to topic files for details
60
+ - Topic files hold detailed notes organized by subject
61
+ - Use headers and bullet points for scannability
62
+
63
+ ### Memory Entry Format
64
+
65
+ Each entry should follow this structure:
66
+
67
+ ```markdown
68
+ ## [Short descriptive title]
69
+
70
+ **Context:** When this applies
71
+ **Pattern/Error:** What was observed
72
+ **Solution/Decision:** What to do about it
73
+ **Evidence:** How this was confirmed (dates, occurrences, test results)
74
+ ```
75
+
76
+ ## The Gate Function
77
+
78
+ When you encounter something worth remembering:
79
+
80
+ ### 1. DETECT — Recognize the Pattern
81
+
82
+ - Is this the same error/pattern you saw before?
83
+ - Is this a decision that will affect future work?
84
+ - Is this a non-obvious convention or quirk?
85
+
86
+ ### 2. CHECK — Avoid Duplicates
87
+
88
+ - Read the existing memory files first
89
+ - If the pattern is already documented, update it (don't duplicate)
90
+ - If it contradicts existing memory, investigate which is correct
91
+
92
+ ### 3. WRITE — Persist the Memory
93
+
94
+ - Add to the appropriate topic file
95
+ - Update MEMORY.md index if adding a new topic
96
+ - Keep entries concise — future you needs the answer, not the journey
97
+
98
+ ### 4. VERIFY — Confirm the Save
99
+
100
+ - Re-read the file to confirm the entry was written correctly
101
+ - Ensure the entry is actionable (someone reading it can act on it)
102
+
103
+ ## Error Pattern Detection
104
+
105
+ When debugging, track errors in a mental tally:
106
+
107
+ ```
108
+ Error seen once → Note it, move on
109
+ Error seen twice → Save to errors.md with pattern and fix
110
+ Error seen 3+ times → Save AND add to MEMORY.md index for immediate visibility
111
+ ```
112
+
113
+ ### What Makes a Good Error Memory
114
+
115
+ Good:
116
+ ```markdown
117
+ ## Vitest "cannot find module" for path aliases
118
+
119
+ **Context:** When running tests that import from `@maxsim/core`
120
+ **Error:** `Cannot find module '@maxsim/core/types'`
121
+ **Fix:** Add `resolve.alias` to `vitest.config.ts` matching tsconfig paths
122
+ **Evidence:** Hit 3 times across phases 01-03 (Feb 2026)
123
+ ```
124
+
125
+ Bad:
126
+ ```markdown
127
+ ## Test error
128
+ There was an error with tests. Fixed it by changing config.
129
+ ```
130
+
131
+ ## Common Rationalizations — REJECT THESE
132
+
133
+ | Excuse | Why It Violates the Rule |
134
+ |--------|--------------------------|
135
+ | "I'll remember this" | No you won't. Context resets. Write it down. |
136
+ | "It's too specific to save" | Specific is good. Generic memories are useless. |
137
+ | "Memory files are messy" | Organize them. Messy files > lost knowledge. |
138
+ | "This only applies to this project" | Project memory IS project-scoped. Save it. |
139
+ | "Someone else documented this" | If it's not in your memory files, you won't find it next session. |
140
+ | "I'll save it later" | You'll forget to. Save it now. |
141
+
142
+ ## Red Flags — STOP If You Catch Yourself:
143
+
144
+ - Encountering the same error for the second time without saving it
145
+ - Making the same architectural decision you made in a previous session
146
+ - Debugging a problem you already solved before
147
+ - Saying "I think we fixed this before" without finding the memory entry
148
+ - Leaving a session without updating memory for patterns discovered
149
+
150
+ **If any red flag triggers: STOP. Write the memory entry NOW, before continuing.**
151
+
152
+ ## Verification Checklist
153
+
154
+ Before ending a work session:
155
+
156
+ - [ ] All errors encountered 2+ times are saved to `errors.md`
157
+ - [ ] All significant decisions are saved to `architecture.md`
158
+ - [ ] All discovered patterns are saved to `patterns.md`
159
+ - [ ] MEMORY.md index is up to date
160
+ - [ ] No duplicate entries were created
161
+ - [ ] All entries follow the format (Context, Pattern, Solution, Evidence)
162
+
163
+ ## Integration with MAXSIM
164
+
165
+ During plan execution, the executor and researcher agents load memory files at startup:
166
+ - **Executor:** Reads MEMORY.md to avoid known pitfalls before implementing
167
+ - **Researcher:** Saves findings to memory for future phases
168
+ - **Debugger:** Checks error memories before starting investigation — the fix may already be known
169
+
170
+ Memory persistence happens at natural breakpoints:
171
+ - After resolving a bug (save to errors.md)
172
+ - After completing a phase (save patterns discovered)
173
+ - After making an architectural decision (save to architecture.md)
174
+ - At checkpoints (save current understanding before context resets)
@@ -0,0 +1,198 @@
1
+ ---
2
+ name: roadmap-writing
3
+ description: Use when creating or restructuring a project roadmap — requires phased planning with dependencies, success criteria, and MAXSIM-compatible format
4
+ ---
5
+
6
+ # Roadmap Writing
7
+
8
+ A roadmap without success criteria is a wish list. Define what done looks like for every phase.
9
+
10
+ **If a phase does not have measurable success criteria, it is not a plan — it is a hope.**
11
+
12
+ ## The Iron Law
13
+
14
+ <HARD-GATE>
15
+ NO PHASE WITHOUT SUCCESS CRITERIA AND DEPENDENCIES.
16
+ Every phase MUST have: a number, a name, a goal, success criteria (testable statements), and explicit dependencies.
17
+ "We'll figure it out as we go" is not planning — it is drifting.
18
+ Violating this rule is a violation — not flexibility.
19
+ </HARD-GATE>
20
+
21
+ ## The Gate Function
22
+
23
+ Follow these steps IN ORDER when creating or restructuring a roadmap.
24
+
25
+ ### 1. SCOPE — Understand the Project
26
+
27
+ Before writing phases, understand what you are planning:
28
+
29
+ - Read PROJECT.md for vision and constraints
30
+ - Read REQUIREMENTS.md for v1/v2/out-of-scope boundaries
31
+ - Check existing STATE.md for decisions and blockers
32
+ - Identify the delivery target (MVP, v1, v2, etc.)
33
+
34
+ ```bash
35
+ # Load project context
36
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs state read --raw
37
+
38
+ # Check existing roadmap (if any)
39
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap read --raw
40
+ ```
41
+
42
+ ### 2. DECOMPOSE — Break Into Phases
43
+
44
+ Each phase should be:
45
+
46
+ | Property | Requirement |
47
+ |----------|------------|
48
+ | **Independently deliverable** | The phase produces a working increment — not a half-built feature |
49
+ | **1-3 days of work** | Larger phases should be split; smaller ones should be merged |
50
+ | **Clear boundary** | You can tell when the phase is done without ambiguity |
51
+ | **Ordered by dependency** | No phase depends on a later phase |
52
+
53
+ **Phase numbering convention:**
54
+
55
+ | Format | When to Use |
56
+ |--------|------------|
57
+ | `01`, `02`, `03` | Standard sequential phases |
58
+ | `01A`, `01B` | Parallel sub-phases that can execute concurrently |
59
+ | `01.1`, `01.2` | Sequential sub-phases within a parent phase |
60
+
61
+ Sort order: `01 < 01A < 01B < 01.1 < 01.2 < 02`
62
+
63
+ ### 3. DEFINE — Write Each Phase
64
+
65
+ Every phase MUST include all of these fields:
66
+
67
+ ```markdown
68
+ ### Phase {number}: {name}
69
+ **Goal**: {one sentence — what this phase achieves}
70
+ **Depends on**: {phase numbers, or "Nothing" for the first phase}
71
+ **Requirements**: {requirement IDs from REQUIREMENTS.md, if applicable}
72
+ **Success Criteria** (what must be TRUE):
73
+ 1. {Testable statement — can be verified with a command, test, or inspection}
74
+ 2. {Testable statement}
75
+ 3. {Testable statement}
76
+ **Plans**: TBD
77
+ ```
78
+
79
+ **Success criteria rules:**
80
+ - Each criterion must be testable — "code is clean" is not testable; "no lint warnings" is testable
81
+ - Include at least 2 criteria per phase
82
+ - At least one criterion should be verifiable by running a command (test, build, lint)
83
+ - Criteria describe the END STATE, not the process ("tests pass" not "write tests")
84
+
85
+ ### 4. CONNECT — Map Dependencies
86
+
87
+ Draw the dependency graph:
88
+ - Which phases can run in parallel? (Use letter suffixes: `03A`, `03B`)
89
+ - Which phases are strictly sequential? (Use number suffixes: `03.1`, `03.2`)
90
+ - Are there any circular dependencies? (This is a design error — restructure)
91
+
92
+ **Rule: Every phase except the first must declare at least one dependency.**
93
+
94
+ ### 5. MILESTONE — Group Into Milestones
95
+
96
+ Group phases into milestones that represent user-visible releases:
97
+
98
+ ```markdown
99
+ ## Milestones
100
+
101
+ - **v1.0 MVP** — Phases 1-4
102
+ - **v1.1 Polish** — Phases 5-7
103
+ - **v2.0 Scale** — Phases 8-10
104
+ ```
105
+
106
+ Each milestone should be a coherent deliverable that could ship independently.
107
+
108
+ ### 6. WRITE — Produce the Roadmap
109
+
110
+ Assemble the complete ROADMAP.md:
111
+
112
+ ```markdown
113
+ # Roadmap: {project name}
114
+
115
+ ## Overview
116
+
117
+ {2-3 sentences: what the project is, what this roadmap covers, delivery strategy}
118
+
119
+ ## Milestones
120
+
121
+ - {emoji} **{milestone name}** — Phases {range} ({status})
122
+
123
+ ## Phases
124
+
125
+ - [ ] **Phase {N}: {name}** - {one-line summary}
126
+
127
+ ## Phase Details
128
+
129
+ ### Phase {N}: {name}
130
+ **Goal**: ...
131
+ **Depends on**: ...
132
+ **Requirements**: ...
133
+ **Success Criteria** (what must be TRUE):
134
+ 1. ...
135
+ **Plans**: TBD
136
+ ```
137
+
138
+ ### 7. VALIDATE — Check the Roadmap
139
+
140
+ Before finalizing, verify:
141
+
142
+ ```bash
143
+ # Write the roadmap (creates or overwrites .planning/ROADMAP.md)
144
+ # Then verify phase structure
145
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs roadmap read --raw
146
+ ```
147
+
148
+ | Check | How to Verify |
149
+ |-------|--------------|
150
+ | Every phase has success criteria | Read each phase detail section |
151
+ | Dependencies are acyclic | Trace the dependency chain — no loops |
152
+ | Phase numbering is sequential | Numbers increase, no gaps larger than 1 |
153
+ | Milestones cover all phases | Every phase appears in exactly one milestone |
154
+ | Success criteria are testable | Each criterion can be verified by command, test, or inspection |
155
+
156
+ ## Common Rationalizations — REJECT THESE
157
+
158
+ | Excuse | Why It Violates the Rule |
159
+ |--------|--------------------------|
160
+ | "We don't know enough to plan" | Plan what you know. Unknown phases get a research spike first. |
161
+ | "The roadmap will change anyway" | Plans change — that is expected. No plan guarantees drift. |
162
+ | "Success criteria are too rigid" | Vague criteria are useless. Rigid criteria are adjustable. |
163
+ | "One big phase is simpler" | Big phases hide complexity and delay feedback. Split them. |
164
+ | "Dependencies are obvious" | Obvious to you now. Not obvious to the agent running phase 5 next week. |
165
+ | "We'll add details later" | Later never comes. Write the details now while context is fresh. |
166
+
167
+ ## Red Flags — STOP If You Catch Yourself:
168
+
169
+ - Writing a phase without success criteria
170
+ - Creating phases longer than 3 days of work
171
+ - Skipping dependency declarations
172
+ - Writing vague criteria like "code is good" or "feature works"
173
+ - Creating circular dependencies between phases
174
+ - Putting all work in one or two massive phases
175
+
176
+ **If any red flag triggers: STOP. Review the phase structure and fix it.**
177
+
178
+ ## Verification Checklist
179
+
180
+ Before finalizing a roadmap, confirm:
181
+
182
+ - [ ] Every phase has a number, name, goal, dependencies, and success criteria
183
+ - [ ] Success criteria are testable (verifiable by command, test, or inspection)
184
+ - [ ] Dependencies form a DAG (no circular dependencies)
185
+ - [ ] Phase numbering follows MAXSIM convention (01, 01A, 01B, 01.1, etc.)
186
+ - [ ] Phases are 1-3 days of work each
187
+ - [ ] Milestones group phases into coherent deliverables
188
+ - [ ] ROADMAP.md matches the expected format for MAXSIM CLI parsing
189
+ - [ ] Overview section summarizes the project and delivery strategy
190
+
191
+ ## In MAXSIM Plan Execution
192
+
193
+ Roadmap writing integrates with the MAXSIM lifecycle:
194
+ - Use during project initialization (`/maxsim:plan-phase`) to create the initial roadmap
195
+ - Use when restructuring after a significant scope change or pivot
196
+ - The roadmap is read by MAXSIM agents via `roadmap read` — format compliance is mandatory
197
+ - Phase numbering must be parseable by `normalizePhaseName()` and `comparePhaseNum()` in core
198
+ - Config `model_profile` in `.planning/config.json` affects agent assignment per phase
@@ -0,0 +1,175 @@
1
+ ---
2
+ name: sdd
3
+ description: Dispatch fresh subagent per task with 2-stage review between tasks
4
+ ---
5
+
6
+ # Spec-Driven Dispatch (SDD)
7
+
8
+ Execute tasks sequentially, each in a fresh subagent with clean context. Review every task before moving to the next.
9
+
10
+ **If the previous task did not pass review, you do not start the next task.**
11
+
12
+ ## When to Use
13
+
14
+ - Tasks are sequential and each builds on the previous
15
+ - Context rot is a concern (long plans, many files, complex logic)
16
+ - Each task benefits from starting with a clean context window
17
+ - You want enforced quality gates between tasks
18
+
19
+ Do NOT use this skill when:
20
+ - Tasks are independent and can run in parallel (use batch-worktree instead)
21
+ - The plan has only 1-2 small tasks (overhead is not worth it)
22
+ - All tasks modify the same small set of files (single-agent execution is simpler)
23
+
24
+ ## The Iron Law
25
+
26
+ <HARD-GATE>
27
+ NO TASK STARTS UNTIL THE PREVIOUS TASK PASSES 2-STAGE REVIEW.
28
+ If the review found issues, they must be fixed before the next task begins.
29
+ No "we'll fix it later." No "it's close enough." No skipping review for simple tasks.
30
+ Violating this rule ships unreviewed code — the exact problem SDD prevents.
31
+ </HARD-GATE>
32
+
33
+ ## Process
34
+
35
+ ### 1. LOAD — Read the Plan
36
+
37
+ - Read the plan file (PLAN.md) to get the ordered task list
38
+ - For each task, identify: description, acceptance criteria, relevant files
39
+ - Confirm task order makes sense (later tasks may depend on earlier ones)
40
+
41
+ ```bash
42
+ # Load plan context
43
+ INIT=$(node .claude/maxsim/bin/maxsim-tools.cjs init execute-phase "${PHASE}")
44
+ ```
45
+
46
+ ### 2. DISPATCH — Spawn Fresh Agent Per Task
47
+
48
+ For each task in order:
49
+
50
+ 1. Assemble the task context:
51
+ - Task description and acceptance criteria from the plan
52
+ - Only the files relevant to this specific task
53
+ - Results from previous tasks (commit hashes, created files) — NOT the full previous context
54
+ 2. Spawn a fresh `general-purpose` agent with this minimal context
55
+ 3. The agent implements the task, runs tests, and commits
56
+
57
+ ```bash
58
+ # Record task dispatch
59
+ node .claude/maxsim/bin/maxsim-tools.cjs state-add-decision "SDD: dispatching task N — [description]"
60
+ ```
61
+
62
+ ### 3. REVIEW — 2-Stage Quality Gate
63
+
64
+ After each task completes, run two review stages before proceeding:
65
+
66
+ #### Stage 1: Spec Compliance
67
+
68
+ - Does the implementation match the task description?
69
+ - Are all acceptance criteria met?
70
+ - Were only the specified files modified (no scope creep)?
71
+ - Do the changes align with the plan's intent?
72
+
73
+ **Verdict:** PASS or FAIL with specific issues.
74
+
75
+ #### Stage 2: Code Quality
76
+
77
+ - Are there obvious bugs, edge cases, or error handling gaps?
78
+ - Is the code readable and consistent with codebase conventions?
79
+ - Are there unnecessary complications or dead code?
80
+ - Do all tests pass?
81
+
82
+ ```bash
83
+ # Run tests to verify
84
+ npx vitest run
85
+ ```
86
+
87
+ **Verdict:** PASS or FAIL with specific issues.
88
+
89
+ ### 4. FIX — Address Review Failures
90
+
91
+ If either review stage fails:
92
+
93
+ 1. Spawn a NEW fresh agent with:
94
+ - The original task description
95
+ - The review feedback (specific issues found)
96
+ - The current state of the files
97
+ 2. The fix agent addresses ONLY the review issues — no new features
98
+ 3. Re-run both review stages on the fixed code
99
+ 4. If 3 fix attempts fail: STOP and escalate to the user
100
+
101
+ ### 5. ADVANCE — Move to Next Task
102
+
103
+ Only after both review stages pass:
104
+ - Record the task as complete
105
+ - Note the commit hash and any files created/modified
106
+ - Pass this minimal summary (not full context) to the next task's agent
107
+
108
+ ```bash
109
+ # Record task completion
110
+ node .claude/maxsim/bin/maxsim-tools.cjs state-add-decision "SDD: task N complete — [summary]"
111
+ ```
112
+
113
+ ### 6. REPORT — Final Summary
114
+
115
+ After all tasks complete:
116
+ - List each task with its status and commit hash
117
+ - Note any tasks that required fix iterations
118
+ - Summarize the total changes made
119
+
120
+ ## Context Management Rules
121
+
122
+ Each agent receives ONLY what it needs:
123
+
124
+ | Context Item | Included? |
125
+ |-------------|-----------|
126
+ | Task description + acceptance criteria | Always |
127
+ | Files relevant to this task | Always |
128
+ | Previous task commit hashes | Always |
129
+ | Previous task full diff | Never |
130
+ | Previous task agent conversation | Never |
131
+ | PROJECT.md / REQUIREMENTS.md | Only if task references project-level concerns |
132
+ | Full codebase | Never — only specified files |
133
+
134
+ **The point of SDD is fresh context. Loading the previous agent's full context defeats the purpose.**
135
+
136
+ ## Common Rationalizations — REJECT THESE
137
+
138
+ | Excuse | Why It Violates the Rule |
139
+ |--------|--------------------------|
140
+ | "This task is simple, skip review" | Simple tasks still have bugs. Review takes seconds for simple code. |
141
+ | "Review is slowing us down" | Unreviewed code slows you down more when bugs compound across tasks. |
142
+ | "Just pass the full context forward" | Full context = context rot. Minimal summaries keep agents effective. |
143
+ | "Fix it in the next task" | The next task's agent does not know about the bug. Fix it now. |
144
+ | "The agent knows best, trust it" | Agents make mistakes. That is why review exists. |
145
+
146
+ ## Red Flags — STOP If You Catch Yourself:
147
+
148
+ - Starting a new task before the previous one passed review
149
+ - Passing full conversation history to the next agent
150
+ - Skipping Stage 1 or Stage 2 of the review
151
+ - Accumulating "fix later" items across tasks
152
+ - On the 3rd fix attempt for the same review issue (escalate to user)
153
+
154
+ **If any red flag triggers: STOP. Complete the review cycle for the current task before proceeding.**
155
+
156
+ ## Verification Checklist
157
+
158
+ Before reporting completion, confirm:
159
+
160
+ - [ ] Every task was executed by a fresh agent with minimal context
161
+ - [ ] Every task passed both spec compliance and code quality review
162
+ - [ ] No task was skipped or started before the previous task passed review
163
+ - [ ] Fix iterations (if any) are documented
164
+ - [ ] All tests pass after the final task
165
+ - [ ] Summary includes per-task status and commit hashes
166
+
167
+ ## In MAXSIM Plan Execution
168
+
169
+ When a plan specifies `skill: "sdd"`:
170
+ - The orchestrator reads tasks from PLAN.md in order
171
+ - Each task is dispatched to a fresh subagent
172
+ - 2-stage review runs between every task
173
+ - Failed reviews trigger fix agents (up to 3 attempts)
174
+ - Progress is tracked in STATE.md via decision entries
175
+ - Final results are recorded in SUMMARY.md