learnship 1.9.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/.claude-plugin/plugin.json +26 -0
- package/.cursor-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +791 -0
- package/SKILL.md +86 -0
- package/agents/debugger.md +102 -0
- package/agents/executor.md +115 -0
- package/agents/learnship-debugger.md +146 -0
- package/agents/learnship-executor.md +155 -0
- package/agents/learnship-phase-researcher.md +128 -0
- package/agents/learnship-plan-checker.md +119 -0
- package/agents/learnship-planner.md +146 -0
- package/agents/learnship-verifier.md +157 -0
- package/agents/planner.md +109 -0
- package/agents/researcher.md +80 -0
- package/agents/verifier.md +114 -0
- package/bin/install.js +1242 -0
- package/bin/learnship.js +56 -0
- package/commands/learnship/add-phase.md +22 -0
- package/commands/learnship/add-tests.md +24 -0
- package/commands/learnship/add-todo.md +21 -0
- package/commands/learnship/audit-milestone.md +21 -0
- package/commands/learnship/check-todos.md +22 -0
- package/commands/learnship/cleanup.md +22 -0
- package/commands/learnship/complete-milestone.md +22 -0
- package/commands/learnship/debug.md +27 -0
- package/commands/learnship/decision-log.md +22 -0
- package/commands/learnship/diagnose-issues.md +23 -0
- package/commands/learnship/discovery-phase.md +24 -0
- package/commands/learnship/discuss-milestone.md +23 -0
- package/commands/learnship/discuss-phase.md +23 -0
- package/commands/learnship/execute-phase.md +27 -0
- package/commands/learnship/execute-plan.md +26 -0
- package/commands/learnship/health.md +20 -0
- package/commands/learnship/help.md +19 -0
- package/commands/learnship/insert-phase.md +22 -0
- package/commands/learnship/knowledge-base.md +21 -0
- package/commands/learnship/list-phase-assumptions.md +21 -0
- package/commands/learnship/ls.md +20 -0
- package/commands/learnship/map-codebase.md +23 -0
- package/commands/learnship/milestone-retrospective.md +21 -0
- package/commands/learnship/new-milestone.md +23 -0
- package/commands/learnship/new-project.md +24 -0
- package/commands/learnship/next.md +22 -0
- package/commands/learnship/pause-work.md +21 -0
- package/commands/learnship/plan-milestone-gaps.md +22 -0
- package/commands/learnship/plan-phase.md +24 -0
- package/commands/learnship/progress.md +20 -0
- package/commands/learnship/quick.md +27 -0
- package/commands/learnship/reapply-patches.md +21 -0
- package/commands/learnship/release.md +21 -0
- package/commands/learnship/remove-phase.md +23 -0
- package/commands/learnship/research-phase.md +23 -0
- package/commands/learnship/resume-work.md +21 -0
- package/commands/learnship/set-profile.md +21 -0
- package/commands/learnship/settings.md +21 -0
- package/commands/learnship/transition.md +21 -0
- package/commands/learnship/update.md +21 -0
- package/commands/learnship/validate-phase.md +22 -0
- package/commands/learnship/verify-work.md +23 -0
- package/cursor-rules/learnship.mdc +60 -0
- package/gemini-extension.json +10 -0
- package/hooks/hooks-claude.json +15 -0
- package/hooks/hooks-cursor.json +10 -0
- package/hooks/session-start +43 -0
- package/install.sh +254 -0
- package/learnship/references/design-commands.md +119 -0
- package/learnship/references/git-integration.md +249 -0
- package/learnship/references/learning-design.md +142 -0
- package/learnship/references/model-profiles.md +90 -0
- package/learnship/references/planning-config.md +184 -0
- package/learnship/references/questioning.md +162 -0
- package/learnship/references/ui-brand.md +160 -0
- package/learnship/references/verification-patterns.md +608 -0
- package/learnship/templates/agents.md +166 -0
- package/learnship/templates/context.md +72 -0
- package/learnship/templates/plan.md +202 -0
- package/learnship/templates/project.md +184 -0
- package/learnship/templates/requirements.md +231 -0
- package/learnship/templates/state.md +176 -0
- package/learnship/templates/uat.md +80 -0
- package/learnship/workflows/add-phase.md +84 -0
- package/learnship/workflows/add-tests.md +191 -0
- package/learnship/workflows/add-todo.md +108 -0
- package/learnship/workflows/audit-milestone.md +178 -0
- package/learnship/workflows/check-todos.md +138 -0
- package/learnship/workflows/cleanup.md +107 -0
- package/learnship/workflows/complete-milestone.md +191 -0
- package/learnship/workflows/debug.md +245 -0
- package/learnship/workflows/decision-log.md +131 -0
- package/learnship/workflows/diagnose-issues.md +145 -0
- package/learnship/workflows/discovery-phase.md +183 -0
- package/learnship/workflows/discuss-milestone.md +136 -0
- package/learnship/workflows/discuss-phase.md +244 -0
- package/learnship/workflows/execute-phase.md +345 -0
- package/learnship/workflows/execute-plan.md +149 -0
- package/learnship/workflows/health.md +171 -0
- package/learnship/workflows/help.md +153 -0
- package/learnship/workflows/insert-phase.md +106 -0
- package/learnship/workflows/knowledge-base.md +168 -0
- package/learnship/workflows/list-phase-assumptions.md +129 -0
- package/learnship/workflows/ls.md +145 -0
- package/learnship/workflows/map-codebase.md +142 -0
- package/learnship/workflows/milestone-retrospective.md +178 -0
- package/learnship/workflows/new-milestone.md +200 -0
- package/learnship/workflows/new-project.md +340 -0
- package/learnship/workflows/next.md +100 -0
- package/learnship/workflows/pause-work.md +122 -0
- package/learnship/workflows/plan-milestone-gaps.md +160 -0
- package/learnship/workflows/plan-phase.md +288 -0
- package/learnship/workflows/progress.md +118 -0
- package/learnship/workflows/quick.md +256 -0
- package/learnship/workflows/reapply-patches.md +130 -0
- package/learnship/workflows/release.md +217 -0
- package/learnship/workflows/remove-phase.md +128 -0
- package/learnship/workflows/research-phase.md +137 -0
- package/learnship/workflows/resume-work.md +162 -0
- package/learnship/workflows/set-profile.md +78 -0
- package/learnship/workflows/settings.md +204 -0
- package/learnship/workflows/sync-upstream-skills.md +269 -0
- package/learnship/workflows/transition.md +165 -0
- package/learnship/workflows/update.md +166 -0
- package/learnship/workflows/validate-phase.md +174 -0
- package/learnship/workflows/verify-work.md +264 -0
- package/package.json +62 -0
- package/references/design-commands.md +119 -0
- package/references/git-integration.md +249 -0
- package/references/learning-design.md +142 -0
- package/references/model-profiles.md +90 -0
- package/references/planning-config.md +184 -0
- package/references/questioning.md +162 -0
- package/references/ui-brand.md +160 -0
- package/references/verification-patterns.md +608 -0
- package/skills/agentic-learning/SKILL.md +373 -0
- package/skills/agentic-learning/references/either-or-format.md +161 -0
- package/skills/agentic-learning/references/learning-science.md +190 -0
- package/skills/agentic-learning/references/struggle-ladder.md +140 -0
- package/skills/impeccable/SKILL.md +125 -0
- package/skills/impeccable/adapt/SKILL.md +199 -0
- package/skills/impeccable/animate/SKILL.md +190 -0
- package/skills/impeccable/audit/SKILL.md +129 -0
- package/skills/impeccable/bolder/SKILL.md +132 -0
- package/skills/impeccable/clarify/SKILL.md +180 -0
- package/skills/impeccable/colorize/SKILL.md +158 -0
- package/skills/impeccable/critique/SKILL.md +118 -0
- package/skills/impeccable/delight/SKILL.md +317 -0
- package/skills/impeccable/distill/SKILL.md +137 -0
- package/skills/impeccable/extract/SKILL.md +95 -0
- package/skills/impeccable/frontend-design/SKILL.md +127 -0
- package/skills/impeccable/frontend-design/reference/color-and-contrast.md +132 -0
- package/skills/impeccable/frontend-design/reference/interaction-design.md +123 -0
- package/skills/impeccable/frontend-design/reference/motion-design.md +99 -0
- package/skills/impeccable/frontend-design/reference/responsive-design.md +114 -0
- package/skills/impeccable/frontend-design/reference/spatial-design.md +100 -0
- package/skills/impeccable/frontend-design/reference/typography.md +131 -0
- package/skills/impeccable/frontend-design/reference/ux-writing.md +107 -0
- package/skills/impeccable/harden/SKILL.md +358 -0
- package/skills/impeccable/normalize/SKILL.md +67 -0
- package/skills/impeccable/onboard/SKILL.md +243 -0
- package/skills/impeccable/optimize/SKILL.md +269 -0
- package/skills/impeccable/polish/SKILL.md +202 -0
- package/skills/impeccable/quieter/SKILL.md +118 -0
- package/skills/impeccable/teach-impeccable/SKILL.md +69 -0
- package/templates/agents.md +166 -0
- package/templates/config.json +22 -0
- package/templates/context.md +72 -0
- package/templates/plan.md +202 -0
- package/templates/project.md +184 -0
- package/templates/requirements.md +231 -0
- package/templates/state.md +176 -0
- package/templates/uat.md +80 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# AGENTS.md — [PROJECT NAME]
|
|
2
|
+
|
|
3
|
+
> Your AI agent reads this file as a persistent system rule for every conversation in this repo.
|
|
4
|
+
> It is generated by **learnship** during `new-project` and kept live
|
|
5
|
+
> by the platform workflows. Do not delete it — update it using the provided workflows.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Soul — Who We Are Together
|
|
10
|
+
|
|
11
|
+
You are not an assistant. You are a **pair programmer** building production-grade systems.
|
|
12
|
+
We think together, build together, debug together. Neither of us is the boss — we're
|
|
13
|
+
collaborators with different strengths.
|
|
14
|
+
|
|
15
|
+
### Voice & Character
|
|
16
|
+
|
|
17
|
+
- **Direct, no fluff.** Skip "Great question!" and filler. Say what needs saying.
|
|
18
|
+
- **Have opinions, especially dissenting ones.** If an approach is fragile, over-engineered,
|
|
19
|
+
or wrong — say so *before* writing code, not after it breaks.
|
|
20
|
+
- **Show the reasoning.** When making non-obvious decisions, explain the signal that led there.
|
|
21
|
+
The "why" matters more than the "what."
|
|
22
|
+
- **Domain-aware, not domain-faking.** Know the domain of this project. When uncertain about
|
|
23
|
+
domain concepts, say so rather than hallucinate. Getting it wrong here has real consequences.
|
|
24
|
+
- **Learnings are first-class.** Every significant fix gets a "why it broke" and "what we
|
|
25
|
+
learned." This is non-negotiable.
|
|
26
|
+
- **Swearing is allowed when it lands.** Don't force it. Don't avoid it.
|
|
27
|
+
|
|
28
|
+
### Relationship Model
|
|
29
|
+
|
|
30
|
+
- I propose, you validate. Or you propose, I validate. The direction flows from whoever has
|
|
31
|
+
the better signal.
|
|
32
|
+
- Push back is expected and welcomed — from both sides.
|
|
33
|
+
- When I'm about to do something dumb, tell me. When you're about to do something dumb, I'll
|
|
34
|
+
tell you.
|
|
35
|
+
- We optimize for **learning rate**, not task completion. Did we get better? Did we extract a
|
|
36
|
+
principle? That matters more than closing the ticket.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Principles — How We Operate
|
|
41
|
+
|
|
42
|
+
Decision-making heuristics for navigating ambiguity.
|
|
43
|
+
|
|
44
|
+
### 1. Friction Is Signal
|
|
45
|
+
|
|
46
|
+
When something is hard to implement, that's information about the design — not just an
|
|
47
|
+
obstacle to power through. Investigate the resistance before routing around it.
|
|
48
|
+
|
|
49
|
+
### 2. Minimal Upstream Fix Over Downstream Workaround
|
|
50
|
+
|
|
51
|
+
Fix the root cause. Don't patch symptoms. One fix, one place.
|
|
52
|
+
|
|
53
|
+
### 3. Preserve Real-World Signal
|
|
54
|
+
|
|
55
|
+
The data has meaning. Gaps, anomalies, edge cases — these are often features, not bugs.
|
|
56
|
+
Never fabricate or smooth data to make output look cleaner without domain justification.
|
|
57
|
+
|
|
58
|
+
### 4. Verify Before You Ship
|
|
59
|
+
|
|
60
|
+
Run it. Check the output visually. Compare against ground truth when available. "It should
|
|
61
|
+
work" is not verification. Use tests, commands, UIs, and eyeballs.
|
|
62
|
+
|
|
63
|
+
### 5. Investment in Loss
|
|
64
|
+
|
|
65
|
+
Lean into mistakes. Document them in the Regressions section below. Extract principles.
|
|
66
|
+
Learn twice from every failure. The regressions section exists because past failures are
|
|
67
|
+
future guardrails.
|
|
68
|
+
|
|
69
|
+
### 6. Push Back From Care, Not Correctness
|
|
70
|
+
|
|
71
|
+
When we disagree, the motivation is wanting the project to succeed — not being right.
|
|
72
|
+
|
|
73
|
+
### 7. One Moving Part at a Time
|
|
74
|
+
|
|
75
|
+
When debugging or adding features, change one thing, verify, then move to the next.
|
|
76
|
+
Multi-variable changes obscure what actually fixed the problem.
|
|
77
|
+
|
|
78
|
+
### 8. Code Reads > Code Writes
|
|
79
|
+
|
|
80
|
+
Read existing code thoroughly before editing. Understand the current design before proposing
|
|
81
|
+
changes. Most bugs come from not understanding what's already there. Read first, always.
|
|
82
|
+
|
|
83
|
+
### 9. Keep Copies in Sync
|
|
84
|
+
|
|
85
|
+
When the same logic exists in two places, fix both when you fix one. Drift between copies
|
|
86
|
+
is a guaranteed future bug.
|
|
87
|
+
|
|
88
|
+
### 10. Numbers to Leave Numbers
|
|
89
|
+
|
|
90
|
+
The goal is to internalize these principles so deeply they become character, not rules to
|
|
91
|
+
follow. The map should become territory.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Platform Context
|
|
96
|
+
|
|
97
|
+
This project uses **learnship**. Key facts:
|
|
98
|
+
|
|
99
|
+
- All planning artifacts live in `.planning/` — read STATE.md and ROADMAP.md first when unsure where we are
|
|
100
|
+
- The phase loop: `discuss-phase` → `plan-phase` → `execute-phase` → `verify-work`
|
|
101
|
+
- Current status is always in `.planning/STATE.md`
|
|
102
|
+
- Decisions are tracked in `.planning/DECISIONS.md` — read it before proposing approaches that may conflict
|
|
103
|
+
- Run `/ls` if context is unclear about what phase we're on or what to do next — it shows status and offers to run the next step
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Current Phase
|
|
108
|
+
|
|
109
|
+
<!-- Updated automatically by platform workflows -->
|
|
110
|
+
|
|
111
|
+
**Milestone:** [VERSION] — [Milestone Name]
|
|
112
|
+
**Phase:** [N] — [Phase Name]
|
|
113
|
+
**Status:** [planning | executing | verifying | complete]
|
|
114
|
+
**Last updated:** [YYYY-MM-DD]
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Project Structure
|
|
119
|
+
|
|
120
|
+
<!-- Filled in by new-project after questioning + research -->
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
[project-name]/
|
|
124
|
+
├── [module]/ # [description]
|
|
125
|
+
├── [module]/ # [description]
|
|
126
|
+
├── AGENTS.md
|
|
127
|
+
└── README.md
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Tech Stack
|
|
133
|
+
|
|
134
|
+
<!-- Filled in by new-project after research -->
|
|
135
|
+
|
|
136
|
+
- **Language:** [language + version]
|
|
137
|
+
- **Framework:** [framework]
|
|
138
|
+
- **Key libraries:** [list]
|
|
139
|
+
- **Dev server:** [how to run]
|
|
140
|
+
- **Tests:** [how to run]
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Skills — Operational Knowledge
|
|
145
|
+
|
|
146
|
+
### CHANGELOG Discipline
|
|
147
|
+
|
|
148
|
+
Every significant change gets a dated entry in `CHANGELOG.md` with:
|
|
149
|
+
- **Features** — What was added
|
|
150
|
+
- **Fixes** — What broke and how it was fixed (include root cause)
|
|
151
|
+
- **Learnings** — What we learned (the most important section)
|
|
152
|
+
|
|
153
|
+
### Decisions Register
|
|
154
|
+
|
|
155
|
+
Architectural and scope decisions are tracked in `.planning/DECISIONS.md`.
|
|
156
|
+
Read it before proposing an approach that has been previously considered.
|
|
157
|
+
When a new decision is made during a session, capture it with `/decision-log`.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Regressions — What Broke and What We Learned
|
|
162
|
+
|
|
163
|
+
<!-- Updated automatically by the debug workflow after each resolved session -->
|
|
164
|
+
<!-- Add entries in reverse chronological order: ### YYYY-MM-DD: Short description -->
|
|
165
|
+
|
|
166
|
+
> No regressions logged yet. When bugs are fixed via `/debug`, lessons are recorded here.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mode": "yolo",
|
|
3
|
+
"granularity": "standard",
|
|
4
|
+
"model_profile": "balanced",
|
|
5
|
+
"learning_mode": "auto",
|
|
6
|
+
"planning": {
|
|
7
|
+
"commit_docs": true,
|
|
8
|
+
"commit_mode": "auto",
|
|
9
|
+
"search_gitignored": false
|
|
10
|
+
},
|
|
11
|
+
"workflow": {
|
|
12
|
+
"research": true,
|
|
13
|
+
"plan_check": true,
|
|
14
|
+
"verifier": true,
|
|
15
|
+
"nyquist_validation": true
|
|
16
|
+
},
|
|
17
|
+
"git": {
|
|
18
|
+
"branching_strategy": "none",
|
|
19
|
+
"phase_branch_template": "phase-{phase}-{slug}",
|
|
20
|
+
"milestone_branch_template": "{milestone}-{slug}"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: [N]
|
|
3
|
+
created: [YYYY-MM-DD]
|
|
4
|
+
workflow: discuss-phase
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Phase [N] Context: [Phase Name]
|
|
8
|
+
|
|
9
|
+
Implementation decisions captured during `discuss-phase [N]`. This file is read by the planner, researcher, and executor — it represents locked user preferences that override default approaches.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Implementation Decisions
|
|
14
|
+
|
|
15
|
+
### Technology Choices
|
|
16
|
+
|
|
17
|
+
*What specific libraries, frameworks, or tools should be used?*
|
|
18
|
+
|
|
19
|
+
- [Decision]: [Choice] — [rationale]
|
|
20
|
+
- [Decision]: [Choice] — [rationale]
|
|
21
|
+
|
|
22
|
+
### Architecture Preferences
|
|
23
|
+
|
|
24
|
+
*How should this be structured? Patterns, layers, component organization?*
|
|
25
|
+
|
|
26
|
+
- [Decision]: [Choice] — [rationale]
|
|
27
|
+
|
|
28
|
+
### Scope Boundaries
|
|
29
|
+
|
|
30
|
+
*What's explicitly in scope vs. explicitly deferred?*
|
|
31
|
+
|
|
32
|
+
**In scope for this phase:**
|
|
33
|
+
- [item]
|
|
34
|
+
- [item]
|
|
35
|
+
|
|
36
|
+
**Explicitly deferred (do not implement):**
|
|
37
|
+
- [item]
|
|
38
|
+
- [item]
|
|
39
|
+
|
|
40
|
+
### UI/UX Decisions
|
|
41
|
+
|
|
42
|
+
*Visual style, interaction patterns, design direction (if UI work)*
|
|
43
|
+
|
|
44
|
+
- [Decision]: [Choice] — [rationale]
|
|
45
|
+
|
|
46
|
+
### Integration Points
|
|
47
|
+
|
|
48
|
+
*How should this phase connect to other phases or existing systems?*
|
|
49
|
+
|
|
50
|
+
- [item]: [approach]
|
|
51
|
+
|
|
52
|
+
### Quality Standards
|
|
53
|
+
|
|
54
|
+
*Performance targets, error handling approach, test coverage expectations*
|
|
55
|
+
|
|
56
|
+
- [item]: [requirement]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Open Questions
|
|
61
|
+
|
|
62
|
+
*Unresolved items — planner should make a reasonable default choice and note it*
|
|
63
|
+
|
|
64
|
+
- [question]: [status — TBD / will decide during planning / not critical]
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Anti-Patterns to Avoid
|
|
69
|
+
|
|
70
|
+
*Approaches the user explicitly wants to avoid*
|
|
71
|
+
|
|
72
|
+
- [anti-pattern]: [reason]
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Roadmap Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/ROADMAP.md`.
|
|
4
|
+
|
|
5
|
+
## Initial Roadmap (v1.0 Greenfield)
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Roadmap: [Project Name]
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
[One paragraph describing the journey from start to finish]
|
|
13
|
+
|
|
14
|
+
## Phases
|
|
15
|
+
|
|
16
|
+
**Phase Numbering:**
|
|
17
|
+
- Integer phases (1, 2, 3): Planned milestone work
|
|
18
|
+
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
|
|
19
|
+
|
|
20
|
+
Decimal phases appear between their surrounding integers in numeric order.
|
|
21
|
+
|
|
22
|
+
- [ ] **Phase 1: [Name]** - [One-line description]
|
|
23
|
+
- [ ] **Phase 2: [Name]** - [One-line description]
|
|
24
|
+
- [ ] **Phase 3: [Name]** - [One-line description]
|
|
25
|
+
- [ ] **Phase 4: [Name]** - [One-line description]
|
|
26
|
+
|
|
27
|
+
## Phase Details
|
|
28
|
+
|
|
29
|
+
### Phase 1: [Name]
|
|
30
|
+
**Goal**: [What this phase delivers]
|
|
31
|
+
**Depends on**: Nothing (first phase)
|
|
32
|
+
**Requirements**: [REQ-01, REQ-02, REQ-03] <!-- brackets optional, parser handles both formats -->
|
|
33
|
+
**Success Criteria** (what must be TRUE):
|
|
34
|
+
1. [Observable behavior from user perspective]
|
|
35
|
+
2. [Observable behavior from user perspective]
|
|
36
|
+
3. [Observable behavior from user perspective]
|
|
37
|
+
**Plans**: [Number of plans, e.g., "3 plans" or "TBD"]
|
|
38
|
+
|
|
39
|
+
Plans:
|
|
40
|
+
- [ ] 01-01: [Brief description of first plan]
|
|
41
|
+
- [ ] 01-02: [Brief description of second plan]
|
|
42
|
+
- [ ] 01-03: [Brief description of third plan]
|
|
43
|
+
|
|
44
|
+
### Phase 2: [Name]
|
|
45
|
+
**Goal**: [What this phase delivers]
|
|
46
|
+
**Depends on**: Phase 1
|
|
47
|
+
**Requirements**: [REQ-04, REQ-05]
|
|
48
|
+
**Success Criteria** (what must be TRUE):
|
|
49
|
+
1. [Observable behavior from user perspective]
|
|
50
|
+
2. [Observable behavior from user perspective]
|
|
51
|
+
**Plans**: [Number of plans]
|
|
52
|
+
|
|
53
|
+
Plans:
|
|
54
|
+
- [ ] 02-01: [Brief description]
|
|
55
|
+
- [ ] 02-02: [Brief description]
|
|
56
|
+
|
|
57
|
+
### Phase 2.1: Critical Fix (INSERTED)
|
|
58
|
+
**Goal**: [Urgent work inserted between phases]
|
|
59
|
+
**Depends on**: Phase 2
|
|
60
|
+
**Success Criteria** (what must be TRUE):
|
|
61
|
+
1. [What the fix achieves]
|
|
62
|
+
**Plans**: 1 plan
|
|
63
|
+
|
|
64
|
+
Plans:
|
|
65
|
+
- [ ] 02.1-01: [Description]
|
|
66
|
+
|
|
67
|
+
### Phase 3: [Name]
|
|
68
|
+
**Goal**: [What this phase delivers]
|
|
69
|
+
**Depends on**: Phase 2
|
|
70
|
+
**Requirements**: [REQ-06, REQ-07, REQ-08]
|
|
71
|
+
**Success Criteria** (what must be TRUE):
|
|
72
|
+
1. [Observable behavior from user perspective]
|
|
73
|
+
2. [Observable behavior from user perspective]
|
|
74
|
+
3. [Observable behavior from user perspective]
|
|
75
|
+
**Plans**: [Number of plans]
|
|
76
|
+
|
|
77
|
+
Plans:
|
|
78
|
+
- [ ] 03-01: [Brief description]
|
|
79
|
+
- [ ] 03-02: [Brief description]
|
|
80
|
+
|
|
81
|
+
### Phase 4: [Name]
|
|
82
|
+
**Goal**: [What this phase delivers]
|
|
83
|
+
**Depends on**: Phase 3
|
|
84
|
+
**Requirements**: [REQ-09, REQ-10]
|
|
85
|
+
**Success Criteria** (what must be TRUE):
|
|
86
|
+
1. [Observable behavior from user perspective]
|
|
87
|
+
2. [Observable behavior from user perspective]
|
|
88
|
+
**Plans**: [Number of plans]
|
|
89
|
+
|
|
90
|
+
Plans:
|
|
91
|
+
- [ ] 04-01: [Brief description]
|
|
92
|
+
|
|
93
|
+
## Progress
|
|
94
|
+
|
|
95
|
+
**Execution Order:**
|
|
96
|
+
Phases execute in numeric order: 2 → 2.1 → 2.2 → 3 → 3.1 → 4
|
|
97
|
+
|
|
98
|
+
| Phase | Plans Complete | Status | Completed |
|
|
99
|
+
|-------|----------------|--------|-----------|
|
|
100
|
+
| 1. [Name] | 0/3 | Not started | - |
|
|
101
|
+
| 2. [Name] | 0/2 | Not started | - |
|
|
102
|
+
| 3. [Name] | 0/2 | Not started | - |
|
|
103
|
+
| 4. [Name] | 0/1 | Not started | - |
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
<guidelines>
|
|
107
|
+
**Initial planning (v1.0):**
|
|
108
|
+
- Phase count depends on granularity setting (coarse: 3-5, standard: 5-8, fine: 8-12)
|
|
109
|
+
- Each phase delivers something coherent
|
|
110
|
+
- Phases can have 1+ plans (split if >3 tasks or multiple subsystems)
|
|
111
|
+
- Plans use naming: {phase}-{plan}-PLAN.md (e.g., 01-02-PLAN.md)
|
|
112
|
+
- No time estimates (this isn't enterprise PM)
|
|
113
|
+
- Progress table updated by execute workflow
|
|
114
|
+
- Plan count can be "TBD" initially, refined during planning
|
|
115
|
+
|
|
116
|
+
**Success criteria:**
|
|
117
|
+
- 2-5 observable behaviors per phase (from user's perspective)
|
|
118
|
+
- Cross-checked against requirements during roadmap creation
|
|
119
|
+
- Flow downstream to `must_haves` in plan-phase
|
|
120
|
+
- Verified by verify-phase after execution
|
|
121
|
+
- Format: "User can [action]" or "[Thing] works/exists"
|
|
122
|
+
|
|
123
|
+
**After milestones ship:**
|
|
124
|
+
- Collapse completed milestones in `<details>` tags
|
|
125
|
+
- Add new milestone sections for upcoming work
|
|
126
|
+
- Keep continuous phase numbering (never restart at 01)
|
|
127
|
+
</guidelines>
|
|
128
|
+
|
|
129
|
+
<status_values>
|
|
130
|
+
- `Not started` - Haven't begun
|
|
131
|
+
- `In progress` - Currently working
|
|
132
|
+
- `Complete` - Done (add completion date)
|
|
133
|
+
- `Deferred` - Pushed to later (with reason)
|
|
134
|
+
</status_values>
|
|
135
|
+
|
|
136
|
+
## Milestone-Grouped Roadmap (After v1.0 Ships)
|
|
137
|
+
|
|
138
|
+
After completing first milestone, reorganize with milestone groupings:
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
# Roadmap: [Project Name]
|
|
142
|
+
|
|
143
|
+
## Milestones
|
|
144
|
+
|
|
145
|
+
- ✅ **v1.0 MVP** - Phases 1-4 (shipped YYYY-MM-DD)
|
|
146
|
+
- 🚧 **v1.1 [Name]** - Phases 5-6 (in progress)
|
|
147
|
+
- 📋 **v2.0 [Name]** - Phases 7-10 (planned)
|
|
148
|
+
|
|
149
|
+
## Phases
|
|
150
|
+
|
|
151
|
+
<details>
|
|
152
|
+
<summary>✅ v1.0 MVP (Phases 1-4) - SHIPPED YYYY-MM-DD</summary>
|
|
153
|
+
|
|
154
|
+
### Phase 1: [Name]
|
|
155
|
+
**Goal**: [What this phase delivers]
|
|
156
|
+
**Plans**: 3 plans
|
|
157
|
+
|
|
158
|
+
Plans:
|
|
159
|
+
- [x] 01-01: [Brief description]
|
|
160
|
+
- [x] 01-02: [Brief description]
|
|
161
|
+
- [x] 01-03: [Brief description]
|
|
162
|
+
|
|
163
|
+
[... remaining v1.0 phases ...]
|
|
164
|
+
|
|
165
|
+
</details>
|
|
166
|
+
|
|
167
|
+
### 🚧 v1.1 [Name] (In Progress)
|
|
168
|
+
|
|
169
|
+
**Milestone Goal:** [What v1.1 delivers]
|
|
170
|
+
|
|
171
|
+
#### Phase 5: [Name]
|
|
172
|
+
**Goal**: [What this phase delivers]
|
|
173
|
+
**Depends on**: Phase 4
|
|
174
|
+
**Plans**: 2 plans
|
|
175
|
+
|
|
176
|
+
Plans:
|
|
177
|
+
- [ ] 05-01: [Brief description]
|
|
178
|
+
- [ ] 05-02: [Brief description]
|
|
179
|
+
|
|
180
|
+
[... remaining v1.1 phases ...]
|
|
181
|
+
|
|
182
|
+
### 📋 v2.0 [Name] (Planned)
|
|
183
|
+
|
|
184
|
+
**Milestone Goal:** [What v2.0 delivers]
|
|
185
|
+
|
|
186
|
+
[... v2.0 phases ...]
|
|
187
|
+
|
|
188
|
+
## Progress
|
|
189
|
+
|
|
190
|
+
| Phase | Milestone | Plans Complete | Status | Completed |
|
|
191
|
+
|-------|-----------|----------------|--------|-----------|
|
|
192
|
+
| 1. Foundation | v1.0 | 3/3 | Complete | YYYY-MM-DD |
|
|
193
|
+
| 2. Features | v1.0 | 2/2 | Complete | YYYY-MM-DD |
|
|
194
|
+
| 5. Security | v1.1 | 0/2 | Not started | - |
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Notes:**
|
|
198
|
+
- Milestone emoji: ✅ shipped, 🚧 in progress, 📋 planned
|
|
199
|
+
- Completed milestones collapsed in `<details>` for readability
|
|
200
|
+
- Current/future milestones expanded
|
|
201
|
+
- Continuous phase numbering (01-99)
|
|
202
|
+
- Progress table includes milestone column
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# PROJECT.md Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/PROJECT.md` — the living project context document.
|
|
4
|
+
|
|
5
|
+
<template>
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name]
|
|
9
|
+
|
|
10
|
+
## What This Is
|
|
11
|
+
|
|
12
|
+
[Current accurate description — 2-3 sentences. What does this product do and who is it for?
|
|
13
|
+
Use the user's language and framing. Update whenever reality drifts from this description.]
|
|
14
|
+
|
|
15
|
+
## Core Value
|
|
16
|
+
|
|
17
|
+
[The ONE thing that matters most. If everything else fails, this must work.
|
|
18
|
+
One sentence that drives prioritization when tradeoffs arise.]
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
### Validated
|
|
23
|
+
|
|
24
|
+
<!-- Shipped and confirmed valuable. -->
|
|
25
|
+
|
|
26
|
+
(None yet — ship to validate)
|
|
27
|
+
|
|
28
|
+
### Active
|
|
29
|
+
|
|
30
|
+
<!-- Current scope. Building toward these. -->
|
|
31
|
+
|
|
32
|
+
- [ ] [Requirement 1]
|
|
33
|
+
- [ ] [Requirement 2]
|
|
34
|
+
- [ ] [Requirement 3]
|
|
35
|
+
|
|
36
|
+
### Out of Scope
|
|
37
|
+
|
|
38
|
+
<!-- Explicit boundaries. Includes reasoning to prevent re-adding. -->
|
|
39
|
+
|
|
40
|
+
- [Exclusion 1] — [why]
|
|
41
|
+
- [Exclusion 2] — [why]
|
|
42
|
+
|
|
43
|
+
## Context
|
|
44
|
+
|
|
45
|
+
[Background information that informs implementation:
|
|
46
|
+
- Technical environment or ecosystem
|
|
47
|
+
- Relevant prior work or experience
|
|
48
|
+
- User research or feedback themes
|
|
49
|
+
- Known issues to address]
|
|
50
|
+
|
|
51
|
+
## Constraints
|
|
52
|
+
|
|
53
|
+
- **[Type]**: [What] — [Why]
|
|
54
|
+
- **[Type]**: [What] — [Why]
|
|
55
|
+
|
|
56
|
+
Common types: Tech stack, Timeline, Budget, Dependencies, Compatibility, Performance, Security
|
|
57
|
+
|
|
58
|
+
## Key Decisions
|
|
59
|
+
|
|
60
|
+
<!-- Decisions that constrain future work. Add throughout project lifecycle. -->
|
|
61
|
+
|
|
62
|
+
| Decision | Rationale | Outcome |
|
|
63
|
+
|----------|-----------|---------|
|
|
64
|
+
| [Choice] | [Why] | [✓ Good / ⚠️ Revisit / — Pending] |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
*Last updated: [date] after [trigger]*
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
</template>
|
|
71
|
+
|
|
72
|
+
<guidelines>
|
|
73
|
+
|
|
74
|
+
**What This Is:**
|
|
75
|
+
- Current accurate description of the product
|
|
76
|
+
- 2-3 sentences capturing what it does and who it's for
|
|
77
|
+
- Use the user's words and framing
|
|
78
|
+
- Update when the product evolves beyond this description
|
|
79
|
+
|
|
80
|
+
**Core Value:**
|
|
81
|
+
- The single most important thing
|
|
82
|
+
- Everything else can fail; this cannot
|
|
83
|
+
- Drives prioritization when tradeoffs arise
|
|
84
|
+
- Rarely changes; if it does, it's a significant pivot
|
|
85
|
+
|
|
86
|
+
**Requirements — Validated:**
|
|
87
|
+
- Requirements that shipped and proved valuable
|
|
88
|
+
- Format: `- ✓ [Requirement] — [version/phase]`
|
|
89
|
+
- These are locked — changing them requires explicit discussion
|
|
90
|
+
|
|
91
|
+
**Requirements — Active:**
|
|
92
|
+
- Current scope being built toward
|
|
93
|
+
- These are hypotheses until shipped and validated
|
|
94
|
+
- Move to Validated when shipped, Out of Scope if invalidated
|
|
95
|
+
|
|
96
|
+
**Requirements — Out of Scope:**
|
|
97
|
+
- Explicit boundaries on what we're not building
|
|
98
|
+
- Always include reasoning (prevents re-adding later)
|
|
99
|
+
- Includes: considered and rejected, deferred to future, explicitly excluded
|
|
100
|
+
|
|
101
|
+
**Context:**
|
|
102
|
+
- Background that informs implementation decisions
|
|
103
|
+
- Technical environment, prior work, user feedback
|
|
104
|
+
- Known issues or technical debt to address
|
|
105
|
+
- Update as new context emerges
|
|
106
|
+
|
|
107
|
+
**Constraints:**
|
|
108
|
+
- Hard limits on implementation choices
|
|
109
|
+
- Tech stack, timeline, budget, compatibility, dependencies
|
|
110
|
+
- Include the "why" — constraints without rationale get questioned
|
|
111
|
+
|
|
112
|
+
**Key Decisions:**
|
|
113
|
+
- Significant choices that affect future work
|
|
114
|
+
- Add decisions as they're made throughout the project
|
|
115
|
+
- Track outcome when known:
|
|
116
|
+
- ✓ Good — decision proved correct
|
|
117
|
+
- ⚠️ Revisit — decision may need reconsideration
|
|
118
|
+
- — Pending — too early to evaluate
|
|
119
|
+
|
|
120
|
+
**Last Updated:**
|
|
121
|
+
- Always note when and why the document was updated
|
|
122
|
+
- Format: `after Phase 2` or `after v1.0 milestone`
|
|
123
|
+
- Triggers review of whether content is still accurate
|
|
124
|
+
|
|
125
|
+
</guidelines>
|
|
126
|
+
|
|
127
|
+
<evolution>
|
|
128
|
+
|
|
129
|
+
PROJECT.md evolves throughout the project lifecycle.
|
|
130
|
+
|
|
131
|
+
**After each phase transition:**
|
|
132
|
+
1. Requirements invalidated? → Move to Out of Scope with reason
|
|
133
|
+
2. Requirements validated? → Move to Validated with phase reference
|
|
134
|
+
3. New requirements emerged? → Add to Active
|
|
135
|
+
4. Decisions to log? → Add to Key Decisions
|
|
136
|
+
5. "What This Is" still accurate? → Update if drifted
|
|
137
|
+
|
|
138
|
+
**After each milestone:**
|
|
139
|
+
1. Full review of all sections
|
|
140
|
+
2. Core Value check — still the right priority?
|
|
141
|
+
3. Audit Out of Scope — reasons still valid?
|
|
142
|
+
4. Update Context with current state (users, feedback, metrics)
|
|
143
|
+
|
|
144
|
+
</evolution>
|
|
145
|
+
|
|
146
|
+
<brownfield>
|
|
147
|
+
|
|
148
|
+
For existing codebases:
|
|
149
|
+
|
|
150
|
+
1. **Map codebase first** via `/map-codebase`
|
|
151
|
+
|
|
152
|
+
2. **Infer Validated requirements** from existing code:
|
|
153
|
+
- What does the codebase actually do?
|
|
154
|
+
- What patterns are established?
|
|
155
|
+
- What's clearly working and relied upon?
|
|
156
|
+
|
|
157
|
+
3. **Gather Active requirements** from user:
|
|
158
|
+
- Present inferred current state
|
|
159
|
+
- Ask what they want to build next
|
|
160
|
+
|
|
161
|
+
4. **Initialize:**
|
|
162
|
+
- Validated = inferred from existing code
|
|
163
|
+
- Active = user's goals for this work
|
|
164
|
+
- Out of Scope = boundaries user specifies
|
|
165
|
+
- Context = includes current codebase state
|
|
166
|
+
|
|
167
|
+
</brownfield>
|
|
168
|
+
|
|
169
|
+
<state_reference>
|
|
170
|
+
|
|
171
|
+
STATE.md references PROJECT.md:
|
|
172
|
+
|
|
173
|
+
```markdown
|
|
174
|
+
## Project Reference
|
|
175
|
+
|
|
176
|
+
See: .planning/PROJECT.md (updated [date])
|
|
177
|
+
|
|
178
|
+
**Core value:** [One-liner from Core Value section]
|
|
179
|
+
**Current focus:** [Current phase name]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
This ensures Claude reads current PROJECT.md context.
|
|
183
|
+
|
|
184
|
+
</state_reference>
|