bugfix
Skill1 starsChanged 39 days agoMITView on GitHub
Orchestrates standalone or caller-batched bug fixes via implementor and reviewer subagents using TDD. Reproduces each bug with a red command before fixing it, handles bugs and verified review findings sequentially, tracks them in branch-owned checklists, and routes incidental issues without disrupting the current task.
34 other projects use a version of this.
Adopted by
Most recently taken up by
- isanchez-aguilar/relayrace-aitheir own version, first seen Nov 8, 2026
- icarloscornejo/doertheir own version, first seen Nov 7, 2026
- ClaireAll/skillstheir own version, first seen Nov 5, 2026
- bhoon716/skill-forgetheir own version, first seen Nov 2, 2026
- Snowflake-Labs/coco-skillstheir own version, first seen Nov 1, 2026
- irahardianto/awesome-agvtheir own version, first seen Nov 1, 2026
Used with
Projects with it also use feature, refactor and 9 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.
bradtraversySkillfeature
Manage current feature workflow - start, review, explain or complete
Also in 7 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 6 projects that use this
SentrySkillspec
Produce a verified spec — problem, desired outcome, and acceptance criteria — before building. Use when given a GitHub/Linear issue link, when starting from a fuzzy in-conversation idea, or asked to "figure out what to do" / "scope this" / "what should I build" — whenever the *what* isn't yet pinned down. Grills the ambiguities, checks the premise against the code, and produces acceptance criteria you sign off on — then hands to design-first.
Also in 4 projects that use this
SentrySkillcommit
Create commit messages following Sentry conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with Sentry-specific issue references.
Also in 8 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 4 projects that use this
Microsoft AzureSkilldocs
Also in 3 projects that use this
- +1 more from getsentry
Other versions34 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 34
- alibaba/MNN★ 16ksame name
- SparkDevNetwork/Rock★ 701same name
- oasm-platform/open-asm★ 272same name
- atelier-fashion/adlc-toolkit★ 173same name
- team-attention/hoyeon★ 173same name
- irahardianto/awesome-agv★ 157same name
- Snowflake-Labs/coco-skills★ 49same name
- mrveiss/AutoBot-AI★ 39same name
- dan-the-dev/xp-developer-skills★ 31same name
- ecodelearn/template-claude-code-open★ 25same name
24 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 repository38 other files it gives its agents.
- agent-conductSkill
- code-smellsSkill
- deliverSkill
- final-responseSkill
- frontend-designSkill
- go-conventionsSkill
- go-implementorSkill
- go-reviewerSkill
- go-test-strengthSkill
- implementation-principlesSkill
- nextflow-conventionsSkill
- nextflow-implementorSkill
- nextflow-reviewerSkill
- nextjs-fastapi-conventionsSkill
- nextjs-fastapi-implementorSkill
- nextjs-fastapi-reviewerSkill
- orchestratorSkill
- phase-creatorSkill
- phase-reviewerSkill
- prose-principlesSkill
- pr-resolverSkill
- pr-reviewerSkill
- python-conventionsSkill
- python-implementorSkill
- python-reviewerSkill
- spec-authorSkill
- spec-proofreaderSkill
- spec-reviewerSkill
- spec-writerSkill
- subagentsSkill
- swift-conventionsSkill
- swift-implementorSkill
- swift-reviewerSkill
- testing-principlesSkill
- tightenSkill
- unslopSkill
- verificationSkill
- writing-for-agentsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 17 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 31 edited versions we read keep these.
17
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
- could be automatic: a setting could enforce it
- Distinctive: line 8
Read and follow agent-conduct, testing-principles, and subagents before starting.
- Distinctive: line 39
If the user reports another bug while this workflow is active, append it to the current queue and checklist.
- Distinctive: line 44
Before starting, establish the queue owner using incidental issue routing.
- Distinctive: line 50
Before PR branch workers, apply Workspace Boundary.
- Very specific: line 55
Before fixing anything, read README.md, Makefile/justfile/package.json scripts, and any CONTRIBUTING doc to identify the project's lint, …
- Distinctive: line 77
Use repository-relative paths in committed metadata and evidence, never absolute workspace paths.
- Very specific: line 103
Before writing evidence, redact credentials, tokens, cookies, personal data, private payload fields, and unrelated environment values.
- Distinctive: line 113
Follow the project's evidence policy.
- Distinctive: line 128
Before any fix, you need one command that fails because of this bug.
- Distinctive: line 182
If no loop can be built, that is a blocker, not a licence to guess.
- Distinctive: line 210
If the bug cannot be fixed due to an outside constraint, revert and report the blocker with reasoning and 1-3 alternatives - do not commit …
- Distinctive: line 213
If the subagent reports it cannot reproduce, cannot fix, or hits a blocker, leave the checklist item unchecked, add indented notes under it …
- Distinctive: line 229
Verify: (a) the recorded red command now passes (run it).
- Distinctive: line 243
Before PASS, require current user-path evidence under the discovered gates.
- Very specific: line 257
Update the checklist (- [x] plus indented summary).
- Distinctive: line 261
Follow the invocation mode's push rules.
- Distinctive: line 276
Follow subagents rules (no direct implementation, always writable subagents, etc.).
- Distinctive: line 278
Always create the dated checklist, even for one bug.
- Distinctive: line 279
Always have a red command before briefing an implementor.
- Distinctive: line 281
Follow the invocation mode's push rules and agent-conduct Git Safety.
“Common” is measured: kept by at least 6 in 10 of the 31 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
Bugfix Skill
Read and follow agent-conduct, testing-principles, and subagents before starting. subagents owns delegation: agent choice, briefing, skill discovery, and error handling. This skill covers only the bugfix procedure.
Input
One or more bug descriptions. Parse into a numbered list of discrete issues. Same procedure whether one bug or many.
An issue may come from the user, a failed quality gate, or a verified PR review finding. Preserve the original description and any source metadata supplied by the caller, such as a PR thread ID. Source metadata is bookkeeping only; verify and fix the underlying behaviour in the same way as any other bug.
Interpret reports by intent, not literally. Separate visual complaints ("this box is ugly") from layout requirements: hiding an element visually is fine if it still serves sizing/layout. Don't delete structure that other things depend on.
Invocation mode
- Standalone: Own the checklist and commits. Do not push unless the user explicitly asked or agent-conduct's standing rebase authorization applies. A dependency publication hold in routing keeps the branch local even under that standing authorization.
- Batched caller (for example, pr-resolver): Own the checklist and commits, but never push, reply to reviews, resolve threads, or wait on remote events. Return control after the local queue is drained. The caller owns one batched push and all remote state. Reuse one checklist for the caller's whole active session; append later findings instead of starting another bugfix workflow.
If the user reports another bug while this workflow is active, append it to the current queue and checklist. Finish the current fix-review-commit cycle, then process the new item before returning to the caller. Do not start a parallel bugfix workflow or push an incomplete batch.
Before starting, establish the queue owner using incidental issue routing. Apply it whenever another issue appears and again at completion. A batched caller's local queue contains only work routed to its current branch; return deferred items to the owner without processing them.
Before PR branch workers, apply Workspace Boundary.
Discover Quality Gates (once, up front)
Before fixing anything, read README.md, Makefile/justfile/package.json
scripts, and any CONTRIBUTING doc to identify the project's lint, test, and
fixture/dev commands (e.g. make lint, make test, make dev-fixtures,
npm run lint). Include project performance policy using
gate policy.
Pass applicable commands and policy to each implementor and reviewer;
subagents must run these gates, not invent their own.
For user-visible changes, include
user-path verification.
Checklist File
Reuse a supplied or existing checklist only when its Branch metadata matches
the current branch and it belongs to this workflow. An inherited checklist
from another branch is history, not the active ledger. Otherwise create
.docs/bugfixes/<YYMMDD>-<short-slug>-<id>.md, with a readable task slug and an
independently generated random ID, such as uuid.uuid4().hex. Generate the
name once and retain it on resume. Never choose a next-free number.
Record Branch, resolved Base ref and SHA, and queue owner branch/checklist
in the header. For a dependent local branch, include the dependency and
publication hold metadata from routing.
Use repository-relative paths in committed metadata and evidence, never
absolute workspace paths. Write each bug verbatim except for secret or
personal-data redactions:
- [ ] <bug description, verbatim>
- Source: <caller metadata, if supplied>Record the red command and before screenshot path under its item. On success, check the item and add the files touched and approach before committing the checklist with the fix. Deferred entries carry the branch and committed entry reference required by routing; they are handoffs, not successful fixes.
Before starting a new bug, scan prior .docs/bugfixes/*.md checklists.
Their checked items define behaviour that must not regress. A new fix may
only change a previously-fixed behaviour if that prior item is demonstrably
wrong; if so, note the reasoning in the new checklist entry.
Evidence hygiene
These rules govern evidence copied into repository files or added to a commit. They do not restrict terminal or subagent output that stays outside the repository.
- Before writing evidence, redact credentials, tokens, cookies, personal data,
private payload fields, and unrelated environment values. Preserve the
failure's meaning and mark each replacement
[REDACTED]. Evidence supplied by a caller is verbatim after redaction, not before it. - In the checklist, record the command, its exit status, and the smallest output excerpt that proves the failure. Cap the excerpt at 80 lines and 8 KiB. Do not copy larger logs, traces, response bodies, or payloads into the repository.
- Reach visual states with synthetic fixtures. Sanitize any image before adding it to the repository.
- Follow the project's evidence policy. With none, commit only the sanitized before and after images needed to review a perceptual bug, each no larger than 5 MiB. Keep bounded text evidence in the checklist.
Procedure
Process each bug sequentially. Complete fix -> review -> commit before starting the next, except when a discovered blocker prevents completion. Pause the affected item, resolve the blocker first, then resume and rerun the item's checks.
For each bug:
1. Build a red feedback loop
Before any fix, you need one command that fails because of this bug. Name it, run it, and record it under the checklist item with its output, redacted per Evidence hygiene. No red command, no fix. This is the step that decides whether the right bug gets fixed; spend the effort here.
The command must be:
- Red-capable: it drives the real code path and asserts the symptom the reporter described, so it fails now and passes once the bug is gone. "Runs without erroring" is not a signal.
- Deterministic: the same verdict every run. For an intermittent bug, a pinned reproduction rate high enough to debug against.
- Fast: seconds, not minutes.
- Agent-runnable: it needs no human in the loop.
Ways to build one, cheapest first:
- A failing test at whatever seam reaches the bug.
- A CLI invocation on a fixture input, diffed against known-good output.
- An HTTP request against a locally running service.
- A browser or PTY script that drives the app and asserts on what it shows.
- A replay of a captured payload, trace, or event log through the code path.
- A throwaway harness that calls the failing path directly.
- A loop over many repeated or randomised inputs, for "sometimes wrong" bugs.
- A differential run of two versions or configs, diffing the outputs.
Web UI, visual, and interactive bugs take route 4, and the red evidence is a
screenshot. A cheaper route cannot prove a perceptual symptom, per
testing-principles § Perceptual Requirements. Drive the real app in a
browser with the project's browser tooling (its Playwright or Puppeteer setup,
or a CDP session against the running dev server), extend the project's dev
fixtures (e.g. make dev-fixtures) until the buggy state is reachable, and
capture a screenshot of it. Where the project has a verify skill (see
verification), use its Drive recipe rather than inventing one.
That screenshot is the before image. Keep it, record its path in the checklist, and hand it to the implementor and the reviewer so the after comparison is against the same fixture and the same viewport. The fixture extension is part of the fix: commit it with the change. Where the assertion can be made machine-checkable (pixel or contrast sampling, a bounding-box measurement), add that to the drive script as well, so the loop has a verdict and not only an image.
Then tighten it. Cut setup, aim the assertion at the exact symptom, and remove nondeterminism by controlling clocks, randomness, ordering, and external services. A two-second deterministic loop is worth far more than a thirty-second flaky one. For an intermittent bug the goal is a higher reproduction rate, not a clean single run: loop the trigger, add load, narrow the timing window until the rate is high enough to debug against.
Once it is red, shrink the scenario until every remaining element is load-bearing, so removing any one of them makes it pass. That minimal case is what the regression test encodes.
If no loop can be built, that is a blocker, not a licence to guess. Per agent-conduct, stop, leave the item unchecked, record what you tried, and ask the user for the environment that reproduces it, a captured artifact, or the missing access. Do not brief an implementor to fix a bug nobody can observe failing.
2. Fix (implementor subagent)
Brief an implementor subagent with:
- Conventions, testing-principles, and implementor skill paths.
- Bug description, the red command with its bounded failing output, the minimal repro, relevant paths, and the discovered quality gate commands. For a UI bug, also the before screenshot path, the fixture command that reaches the buggy state, and the viewport it was captured at.
- Paths to prior bugfix checklists; instruction not to break, bypass, or weaken any existing regression test unless explicitly justified per the rule above.
- Instruction: "Run the red command first and confirm it fails for the stated reason. Follow TDD and testing-principles. Add a behavioural regression test encoding the minimal repro when testing-principles calls for one, then fix the cause so both the test and the red command pass. Do not modify unrelated tests. Run the project's applicable quality gates, including required performance comparisons; all must pass. Report distinct incidental issues to the caller for routing, including unrelated, pre-existing, or flaky gate failures. Required gates still must pass; do not skip or quarantine them. Do not paper over, work around, or fake a fix (see agent-conduct § Honesty About Blockers). If the bug cannot be fixed due to an outside constraint, revert and report the blocker with reasoning and 1-3 alternatives - do not commit code."
If the subagent reports it cannot reproduce, cannot fix, or hits a blocker, leave the checklist item unchecked, add indented notes under it explaining the issue and any proposed alternatives, revert any changes made solely for that failed attempt, and continue only independent current-branch items. Preserve pre-existing work. Do not retry with "try harder" wording. A required red gate still blocks completion.
3. Review (reviewer subagent)
Brief a reviewer subagent with:
- Conventions, testing-principles, and reviewer skill paths.
- Bug description, the red command and its bounded evidence, list of changed files, prior bugfix checklist paths, and the quality gate commands.
- Instruction: "Clean context. Read all changed source and test files. Verify: (a) the recorded red command now passes (run it); (b) test strategy follows testing-principles and the regression test encodes the minimal repro; (c) the fix addresses the cause rather than suppressing the symptom, and is minimal; (d) no prior regression test was deleted, skipped, or weakened; (e) project lint and test commands pass (run them), with current evidence for other applicable gates under the supplied policy; (f) for a web UI or otherwise visual bug, drive the app yourself from the same fixture and viewport, capture a post-fix screenshot, and compare it against the before image: the reported symptom is gone and nothing else visibly regressed. A green test suite alone does not satisfy (f). If any gate fails for an unrelated, pre-existing, or flaky reason, return FAIL and identify it as a newly discovered checklist bug. Return PASS or FAIL with specific feedback."
Before PASS, require current user-path evidence under the discovered gates; follow verification for failed or inconclusive drives.
PASS -> step 4. FAIL -> new implementor with feedback, then new reviewer. Route distinct incidental findings before the next cycle; keep feedback about the current fix in this cycle. Max 5 cycles; if still failing, leave the item unchecked, revert only that attempt's changes, and continue only independent current-branch items.
Watch for flip-flopping across cycles (fix A re-breaks B). If you see it, brief the next implementor explicitly on which behaviours must coexist.
4. Commit and update checklist
Update the checklist (- [x] plus indented summary). git add the changed
files plus the checklist. Commit with a short imperative message
(max 72 chars), e.g. Fix off-by-one in batch size calculation.
Follow the invocation mode's push rules. In batched-caller mode, the caller also owns any rebase and force-push required by agent-conduct. Do NOT ask for confirmation. Proceed to the next bug.
After all bugs
Apply queue completion: only the outermost owner drains deferred branches, after its current work succeeds. Report the checklist path, each item's outcome and commit SHA, and any pending branch/entry references. Return required gate evidence to the caller. For a batched caller, return source metadata unchanged so it can reply to the correct review threads after pushing.
Rules
- Follow subagents rules (no direct implementation, always writable subagents, etc.).
- Always create the dated checklist, even for one bug.
- Always have a red command before briefing an implementor. A bug nobody can reproduce is a blocker to report, not a fix to attempt.
- Follow the invocation mode's push rules and agent-conduct Git Safety. A batched caller always owns pushing, including authorized force-pushes.
- One fix-review-commit cycle at a time.
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.

