implement-issue
Skill4 starsChanged 59 days agoMITView on GitHub
Turn an existing GitHub issue into a finished pull request β the actual coding. Use when an issue carries a `π οΈ Implementation plan` checklist and the user wants it BUILT: worktree, draft PR, task-by-task commits ticked on the live issue, review, ready-flip. Triggers: "implement issue 47", "knock out the tasks on issue 71", "execute the plan", "resume issue #X", Β« implΓ©mente l'issue 47 Β», Β« exΓ©cute le plan de l'issue Β», a bare issue link with "go build it" β including keeping the IN-FLIGHT PR mergeable (sync/conflicts with `main`) while it is still being built. Does NOT apply to planning a NEW issue (create-issue), landing a finished PR (merge-pr), or ad-hoc coding with no plan.
- Commits and pushes
30 other projects use a version of this.
Adopted by
Most recently taken up by
- kbourzayq/arch-guardtheir own version, first seen Nov 8, 2026
- normalled/apijacktheir own version, first seen Nov 8, 2026
- solo-ist/prosetheir own version, first seen Nov 8, 2026
- gymcoach-app/gymcoachtheir own version, first seen Oct 26, 2026
- Julien-Au/gymcoachtheir own version, first seen Oct 26, 2026
- dativo-io/talontheir own version, first seen Oct 25, 2026
Used with
Projects with it also use review-issue, triage-issue and 2 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.
ravihammondSkillreview-issue
Review and repair one GitHub issue implementation in the current checkout.
Also in 4 projects that use this
ShopifySkilltriage-issue
Triage a GitHub issue β classify priority (P0/P1/P2), search for duplicates, and apply labels.
Also in 3 projects that use this
OpenAISkillwriting-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Also in 3 projects that use this
Google CloudSkilltriage
Gather context on a change or bug and plan the implementation.
Also in 3 projects that use this
Other versions30 projects use a version of this.
Word for word Β· 1
- phmatray/ai-migration-kitβ 4100% same
Edited Β· 0
None found.
Wrote their own version Β· 29
- dlt-hub/dltβ 6.1ksame name
- google/site-kit-wpβ 1.4ksame name
- luainkernel/lunatikβ 611same name
- warpdotdev/oz-for-ossβ 313same name
- codemonkey85/PKMDS-Blazorβ 240same name
- gymcoach-app/gymcoachβ 182same name
- Julien-Au/gymcoachβ 182same name
- aaddrick/claude-pipelineβ 128same name
- dativo-io/talonβ 18same name
- alexjbarnes/cockpitβ 16same name
19 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 repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/tagout.mdcCursor rule
- auto-devSkill
- create-issueSkill
- create-prSkill
- debug-issueSkill
- deliver-issueSkill
- initSkill
- merge-prSkill
- migrate-legacySkill
- review-followupsSkill
- review-sessionsSkill
- triage-backlogSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 28 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 44
Run hands-off once started β the user watches, doesn't babysit.
- Distinctive: line 55
Never tick a box, commit, or flip the PR to ready on an assumption β those three acts claim work is *done*.
- Distinctive: line 61
Create a task per item and work them in order.
β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 an issue from its plan
What this does
create-issue builds every issue around a **π οΈ Implementation plan** section: a checklist of
### Task N blocks whose every step is a - [ ] checkbox, with the last step of each task being its
commit message. (Older issues carry the same plan as a comment β this skill handles both.) That plan
is a contract an executor can run cold; this skill is that executor.
It turns the plan into a real PR the way a careful engineer would: isolated worktree, draft PR opened up front so progress is visible, one commit per task, and β the part that makes the issue a live progress board β each task's checkboxes get ticked on the issue as the work lands. When the last box is checked, it runs a code review, fixes what surfaces, and marks the PR ready.
Plans name this skill as their executor (the header note in
../_shared/plan-shape.md), and the doctrine it executes by β the plan
shape, the TDD loop in ../_shared/tdd-loop.md β ships under
skills/_shared/, so it runs the same on every machine with no third-party plugin installed (#324).
This skill owns the GitHub/worktree/PR bookkeeping around that doctrine.
Autonomy contract
Run hands-off once started β the user watches, doesn't babysit. See ADR 0005 for the decision scope. Whenever a step (a dispatched sub-agent, the code-review pass, a merge) would pause for a question or sign-off, pick the reasonable default, state the assumption, keep going. Stop only for a genuine blocker:
ghnot authenticated, or no push access.- No
π οΈ Implementation planon the issue β not in body, not in a comment (nothing to execute). - A task's tests can't be made green after an honest effort β don't fake green, don't commit over a red bar, don't tick a box for work that doesn't pass. Stop and report the wall with the failing output. "Honest effort" means you ran the
debug-issueloop: a local command that reproduces the red, built and run before any fix β not a fix retried three times. - A merge conflict you can't resolve with confidence β both
mainand your branch rewrote the same logic, and picking a side would silently drop a sibling PR's work. The mechanical conflicts (version, changelog, snapshots, lockfiles) have known-correct resolutions (Step 8) β handle those; stop only for genuinely ambiguous ones, showing both sides.
Never tick a box, commit, or flip the PR to ready on an assumption β those three acts claim work is done; back them with evidence (tests run, output seen). A resolved merge is the same claim: re-build and re-test on the merged tree β a clean textual merge is not a clean semantic one.
Checklist
Create a task per item and work them in order. Step 6 is the loop β one pass per task.
- Preconditions β
ghworks, you're in the target repo, resolve the issue number. - Read the plan β fetch the
π οΈ Implementation planfrom the issue body (or a comment, on older issues); save it and note where it lives. - Pick the execution mode β assess complexity β Inline (Extra) or Subagent-per-task (Ultracode).
- Create this issue's own worktree β via
scripts/make-worktree.sh, off the resolved default branch (BASE=in its receipt, #678) β never a hardcoded or stale localmain. Never implement from the checkout you were launched in, even if it is already a worktree. If no branch-name match is found, fall back to an issue-scoped GitHub search before scaffolding a new one β a second open PR closing the same issue is the failure this step exists to prevent. - Open the draft PR β empty scaffold commit, push, then the shared PR-open recipe (
_shared/open-pr.md, as a draft) linking the issue; PR title carries a Conventional Commits prefix (fix:/feat:/β¦, CI-enforced) and ends with(#<issue>). - Loop until every task is checked β implement the next unchecked task β verify green β commit β tick that task on the issue plan and the PR description β push.
- Code review β run the
code-reviewskill, apply + commit the fixes, push. - Sync with
mainβ merge the latestorigin/maininto the branch and resolve conflicts per the profile's Conflict hot-spots (version, changelog, snapshots, lockfiles β see reference). - Verify, format, then mark ready β build/tests green on the merged tree AND the profile's format/lint verify gate clean (commit fixes), then
guarded-ready.sh(refuses without a recorded Step 7 review). - Recap β the shared closing shape (
../_shared/recap.md, with its Boundary findings block): PR URL, what shipped, what was assumed or deferred.
Resume-safe: re-running mid-flight is fine. A task is "done" when all its step checkboxes read
- [x]; start at the first that isn't. Reuse this issue's worktree/branch/PR rather than making a
second β matched first on the issue's own branch name, then, if that finds nothing, on whether GitHub
already has an open PR closing this issue; never on "whatever checkout I woke up in" (see
references/github-mechanics.md).
How to read this skill
One step file at a time, when you reach it β never all up front. Every token loaded here is
re-read on every later turn (skills/auto-dev/references/token-economics.md: ~83% of a run's
spend is context re-read), so the step bodies live under references/steps/ and the checklist
above is the whole of what loads with the skill. Open a step when its checklist item starts; the
shared references it names load the same way, from inside that step.
- Step 1 β
references/steps/01-preconditions.mdΒ· reads_shared/preconditions.md - Step 2 β
references/steps/02-read-the-plan.mdΒ· reads_shared/plan-shape.md,_shared/untrusted-input-boundary.md - Step 3 β
references/steps/03-execution-mode.mdΒ· reads_shared/tdd-loop.md - Step 4 β
references/steps/04-worktree.mdΒ· reads_shared/guard-invocation.md,_shared/worktree-ignore-check.md,_shared/open-pr.md - Step 5 β
references/steps/05-open-the-draft-pr.mdΒ· reads_shared/open-pr.md,_shared/sync-with-main.md - Step 6 β
references/steps/06-implementation-loop.mdΒ· reads_shared/tdd-loop.md,_shared/test-seams.md - Step 7 β
references/steps/07-review.md - Step 8 β
references/steps/08-sync-with-main.mdΒ· reads_shared/sync-with-main.md - Step 9 β
references/steps/09-verify-and-mark-ready.md - Step 10 β
references/steps/10-recap.mdΒ· reads_shared/recap.md
Notes on quality
- The checkbox is a promise. Ticking
- [x]on the live issue says that task is done and tested. Only ever tick after a real green test run + commit β a checked box over a red bar lies. - A zero exit is not a receipt.
git commitdoes not check you are still on the branch you created, andgit push -uprints "branch β¦ set up to track β¦" whether or not your commit reached your branch. Both are claims about what git attempted, not about where the work is. That is why Steps 5β9 go through the guards and why the guards re-read state instead of trusting the return code β the same reasontick-plan.shreads the issue back after PATCHing it. Step 8's merge β the largest write in the flow, and the one with the widest window, since conflict resolution sits inside it β goes throughguarded-merge.shon the same terms (#41). - One commit per task, message from the plan (its final step) β verbatim, so git history mirrors the plan and the issue. The one exception is an inline fix under the carve-out below: its own commit,
fix: <what it corrects>, never folded into the task's. - Stay resumable. Everything keys off the issue's checkbox state and the existing branch/PR, so a re-run picks up where it left off.
- Don't widen the blast radius. Implement the plan, not your own ideas. A finding you discover on the way takes one of two exits, and the test has two halves that must both hold: it is fixed inline when it is local (every file the fix touches is already modified by this PR) and small (the fix adds no file to the diff and no behaviour the Spec does not already cover). Whether it is a regression of a shipped guarantee is not part of the test. An inline fix is its own commit and gets a line in the PR description under
### Fixed along the way, so the trail survives without an issue. Put that heading above### Follow-ups:merge-prharvests the lines after a Follow-ups heading, and a sibling placed below it would be read as deferred work and filed. Why the two halves are conjunctive, and why the regression axis is out, sits beside the disposition table inreferences/spec-review.md. Anything failing either half is deferred as before: a bullet under### Follow-upsin the PR description (and called out in the report) β that heading is where/merge-prharvests deferred work and files it as tracked issues; noting it only in the ephemeral report would lose it. Don't smuggle that work into this PR.
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.

