deslop
Skill81 starsChanged 4 months agoApache-2.0View on GitHub
The optimization pass, defined - delete before you add, one smell class per pass, behaviour pinned by a test that ran BEFORE the edit. Lints a SKILL.md and prose by the same instinct. Use for the per-story optimization pass or when code has grown noisy without growing capable.
118 other projects use a version of this.
Adopted by
Most recently taken up by
- lalulali/vespyrtheir own version, first seen Nov 8, 2026
- ferologics/pi-skillstheir own version, first seen Nov 8, 2026
- novuhq/novutheir own version, first seen Nov 8, 2026
- openclaw/openclaw-enterprisetheir own version, first seen Nov 8, 2026
- ADWilkinson/astacktheir own version, first seen Nov 8, 2026
- MammadovEshgin/clean-code-skilltheir own version, first seen Nov 8, 2026
Used with
Projects with it also use simple-issue-description, control-cli 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.
JwuthriSkillsimple-issue-description
Turn a rough bug report, feature request, support note, or pull request into a short, plain-language issue focused on the problem and desired behavior. Use when a contributor asks to simplify an issue, explain what a PR is for, create the corresponding issue for a PR, remove implementation detail from a report, or invokes /simple-issue-description.
Also in 4 projects that use this
ElyzeSolutionsSkillcontrol-cli
Build or adapt a local harness to drive, inspect, and profile an interactive CLI or TUI without external services. Use for CLI UX checks, startup regressions, memory leaks, hangs, prompt flows, or terminal demos.
Also in 6 projects that use this
JwuthriSkillopenseo-review-web-content
Write and review content for the OpenSEO website (web/) — blog posts, guides, feature pages, FAQs. Distills the philosophy for on-brand, useful, accurate content. Use whenever adding or editing user-facing prose in web/content or web/src.
Also in 4 projects that use this
learnerLjSkillverify-this
Verify a claim with fresh local evidence: restate it falsifiably, capture baseline and treatment, compare artifacts, and return VERIFIED, NOT VERIFIED, or INCONCLUSIVE.
Also in 6 projects that use this
ElyzeSolutionsSkillcontrol-ui
Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI. Use for local UI verification, screenshots, accessibility snapshots, perf profiles, visual diffs, or reproducing UI bugs.
Also in 7 projects that use this
ten9876Skillpapercuts
Read-only AetherSDR issue triage that surfaces the UX papercuts, bugs, and regressions you can fix AND prove today with the agent automation bridge. Use when the user says $papercuts or /papercuts, or asks to "find papercuts", "what can I fix and prove today", "triage bridge-provable issues", "what UX bugs can the bridge close", "sort issues by priority I can knock out", or otherwise wants a curated, lifecycle-aware (design→code→prove) shortlist of issues — NOT the label-and-respond /triage workflow. This is the discovery step that feeds /fb. Strictly read-only: it never labels, comments, closes, or edits issues.
Also in 4 projects that use this
- +5 more from Jwuthri
Other versions118 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 118
- molt-bot/clawdbot★ 391ksame name
- novuhq/novu★ 40ksame name
- every-app/open-seo★ 27ksame name
- millionco/react-doctor★ 15ksame name
- jaredpalmer/kev★ 9.8ksame name
- joe-bell/cva★ 6.9ksame name
- sanity-io/sanity★ 6.4ksame name
- millionco/expect★ 3.6ksame name
- rohitg00/pro-workflow★ 2.9ksame name
- compozy/compozy★ 2.9ksame name
108 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.
- docs/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- browser-checkSkill
- code-reviewSkill
- doctorSkill
- fidelity-gateSkill
- helloSkill
- pr-feedbackSkill
- prompt-tuningSkill
- retroSkill
- root-causeSkill
- runSkill
- setupSkill
- skill-writingSkill
- statusSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 116 edited versions we read keep these.
5
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 24
Pin the behaviour BEFORE you touch anything: Run the relevant tests and keep the output.
- Distinctive: line 40
Verify it is unused before deleting.
- Distinctive: line 55
Comments restating the line below them: Keep the comment that explains WHY, delete the one that narrates WHAT.
- Distinctive: line 97
No dead-end error messages: Every failure names what happened and what to do next.
- Distinctive: line 99
Do not achieve brevity by compressing sentences into fragments.
“Common” is measured: kept by at least 6 in 10 of the 116 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
Deslop — the pass that removes rather than adds
Every story here owes an optimization pass, and until this file existed the pass was whatever the agent felt like that afternoon. This is what one is.
The default action is deletion. A pass that ends with more lines than it started with was a refactor, and a refactor is a different piece of work with a different risk profile. "Started with" means the state immediately before THIS pass, not the branch point — a story that adds a feature adds lines, and judging the pass by the whole branch diff condemns it in advance. That number is then invisible to everyone but you, so make it recomputable: commit the story's work, then commit the pass separately. Measured: an author counting honestly from its own uncommitted draft and a reviewer counting from the branch point produced a blocking CHANGES-REQUESTED and an arbitration, with neither agent wrong on its own terms. If you cannot delete anything, say so and stop — that is a complete and respectable outcome.
The order, and why it is an order
- Pin the behaviour BEFORE you touch anything. Run the relevant tests and keep the output. A green run after an edit proves nothing on its own: you do not know it was green before. If no test covers the area, write the narrowest one that does, and it must go red when you break the behaviour on purpose — otherwise it is not a net, it is decoration.
- One smell class per pass, verified between passes. Dead code, then duplication, then naming and error handling, then tests. Bundling them produces a diff nobody can review and a bisect that cannot isolate the change that broke something.
- Re-read the diff as the reviewer will. Anything in it that is not the smell you set out to remove comes back out.
What counts as slop
- Dead code — unreachable branches, unused exports, stale flags, debugging left in place, backwards-compatibility shims for something nothing calls. Verify it is unused before deleting; "I could not find a caller" and "there is no caller" are different statements and only one of them is a fact.
- Duplication that has diverged. Two copies that agree are a cost; two copies that quietly disagree are a defect.
- Pass-through wrappers and single-use helpers. Indirection that costs a jump and buys nothing. Three similar lines beat a premature abstraction — the abstraction commits you to a shape you have seen once.
- Defensive handling for states that cannot occur on a trusted internal
path. It reads as care and works as camouflage: the
catchthat cannot fire today is the one that swallows the real error next year. - Casts that exist to silence a type error rather than to state a truth the compiler cannot see.
- Work nobody asked for — an improvement, a rename, a docstring, a reformat on code the story never touched. It inflates the diff, hides the real change, and puts an unreviewed decision in someone else's file.
- Comments restating the line below them. Keep the comment that explains WHY, delete the one that narrates WHAT.
What is not slop, and stays
Behaviour. A guard on genuinely untrusted input. A comment carrying a reason. An abstraction with three real callers. A test that looks redundant but pins a past bug — check the history before deleting a test; the second time a bug is fixed, the deleted test is the reason.
Keep behaviour unchanged unless you are fixing a defect you can name. If the
pass uncovers a real bug, that is a finding for the report and usually a
separate change, not something to quietly correct inside a cleanup. The same
goes for a slow data path — a query in a loop, awaits that could run together:
that is code-review's data-access dimension, its fix usually adds lines, and
it belongs in the self-review before this pass, not inside it.
Skill-file mode
The same instinct, applied to a SKILL.md. Run it before promoting a skill:
- Stale lines — guidance written for a version of the skill that no longer exists. Cut it.
- Bloat — detail that belongs in the caller, in a reference, or nowhere.
- Dead sentences — a line that changes nothing if deleted.
- Duplication — the same rule stated in two files, which will drift.
- Premature stop — the method ends before the work does: it asks the question but never records the answer, cleans but never verifies.
- Weak anchor — no single idea the skill turns on.
- A missing assumption — the skill does not say what has to be true for it
to apply. See
skill-writing.
Prose mode
For a README, a report, an error message or a commit body:
- Lead with the outcome. The first sentence is the line a reader would ask for if they said "just tell me".
- Name the number, the file, the command. "Faster" is weaker than "40s to 9s". "Fixed the config bug" is weaker than the path.
- Cut the filler — just, simply, basically, it is worth noting. If a sentence changes nothing when removed, remove it.
- No dead-end error messages. Every failure names what happened and what to do next.
- Do not achieve brevity by compressing sentences into fragments. Achieve it by dropping what the reader does not need.
The report
Files touched, what class of slop came out of each, the test output from before and after, the two line counts with the commit range a reviewer can recompute them from, and one line on what you deliberately left. The last part matters: a cleanup that silently declined to touch the worst file in the area looks identical to one that found nothing there.
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.

