maxsimcli 5.0.7 → 5.1.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/README.md +101 -99
- package/dist/assets/CHANGELOG.md +7 -0
- package/dist/assets/hooks/maxsim-capture-learnings.cjs +128 -0
- package/dist/assets/hooks/maxsim-capture-learnings.cjs.map +1 -0
- package/dist/assets/hooks/maxsim-check-update.cjs +126 -88
- package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-notification-sound.cjs +87 -43
- package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-statusline.cjs +45 -171
- package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-stop-sound.cjs +86 -43
- package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -1
- package/dist/assets/hooks/maxsim-sync-reminder.cjs +72 -21
- package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
- package/dist/assets/templates/agents/AGENTS.md +62 -51
- package/dist/assets/templates/agents/executor.md +44 -59
- package/dist/assets/templates/agents/planner.md +36 -31
- package/dist/assets/templates/agents/researcher.md +35 -43
- package/dist/assets/templates/agents/verifier.md +29 -31
- package/dist/assets/templates/commands/maxsim/debug.md +20 -154
- package/dist/assets/templates/commands/maxsim/execute.md +19 -33
- package/dist/assets/templates/commands/maxsim/go.md +21 -20
- package/dist/assets/templates/commands/maxsim/help.md +5 -14
- package/dist/assets/templates/commands/maxsim/init.md +18 -40
- package/dist/assets/templates/commands/maxsim/plan.md +22 -37
- package/dist/assets/templates/commands/maxsim/progress.md +15 -16
- package/dist/assets/templates/commands/maxsim/quick.md +18 -29
- package/dist/assets/templates/commands/maxsim/settings.md +18 -26
- package/dist/assets/templates/references/continuation-format.md +2 -4
- package/dist/assets/templates/references/model-profiles.md +2 -2
- package/dist/assets/templates/references/planning-config.md +10 -11
- package/dist/assets/templates/references/self-improvement.md +120 -0
- package/dist/assets/templates/rules/conventions.md +1 -1
- package/dist/assets/templates/rules/verification-protocol.md +1 -1
- package/dist/assets/templates/skills/brainstorming/SKILL.md +35 -26
- package/dist/assets/templates/skills/code-review/SKILL.md +78 -55
- package/dist/assets/templates/skills/commit-conventions/SKILL.md +70 -36
- package/dist/assets/templates/skills/github-operations/SKILL.md +142 -0
- package/dist/assets/templates/skills/handoff-contract/SKILL.md +62 -28
- package/dist/assets/templates/skills/maxsim-batch/SKILL.md +68 -42
- package/dist/assets/templates/skills/maxsim-simplify/SKILL.md +65 -40
- package/dist/assets/templates/skills/project-memory/SKILL.md +121 -0
- package/dist/assets/templates/skills/research/SKILL.md +126 -0
- package/dist/assets/templates/skills/roadmap-writing/SKILL.md +71 -68
- package/dist/assets/templates/skills/systematic-debugging/SKILL.md +37 -25
- package/dist/assets/templates/skills/tdd/SKILL.md +36 -39
- package/dist/assets/templates/skills/using-maxsim/SKILL.md +69 -55
- package/dist/assets/templates/skills/verification/SKILL.md +167 -0
- package/dist/assets/templates/workflows/batch.md +249 -268
- package/dist/assets/templates/workflows/diagnose-issues.md +225 -151
- package/dist/assets/templates/workflows/execute-plan.md +191 -981
- package/dist/assets/templates/workflows/execute.md +350 -309
- package/dist/assets/templates/workflows/go.md +119 -138
- package/dist/assets/templates/workflows/health.md +71 -114
- package/dist/assets/templates/workflows/help.md +85 -147
- package/dist/assets/templates/workflows/init-existing.md +180 -1373
- package/dist/assets/templates/workflows/init.md +53 -165
- package/dist/assets/templates/workflows/new-milestone.md +91 -334
- package/dist/assets/templates/workflows/new-project.md +165 -1384
- package/dist/assets/templates/workflows/plan-create.md +182 -73
- package/dist/assets/templates/workflows/plan-discuss.md +89 -82
- package/dist/assets/templates/workflows/plan-research.md +191 -85
- package/dist/assets/templates/workflows/plan.md +122 -58
- package/dist/assets/templates/workflows/progress.md +76 -310
- package/dist/assets/templates/workflows/quick.md +70 -495
- package/dist/assets/templates/workflows/sdd.md +231 -221
- package/dist/assets/templates/workflows/settings.md +90 -120
- package/dist/assets/templates/workflows/verify-phase.md +296 -258
- package/dist/cli.cjs +17 -23465
- package/dist/cli.cjs.map +1 -1
- package/dist/install.cjs +356 -8358
- package/dist/install.cjs.map +1 -1
- package/package.json +16 -22
- package/dist/assets/templates/skills/agent-system-map/SKILL.md +0 -92
- package/dist/assets/templates/skills/evidence-collection/SKILL.md +0 -87
- package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +0 -67
- package/dist/assets/templates/skills/github-tools-guide/SKILL.md +0 -89
- package/dist/assets/templates/skills/input-validation/SKILL.md +0 -51
- package/dist/assets/templates/skills/memory-management/SKILL.md +0 -75
- package/dist/assets/templates/skills/research-methodology/SKILL.md +0 -137
- package/dist/assets/templates/skills/sdd/SKILL.md +0 -91
- package/dist/assets/templates/skills/tool-priority-guide/SKILL.md +0 -80
- package/dist/assets/templates/skills/verification-before-completion/SKILL.md +0 -71
- package/dist/assets/templates/skills/verification-gates/SKILL.md +0 -169
- package/dist/assets/templates/workflows/discuss-phase.md +0 -683
- package/dist/assets/templates/workflows/research-phase.md +0 -73
- package/dist/assets/templates/workflows/verify-work.md +0 -572
- package/dist/core-D5zUr9cb.cjs +0 -4305
- package/dist/core-D5zUr9cb.cjs.map +0 -1
- package/dist/skills-CjFWZIGM.cjs +0 -6824
- package/dist/skills-CjFWZIGM.cjs.map +0 -1
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maxsim-simplify
|
|
3
|
-
description:
|
|
4
|
-
Maintainability optimization covering duplication, dead code, complexity, and
|
|
5
|
-
naming. Produces structured findings with before/after metrics. Use when
|
|
6
|
-
reviewing code for simplification, during refactoring passes, or when
|
|
7
|
-
codebase complexity is increasing.
|
|
3
|
+
description: Reviews changed code for reuse opportunities, quality issues, and efficiency improvements, then fixes actionable items. Use after implementing features or when code feels over-engineered.
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Simplify
|
|
@@ -15,57 +11,83 @@ Every line of code is a liability. Remove what does not earn its place.
|
|
|
15
11
|
|
|
16
12
|
Only simplify touched files unless explicitly asked for broader refactoring. The goal is incremental maintainability improvement, not a codebase-wide rewrite.
|
|
17
13
|
|
|
18
|
-
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 3-Pass Review
|
|
17
|
+
|
|
18
|
+
### Pass 1 — Reuse
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Identify duplication and missed opportunities to use existing code.
|
|
21
21
|
|
|
22
|
-
- Are there patterns repeated across files that
|
|
22
|
+
- Are there patterns repeated across files that belong in a shared helper?
|
|
23
23
|
- Does new code duplicate existing utilities or library functions?
|
|
24
24
|
- Could two similar implementations be merged behind a single interface?
|
|
25
|
+
- Are there inline blocks that match patterns already extracted elsewhere?
|
|
25
26
|
|
|
26
|
-
**Rule of three:** If the same pattern appears three times, extract it.
|
|
27
|
+
**Rule of three:** If the same pattern appears three or more times, extract it.
|
|
27
28
|
|
|
28
|
-
### 2
|
|
29
|
+
### Pass 2 — Quality
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
- Remove commented-out code blocks (version control is the archive)
|
|
32
|
-
- Strip unreachable branches and impossible conditions
|
|
33
|
-
- Drop feature flags for features that no longer exist
|
|
31
|
+
Identify naming, complexity, and error handling problems.
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
- Are names self-documenting? Rename anything that requires a comment to explain.
|
|
34
|
+
- Does every abstraction, wrapper, or indirection layer justify its existence?
|
|
35
|
+
- Is there dead code: unused imports, commented-out blocks, unreachable branches?
|
|
36
|
+
- Are feature flags still needed, or do they guard features that no longer exist?
|
|
37
|
+
- Is error handling present and consistent, or are errors silently swallowed?
|
|
38
|
+
- Could nested logic be flattened with early returns?
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
- Are there generics or parametrization that serve only one concrete case?
|
|
39
|
-
- Could a 20-line class be replaced by a 3-line function?
|
|
40
|
-
- Is there defensive programming that guards against conditions that cannot occur?
|
|
40
|
+
**If removing something does not break anything, it should not be there.**
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
### Pass 3 — Efficiency
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
Identify unnecessary work, missing caching, and query patterns that scale poorly.
|
|
45
45
|
|
|
46
|
-
- Are
|
|
47
|
-
-
|
|
48
|
-
-
|
|
46
|
+
- Are there operations repeated in a loop that could run once outside it?
|
|
47
|
+
- Is data fetched that is never used?
|
|
48
|
+
- Are there N+1 query patterns (fetching inside a loop that iterates over results)?
|
|
49
|
+
- Could expensive computations be memoized or cached?
|
|
50
|
+
- Are synchronous operations blocking where async would suffice?
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Priority Levels
|
|
55
|
+
|
|
56
|
+
| Priority | Description | Action |
|
|
57
|
+
|----------|-------------|--------|
|
|
58
|
+
| Blocker | Incorrect behavior, data loss risk, or broken error handling introduced by the change | Fix immediately |
|
|
59
|
+
| High | Significant duplication, N+1 queries, or complexity that will compound | Fix in this pass |
|
|
60
|
+
| Medium | Naming issues, minor inefficiencies, single-use abstractions | File as follow-up issue |
|
|
61
|
+
| Low | Style preferences, marginal improvements | Note only, do not act |
|
|
62
|
+
|
|
63
|
+
Apply fixes for Blocker and High priority items in the current pass. File Medium and Low items as GitHub Issues for follow-up, labelled `maxsim:simplify`.
|
|
64
|
+
|
|
65
|
+
---
|
|
49
66
|
|
|
50
67
|
## Process
|
|
51
68
|
|
|
52
|
-
1. **
|
|
53
|
-
2. **
|
|
54
|
-
3. **
|
|
55
|
-
4. **
|
|
56
|
-
5. **
|
|
69
|
+
1. **Diff** — Collect the set of modified and added files. Read each file in full, not just the changed hunks.
|
|
70
|
+
2. **Scan** — Run all three passes (Reuse, Quality, Efficiency) against each file.
|
|
71
|
+
3. **Record** — Document each finding using the output format below.
|
|
72
|
+
4. **Fix** — Apply all Blocker and High fixes. Do not alter behavior — simplify only.
|
|
73
|
+
5. **Verify** — Re-run tests. Confirm all tests pass before reporting completion.
|
|
74
|
+
|
|
75
|
+
---
|
|
57
76
|
|
|
58
77
|
## Output Format
|
|
59
78
|
|
|
60
79
|
```
|
|
61
|
-
|
|
62
|
-
FILE:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
PASS: [Reuse | Quality | Efficiency]
|
|
81
|
+
FILE: <path>
|
|
82
|
+
LINE: <range>
|
|
83
|
+
FINDING: <description>
|
|
84
|
+
PRIORITY: [Blocker | High | Medium | Low]
|
|
85
|
+
FIX: <what was applied or recommended>
|
|
66
86
|
```
|
|
67
87
|
|
|
68
|
-
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Common Rationalizations — Reject These
|
|
69
91
|
|
|
70
92
|
| Excuse | Why It Fails |
|
|
71
93
|
|--------|-------------|
|
|
@@ -73,18 +95,21 @@ FIX: [what was done or recommended]
|
|
|
73
95
|
| "The abstraction makes it extensible" | Extensibility serving no current requirement is dead weight. |
|
|
74
96
|
| "Refactoring is risky" | Small, tested simplifications reduce risk. Accumulated complexity increases it. |
|
|
75
97
|
| "I'll clean it up later" | Later never comes. Simplify now while context is fresh. |
|
|
98
|
+
| "The diff is small, not worth reviewing" | Small diffs introduce the most insidious problems. |
|
|
76
99
|
|
|
77
|
-
|
|
100
|
+
---
|
|
78
101
|
|
|
79
|
-
## Verification
|
|
102
|
+
## Verification Checklist
|
|
80
103
|
|
|
81
104
|
Before reporting completion:
|
|
82
105
|
|
|
83
106
|
- [ ] All changed files reviewed in full (not just diffs)
|
|
84
|
-
- [ ] No duplicated logic
|
|
107
|
+
- [ ] No duplicated logic that appears three or more times
|
|
85
108
|
- [ ] No dead code: unused imports, commented blocks, unreachable branches
|
|
86
109
|
- [ ] No unnecessary abstractions, wrappers, or indirection layers
|
|
110
|
+
- [ ] Error handling present and consistent in all changed paths
|
|
111
|
+
- [ ] No N+1 queries or repeated expensive operations in loops
|
|
87
112
|
- [ ] All tests pass after simplification
|
|
88
|
-
- [ ] No behavioral changes introduced
|
|
113
|
+
- [ ] No behavioral changes introduced
|
|
89
114
|
|
|
90
|
-
See also: `/code-review` for correctness review
|
|
115
|
+
See also: `/code-review` for correctness review covering security, interfaces, and test coverage.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-memory
|
|
3
|
+
description: GitHub-native persistence for project learnings, decisions, and patterns using issue labels and structured comments. Use when recording what worked, what failed, or architectural decisions that should persist across sessions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Memory Skill
|
|
7
|
+
|
|
8
|
+
Claude Code sessions are stateless. This skill uses GitHub Issues as a persistent, searchable memory store so that learnings, decisions, and patterns survive across sessions and agents.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## What to Persist
|
|
13
|
+
|
|
14
|
+
Not everything is worth recording. Persist only information that would change behaviour in a future session.
|
|
15
|
+
|
|
16
|
+
**Persist:**
|
|
17
|
+
- Successful patterns discovered during implementation (things that worked and why)
|
|
18
|
+
- Failed approaches and the reason they failed (prevents re-trying dead ends)
|
|
19
|
+
- Performance insights with measured baselines (e.g., "query X takes 800ms without index Y")
|
|
20
|
+
- Architectural decisions and the trade-offs considered
|
|
21
|
+
- Non-obvious constraints (environment limits, API quirks, team conventions not in docs)
|
|
22
|
+
|
|
23
|
+
**Do not persist:**
|
|
24
|
+
- Transient debug output
|
|
25
|
+
- Work-in-progress notes
|
|
26
|
+
- Information already captured in code comments or documentation
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Storage: GitHub Issues
|
|
31
|
+
|
|
32
|
+
All project memory lives as GitHub Issues in the project repository. Two labels are used:
|
|
33
|
+
|
|
34
|
+
| Label | Purpose |
|
|
35
|
+
|-------|---------|
|
|
36
|
+
| `maxsim:lesson` | Something learned — what worked or what failed |
|
|
37
|
+
| `maxsim:decision` | An architectural or design decision and its rationale |
|
|
38
|
+
|
|
39
|
+
Create issues with `gh issue create`. Query them with `gh issue list --label maxsim:lesson`.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Lesson Issue Format
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Title: LESSON: <short description of what was learned>
|
|
47
|
+
|
|
48
|
+
## What Happened
|
|
49
|
+
<1–3 sentences describing the situation>
|
|
50
|
+
|
|
51
|
+
## What Worked / What Failed
|
|
52
|
+
<specific outcome>
|
|
53
|
+
|
|
54
|
+
## Why
|
|
55
|
+
<root cause or reason, if known>
|
|
56
|
+
|
|
57
|
+
## Applies To
|
|
58
|
+
<file paths, modules, or domains this lesson is relevant to>
|
|
59
|
+
|
|
60
|
+
## Confidence
|
|
61
|
+
[HIGH|MEDIUM|LOW]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Decision Issue Format
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Title: DECISION: <short description of the decision>
|
|
70
|
+
|
|
71
|
+
## Context
|
|
72
|
+
<what problem prompted this decision>
|
|
73
|
+
|
|
74
|
+
## Decision
|
|
75
|
+
<what was decided>
|
|
76
|
+
|
|
77
|
+
## Alternatives Considered
|
|
78
|
+
- <option A> — rejected because <reason>
|
|
79
|
+
- <option B> — rejected because <reason>
|
|
80
|
+
|
|
81
|
+
## Trade-offs Accepted
|
|
82
|
+
<what is worse as a result of this decision>
|
|
83
|
+
|
|
84
|
+
## Revisit When
|
|
85
|
+
<condition that should trigger re-evaluation>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## When to Create a Memory Issue
|
|
91
|
+
|
|
92
|
+
| Trigger | Action |
|
|
93
|
+
|---------|--------|
|
|
94
|
+
| Phase completion | Create a lesson issue summarising what worked and what did not |
|
|
95
|
+
| 3 or more retries on the same problem | Create a lesson issue before attempting again |
|
|
96
|
+
| A pattern is discovered that could apply elsewhere | Create a lesson issue tagged with relevant modules |
|
|
97
|
+
| A significant architectural choice is made | Create a decision issue immediately |
|
|
98
|
+
| An approach is abandoned mid-phase | Create a lesson issue explaining why |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Git as Memory
|
|
103
|
+
|
|
104
|
+
At the start of a session working on an existing project, read recent git history before planning:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
git log --oneline -20
|
|
108
|
+
git log --oneline --since="7 days ago"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
This surfaces what changed recently without opening every file. Combine with `gh issue list --label maxsim:lesson` to get both code history and recorded learnings.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Claude Code Memory Integration
|
|
116
|
+
|
|
117
|
+
When operating as a sub-agent within a MaxsimCLI workflow, scope memory to the project:
|
|
118
|
+
|
|
119
|
+
- Read existing lesson and decision issues at session start before beginning research or planning
|
|
120
|
+
- Write new issues at session end or at phase boundaries, not mid-task
|
|
121
|
+
- Reference issue numbers in commit messages when a commit directly relates to a recorded decision (e.g., `closes #42` or `see DECISION #38`)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research
|
|
3
|
+
description: Systematic investigation using parallel agents, source hierarchy, and Claude Code tool priority. Merges research methodology with tool selection best practices. Use when investigating codebase patterns, evaluating libraries, or gathering information before planning.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Research Skill
|
|
7
|
+
|
|
8
|
+
Produces reliable, structured findings before planning or implementation begins. Combines investigation methodology with the right tool choices to avoid wasted effort.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 5-Step Research Process
|
|
13
|
+
|
|
14
|
+
### Step 1 — Define Questions
|
|
15
|
+
|
|
16
|
+
Before searching anything, write down the specific questions this research must answer. Vague investigations produce vague results.
|
|
17
|
+
|
|
18
|
+
- One question per line
|
|
19
|
+
- Mark each as: factual (has a definite answer) or evaluative (requires judgment)
|
|
20
|
+
- Set a confidence threshold: what level of certainty is required before acting?
|
|
21
|
+
|
|
22
|
+
### Step 2 — Identify Sources
|
|
23
|
+
|
|
24
|
+
Map each question to its best source before opening any file.
|
|
25
|
+
|
|
26
|
+
**Source hierarchy (highest to lowest trust):**
|
|
27
|
+
|
|
28
|
+
1. Official documentation and specs
|
|
29
|
+
2. Source code and type definitions in the repo
|
|
30
|
+
3. Tests and usage examples in the codebase
|
|
31
|
+
4. Changelogs and release notes
|
|
32
|
+
5. Community discussions (Stack Overflow, GitHub issues)
|
|
33
|
+
6. Blog posts and tutorials
|
|
34
|
+
|
|
35
|
+
Always prefer sources higher in the hierarchy. Do not cite a tutorial when the source code is available.
|
|
36
|
+
|
|
37
|
+
### Step 3 — Gather Evidence
|
|
38
|
+
|
|
39
|
+
Use the correct tool for each task. Using the wrong tool produces slower or incomplete results.
|
|
40
|
+
|
|
41
|
+
**Claude Code Tool Priority:**
|
|
42
|
+
|
|
43
|
+
| Task | Use | Never Use |
|
|
44
|
+
|------|-----|-----------|
|
|
45
|
+
| Read a known file path | `Read` | `cat`, `head`, `tail` |
|
|
46
|
+
| Search file contents | `Grep` | `grep`, `rg` in Bash |
|
|
47
|
+
| Find files by name/pattern | `Glob` | `find`, `ls` |
|
|
48
|
+
| Multi-step investigation across many files | `Agent` | Sequential Bash loops |
|
|
49
|
+
| Single shell command or script | `Bash` | — |
|
|
50
|
+
|
|
51
|
+
**Parallelise where possible.** When multiple files or sources are independent, read or search them in the same tool call batch rather than sequentially.
|
|
52
|
+
|
|
53
|
+
**Time-box each source:** If a source has not yielded useful signal within 10 minutes of investigation, move on and flag it as inconclusive.
|
|
54
|
+
|
|
55
|
+
### Step 4 — Cross-Reference
|
|
56
|
+
|
|
57
|
+
Do not trust a single source. For any finding that will influence a decision:
|
|
58
|
+
|
|
59
|
+
- Confirm in at least two independent sources
|
|
60
|
+
- Note where sources disagree and record both positions
|
|
61
|
+
- Flag anything that changed recently (check git log or changelog dates)
|
|
62
|
+
|
|
63
|
+
### Step 5 — Structure Output
|
|
64
|
+
|
|
65
|
+
Findings must be in a form that another agent or a human can act on without re-reading all the evidence.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Confidence Tags
|
|
70
|
+
|
|
71
|
+
Attach one tag to every finding:
|
|
72
|
+
|
|
73
|
+
- `[HIGH]` — confirmed in authoritative source, cross-referenced
|
|
74
|
+
- `[MEDIUM]` — single source, plausible but not verified
|
|
75
|
+
- `[LOW]` — inferred or community-sourced, treat as hypothesis
|
|
76
|
+
|
|
77
|
+
Never promote a `[LOW]` finding to a decision without additional verification.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Structured Output Template
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
## Research: <topic>
|
|
85
|
+
|
|
86
|
+
### Questions
|
|
87
|
+
1. <question> — <factual|evaluative>
|
|
88
|
+
|
|
89
|
+
### Findings
|
|
90
|
+
1. <finding> [HIGH|MEDIUM|LOW]
|
|
91
|
+
Source: <file path or URL>
|
|
92
|
+
Evidence: <quote or line reference>
|
|
93
|
+
|
|
94
|
+
### Conflicts
|
|
95
|
+
- <source A> says X; <source B> says Y — reason for conflict unknown / likely due to <version>
|
|
96
|
+
|
|
97
|
+
### Open Questions
|
|
98
|
+
- <anything still unresolved>
|
|
99
|
+
|
|
100
|
+
### Recommendation
|
|
101
|
+
<one paragraph — what should happen next based on these findings>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Time-Boxing Rules
|
|
107
|
+
|
|
108
|
+
| Research scope | Max time before checkpoint |
|
|
109
|
+
|---------------|---------------------------|
|
|
110
|
+
| Single function or file | 15 minutes |
|
|
111
|
+
| Single module or package | 30 minutes |
|
|
112
|
+
| Cross-repo or library evaluation | 60 minutes |
|
|
113
|
+
|
|
114
|
+
If the time limit is reached, produce a partial output using the template above and flag it as incomplete. Do not continue without surfacing findings.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## When to Use Parallel Agents
|
|
119
|
+
|
|
120
|
+
Spawn sub-agents when:
|
|
121
|
+
|
|
122
|
+
- Investigating multiple independent libraries simultaneously
|
|
123
|
+
- Comparing implementations across different parts of a large codebase
|
|
124
|
+
- Source gathering and source evaluation can proceed concurrently
|
|
125
|
+
|
|
126
|
+
Do not spawn agents for tasks that are inherently sequential (e.g., reading a file whose path depends on the output of a previous search).
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roadmap-writing
|
|
3
|
-
description:
|
|
4
|
-
Phased planning with dependency graphs, success criteria, and requirement
|
|
5
|
-
mapping. Produces roadmaps with observable truths as success criteria.
|
|
6
|
-
Use when creating project roadmaps, breaking features into phases, or
|
|
7
|
-
structuring multi-phase work.
|
|
3
|
+
description: Creates phased project roadmaps with dependency graphs, success criteria, and GitHub Milestone structure. Use when planning new projects, creating milestones, or breaking work into phases.
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Roadmap Writing
|
|
@@ -13,92 +9,106 @@ A roadmap without success criteria is a wish list. Define what done looks like f
|
|
|
13
9
|
|
|
14
10
|
## Process
|
|
15
11
|
|
|
16
|
-
### 1. SCOPE
|
|
12
|
+
### 1. SCOPE — Understand the Project
|
|
17
13
|
|
|
18
14
|
Before writing phases:
|
|
19
15
|
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
16
|
+
- Identify the delivery target: MVP, v1, v2, specific feature set.
|
|
17
|
+
- Clarify constraints: timeline, team size, known blockers.
|
|
18
|
+
- Gather existing requirements or acceptance criteria.
|
|
19
|
+
- Ask ONE clarifying question at a time if the scope is unclear.
|
|
24
20
|
|
|
25
|
-
### 2. DECOMPOSE
|
|
21
|
+
### 2. DECOMPOSE — Break Into Phases
|
|
26
22
|
|
|
27
|
-
Each phase
|
|
23
|
+
Each phase must be:
|
|
28
24
|
|
|
29
25
|
| Property | Requirement |
|
|
30
|
-
|
|
26
|
+
|----------|-------------|
|
|
31
27
|
| **Independently deliverable** | Produces a working increment, not a half-built feature |
|
|
32
|
-
| **1
|
|
33
|
-
| **Clear boundary** |
|
|
28
|
+
| **1–3 days of work** | Larger phases should be split; smaller ones should be merged |
|
|
29
|
+
| **Clear boundary** | Determinable when done without ambiguity |
|
|
34
30
|
| **Ordered by dependency** | No phase depends on a later phase |
|
|
35
31
|
|
|
36
32
|
Phase numbering convention:
|
|
37
33
|
|
|
38
34
|
| Format | When to Use |
|
|
39
|
-
|
|
35
|
+
|--------|-------------|
|
|
40
36
|
| `01`, `02`, `03` | Standard sequential phases |
|
|
41
|
-
| `01A`, `01B` | Parallel sub-phases that can execute concurrently |
|
|
37
|
+
| `01A`, `01B` | Parallel sub-phases that can execute concurrently (same wave) |
|
|
42
38
|
| `01.1`, `01.2` | Sequential sub-phases within a parent phase |
|
|
43
39
|
|
|
44
|
-
### 3. DEFINE
|
|
40
|
+
### 3. DEFINE — Write Each Phase
|
|
45
41
|
|
|
46
42
|
Every phase must include:
|
|
47
43
|
|
|
48
44
|
```markdown
|
|
49
|
-
### Phase {
|
|
50
|
-
**Goal**: {one sentence
|
|
45
|
+
### Phase {N}: {name}
|
|
46
|
+
**Goal**: {one sentence — what this phase achieves}
|
|
51
47
|
**Depends on**: {phase numbers, or "Nothing" for the first phase}
|
|
52
|
-
**
|
|
53
|
-
**Success Criteria** (what must be TRUE):
|
|
54
|
-
1. {Observable truth
|
|
48
|
+
**Wave**: {wave number for parallel execution planning}
|
|
49
|
+
**Success Criteria** (what must be TRUE when this phase is done):
|
|
50
|
+
1. {Observable truth — verifiable by command, test, or inspection}
|
|
55
51
|
2. {Observable truth}
|
|
56
|
-
**Plans**: TBD
|
|
57
52
|
```
|
|
58
53
|
|
|
59
54
|
Success criteria rules:
|
|
60
|
-
- Each criterion must be testable
|
|
61
|
-
-
|
|
62
|
-
- At least one criterion
|
|
63
|
-
- Criteria describe the end state, not the process ("tests pass" not "write tests")
|
|
55
|
+
- Each criterion must be testable — "code is clean" fails; "no lint warnings on `npm run lint`" passes.
|
|
56
|
+
- At least 2 criteria per phase.
|
|
57
|
+
- At least one criterion verifiable by running a command.
|
|
58
|
+
- Criteria describe the end state, not the process ("tests pass" not "write tests").
|
|
64
59
|
|
|
65
|
-
### 4. CONNECT
|
|
60
|
+
### 4. CONNECT — Map Dependencies and Waves
|
|
66
61
|
|
|
67
|
-
- Which phases can run in parallel?
|
|
68
|
-
- Which phases are strictly sequential?
|
|
69
|
-
-
|
|
70
|
-
- Every phase except the first must declare at least one dependency
|
|
62
|
+
- Which phases can run in parallel? Assign the same wave number.
|
|
63
|
+
- Which phases are strictly sequential? Use incrementing wave numbers.
|
|
64
|
+
- Check for circular dependencies — this is a design error. Restructure if found.
|
|
65
|
+
- Every phase except the first must declare at least one dependency.
|
|
71
66
|
|
|
72
|
-
|
|
67
|
+
Wave assignment example:
|
|
73
68
|
|
|
74
|
-
|
|
69
|
+
| Wave | Phases | Notes |
|
|
70
|
+
|------|--------|-------|
|
|
71
|
+
| 1 | 01 | Foundation — nothing depends on nothing |
|
|
72
|
+
| 2 | 02A, 02B | Parallel — both depend on Phase 01 |
|
|
73
|
+
| 3 | 03 | Depends on both 02A and 02B |
|
|
75
74
|
|
|
76
|
-
|
|
77
|
-
REQUIREMENT-ID -> Phase N
|
|
78
|
-
```
|
|
75
|
+
### 5. GITHUB MILESTONE STRUCTURE
|
|
79
76
|
|
|
80
|
-
|
|
77
|
+
All roadmap artifacts live in GitHub — not in local planning files.
|
|
81
78
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Group phases into milestones that represent user-visible releases:
|
|
79
|
+
**Milestones** map to user-visible releases:
|
|
85
80
|
|
|
86
81
|
```markdown
|
|
87
82
|
## Milestones
|
|
88
|
-
- **v1.0 MVP**
|
|
89
|
-
- **v1.1 Polish**
|
|
83
|
+
- **v1.0 MVP** — Phases 01–04
|
|
84
|
+
- **v1.1 Polish** — Phases 05–07
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**GitHub Issue format** for each phase:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
Title: [Phase {N}] {Phase name}
|
|
91
|
+
Body:
|
|
92
|
+
**Goal**: {one sentence}
|
|
93
|
+
**Depends on**: #{issue numbers}
|
|
94
|
+
**Wave**: {number}
|
|
95
|
+
**Success Criteria**:
|
|
96
|
+
- [ ] {criterion 1}
|
|
97
|
+
- [ ] {criterion 2}
|
|
90
98
|
```
|
|
91
99
|
|
|
92
|
-
|
|
100
|
+
Assign each issue to the corresponding GitHub Milestone. Use issue references (`#N`) for dependency tracking, not free-form text.
|
|
101
|
+
|
|
102
|
+
### 6. VALIDATE — Check the Roadmap
|
|
93
103
|
|
|
94
104
|
| Check | How to Verify |
|
|
95
|
-
|
|
105
|
+
|-------|---------------|
|
|
96
106
|
| Every phase has success criteria | Read each phase detail section |
|
|
97
|
-
| Dependencies are acyclic | Trace the dependency chain
|
|
107
|
+
| Dependencies are acyclic | Trace the dependency chain — no loops |
|
|
98
108
|
| Phase numbering is sequential | Numbers increase, no gaps larger than 1 |
|
|
99
109
|
| Milestones cover all phases | Every phase appears in exactly one milestone |
|
|
100
|
-
| Success criteria are testable | Each criterion
|
|
101
|
-
|
|
|
110
|
+
| Success criteria are testable | Each criterion verifiable by command, test, or inspection |
|
|
111
|
+
| Wave assignments are consistent | Parallel phases share a wave; sequential phases do not |
|
|
102
112
|
|
|
103
113
|
## Roadmap Format
|
|
104
114
|
|
|
@@ -106,25 +116,23 @@ Group phases into milestones that represent user-visible releases:
|
|
|
106
116
|
# Roadmap: {project name}
|
|
107
117
|
|
|
108
118
|
## Overview
|
|
109
|
-
{2
|
|
119
|
+
{2–3 sentences: what the project is, what this roadmap covers}
|
|
110
120
|
|
|
111
121
|
## Milestones
|
|
112
|
-
- **{milestone name}**
|
|
122
|
+
- **{milestone name}** — Phases {range}
|
|
113
123
|
|
|
114
|
-
##
|
|
115
|
-
- [ ] **Phase {N}: {name}**
|
|
124
|
+
## Phase Index
|
|
125
|
+
- [ ] **Phase {N}: {name}** — {one-line summary} (Wave {W})
|
|
116
126
|
|
|
117
127
|
## Phase Details
|
|
128
|
+
|
|
118
129
|
### Phase {N}: {name}
|
|
119
130
|
**Goal**: ...
|
|
120
131
|
**Depends on**: ...
|
|
121
|
-
**
|
|
132
|
+
**Wave**: ...
|
|
122
133
|
**Success Criteria** (what must be TRUE):
|
|
123
134
|
1. ...
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
## Coverage Map
|
|
127
|
-
REQUIREMENT-ID -> Phase N
|
|
135
|
+
2. ...
|
|
128
136
|
```
|
|
129
137
|
|
|
130
138
|
## Common Pitfalls
|
|
@@ -132,15 +140,10 @@ REQUIREMENT-ID -> Phase N
|
|
|
132
140
|
| Pitfall | Why It Fails |
|
|
133
141
|
|---------|-------------|
|
|
134
142
|
| "We don't know enough to plan" | Plan what you know. Unknown phases get a research spike first. |
|
|
135
|
-
| "Success criteria are too rigid" | Vague criteria are useless. Rigid criteria are adjustable. |
|
|
143
|
+
| "Success criteria are too rigid" | Vague criteria are useless. Rigid criteria are adjustable. Update them when scope changes. |
|
|
136
144
|
| "One big phase is simpler" | Big phases hide complexity and delay feedback. Split them. |
|
|
137
|
-
| "Dependencies are obvious" | Obvious to you now. Not obvious
|
|
138
|
-
| "We'll add details later" | Later never comes. Write the details
|
|
139
|
-
|
|
140
|
-
Stop if you catch yourself writing a phase without success criteria, creating phases longer than 3 days of work, skipping dependency declarations, or writing vague criteria like "code is good".
|
|
141
|
-
|
|
142
|
-
## MAXSIM Integration
|
|
145
|
+
| "Dependencies are obvious" | Obvious to you now. Not obvious three weeks from now. |
|
|
146
|
+
| "We'll add details later" | Later never comes. Write the details while context is fresh. |
|
|
147
|
+
| "I'll track this in a local file" | Everything goes to GitHub. Local planning files do not survive context resets. |
|
|
143
148
|
|
|
144
|
-
|
|
145
|
-
- Phase numbering must be parseable by `normalizePhaseName()` and `comparePhaseNum()`
|
|
146
|
-
- Config `model_profile` in `.planning/config.json` affects agent assignment per phase
|
|
149
|
+
Stop if you catch yourself writing a phase without success criteria, creating phases longer than 3 days of work, skipping dependency declarations, writing vague criteria like "code is good", or storing roadmap data outside of GitHub.
|