implement-change
Skill2 starsChanged 18 days agoMITView on GitHub
Procedure for making a change in a repository that publishes an implementation profile (docs/implementing-changes.md), from the worktree and the plan to the pull request. Use it when asked to implement an issue or make a change in such a repository.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- Apicurio/apicurio-registrytheir own version, first seen Nov 9, 2026
- 0xdeafcafe/skillstheir own version, first seen Nov 6, 2026
- CsHeng/agent-skillstheir own version, first seen Nov 4, 2026
- yaohuangguan/remote-arctheir own version, first seen Nov 1, 2026
- Remote-Arc/remote-arctheir own version, first seen Nov 1, 2026
- Codagent-AI/agent-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use audit-test-suite, change-data-safely 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.
yaohuangguanSkillaudit-test-suite
Find where an existing test suite is weak and decide what to test next, ranked by risk. Use this when asked to add missing tests, find gaps, raise coverage, assess test quality or see which areas are thin, even if the request only mentions a coverage percentage.
Also in 3 projects that use this
yaohuangguanSkillchange-data-safely
Change a database schema or stored data without breaking running code or losing data. Use this for any migration, new or changed column, backfill, bulk update, delete, index, or change to a stored format, including in small projects. Data mistakes are often impossible to undo.
Also in 3 projects that use this
BanKnightSkillplan-change
将已完成 spec/design 的 change 拆成可执行 plan 与 tasks。用户要把设计落成执行计划、任务清单或实现步骤时使用。
Also in 6 projects that use this
SauravSrivastavSkilldebug-failure
Diagnose a failing test, command, or runtime behavior using evidence and produce a minimal verified fix.
Also in 3 projects that use this
MicrosoftSkillfix-flaky-test
Reproduces and fixes flaky or quarantined tests. Tries local reproduction first (fast), then falls back to CI reproduce workflow (reproduce-flaky-tests.yml). Use this when asked to investigate, reproduce, debug, or fix a flaky test, a quarantined test, or an intermittently failing test.
Also in 3 projects that use this
srclightSkillrefactor-safely
This skill should be used when the user asks to "refactor", "rename", "move", "change a function signature", "extract a method", "delete unused code", "clean up", or any modification that could break callers or dependents. Provides a pre-change safety checklist using srclight's graph tools to assess blast radius before touching code.
Also in 5 projects that use this
- +6 more from yaohuangguan
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- pnpm/pnpm★ 37ksame name
- verdaccio/verdaccio★ 18ksame name
- Apicurio/apicurio-registry★ 951same name
- Codagent-AI/agent-skills★ 31same name
- manhds82/claude-code-anyllm★ 16same name
- taljeon/plzdo★ 9same name
- Remote-Arc/remote-arc★ 5same name
- yaohuangguan/remote-arc★ 5same name
- CsHeng/agent-skills★ 3same name
- otaviobarros/agent-engineering★ 3same name
7 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 repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- audit-repositorySkill
- change-skillSkill
- evaluate-skillSkill
- implement-changeSkill
- review-repositorySkill
- runtime-canarySkill
- shepherd-pull-requestsSkill
- audit-repositorySkill
- change-skillSkill
- evaluate-skillSkill
- review-repositorySkill
- runtime-canarySkill
- shepherd-pull-requestsSkill
- audit-ai-configSkill
- audit-skillSkill
- curate-agent-memorySkill
- dotnet-dependenciesSkill
- dotnet-formatSkill
- ejryan89-code-review-coreSkill
- ejryan89-skill-coreSkill
- flag-review-findingSkill
- github-activity-reportSkill
- repo-cleanupSkill
- review-documentSkill
- review-insightsSkill
- review-prsSkill
- update-coding-agent-skillsSkill
- update-pr-dashboardSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
4
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 22
Start from an issue the user hands over or a need they describe.
- Distinctive: line 45
Strongest: when *Model guidance* names the area, a *Contract files* entry is touched, or a design choice remains.
- Distinctive: line 46
Balanced: when the plan is concrete and follows an existing pattern.
- Distinctive: line 47
Cheapest: only for a fully specified mechanical edit whose test already exists, and never for a turn that later starts subagents, because a …
“Common” is measured: kept by at least 6 in 10 of the 16 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
Implementing a change
A change is finished only when it is tested, documented, validated, and opened as a pull request. The steps below are in order; do not edit before step 1 is done.
Every repository-specific fact comes from the repository's implementation profile, docs/implementing-changes.md. Read it first, then its sections as each step names them: Worktree, Size gate, Model guidance, Contract files, Validation, Documentation, Pull requests. If the profile or a section is missing, stop and tell the user. Also follow the repository's own instruction file (CLAUDE.md, AGENTS.md), and any procedure that specializes this one for the kind of change.
1. Worktree
Settle the change's title type from the request first; Pull requests lists the types. Then follow Worktree for the place the session started. From the main checkout, create the task's working tree with its command and move the session into it with the runtime's worktree transition. From a worktree the runtime already made for the session, stay in it, create no second tree, and start its branch from the current base as Worktree says. Do this before planning: plans and project memory are keyed by working directory. If intake or the bug class later changes the type, rename the branch as Worktree says before its first push.
2. Intake
Start from an issue the user hands over or a need they describe; an open issue alone is not the signal to start. Restate the scope and where it stops before exploring.
3. Bug class
For a defect, find its class before planning the fix: the same pattern elsewhere, the other callers of the same reader or writer, and its twin in another shell or runtime. Fix each sibling in the same change, or file a follow-up issue for it and name that issue in the pull request. Fixing only the named instance leaves the rest to be found again.
4. Size gate
Apply Size gate. A change that passes is implemented on the current model without a plan. Otherwise plan.
5. Plan
Plan in the runtime's read-only planning mode, on the strongest model it offers. Read the files the change touches and their tests. Settle real design choices with the user. The deliverable is a handoff prompt that stands alone, in a fenced block:
- the issue and the scope, with where it stops;
- the files to change;
- the tests to write first;
- the validation to run, from Validation;
- the documentation to update, from Documentation;
- the pull request's title, and whether the change owes an upgrade note, from Contract files and Pull requests.
Choose the model by this rubric:
- Strongest when Model guidance names the area, a Contract files entry is touched, or a design choice remains.
- Balanced when the plan is concrete and follows an existing pattern.
- Cheapest only for a fully specified mechanical edit whose test already exists, and never for a turn that later starts subagents, because a skill's model carries into them.
6. Approval and handoff
The user approves the plan and the model together, then chooses how to continue. State the trade-off once: staying in this session and switching the model keeps the context; a new session started from the handoff prompt costs less and starts clean. A skill cannot switch the model or mode itself, so give the user the command for their runtime from the table below.
| Runtime | Planning mode | Switch model |
| Claude Code | /plan, or start with --permission-mode plan | /model, or start with --model <name> |
| Codex CLI | /plan | /model, or start with --model <name> |
| Copilot CLI | /plan | /model, or start with --model <name> |
7. Implement
Work test first: write the failing test, then make it pass. Update Documentation in the same change. Run the local checks Validation names for the files the change touches, in full only where it says the change's reach warrants it, and get them green without skipping, weakening, or suppressing a check; rerun them after anything that changes the tree. Continuous integration runs the full gate; the gates Validation names as calling a model are yours to run. Read the whole diff once more for personal paths, credentials, and generated artifacts, and leave no scratch file or background command behind.
8. Pull request
.claude/skills/implement-change/scripts/pull_request.py does the deterministic part: it drafts the body from the repository's pull request template, checks the title, the body, and the branch, and opens the pull request with the title read from its file, so no title is pasted into a command. Any command of it that cannot finish prints a last line FAILED <reason>: report it and stop. Take these in order:
Draft the body, with one
--closesfor each issue the change resolves and none when it resolves none:python -B .claude/skills/implement-change/scripts/pull_request.py draft --closes '<number>'It prints
TEMPLATE "<file>", the template it read, aCLOSES <number>line for each issue, and theBODYandTITLEfiles. Write the title, as Pull requests says, on one line in theTITLEfile it names, and fill theBODYfile: replace each template comment and empty item with what it asks for, and state the upgrade note when the change owes one.- Bring the branch up to date with its base as Pull requests says; continuous integration validates the result, so it needs no local rerun.
Check both files and the branch against the base Pull requests names, such as
origin/main, then run Validation's title and body checks on the same files. It prints theTITLEit read, aCLOSESline for each issue the title or the body closes by any closing reference GitHub reads, andBASE <base> <commit>, the base's tip after its fetch, then a line for each problem:TITLE_EMPTYorTITLE_LINES <count>for a title file that holds no title or more than one line;TITLE_CLOSES <title>for a title holding a closing reference, which the squash commit carries, so name that issue in the body'sCloses #<number>line instead;PLACEHOLDER <line> <what>,CLOSES_LINE <line> <text>, orHEADING_MISSING <heading>for a template comment or empty item left in the body, a line holding a closing reference, anywhere, inside a comment you wrote too, and in any form GitHub reads, that is not aCloses #<number>line of its own, or a template heading the body dropped;BEHIND <base> <commit>for a branch to bring up to date (step 2);NO_COMMITS <base>for a branch with nothing to open; andUNCOMMITTED <count>for changed or untracked files the pull request would leave out. Fix what each line names and rerun until it printsREADY:python -B .claude/skills/implement-change/scripts/pull_request.py check --title-file "<title file>" --body-file "<body file>" --base "<base>"- Push the branch under its own name, as Pull requests says, so the pull request has a branch to open from.
Open the pull request.
openrepeats the check, refuses a branch whose upstream does not holdHEADwithUNPUSHED <upstream>, orUNPUSHED no upstream, so push it (step 4), and printsPULL_REQUEST <url>:python -B .claude/skills/implement-change/scripts/pull_request.py open --title-file "<title file>" --body-file "<body file>" --base "<base>"
When a continuous integration leg fails, reproduce that leg as Validation says, fix it, and push. While the pull request is open, bring it current by merging its base, never by rebasing; the merge may be made on the remote, so pull the branch before the next push. If a push is rejected, fetch and inspect the remote branch before anything else. Do not merge.
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.

