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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/index.d.ts +0 -11
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +4 -40
- package/dist/adapters/index.js.map +1 -1
- package/dist/assets/CHANGELOG.md +36 -0
- package/dist/assets/dashboard/client/assets/{index-CZ8WC97G.js → index-C_eAetZJ.js} +66 -66
- package/dist/assets/dashboard/client/assets/index-CmiJKqOU.css +32 -0
- package/dist/assets/dashboard/client/index.html +2 -2
- package/dist/assets/dashboard/server.js +467 -271
- package/dist/assets/templates/agents/AGENTS.md +94 -0
- package/dist/assets/templates/agents/maxsim-debugger.md +2 -2
- package/dist/assets/templates/agents/maxsim-executor.md +5 -5
- package/dist/assets/templates/agents/maxsim-phase-researcher.md +2 -2
- package/dist/assets/templates/agents/maxsim-plan-checker.md +2 -2
- package/dist/assets/templates/agents/maxsim-planner.md +3 -3
- package/dist/assets/templates/commands/maxsim/add-todo.md +15 -5
- package/dist/assets/templates/commands/maxsim/discuss-phase.md +1 -0
- package/dist/assets/templates/commands/maxsim/init-existing.md +4 -0
- package/dist/assets/templates/commands/maxsim/new-project.md +4 -0
- package/dist/assets/templates/commands/maxsim/settings.md +1 -1
- package/dist/assets/templates/references/thinking-partner.md +41 -0
- package/dist/assets/templates/skills/batch-worktree/SKILL.md +137 -0
- package/dist/assets/templates/skills/brainstorming/SKILL.md +159 -0
- package/dist/assets/templates/skills/code-review/SKILL.md +151 -0
- package/dist/assets/templates/skills/memory-management/SKILL.md +174 -0
- package/dist/assets/templates/skills/roadmap-writing/SKILL.md +198 -0
- package/dist/assets/templates/skills/sdd/SKILL.md +175 -0
- package/dist/assets/templates/skills/simplify/SKILL.md +185 -0
- package/dist/assets/templates/skills/using-maxsim/SKILL.md +120 -0
- package/dist/assets/templates/templates/acceptance-criteria.md +10 -0
- package/dist/assets/templates/templates/config.json +1 -1
- package/dist/assets/templates/templates/decisions.md +10 -0
- package/dist/assets/templates/templates/no-gos.md +9 -0
- package/dist/assets/templates/workflows/add-tests.md +3 -3
- package/dist/assets/templates/workflows/add-todo.md +89 -0
- package/dist/assets/templates/workflows/complete-milestone.md +1 -1
- package/dist/assets/templates/workflows/discuss-phase.md +85 -1
- package/dist/assets/templates/workflows/execute-phase.md +26 -16
- package/dist/assets/templates/workflows/execute-plan.md +166 -0
- package/dist/assets/templates/workflows/init-existing.md +123 -3
- package/dist/assets/templates/workflows/new-milestone.md +4 -0
- package/dist/assets/templates/workflows/new-project.md +111 -3
- package/dist/assets/templates/workflows/plan-phase.md +5 -5
- package/dist/assets/templates/workflows/quick.md +2 -2
- package/dist/assets/templates/workflows/settings.md +8 -4
- package/dist/assets/templates/workflows/verify-work.md +1 -1
- package/dist/cli.cjs +1512 -1026
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +170 -278
- package/dist/cli.js.map +1 -1
- package/dist/core/artefakte.d.ts +12 -0
- package/dist/core/artefakte.d.ts.map +1 -0
- package/dist/core/artefakte.js +136 -0
- package/dist/core/artefakte.js.map +1 -0
- package/dist/core/commands.d.ts +13 -13
- package/dist/core/commands.d.ts.map +1 -1
- package/dist/core/commands.js +48 -58
- package/dist/core/commands.js.map +1 -1
- package/dist/core/config.d.ts +4 -3
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +14 -18
- package/dist/core/config.js.map +1 -1
- package/dist/core/context-loader.d.ts +20 -0
- package/dist/core/context-loader.d.ts.map +1 -0
- package/dist/core/context-loader.js +154 -0
- package/dist/core/context-loader.js.map +1 -0
- package/dist/core/core.d.ts +26 -2
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +90 -24
- package/dist/core/core.js.map +1 -1
- package/dist/core/dashboard-launcher.d.ts +56 -0
- package/dist/core/dashboard-launcher.d.ts.map +1 -0
- package/dist/core/dashboard-launcher.js +246 -0
- package/dist/core/dashboard-launcher.js.map +1 -0
- package/dist/core/frontmatter.d.ts +5 -5
- package/dist/core/frontmatter.d.ts.map +1 -1
- package/dist/core/frontmatter.js +21 -26
- package/dist/core/frontmatter.js.map +1 -1
- package/dist/core/index.d.ts +10 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +40 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/init.d.ts +14 -15
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +93 -155
- package/dist/core/init.js.map +1 -1
- package/dist/core/milestone.d.ts +3 -3
- package/dist/core/milestone.d.ts.map +1 -1
- package/dist/core/milestone.js +9 -9
- package/dist/core/milestone.js.map +1 -1
- package/dist/core/phase.d.ts +9 -9
- package/dist/core/phase.d.ts.map +1 -1
- package/dist/core/phase.js +65 -63
- package/dist/core/phase.js.map +1 -1
- package/dist/core/roadmap.d.ts +4 -3
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/roadmap.js +46 -108
- package/dist/core/roadmap.js.map +1 -1
- package/dist/core/skills.d.ts +19 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +145 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/start.d.ts +15 -0
- package/dist/core/start.d.ts.map +1 -0
- package/dist/core/start.js +80 -0
- package/dist/core/start.js.map +1 -0
- package/dist/core/state.d.ts +13 -13
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +125 -130
- package/dist/core/state.js.map +1 -1
- package/dist/core/template.d.ts +3 -3
- package/dist/core/template.d.ts.map +1 -1
- package/dist/core/template.js +12 -14
- package/dist/core/template.js.map +1 -1
- package/dist/core/types.d.ts +15 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/verify.d.ts +10 -9
- package/dist/core/verify.d.ts.map +1 -1
- package/dist/core/verify.js +38 -48
- package/dist/core/verify.js.map +1 -1
- package/dist/core-TFSlUjV1.cjs +4312 -0
- package/dist/core-TFSlUjV1.cjs.map +1 -0
- package/dist/install/adapters.d.ts +6 -0
- package/dist/install/adapters.d.ts.map +1 -0
- package/dist/install/adapters.js +65 -0
- package/dist/install/adapters.js.map +1 -0
- package/dist/install/copy.d.ts +6 -0
- package/dist/install/copy.d.ts.map +1 -0
- package/dist/install/copy.js +71 -0
- package/dist/install/copy.js.map +1 -0
- package/dist/install/dashboard.d.ts +16 -0
- package/dist/install/dashboard.d.ts.map +1 -0
- package/dist/install/dashboard.js +273 -0
- package/dist/install/dashboard.js.map +1 -0
- package/dist/install/hooks.d.ts +31 -0
- package/dist/install/hooks.d.ts.map +1 -0
- package/dist/install/hooks.js +260 -0
- package/dist/install/hooks.js.map +1 -0
- package/dist/install/index.d.ts +2 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +535 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/manifest.d.ts +23 -0
- package/dist/install/manifest.d.ts.map +1 -0
- package/dist/install/manifest.js +129 -0
- package/dist/install/manifest.js.map +1 -0
- package/dist/install/patches.d.ts +10 -0
- package/dist/install/patches.d.ts.map +1 -0
- package/dist/install/patches.js +124 -0
- package/dist/install/patches.js.map +1 -0
- package/dist/install/shared.d.ts +56 -0
- package/dist/install/shared.d.ts.map +1 -0
- package/dist/install/shared.js +172 -0
- package/dist/install/shared.js.map +1 -0
- package/dist/install/uninstall.d.ts +5 -0
- package/dist/install/uninstall.d.ts.map +1 -0
- package/dist/install/uninstall.js +222 -0
- package/dist/install/uninstall.js.map +1 -0
- package/dist/install.cjs +793 -1648
- package/dist/install.cjs.map +1 -1
- package/dist/mcp-server.cjs +38 -14
- package/dist/mcp-server.cjs.map +1 -1
- package/dist/skills-BOSxYUzf.cjs +6812 -0
- package/dist/skills-BOSxYUzf.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/adapters/codex.d.ts +0 -19
- package/dist/adapters/codex.d.ts.map +0 -1
- package/dist/adapters/codex.js +0 -94
- package/dist/adapters/codex.js.map +0 -1
- package/dist/adapters/gemini.d.ts +0 -19
- package/dist/adapters/gemini.d.ts.map +0 -1
- package/dist/adapters/gemini.js +0 -96
- package/dist/adapters/gemini.js.map +0 -1
- package/dist/adapters/opencode.d.ts +0 -17
- package/dist/adapters/opencode.d.ts.map +0 -1
- package/dist/adapters/opencode.js +0 -111
- package/dist/adapters/opencode.js.map +0 -1
- package/dist/adapters/transforms/content.d.ts +0 -39
- package/dist/adapters/transforms/content.d.ts.map +0 -1
- package/dist/adapters/transforms/content.js +0 -125
- package/dist/adapters/transforms/content.js.map +0 -1
- package/dist/adapters/transforms/frontmatter.d.ts +0 -42
- package/dist/adapters/transforms/frontmatter.d.ts.map +0 -1
- package/dist/adapters/transforms/frontmatter.js +0 -204
- package/dist/adapters/transforms/frontmatter.js.map +0 -1
- package/dist/adapters/transforms/tool-maps.d.ts +0 -20
- package/dist/adapters/transforms/tool-maps.d.ts.map +0 -1
- package/dist/adapters/transforms/tool-maps.js +0 -64
- package/dist/adapters/transforms/tool-maps.js.map +0 -1
- package/dist/assets/dashboard/client/assets/index-DzJChB-D.css +0 -32
- package/dist/install.d.ts +0 -2
- package/dist/install.d.ts.map +0 -1
- package/dist/install.js +0 -1841
- 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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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">
|