approve-plan
Skill2 starsChanged 8 days agoMITView on GitHub
Turns an approved plan into a spec (.plans/{task}/plan.md) and a task list (tasks.md), sized by the change's tier, then picks the task loop, model and effort and starts an unattended run with ship-plan in this checkout, which ends in the configured delivery (a pull request by default). Use right after the user approves a plan from forge or a fix plan from diagnose-bug, or says "approve", "ship it" or "go".
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Mozurok/fhorja.devtheir own version, first seen Oct 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Mozurok/fhorja.dev★ 10same 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 repository18 other files it gives its agents.
- check-impactSkill
- context-packSkill
- design-forgeSkill
- deslopSkill
- diagnose-bugSkill
- falsifySkill
- forgeSkill
- gap-analysisSkill
- interrogateSkill
- make-fixtureSkill
- micro-loopSkill
- phased-loopSkill
- pick-tierSkill
- ship-planSkill
- simple-loopSkill
- taste-testSkill
- unslopSkill
- wait-whatSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
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 19
Generate Specification: Write the spec with Write to .plans/<task>/plan.md (where <task> is a slugified version of the task name).
- Very specific: line 36
Design plans: when design.md exists, native flow-walk steps, and captures marked manual in design.md, go to Manual checks.
- Distinctive: line 41
Start the run: Don't wait for another OK: the plan's approval covers it.
≈ “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
<instructions>The user has approved the plan discussed previously. Your task is to size the work, create the specification, create the implementation task list, and start the run. After that, the user's part is done: the run ends in the configured delivery, a pull request by default.
Instructions
Size the work first. Settings come from the workflow config (
pick-tier/CONFIG.md); onlytier.mjsreads it, and everything below reads the resolved values fromtier.md. Run the pick-tier skill in estimate mode on the approved plan: the files it would touch, the lines it would change, whether it touches authentication, routing or a server API, and whether a person can see the difference. Write.plans/<task>/tier.md. If the user declared a tier, pass--tier <X>totier.mjs.- Tier S — skip the specification. Write a one-line note into
.plans/<task>/plan.mdsaying the change is Tier S and is implemented directly, write atasks.mdwith a single build task, and go to step 5. No spec, no dialogue replay, no review, no browser walkthrough. - Tier M — write a short spec (see the tier budget below).
- Tier L — write the full spec (see the mandatory elements below).
- Tier S — skip the specification. Write a one-line note into
- Synthesize History: Review the Socratic dialogue and the approved plan. Extract all technical decisions, code references, and algorithms discussed.
- Generate Specification: Write the spec with
Writeto.plans/<task>/plan.md(where<task>is a slugified version of the task name). The specification is the "spec" — the authoritative reference for what to implement.- A fix plan from diagnose-bug: write the spec and task list into its notes folder,
.plans/<bug>/, next todiagnosis.md, the repro andfix.patch. The fix starts fromfix.patch. The repro becomes a test in the repo where one fits; otherwise rerunning it is an acceptance criterion. - A plan from design-forge (it has a
## Designsection): use the plan folder that section names instead of a new slug. Write the section verbatim to.plans/<task>/design.md. Leave.plans/<task>/taste/as it is. - The tier budget: Tier M specs are at most 120 lines and carry only: Problem, Solution, the files to change, the acceptance criteria, the risks, and the test plan. Tier L specs carry the full mandatory elements.
- A fix plan from diagnose-bug: write the spec and task list into its notes folder,
- Review Specification: Re-read the generated spec end-to-end. Verify that every phase from the approved plan is covered, that the sections the tier requires are present, and that a fresh agent could implement the feature using only this document. Fix any gaps, inconsistencies, or ambiguities you find.
Create Task List:
Write.plans/<task>/tasks.mdwith every task from the approved plan, in phase order — one##header per phase, one- [ ]line per task:## Research - [ ] Map the existing call sites ## Build - [ ] Add the parserUse the same phases that appear in the spec. The task-loop skills read and tick this file; it is the progress tracker, the spec is not. Append a final phase called "Verification" with each acceptance criterion from the approved plan as a separate task in that phase. This ensures the agent verifies all acceptance criteria before declaring the task complete.
- Manual criteria stay out of the automated list. A criterion that can only be checked against a real backend, a real account or a real device is written in the spec as
manual: <criterion>— with what a human must do to check it. Put those in a separate Manual checks section oftasks.md, not in the Verification phase. The automated run must not spend turns trying to check them. - Design plans: when
design.mdexists, native flow-walk steps, and captures marked manual indesign.md, go to Manual checks. - The "Verification" phase must include "Record Updates" at the end iff the approved plan contains a "Record Updates" section. The task description must encode this two-part logic: (1) review the complete implementation; (2a) if the implementation matches the planned Record Updates, write those exact entries into
.agents/RECORD.md; (2b) if the implementation diverged from the planned entries, do not write a wrong entry — instead surface the divergence in your final implementation summary so the user can resolve it.
- Manual criteria stay out of the automated list. A criterion that can only be checked against a real backend, a real account or a real device is written in the spec as
- Pick the loop by rule. Once
tasks.mdexists, count its##phases, leaving outVerificationandManual checks, and re-runnode <pick-tier>/tier.mjswith the same files plus--phases N,--tier <X>if the user declared a tier, and--out .plans/<task>/tier.md. The loop is theLOOP:line in that file: tier S or M ismicro; tier L with a sensitive path, or more than 3 phases, isphased; every other tier L issimple; aloopset in the config (marked(config)) counts as chosen. If the user's approval names a loop, writeLOOP: <loop> (user)intier.mdin place of that line. Nothing else may set a loop the rule didn't pick. Give theLOOP:line as the reason. - Pick the model and effort, with a one-line reason. The orchestrator runs as the
ORCHESTRATOR:line oftier.mdsays (inheritmeans the model you are on); the helpers it spawns run on the models in the## Stepslist oftier.md. If the user's approval named a model or effort ("opus, high"), use those instead. If it named a model for a specific step ("build on haiku"), rewrite that step's line in the## Stepslist oftier.mdas<step> — <model> (user), e.g.Build — haiku (user); a model named without a step still sets the orchestrator. - The browser walkthrough needs a fixture. The walkthrough runs against the repo's committed fixture, the
FIXTURE:path intier.md(default.harness/) — a fake backend the repo ships, which never contacts a real backend. If the repo has no fixture, the walkthrough is skipped and reported as "no fixture at<path>— runmake-fixturein this repo". Never write a recipe, and never point the app at a real backend. - Start the run. Don't wait for another OK: the plan's approval covers it.
- Create a branch in this checkout, named
BRANCH_PREFIX:(when notnone) followed by the task slug, fromBASE_BRANCH:(automeans the repo's default branch), then run the command yourself with the chosen model and effort:/ship-plan <absolute path to .plans/<task>> <loop>, where<loop>is theLOOP:line oftier.md(micro,simpleorphased, without the(user)mark). - The run happens here, on that branch, unattended. It never commits to the default branch, never merges, and never touches files outside the repo. A killed run resumes from its
run-state.mdcheckpoint, so the same command is safe to run again.
- Create a branch in this checkout, named
- Report in three lines: the tier and what it means; where the spec and task list are; the loop (from
LOOP:intier.md), model and effort, each with its reason; and that the run continues here, unattended, and ends asDELIVERY:says. Say "pull request" only whenDELIVERY:isprordraft-pr; forpushsay the branch is pushed, forlocalsay it stays on a local branch, not pushed.
The tier budget (Tier M)
A Tier M spec is at most 120 lines and has these sections, in this order:
- Problem — one paragraph: what is wrong or missing today.
- Solution — the approach, in bullets.
- Files — the files to create or change, full paths, one line each on what changes in them.
- Acceptance criteria — numbered, each checkable, with the check named. A criterion that needs a real backend, a real account or a real device is written as
manual: <criterion>with the human steps. - Risks — the ways this can go wrong, and what happens then.
- Test plan — which test file covers what, and the command that runs them.
Nothing else. A Tier M spec that needs more than 120 lines is a Tier L change wearing a Tier M hat: raise the tier and write the full spec.
Mandatory Elements (Tier L)
The specification must be a standalone technical document. A fresh agent with no prior memory must be able to implement the feature using only this document. It MUST include the following sections explicitly:
- Dialectical Outcomes (Why): Reasoning for key decisions based on the Socratic dialogue. Document trade-offs and alternatives rejected.
- Relevant Files (Where): A list of specific files to be created or modified, with full paths.
- Key Code Context (What): Snippets of existing code that the implementation depends on or must modify (e.g., struct definitions, function signatures). Do not just reference them; include the code blocks.
- Implementation Algorithm (How): The explicit logic for implementation. Detail state machines, logic flows, or data transformations.
- Anti-Goals (Out of Scope): Explicitly list what is not being implemented to prevent scope creep.
- Edge Cases & Gotchas: Highlight technical pitfalls or tricky logic discovered during the dialogue.
- Navigation Anchors: Identify specific functions or modules that serve as primary entry points for the changes.
- Dependency Mappings: List new external libraries or internal module dependencies required.
- Test Strategies: Specific guidance on how to verify each phase (e.g., "Update unit test X", "Add test for edge case Y").
Structure
- The document must begin with the "Problem" and "Solution" from the approved plan.
- The document must include the "Acceptance Criteria" from the approved plan, with the manual ones marked
manual:. - The document must include the "Phases" from the approved plan, expanded with implementation specifics describing what each phase covers. Do not use checkboxes for status tracking — the task list handles that.
- The document must have dedicated headers for all Mandatory Elements listed above (Tier L only).
</instructions>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.

