keel-plan
Skill9 starsChanged 51 days agoMITView on GitHub
Create or revise PLAN.md — propose the phase DAG (phases · gates · dependencies) from the user's goal, get approval, write the table and regenerate the colored Mermaid diagram from it. Statuses flip at rituals (/keel-handover, /keel-phase-review); post-completion fixes land in the Fix log.
- Commits and pushes
1 other project uses a version of this.
Adopted by
Most recently taken up by
- AWenSu/keeltheir own version, first seen Sep 19, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- AWenSu/keel★ 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 repository17 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- keel-adoptSkill
- keel-agent-team-createSkill
- keel-agent-team-startSkill
- keel-auditSkill
- keel-autopilotSkill
- keel-compactSkill
- keel-continueSkill
- keel-distillSkill
- keel-handoverSkill
- keel-phase-reviewSkill
- keel-pilotSkill
- keel-researchSkill
- keel-statsSkill
- keel-teamSkill
- keel-tidySkill
- keel-updateSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
When: at bootstrap right after the tailoring (rules.md §0), whenever the user asks for a plan or a re-plan, or when scope changes enough …
- Very specific: line 18
Multi-user governance: when the project declares itself multi-user, ASK who the PROJECT owner (founder) is — never assume it's whoever is …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/keel-plan — build and maintain the phase map
When: at bootstrap right after the tailoring (rules.md §0), whenever the user asks for a plan or a
re-plan, or when scope changes enough that the DAG no longer matches reality. PLAN.md is the strategic
view; TASKS.md stays the tactical board — never duplicate checkboxes across them.
- Propose. From the user's goal derive phases + sub-phases, each with: id (
p1,p1_2— lowercase[a-z0-9_]), a gate (verifiable done-when, same spirit as TASKS.md),afterdependencies (siblings with no mutualaftermay run in parallel), and — on a multi-user project — anowner(the person'sgit config user.name; blank = anyone). Ask who owns what when parallel branches are assigned to different people; only the owner advances an owned phase (/keel-autopilotstops at a foreign one). Single-user projects leaveownerblank. Multi-user governance: when the project declares itself multi-user, ASK who the PROJECT owner (founder) is — never assume it's whoever is bootstrapping — and write theirgit config user.nameas the single line of.claude/project-owner. That file arms theowner-guardhook (governance files — PLAN/rules/CLAUDE/architecture/ADR/.claude — become owner-only; non-ownergit pushto main blocked) and the session role line. Assignments (@nametags in TASKS, theownercolumn here) are then the OWNER's call; sprint deadlines ride the TASKS item asdue: YYYY-MM-DD(the re-ground hook nags past-due) (docs/steering.md "Multi-user"). Single-user: no file, nothing changes. Map product phases only — what the project builds and ships. One-time meta/tooling work (a mid-project tool adoption, a dependency/CVE sweep, a pure refactor) is not a phase node: record it in an ADR and/or the Fix log. A meta stub given anafterbecomes a permanent dead-end fork in the graph — exactly the noise the map should avoid. Show the table draft — apply only after approval (§10.36). Write
PLAN.md. Patch the phase table (SOURCE OF TRUTH) and Current focus; regenerate the whole diagram block from the table between theKEEL_PLAN_DIAGRAMmarkers — never hand-edit inside, never rewrite the rest of the file (patch, don't clobber). One syntax slip breaks the whole GitHub render.Canonical diagram spec — this skill OWNS it. (
PLAN.mdis PROTECTED by/keel-update, so palette fixes reach existing projects only through this skill's regeneration, not by editing their PLAN header.)- Node id = the phase id (
p1,a2), NOT "Phase 1"; label readsid short-nameso table, TASKS, Fix-log and diagram key on ONE token. Order is the ARROWS, never the number — a big id on a parallel branch may finish before a small one (that is normal in a DAG, not a mistake to hide). - Status → semantic class (a plan at rest must not look alarming — reserve red for real trouble):
done green · wip amber+thick border (the "you are here") · todo neutral grey+dashed (not-started ≠ broken) · blocked red (reserved). Emit a one-line legend just above the fence:classDef done fill:#2e7d32,color:#ffffff,stroke:#1b5e20 classDef wip fill:#f9a825,color:#000000,stroke:#e65100,stroke-width:3px classDef todo fill:#eceff1,color:#37474f,stroke:#b0bec5,stroke-dasharray:4 3 classDef blocked fill:#c62828,color:#ffffff,stroke:#8e0000> yeşil done · **amber** wip · gri-kesik todo · kırmızı blocked — sıra OKLARDA, numarada değil. - Mermaid safety (GitHub ~v10): ids
[a-z0-9_]; every node on its own line, edges below; labels"double-quoted", ASCII only — no emoji, no unquoted(), no lowercaseend; solid-->= depends-on, dotted-.->= contains; everyclassDefpairsfillwithcolor; no%%{init}%%.
- Node id = the phase id (
- Seed the board. Refill
TASKS.md ## Now(3–5 items max) from the wip leaf's gate; reference the phase id in each item so the Fix log and HANDOVER one-liners can point back. - Status lifecycle.
todo → wip → done, flipped at rituals:/keel-handoverupdates statuses + Current focus each session;/keel-phase-reviewis the only gate todone.donenever flips back — a bug found later is a Fix log row (date | fix | phase-id), which keeps the map honest after the project completes. - Re-planning (experiments change the plan).
PLAN.mdalways shows ONLY the latest plan: phases dropped in a re-plan are removed entirely from the table and diagram — no tombstone rows or statuses. The failed approach is already recorded inLESSONS.md [fail]/ HANDOVER block (b), and git history keeps every earlier shape of the plan.donephases stay; existing ids are never renumbered (Fix log / HANDOVER references must keep resolving). - Drift. The SessionStart hook warns when the table and diagram disagree or when a wip phase has an
empty
TASKS.md ## Now— fix by regenerating from the table (this skill), not by editing the diagram.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

