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