maxsimcli 5.0.6 → 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.
Files changed (91) hide show
  1. package/README.md +316 -288
  2. package/dist/assets/CHANGELOG.md +14 -0
  3. package/dist/assets/hooks/maxsim-capture-learnings.cjs +128 -0
  4. package/dist/assets/hooks/maxsim-capture-learnings.cjs.map +1 -0
  5. package/dist/assets/hooks/maxsim-check-update.cjs +126 -88
  6. package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -1
  7. package/dist/assets/hooks/maxsim-notification-sound.cjs +87 -43
  8. package/dist/assets/hooks/maxsim-notification-sound.cjs.map +1 -1
  9. package/dist/assets/hooks/maxsim-statusline.cjs +45 -171
  10. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -1
  11. package/dist/assets/hooks/maxsim-stop-sound.cjs +86 -43
  12. package/dist/assets/hooks/maxsim-stop-sound.cjs.map +1 -1
  13. package/dist/assets/hooks/maxsim-sync-reminder.cjs +72 -21
  14. package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
  15. package/dist/assets/templates/agents/AGENTS.md +62 -51
  16. package/dist/assets/templates/agents/executor.md +44 -59
  17. package/dist/assets/templates/agents/planner.md +36 -31
  18. package/dist/assets/templates/agents/researcher.md +35 -43
  19. package/dist/assets/templates/agents/verifier.md +29 -31
  20. package/dist/assets/templates/commands/maxsim/debug.md +20 -154
  21. package/dist/assets/templates/commands/maxsim/execute.md +19 -33
  22. package/dist/assets/templates/commands/maxsim/go.md +21 -20
  23. package/dist/assets/templates/commands/maxsim/help.md +5 -14
  24. package/dist/assets/templates/commands/maxsim/init.md +18 -40
  25. package/dist/assets/templates/commands/maxsim/plan.md +22 -37
  26. package/dist/assets/templates/commands/maxsim/progress.md +15 -16
  27. package/dist/assets/templates/commands/maxsim/quick.md +18 -29
  28. package/dist/assets/templates/commands/maxsim/settings.md +18 -26
  29. package/dist/assets/templates/references/continuation-format.md +2 -4
  30. package/dist/assets/templates/references/model-profiles.md +2 -2
  31. package/dist/assets/templates/references/planning-config.md +10 -11
  32. package/dist/assets/templates/references/self-improvement.md +120 -0
  33. package/dist/assets/templates/rules/conventions.md +1 -1
  34. package/dist/assets/templates/rules/verification-protocol.md +1 -1
  35. package/dist/assets/templates/skills/brainstorming/SKILL.md +35 -26
  36. package/dist/assets/templates/skills/code-review/SKILL.md +78 -55
  37. package/dist/assets/templates/skills/commit-conventions/SKILL.md +70 -36
  38. package/dist/assets/templates/skills/github-operations/SKILL.md +142 -0
  39. package/dist/assets/templates/skills/handoff-contract/SKILL.md +62 -28
  40. package/dist/assets/templates/skills/maxsim-batch/SKILL.md +68 -42
  41. package/dist/assets/templates/skills/maxsim-simplify/SKILL.md +65 -40
  42. package/dist/assets/templates/skills/project-memory/SKILL.md +121 -0
  43. package/dist/assets/templates/skills/research/SKILL.md +126 -0
  44. package/dist/assets/templates/skills/roadmap-writing/SKILL.md +71 -68
  45. package/dist/assets/templates/skills/systematic-debugging/SKILL.md +37 -25
  46. package/dist/assets/templates/skills/tdd/SKILL.md +36 -39
  47. package/dist/assets/templates/skills/using-maxsim/SKILL.md +69 -55
  48. package/dist/assets/templates/skills/verification/SKILL.md +167 -0
  49. package/dist/assets/templates/workflows/batch.md +249 -268
  50. package/dist/assets/templates/workflows/diagnose-issues.md +225 -151
  51. package/dist/assets/templates/workflows/execute-plan.md +191 -981
  52. package/dist/assets/templates/workflows/execute.md +350 -309
  53. package/dist/assets/templates/workflows/go.md +119 -138
  54. package/dist/assets/templates/workflows/health.md +71 -114
  55. package/dist/assets/templates/workflows/help.md +85 -147
  56. package/dist/assets/templates/workflows/init-existing.md +180 -1373
  57. package/dist/assets/templates/workflows/init.md +53 -165
  58. package/dist/assets/templates/workflows/new-milestone.md +91 -334
  59. package/dist/assets/templates/workflows/new-project.md +165 -1384
  60. package/dist/assets/templates/workflows/plan-create.md +182 -73
  61. package/dist/assets/templates/workflows/plan-discuss.md +89 -82
  62. package/dist/assets/templates/workflows/plan-research.md +191 -85
  63. package/dist/assets/templates/workflows/plan.md +122 -58
  64. package/dist/assets/templates/workflows/progress.md +76 -310
  65. package/dist/assets/templates/workflows/quick.md +70 -495
  66. package/dist/assets/templates/workflows/sdd.md +231 -221
  67. package/dist/assets/templates/workflows/settings.md +90 -120
  68. package/dist/assets/templates/workflows/verify-phase.md +296 -258
  69. package/dist/cli.cjs +17 -23465
  70. package/dist/cli.cjs.map +1 -1
  71. package/dist/install.cjs +356 -8358
  72. package/dist/install.cjs.map +1 -1
  73. package/package.json +16 -22
  74. package/dist/assets/templates/skills/agent-system-map/SKILL.md +0 -92
  75. package/dist/assets/templates/skills/evidence-collection/SKILL.md +0 -87
  76. package/dist/assets/templates/skills/github-artifact-protocol/SKILL.md +0 -67
  77. package/dist/assets/templates/skills/github-tools-guide/SKILL.md +0 -89
  78. package/dist/assets/templates/skills/input-validation/SKILL.md +0 -51
  79. package/dist/assets/templates/skills/memory-management/SKILL.md +0 -75
  80. package/dist/assets/templates/skills/research-methodology/SKILL.md +0 -137
  81. package/dist/assets/templates/skills/sdd/SKILL.md +0 -91
  82. package/dist/assets/templates/skills/tool-priority-guide/SKILL.md +0 -80
  83. package/dist/assets/templates/skills/verification-before-completion/SKILL.md +0 -71
  84. package/dist/assets/templates/skills/verification-gates/SKILL.md +0 -169
  85. package/dist/assets/templates/workflows/discuss-phase.md +0 -683
  86. package/dist/assets/templates/workflows/research-phase.md +0 -73
  87. package/dist/assets/templates/workflows/verify-work.md +0 -572
  88. package/dist/core-D5zUr9cb.cjs +0 -4305
  89. package/dist/core-D5zUr9cb.cjs.map +0 -1
  90. package/dist/skills-CjFWZIGM.cjs +0 -6824
  91. 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
- ## Dimensions
14
+ ---
15
+
16
+ ## 3-Pass Review
17
+
18
+ ### Pass 1 — Reuse
19
19
 
20
- ### 1. DUPLICATION -- Eliminate Repeated Logic
20
+ Identify duplication and missed opportunities to use existing code.
21
21
 
22
- - Are there patterns repeated across files that should be a shared helper?
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. DEAD CODE -- Remove What Is Not Called
29
+ ### Pass 2 Quality
29
30
 
30
- - Delete unused imports, variables, functions, and parameters
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
- ### 3. COMPLEXITY -- Question Every Abstraction
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
- - Does every wrapper, adapter, or indirection layer justify its existence?
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
- **If removing it does not break anything, it should not be there.**
42
+ ### Pass 3 Efficiency
43
43
 
44
- ### 4. NAMING -- Tighten Clarity
44
+ Identify unnecessary work, missing caching, and query patterns that scale poorly.
45
45
 
46
- - Are names self-documenting? Rename anything that needs a comment to explain.
47
- - Could nested logic be flattened with early returns?
48
- - Is control flow straightforward, or does it require tracing to understand?
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. **DIFF** -- Collect the set of modified and added files. Read each file in full, not just changed hunks.
53
- 2. **SCAN** -- Check each dimension (duplication, dead code, complexity, naming) against each file.
54
- 3. **RECORD** -- Document findings with file path, line range, dimension, and suggested fix.
55
- 4. **FIX** -- Apply fixes for all actionable items. Blocker and High priority first.
56
- 5. **VERIFY** -- Re-run tests to confirm nothing broke. Simplify, do not alter behavior.
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
- DIMENSION: [Duplication | Dead Code | Complexity | Naming]
62
- FILE: [path]
63
- FINDING: [description]
64
- SEVERITY: [Blocker | High | Medium]
65
- FIX: [what was done or recommended]
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
- ## Common Rationalizations -- Reject These
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
- Stop if you catch yourself skipping the simplification pass because the diff is small, keeping dead code "just in case", or adding complexity during a simplification pass.
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 remains that appears three or more times
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 (simplify only, do not alter)
113
+ - [ ] No behavioral changes introduced
89
114
 
90
- See also: `/code-review` for correctness review (security, interfaces, error handling, test coverage).
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 -- Understand the Project
12
+ ### 1. SCOPE Understand the Project
17
13
 
18
14
  Before writing phases:
19
15
 
20
- - Read PROJECT.md for vision and constraints
21
- - Read REQUIREMENTS.md for v1/v2/out-of-scope boundaries
22
- - Check existing STATE.md for decisions and blockers
23
- - Identify the delivery target (MVP, v1, v2, etc.)
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 -- Break Into Phases
21
+ ### 2. DECOMPOSE Break Into Phases
26
22
 
27
- Each phase should be:
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-3 days of work** | Larger phases should be split; smaller ones should be merged |
33
- | **Clear boundary** | You can tell when the phase is done without ambiguity |
28
+ | **13 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 -- Write Each Phase
40
+ ### 3. DEFINE Write Each Phase
45
41
 
46
42
  Every phase must include:
47
43
 
48
44
  ```markdown
49
- ### Phase {number}: {name}
50
- **Goal**: {one sentence -- what this phase achieves}
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
- **Requirements**: {requirement IDs from REQUIREMENTS.md}
53
- **Success Criteria** (what must be TRUE):
54
- 1. {Observable truth -- verifiable by command, test, or inspection}
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 -- "code is clean" is not testable; "no lint warnings" is testable
61
- - Include at least 2 criteria per phase
62
- - At least one criterion should be verifiable by running a command
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 -- Map Dependencies
60
+ ### 4. CONNECT Map Dependencies and Waves
66
61
 
67
- - Which phases can run in parallel? (Use letter suffixes: `03A`, `03B`)
68
- - Which phases are strictly sequential? (Use number suffixes: `03.1`, `03.2`)
69
- - Are there any circular dependencies? (This is a design error -- restructure)
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
- ### 5. MAP REQUIREMENTS -- Ensure Coverage
67
+ Wave assignment example:
73
68
 
74
- Every requirement ID from REQUIREMENTS.md must appear in at least one phase. Produce a coverage map:
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
- If any requirement is unmapped, either add it to a phase or explicitly mark it as out-of-scope.
77
+ All roadmap artifacts live in GitHub not in local planning files.
81
78
 
82
- ### 6. MILESTONE -- Group Into Milestones
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** -- Phases 1-4
89
- - **v1.1 Polish** -- Phases 5-7
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
- ### 7. VALIDATE -- Check the Roadmap
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 -- no loops |
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 can be verified by command, test, or inspection |
101
- | Requirements are covered | Every requirement ID maps to at least one phase |
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-3 sentences: what the project is, what this roadmap covers}
119
+ {23 sentences: what the project is, what this roadmap covers}
110
120
 
111
121
  ## Milestones
112
- - **{milestone name}** -- Phases {range} ({status})
122
+ - **{milestone name}** Phases {range}
113
123
 
114
- ## Phases
115
- - [ ] **Phase {N}: {name}** - {one-line summary}
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
- **Requirements**: ...
132
+ **Wave**: ...
122
133
  **Success Criteria** (what must be TRUE):
123
134
  1. ...
124
- **Plans**: TBD
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 to the agent running phase 5 next week. |
138
- | "We'll add details later" | Later never comes. Write the details now while context is fresh. |
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
- - The roadmap is read by MAXSIM agents via `roadmap read` -- format compliance is mandatory
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.