project-plan
Skill0 starsChanged 21 days agoMITView on GitHub
Turn an approved project-time spec into a plan that survives context resets, with milestones as vertical slices, one self-contained file per step with tests first and a verify command, explicit dependencies and parallel-safe groups, and a gate at every milestone. Also updates the plan after a pivot. Use when /project-time hands off to it, or the user wants to plan, re-plan or change the plan of the current cycle.
9 other projects use a version of this.
Adopted by
Most recently taken up by
- CatCatUncle/openworkbuddytheir own version, first seen Nov 5, 2026
- Lumosylva/lumosylva-skillstheir own version, first seen Oct 25, 2026
- fattain-naime/engineering-docstheir own version, first seen Oct 24, 2026
- matiopala/skillstheir own version, first seen Oct 15, 2026
- my-chiefmind/ai-maestrotheir own version, first seen Oct 13, 2026
- AgiFlow/ai-plugintheir own version, first seen Oct 10, 2026
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- CatCatUncle/openworkbuddy★ 398same name
- fagemx/edda★ 36same name
- oswarld/notion-skills★ 11same name
- fattain-naime/engineering-docs★ 6same name
- my-chiefmind/ai-maestro★ 6same name
- AgiFlow/ai-plugin★ 4same name
- matiopala/skills★ 2same name
- Lumosylva/lumosylva-skills★ 1same name
- AirMile/claude-config★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- project-buildSkill
- project-specSkill
- project-timeSkill
- project-wrapSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 4 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Follow the conventions in the project-time block of AGENTS.md.
- Very specific: line 12
Modes: No plan, or plan Status: draft → new plan.
- Very specific: line 24
Ask for approval of the outline.
- Distinctive: line 34
Verify command: Every step has one, runnable as is, with its expected result.
- Very specific: line 35
Needs: Every step lists the steps it depends on, or none.
- Very specific: line 41
Every AC-xx in the spec maps to at least one step.
- Distinctive: line 42
Every step has Tests (or a declared exception), a Verify command and Done when.
- Distinctive: line 44
No placeholders, and no "handle edge cases" without saying which.
- Distinctive: line 106
After a spec amendment, or a pivot found during the build:
- Very specific: line 112
Add a line under ## Notes: - <YYYY-MM-DD> · plan updated: <what changed> · see <memory id>.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Project Plan
Writes docs/current/plan/: an INDEX.md progress board and one file per step. A fresh session, or a sub-agent, must be able to pick up any step from its file alone.
Follow the conventions in the project-time block of AGENTS.md. If docs/current/spec.md is missing, invoke project-time.
Modes. No plan, or plan Status: draft → new plan. Plan Status: approved → update mode (last section).
Precondition. The spec should be Status: approved. If it isn't, say so and ask. If the user insists on planning anyway, write a decision entry recording that Gate 0 was skipped and why, and set the spec to Status: approved.
1. Read
The spec, the three memory indexes (general, project, cycle) and the area files relevant to the work at every level, general lessons included, and the codebase layout. If plan/INDEX.md exists as a draft, resume from it.
2. Milestone outline
Propose milestones as vertical slices: each ends with something working and testable end to end, never "the backend layer". The first milestone is a walking skeleton, the thinnest path through the whole system. For each milestone give its name, what works at its end, the acceptance criteria it covers, and its steps in one line each.
Ask for approval of the outline. Write no step files before it's approved. Once approved, write plan/INDEX.md with Status: draft so a reset doesn't lose the outline.
3. Steps
One file per step, plan/step-NN-<name>.md, from the step template.
- Size. Fits comfortably in one session and ends in one commit. Split anything bigger.
- Tests first. A step that adds logic or behaviour lists the tests to write before the code, concretely: test names and what each asserts.
- Declared exceptions. A step that can't be unit-tested (scaffolding, config, visual work) says so under Tests, with the reason, and still has a verify command: a build, a lint, the app booting, a page rendering.
- Manual checks. Anything that needs a human eye gets a
manual:line under Done when. These are collected at the next gate. - Verify command. Every step has one, runnable as is, with its expected result.
- Needs. Every step lists the steps it depends on, or
none. - Parallel. Mark two steps
∥only if neither needs the other, directly or indirectly, and their Files touched lists share nothing, shared manifests, migration lists and route tables included. When in doubt, sequential.
4. Self-review
Fix inline before the gate:
- Every
AC-xxin the spec maps to at least one step. Put the mapping in your recap. - Every step has Tests (or a declared exception), a Verify command and Done when.
- Needs point only to existing steps, with no cycles.
- No placeholders, and no "handle edge cases" without saying which.
5. Gate 1
Recap: milestones with what works at the end of each, step count, parallel groups, manual checks, the AC mapping. Ask for approval and for the default execution mode, sequential or parallel where possible. Record the mode in the INDEX header, set Status: approved, commit as <slug>: plan approved (gate 1), then invoke project-build.
Templates
plan/INDEX.md
# Plan: <slug>
Status: draft · Mode: sequential · Test: `<the spec's test command>`
Current: step 01 (not started). Last stop: none.
## Milestone 1 · <name> ⛔ gate pending
<what works at the end of this milestone>
- [ ] 01 <name> (needs none)
- [ ] 02 <name> (needs 01)
- [ ] 03 <name> (needs 01) ∥ 02
## Milestone 2 · <name> ⛔ gate pending
<what works at the end of this milestone>
- [ ] 04 <name> (needs 02, 03)
## NotesMarks: [ ] todo, [~] in progress, [x] done, [!] blocked, followed by → <issue id>. A passed gate reads ✅ gate passed <YYYY-MM-DD> in place of ⛔ gate pending. The last milestone's gate is project-wrap's final gate.
plan/step-NN-<name>.md
# Step NN · <name>
**Milestone:** <n> · **Needs:** <steps or none> · **Covers:** <AC ids>
## Goal
<what exists after this step that didn't before>
## Files touched
- `<path>`: <what changes>
## Tests to write first
- `<test name>`: <what it asserts>
## Implementation notes
<approach, relevant memory IDs, pitfalls>
## Verify
`<command>` → <expected result>
## Done when
- <observable condition>
- manual: <what a human checks, only if needed>For a declared exception, Tests to write first holds one line instead: Exception: <why this step can't be unit-tested>.
Update mode
After a spec amendment, or a pivot found during the build:
- Set the INDEX Last stop to
updating plan: <gist>first. - Change only steps marked
[ ]. Done and in-progress steps are never rewritten; if one needs rework, add a new step for it. An in-progress step may be narrowed to what's already done, with the rest moved to a new step. A[ ]step the change makes obsolete is removed from the INDEX and its file deleted, with the reason in the Notes line. - New steps take the next free number and sit in the INDEX in execution order, so the numbers in the list needn't be sequential.
- Re-check dependencies and
∥marks for everything touched, and redo the AC mapping. If the spec'sTest command:changed, updateTest:in the INDEX header. - Add a line under
## Notes:- <YYYY-MM-DD> · plan updated: <what changed> · see <memory id>. Write apivotentry if the amendment didn't already. - Show the user the change and ask for OK. Set Last stop to
plan updated: <gist>. Commit onlydocs/current/plan/and cycle memory as<slug>: plan updated, then return toproject-build.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

