plan
Skill2 starsChanged 4 months agoMITView on GitHub
Create or evolve project planning docs. Modes - seed (write BRIEF.md, the frozen problem statement, and gate on written architecture pushback), build (write PLAN.md, the living phase plan with runnable exit criteria), replan (supersede decisions with dated verdicts, insert decimal phases). Hackathon shape via config or the hackathon argument.
184 other projects use a version of this.
Adopted by
Most recently taken up by
- phuthuycoding/kanban-flowtheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- joeldevz/skynex-pitheir own version, first seen Nov 8, 2026
Used with
Projects with it also use heartmula, webhook-subscriptions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
math-incSkillheartmula
Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.
Also in 9 projects that use this
Tommy-ywSkillwebhook-subscriptions
Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.
Also in 5 projects that use this
math-incSkillminecraft-modpack-server
Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.
Also in 5 projects that use this
john-data-chenSkilltouchdesigner-mcp
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
Also in 6 projects that use this
gaebalaiSkillcodex-system
PROACTIVELY consult Codex CLI, your highly capable supporter with exceptional reasoning and task completion abilities. Codex is a trusted expert you should ALWAYS consult BEFORE making decisions on: design choices, implementation approaches, debugging strategies, refactoring plans, or any non-trivial problem. When uncertain, consult Codex. Don't hesitate - Codex provides better analysis. Explicit triggers: "think deeper", "analyze", "second opinion", "consult codex".
Also in 3 projects that use this
ibahgatSkillcontext-optimize
Improve context efficiency and cache stability for long or complex sessions.
Also in 3 projects that use this
- +3 more from math-inc
Other versions184 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 184
- Yeachan-Heo/oh-my-codex★ 34ksame name
- crbnos/carbon★ 2.8ksame name
- graphistry/pygraphistry★ 2.6ksame name
- zereight/gitlab-mcp★ 2.1ksame name
- math-inc/OpenGauss★ 1.3ksame name
- kdlbs/kandev★ 1.1ksame name
- suboss87/FDEOps★ 940same name
- codewithmukesh/dotnet-claude-kit★ 808same name
- witnesstodark/mr-mak-workspace★ 718same name
- loongclaw-ai/loongclaw★ 640same name
174 more not listed
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 repository27 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- auditSkill
- challengeSkill
- contract-checkSkill
- depsSkill
- design-auditSkill
- designSkill
- doSkill
- eval-runSkill
- eval-specSkill
- healthSkill
- investigateSkill
- journalSkill
- learnSkill
- migrate-checkSkill
- plan-reviewSkill
- qaSkill
- refactorSkill
- resumeSkill
- retroSkill
- secureSkill
- shipSkill
- ticketSkill
- triageSkill
- verifySkill
- whySkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Run before the skill's steps — per invocation, not per session (4.36).
- Very specific: line 36
Never delete a decision. Supersede it: ~~old~~ → Verdict (YYYY-MM-DD): new call — reason.
- Distinctive: line 37
Never fix, tune, or delete a test or eval case to raise a score.
- Very specific: line 127
Use references/hackathon-template.md instead: clock-window phase headings with hour estimates, a > Build order: blockquote with arrows and …
- Very specific: line 141
A
## File ownershiptable: every file the plan creates is owned by exactly one track.
“Common” is measured: kept by at least 6 in 10 of the 167 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
/plan — the seed, the gate, and the living plan
Planning docs are deliberate artifacts. This skill is user-invoked only and never regenerates a plan spontaneously.
Adjacent skills: /challenge (interrogates the BRIEF this creates) ·
/plan-review (locks the PLAN this creates before code) · /eval-spec (sets
the score targets a phase exit criterion cites) · /do (executes the tasks).
<!-- acstack:runtime -->Run before the skill's steps — per invocation, not per session (4.36); failures degrade to markdown:
link="$(readlink "$HOME/.claude/skills/health" 2>/dev/null || true)" # empty = not symlinked
pack="$(dirname "$(dirname "$link")")" # NEVER trust this unless $link was non-empty
if [ "${link#/}" != "$link" ] && [ -x "$pack/bin/acstack-config" ] && ! "$pack/bin/acstack-config" runtime | grep -q '=off'; then
"$pack/bin/acstack-config" || true # resolved keys, with sources
"$pack/bin/acstack-update-check" || true # ≤1 fetch/day; silent ONLY if already checked today
"$pack/bin/acstack-recall" || true # LEARNINGS.md + bug-class names, capped 3KB
else
echo "runtime off — proceeding without recall/update-check"
fi<!-- /acstack:runtime --><!-- acstack:principles -->Operating principles
- Be direct. Push back in writing when the plan or the user is wrong. No sycophancy.
- Never delete a decision. Supersede it:
~~old~~ → **Verdict (YYYY-MM-DD):** new call — reason. - Never fix, tune, or delete a test or eval case to raise a score. Log the miss honestly and leave the case unchanged.
- Name exact things: regex patterns, function signatures, model names, before → after numbers. Never "fixed bugs".
- Attribution: follow the project's
attributionsetting (defaultnone) — no AI-tool mentions in generated docs, no attribution trailers in commits or PRs. Commit with explicit-m/-Fmessages only. - Config: read
.claude/acstack.mdat the project root (fall back to~/.claude/acstack.md) before acting.## Settingskeys override pack defaults; a## <skill-name>section overrides both. Unknown keys and sections are ignored. - Docs: BRIEF.md (frozen seed) / PLAN.md (living plan) / JOURNAL.md (rolling journal). If the repo uses legacy names (PLANNING_PROMPT.md / PLANNING.md / STATUS.md), use those instead — never create both.
- Recall: if
LEARNINGS.mdexists at the project root, read it before starting. - Conduct: follow the
acstack-conductblock in this repo's AGENTS.md — the word is the mode; the user sets the pace. - Hackathon lane: if the project's AGENTS.md carries the
acstack:hackathon-laneblock, only/dochanges the repository during the event. Any other skill that would write a tracked file, commit or push says what it would have done and stops; a change that is not a task goes through the lane's operator route.
<!-- /acstack:principles -->One document set. Resolve exactly ONE BRIEF/PLAN/JOURNAL set and name
its path in the report's scope line. If more than one candidate set exists
— a monorepo, nested products, an apps/* tree each with its own docs —
list the candidates and STOP. Never pick one silently: a confident answer
about the wrong product is worse than no answer (conduct rule 8).
Mode dispatch
Parse the arguments. No mode given: if no BRIEF.md exists → seed; if
BRIEF.md exists but no PLAN.md → build; otherwise ask which mode is wanted.
seed when BRIEF.md already exists → STOP. The BRIEF is the frozen
record of what was believed at the start; regenerating it destroys the
only artifact that can later be compared against what was learned. Say it
exists, name its path, and offer the two honest routes: build if the
plan is what's missing, or replan to supersede a decision with a dated
verdict. Editing the BRIEF is the user's own call, never this skill's side
effect.
hackathon as an argument (or mode: hackathon in config) switches the
templates to the hackathon shape.
Mode: seed — write the frozen BRIEF
Full procedure: references/mode-seed.md — read it when the dispatch
selects seed, and not otherwise. It carries the BRIEF's sections, the
interview discipline, and the never-regenerate rule.
The gate — before build
build runs only after the gate: deliver written architecture pushback on
the BRIEF — what won't work, where the user is being naive, risks, the
rejected alternatives reconsidered — and get the user's explicit
acknowledgment. Record the verdict in a short Gate verdict block at the
top of PLAN.md (date, what was challenged, what changed, what was accepted
as-is). No pushback delivered → no plan, no code.
Mode: build — write the living PLAN
Generate PLAN.md following references/plan-template.md. The grammar:
- Top: purpose blockquote (what this doc is, pointer to BRIEF.md) + cross-cutting constraints blockquote + the Gate verdict block.
## Index of phases— table: Phase | Goal | Exit criterion (add Days when timeboxed).- Phase headings carry state:
## [ ] Phase N — Title. - Each phase:
**Goal:**one-liner, then**Exit criterion:**as a RUNNABLE command with expected output — never prose like "works well". - Tasks: numbered bold-ID checkboxes 3–5 levels deep
(
- [ ] **1.2.3** …), leaf text naming exact files, functions, and literal values. Task groups close with**Acceptance:**— also runnable. - Decisions:
> **Decision (YYYY-MM-DD):** <call>. Tradeoff: <cost>; mitigated by <mitigation>. Revisit when <trigger>. ## Cross-cutting risks— each risk owned:**Owner: Phase N.M**.## Open items— dated checkboxes.- Optional
## Glossaryfor invented terms.
Mode: replan — change the plan honestly
- Nothing is deleted or silently edited. Changed decisions:
~~old text~~ → **Verdict (YYYY-MM-DD):** new call — reason. - New scope discovered mid-project becomes a decimal phase (
Phase 3.5) inserted in place, with a Goal explaining why it exists mid-stream. The phase number, and the task numbers under it, are provisional until the branch merges: a second session inserting at the same point draws the same number, and a keep-both merge leaves twoPhase 3.5headings with duplicate task IDs beneath them (measured 2026-09-16, 5.17.1). On collision keep both and renumber the later-merged phase and its tasks; never drop either side. - Deferred work leaves a breadcrumb at both ends: the origin notes
1.4.2 moved to Phase 3.5 (<reason>); the destination names the origin. - Reality diverging from plan gets
**Status (YYYY-MM-DD):**lines under the phase, keeping the original target visible.
Tickets mode (tracking: tickets)
Full deltas: references/tickets-mode.md — read it when the resolved
config sets tracking: tickets, and not otherwise. Document mode is the
default and needs none of it.
Hackathon mode
Use references/hackathon-template.md instead: clock-window phase headings
with hour estimates, a > **Build order:** blockquote with arrows and
unblock rationale, owner tags from the config's ## Collaborators,
← unblocks <owner> annotations, a ## Demo Script section, a
## Future Extensions (mention, don't build) section, and a submission
checklist that includes verifying no secrets file was ever committed
(the template's name check over git log --all --name-only) and that any
event-required sections are present and user-authored.
Four more things the event needs, all in the template:
- An
**Acceptance:**line on every task, runnable, written when the task is./dowill not tick a box without one. A hackathon plan that leaves them out stops every session to ask the user. - A
## File ownershiptable: every file the plan creates is owned by exactly one track. That table is what keeps parallel sessions out of each other's files, because there is no time to review. - The
acstack:hackathon-laneblock written into AGENTS.md, between its markers, with the event end filled in. The block is how this one repo overrides a personal "merge only through a pull request" rule, and it is what switches/dointo the lane, since AGENTS.md is committed and so present in every session's worktree. Offer to setmode: hackathonin.claude/acstack.mdas well if it is not already set. - The template's
.gitignorelines, withnode_modulesand the build output anchored at their real paths./dowill not land a task while its worktree holds an untracked file, and these are what common tools leave.
Then walk the user through the template's Phase 0 before any session
starts: the branch is called main; everything above, plus the dependency
files with their lockfiles and the test setup, is committed there (each
session's worktree is built from main, and a file not committed there is
missing in it); the hook that refuses commits on main is installed; and on
event day an update-ref ask rule, if they have one, comes off.
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.

