implement-plan
Skill1 starsChanged 39 days agoMITView on GitHub
Implement a plan folder, or a small, concrete change the user asks for directly - works through the tasks itself, or with subagents when the plan's Execution section says so, writes and runs tests, proves every acceptance criterion with a command and its output, and leaves the changes uncommitted for the user to check. Records progress and results in the plan when there is one. Use when the user says "implement plan 0042", "execute the plan", "resume plan 0007", or asks for a bounded change in this repository ("add a --dry-run flag to the export command"). Not for designing a change that still has open decisions (make-plan).
28 other projects use a version of this.
Adopted by
Most recently taken up by
- korcekj/skillstheir own version, first seen Oct 28, 2026
- spalladino/claude-skillstheir own version, first seen Oct 20, 2026
- TylerAkins/ai-agent-skillstheir own version, first seen Oct 15, 2026
- insapption-projects/claude-agent-team-startertheir own version, first seen Oct 15, 2026
- paultyng/skill-issuetheir own version, first seen Oct 13, 2026
- mhylle/claude-skills-collectiontheir own version, first seen Oct 9, 2026
Used with
Projects with it also use iterate-plan, validate-plan 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.
corticalstackSkilliterate-plan
Revise an existing implementation plan in flow/plans/ based on feedback, researching when needed. Explicit-only; run only when invoked via /iterate-plan or explicitly asked.
Also in 5 projects that use this
shawn-dumasSkillvalidate-plan
Validate an orchestration plan after pre-flight certification. Runs adversarial review, deep review (verify prompt data against codebase), and PoC gate for risky approaches. Auto-invoked by orchestrate-* skills at Step 8.
Also in 4 projects that use this
parcadeiSkilldescribe-pr
Generate comprehensive PR descriptions following repository templates
Also in 4 projects that use this
joshuaalpuertoSkillresearch-codebase
Conducts structured research across a codebase to answer questions about architecture, components, and data flow. Use when investigating how code works, where functionality lives, or how systems interact. Decomposes questions, runs parallel investigations, synthesizes findings with file:line references, and produces persistent research documents.
Also in 4 projects that use this
JetBrainsSkillcreate-plan
Research the codebase and create an implementation plan with architecture notes, design document, and track decomposition. Use when starting a new feature or large change.
Also in 8 projects that use this
JetBrainsSkillreview-plan
Manually re-run the autonomous plan review (Phase 2 — consistency + structural). The same review runs automatically as the first phase of /execute-tracks; this command is for re-runs after inline replanning or whenever the plan needs explicit re-validation. TRIGGER when: user asks to re-validate the plan after inline replanning; user requests explicit plan review outside /execute-tracks. SKIP: /execute-tracks already running State 0 in this session (autonomous Phase 2 path will fire) — do not double-run.
Also in 5 projects that use this
- +1 more from JetBrains
Other versions28 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 28
- penpot/penpot★ 62ksame name
- ChatbotXIO/ChatbotX★ 1.1ksame name
- OpenFn/lightning★ 321same name
- maxedapps/agent-skills★ 59same name
- atomicinnovation/accelerator★ 34same name
- hawkyre/hawk-skills★ 30same name
- mhylle/claude-skills-collection★ 20same name
- L-X-T/ng-agentic-skills★ 13same name
- paultyng/skill-issue★ 8same name
- Akindu23/my-agent-skills★ 4same name
18 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 repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- deep-reviewSkill
- find-bugSkill
- make-planSkill
- make-roadmapSkill
- new-ticketSkill
- plan-pageSkill
- plans-conventionSkill
- research-topicSkill
- save-learningSkill
- ship-workSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 11 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 28 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
From a direct request: No plan folder: the user describes the change.
- Very specific: line 51
Read plan.md in full. Open the artifacts it links (research notes) only when a task needs them.
- Very specific: line 61
Ask the user about every point, batched (up to four questions at a time, with your recommended option first), and write each answer into …
- Distinctive: line 79
Follow the plan's *Execution* section.
- Distinctive: line 88
Read the code you are about to change and follow its conventions.
- Distinctive: line 89
Write or update the tests for the behaviour the task changes, in the project's test style, and run them: they must fail, for the reason the …
- Distinctive: line 93
Check every acceptance criterion and note the evidence: the command and its result, or the file and line.
- Distinctive: line 110
When every package is done, run the full test suite, lint and build yourself: packages that pass alone can still break each other.
- Distinctive: line 115
Before calling the work done, check all of this on the real files:
- Distinctive: line 118
Every acceptance criterion (and the plan's *Verification* section, or the contract's *Done when*) has evidence you produced: a command and …
- Distinctive: line 121
Every new test was seen failing before its change (step 4).
- Very specific: line 128
When a failure's cause is not obvious, do not try changes at random: follow the method of the find-bug skill (reproduce, test one …
- Distinctive: line 134
Never relax a criterion, skip a test, or mark a task done to get past it.
- Distinctive: line 138
Leave every change uncommitted: the user decides when it is good enough to commit.
- Very specific: line 149
Ask the user to confirm the closure.
- Very specific: line 152
If the plan has a parent roadmap, update the plan's row in the roadmap's *Derived plans* table and add a line to its *Implementation* log.
“Common” is measured: kept by at least 6 in 10 of the 28 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
Implement
Build exactly what was decided, and prove it works. Design decisions are not taken here: they come from the plan or from the user's request. That is what lets a small, cheap model implement safely. Whoever writes the code is responsible for testing it: nobody checks the work while it is being built, and a later review re-runs the evidence, so the evidence for every criterion has to be real (a command you ran and its output).
Load the plans-convention skill first when working from a plan.
<plans-convention> below stands for the folder that skill was loaded from.
1. Know what to build
From a plan. The user names a plan by id or path (plans.py find <ref>),
or asks to implement or resume one (plans.py list --status in-progress,
then --status backlog; confirm the candidate, or ask which if several fit).
type: roadmap: roadmaps are not implemented directly. List its derived plans and stop.type: ticket: fine if it passes the readiness check below; otherwise suggest promoting it withmake-plan.- Folder in
done/: ask whether to reopen it before doing anything. - Folder in
in-progress/with a ledger: this is a resume. Read the ledger, check that the repository matches it, and continue from the first task not marked done.
From a direct request. No plan folder: the user describes the change. Restate it in chat as a short contract before writing code:
Change: <what will be different, in one or two sentences>
Files: <the files you expect to touch>
Out of scope: <tempting adjacent work you will not do>
Done when: <the checks that prove it, as commands or observable behaviour>Find the files and the test commands in the code yourself; ask the user only
what the code cannot answer and would change the result. If the request
needs design decisions (several reasonable approaches with different
trade-offs), touches several unrelated concerns, or would take more than a
few tasks, say so and suggest make-plan instead of improvising a design.
2. Readiness check (plans)
Read plan.md in full. Open the artifacts it links (research notes) only
when a task needs them. Before touching any code, list every point where you
would have to guess:
- tasks without exact files or without verifiable acceptance criteria;
- anything under Open questions, any
TBDor placeholder; - decisions the plan implies but does not state;
- contradictions between sections, or between the plan and the code as it is now (the code may have changed since the plan was written).
Ask the user about every point, batched (up to four questions at a time,
with your recommended option first), and write each answer into the plan
before starting: in the Decisions table with source user, or by fixing
the task it clarifies. A clarification that lives only in the conversation
is lost on the next session. If most tasks fail the check, recommend going
back to make-plan instead of patching the plan here.
3. Prepare
- With a plan:
plans.py move <id> in-progress. - Find the project's test, lint and build commands (plan, README, CI config, package files).
- Record a baseline: run the test suite once and note what already fails, so pre-existing failures are not blamed on this change. With a plan, write it at the top of Implementation.
4. Implement
Follow the plan's Execution section. Without one (a direct request, or an older plan), work as a single agent.
How to write the code is yours to decide. Anything that would change the resulting behaviour or outcome (what the user gets, what other code sees) is not: if the plan or the request does not settle it, stop and ask.
Single agent. Take the tasks in order. For each one:
- Read the code you are about to change and follow its conventions.
- Write or update the tests for the behaviour the task changes, in the project's test style, and run them: they must fail, for the reason the task addresses. A test that passes before the change proves nothing.
- Make the change. Run the relevant tests and linters, and fix what fails.
- Check every acceptance criterion and note the evidence: the command and its result, or the file and line.
- With a plan, update its ledger line before going to the next task.
Subagents. One subagent per package from the Execution section, with
references/implementer-brief.md. Launch packages that can run at the same
time together (never more than three, never two that share files), and wait
for them before launching the ones that depend on them. Each subagent tests
and proves its own package; you do not re-review its code. When a report
comes back:
DONE: record its evidence in the ledger.NEEDS_DECISION: ask the user, record the answer in Decisions, and send the subagent the answer (or a new brief).BLOCKED: missing context → re-brief with it. A flaw in the plan → stop and ask the user how to amend it; record the amendment as a deviation.
When every package is done, run the full test suite, lint and build yourself: packages that pass alone can still break each other.
5. Prove it works
Before calling the work done, check all of this on the real files:
- The full test suite passes, apart from the baseline failures.
- Every acceptance criterion (and the plan's Verification section, or the contract's Done when) has evidence you produced: a command and its output, or a file and line. A criterion without evidence is not met.
- Every new test was seen failing before its change (step 4). Do not undo your changes to check it afterwards: the work is uncommitted, and stashing or reverting it can lose it.
- The diff (
git statusandgit diff) contains only what was asked: no debug code, noTODOor stub left behind, no disabled or deleted tests, no hard-coded results, no files outside the scope.
When a failure's cause is not obvious, do not try changes at random: follow
the method of the find-bug skill (reproduce, test one hypothesis at a
time, fix the root cause). If something still does not converge (the
same criterion keeps failing, or something outside the scope blocks it),
stop and tell the user: what fails, what you tried, what you think the cause
is, and the options (amend the plan, give more context, take over, abandon).
Never relax a criterion, skip a test, or mark a task done to get past it.
6. Finish
Leave every change uncommitted: the user decides when it is good enough to commit. Do not create or switch branches, and never push.
Direct request. Report in chat: what changed (files), the evidence for each Done when check, and anything you noticed but left out of scope. Nothing else to write.
Plan.
- Fill Results: what was delivered against each goal, with evidence (test output, commands, files), and anything not delivered.
- Ask the user to confirm the closure. Then fill Closure (date, outcome,
follow-ups; offer to capture follow-ups with
new-ticket) and runplans.py move <id> done. - If the plan has a
parentroadmap, update the plan's row in the roadmap's Derived plans table and add a line to its Implementation log. - Apply the generated page rule if there is a
plan.html. - Run
plans.py validate.
Then offer the next steps, without starting them: deep-review of the
changes, ship-work to commit (and push or open a pull request), and
save-learning if the work taught something non-obvious.
Ledger format
The ledger lives in the plan's Implementation section. It survives context compaction and new sessions, so update it after every task, not at the end.
Baseline (2026-10-03): 2 failing tests — test_legacy_export, test_flaky_io
- [x] T1 — add search index — `pytest tests/test_index.py` 6 passed
- [x] T2 — query parser — `pytest tests/test_parser.py` 11 passed; empty query returns []
- [ ] T3 — rename config keys — in progress (package P2)
- [ ] T4 — UI — pending
Deviations:
- T2: also changed `src/util/text.py` (normalise accents); approved by user 2026-10-03.Subagents
Launch subagents with your harness's task tool, using its general-purpose
agent (general-purpose in Claude Code, general in opencode). Each one
starts with no memory: the brief is all it knows, so never write "as
discussed" or "like before". If no subagents are available, implement the
packages yourself, one after another.
Red flags
- Writing code while the plan still has open questions, or while a direct request still needs a design decision.
- Choosing something that changes the result (behaviour, output, what other code sees) when the plan or the user did not decide it.
- Marking a criterion met without a command or file you checked yourself.
- Weakening a test or a criterion so it passes.
- A clarification that is in the conversation but not in
plan.md. - Subagents that share files, or more than three at once.
- Committing, creating branches, or pushing.
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.

