correct
Skill1 starsChanged 3 days agoMITView on GitHub
Turn a mistake that agents keep making in a repo into a check that fails, so the next agent cannot make it. Tries a design change first, then a type, then a lint, then a test, and writes a rule only as a last resort. Use for "correct this so it can't happen again", "agents keep doing X", "make this mistake impossible", "enforce this rule". Not for a one-off fix or a typo, and not for a finding inside a pull request that is still under review.
53 other projects use a version of this, 38 of them edited.
Adopted by
Most recently taken up by
- upamune/skillsedited, first seen Nov 15, 2026
- mdsmithaustin/pstackedited, first seen Nov 15, 2026
- Yeachan-Heo/oh-my-claude-sisyphustheir own version, first seen Nov 8, 2026
- Loner1024/skillsedited, first seen Nov 8, 2026
- maxatwork/skillsedited, first seen Nov 8, 2026
- caidanw/skillsedited, first seen Nov 8, 2026
Used with
Projects with it also use ketchup-video, poteto-help 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.
tristanphvnSkillketchup-video
Catch the user up like /keel:ketchup, with a short silent video of slides for what happened and the waiting calls as text under it. Use for /keel:ketchup-video.
Also in 13 projects that use this
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 14 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 27 projects that use this
Xia-AtaraxiaSkillbenchmark-checklist
Vets performance measurements for the limiter, tuning, physical limits, errors, repeatability, relevance, and proof that timed work happened. It applies to 'check this benchmark', 'report this speedup', measured regressions, and choosing a library or configuration from numbers. It reports spread and gaps before drawing a conclusion. Not for general testing policy or choosing test oracles - use principle-testing.
Also in 36 projects that use this
instructureSkillketchup
Rebuild context after /clear by analyzing uncommitted changes across Canvas LMS and all plugin repositories
Also in 23 projects that use this
drafaelSkillin-your-own-words
Restate the user's goals and the problem they are trying to solve to check understanding. Manual invocation only; use when the user explicitly invokes in-your-own-words or requests this understanding check. Do not solve the task or rewrite the assistant's last answer.
Also in 23 projects that use this
Other versions53 projects use a version of this.
Word for word · 0
None found.
Edited · 38
- backnotprop/pstack★ 3.8k12% same
- moeru-ai/xsai★ 66712% same
- uzairansaruzi/p3-stack★ 12612% same
- dsebban/skills★ 7112% same
- TheOnlyFusionCube/potetos-for-everyone★ 2111% same
- creedants/pstack-t3★ 1811% same
- painhardcore/pstack★ 1812% same
- mariusflorescu/pstack-t3★ 1312% same
- caidanw/skills★ 1112% same
- adjohn/pstack★ 912% same
28 more not listed
Wrote their own version · 15
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- savannahfeder/agentbox★ 376same name
- jtaroreh/agystack★ 128same name
- Railly/skills★ 11same name
- requie/endostack★ 4same name
- bjornjee/skills★ 2same name
- fullerzz/agent-skills★ 2same name
- lobomfz/skills★ 2same name
- endqwerty/endstack★ 1same name
5 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
- code-auditSkill
- comment-auditSkill
- coordinatorSkill
- deliverSkill
- handoffSkill
- publishing-a-repoSkill
- releaseSkill
- repo-setupSkill
- shared-skillsSkill
- test-auditSkill
- triageSkill
- verification-skillSkill
- writing-docsSkill
- writing-readmesSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
7
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
- Distinctive: line 17
Before the first commit, start a branch in a worktree of its own.
- Very specific: line 20
If a pull request from an earlier run of this skill is still open (branch correct/<name>), add to it.
- Distinctive: line 24
Start from what you were told.
- Distinctive: line 56
Prefer a fix that stops the mistake where the harm happens over one that reports it afterwards.
- Distinctive: line 59
If the fix is a check, do not also write a rule for it.
- Distinctive: line 67
If making the mistake is itself harmful, make it in isolation as well: a temporary home folder, a copy of the data, a container.
- Distinctive: line 70
Use the linter and the test framework the repo already has, or a small script in the repo.
- Distinctive: line 84
Add or update the row for each class you fixed.
- Very specific: line 87
If the file has no such table, add it under a ## Rules heading.
- Very specific: line 93
When this runs with nobody present (a scheduled job, a coordinator): ask no questions, open the one pull request or none, and put what you …
“Common” is measured: kept by at least 6 in 10 of the 17 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
correct
The same mistake keeps being made in this repo. Change the repo so that the next agent cannot make it, or fails a check the moment it does. A written rule is the weakest fix: nothing fails when an agent skips it.
Assume every contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that passes. A change that looks right from one file must be right for the whole repo.
Work on the current repo unless you are given a path.
Before you start
- The ending is stop: this skill never merges, whatever was said. It changes the checks that guard the repo, and the owner merges those.
- Before the first commit, start a branch in a worktree of its own. Never commit on the default branch. With no remote, leave the branch and report.
- If the
deliverskill is installed, follow all of it, with the ending fixed at stop: write "Ending: stop (fixed bycorrect)" inHANDOFF.md, so that a later "send it" is not read as a grant. The contract has one group of items per class: the check fails on the mistake, it passes on the fix, and behaviour the class does not concern is unchanged. Usedeliver's report, with the per-class account from Report below as its "Done when". A baseline makesdeliver's "nothing was loosened" line false; say so, and it costs nothing because the ending is stop. - What the owner must decide goes in one place: under
## For the owner to decidein the pull request body, and again in the report. With no remote, read "the pull request body" throughout asHANDOFF.mdon the branch's worktree. - If a pull request from an earlier run of this skill is still open (branch
correct/<name>), add to it; do not open a second one.
1. Find the mistakes
Start from what you were told. If the owner named a mistake, that is the class; find its occurrences. When it left no trace in the repo (it happened in an agent's own shell), the owner's account is the evidence; say so.
Otherwise look for repeats:
review comments on recent pull requests. With no remote, skip this source.
gh pr list --state all --limit 30 gh pr view <n> --comments # the conversation gh api repos/{owner}/{repo}/pulls/<n>/comments # the comments on lines of the diff- reverts and fix-up commits:
git log --oneline -200 | grep -i -w -E "revert|fix|fixes|fixed|fixup|oops|again". Read the commits it prints; most will be ordinary fixes. - the rule table in
AGENTS.md: a row whose "Enforced by" says "nothing yet" is a candidate once you find an occurrence of its mistake. Skip a row marked "judgement". - comments that explain a workaround, and Gotchas in the
HANDOFF.mdof each worktree (git worktree list).
Group what you find into classes. A class counts when it has happened twice, or when the owner says it matters. For each class write one line: what goes wrong, and the commits, comments or files that show it.
With more than three classes, take the three most frequent and list the rest in the report. If one class stalls, ship the ones that are finished and proven, and leave the stalled one out of the branch and in the report.
2. Choose the fix, highest level first
For each class, take the first level that works and say why the ones above it did not.
- Design. Make the wrong thing impossible to express, or refuse it at the moment it is attempted. Give each piece of state one owner and each task one supported way. Hide internals so that the wrong import fails. Replace a list that is kept in step by hand with one source. Delete the old way and any dead code an agent would copy.
- Type. Make the bad state fail to compile or to load.
- Lint or check. A check whose error message names the file, the function or the command to use instead. An agent reads that message and fixes itself.
- Test. A test of the behaviour, which fails when the behaviour breaks and survives a refactor.
- Rule. One line in the rule table, only for a judgement call that nothing can check, with an example of the failure. Write "judgement; nothing can check" in its "Enforced by" column, so that a later run leaves it alone.
Limits on the choice:
- Prefer a fix that stops the mistake where the harm happens over one that reports it afterwards. A check in the verify command is too late for a mistake that deletes or overwrites something when it runs.
- Anything a user, a script or another repo can observe is the owner's to change: output, exit codes, defaults, public API, file formats. A new check in the verify command is the one exception; that is what this skill is for. Take the strongest fix that leaves those as they are, say plainly what it still lets through, and put the stronger fix forward for the owner to decide. When nobody is present, make no design-level change that alters any of them.
- A higher level that covers only part of the class can be joined with a lower one that covers the rest.
- If the fix is a check, do not also write a rule for it. The rule table row is enough.
- A test that still passes when what it checks is broken may be fixed, after you show it passing with the behaviour broken. Deleting a test is the owner's decision.
3. Fix and prove
- One class per commit. Fixes that come out of review are further commits.
- Prove each check against the mistake as it was made. Do it in a throwaway worktree (
git worktree add --detach ../<repo>-mistake <sha>), removed afterwards; the branch you ship never holds the mistake. Check out the old code there, or write the mistake back in the way it was described. Show that the check fails with the message you intended, then show that it passes on the fixed code. Paste both outputs in the pull request, and say what tree each ran on. Fordeliver, this pair is the evidence for the class, at ladder step 4. For a design fix, prove the design (the wrong thing is refused) and the test that guards it. That test must do no harm when the guard is switched off, because switching it off is how you prove the test. - The two outputs you report are from the final commit. Run them again after any commit that follows a review.
- If making the mistake is itself harmful, make it in isolation as well: a temporary home folder, a copy of the data, a container. Check afterwards that nothing real was touched.
- A check that watches or blocks file writes, processes or the network can do damage while it is half built. Develop it with the home and temporary folders pointed at a scratch folder you will delete.
- The check runs in the repo's verify command, so that it runs the same way locally and in CI. A repo with no verify command gets the check in its test command. A repo with neither gets the check as a script, and wiring it in is for the owner to decide.
- Use the linter and the test framework the repo already has, or a small script in the repo. Adding a new tool or dependency needs the owner's yes.
- If the code already breaks the new check in places you cannot fix in this change, or may not (the fix would change what users see), the check fails only on new occurrences. Record the existing ones in a baseline file, keyed by file and by the offending text or symbol, never by line number, and report the count. A baseline is an allowlist; name it as one in the pull request.
- An exception goes on the offending line, with the reason, an expiry date and the name of the person who approved it. The owner asking for the correction is not that approval. With nobody to approve, add no exception and list the case for the owner.
4. Keep the rule table
The repo's agent instruction file holds a table that pairs each rule with what enforces it. That file is AGENTS.md; if the repo has only a CLAUDE.md, use that, and if it has neither, report it and do not create one (repo-setup does).
| Rule | Enforced by |
|---|---|
| Tests never write to the real data folder | the `check-data-dir` step of the verify command |- Add or update the row for each class you fixed. Name the check, not the intention.
- A row that said "nothing yet" and now has a check loses those words.
- A design fix that a later edit could undo keeps its row, naming the test that guards it. Drop a row only when nothing in the repo could bring the mistake back.
- If the file has no such table, add it under a
## Rulesheading.
5. Ship
Open one pull request with the commits, on a branch named correct/<what it fixes>. Without deliver: run the repo's verify command on the head commit, have a fresh agent review the diff, and put both proof outputs in the body.
When this runs with nobody present (a scheduled job, a coordinator): ask no questions, open the one pull request or none, and put what you could not decide under ## For the owner to decide.
Report
For each class: what goes wrong and the evidence, the level you chose, why each higher level did not work, the check and its two proof outputs, and any baseline. Then what is for the owner to decide, and the classes you found and did not fix.
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.

