agentleFS
jjanczurjjanczur/tyran/skills/deslop/SKILL.md

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

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.
  • JwuthriSkill

    simple-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

  • ElyzeSolutionsSkill

    control-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

  • JwuthriSkill

    openseo-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

  • learnerLjSkill

    verify-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

  • ElyzeSolutionsSkill

    control-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

  • ten9876Skill

    papercuts

    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

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
  1. Distinctive:

    Pin the behaviour BEFORE you touch anything: Run the relevant tests and keep the output.

    line 24
  2. Distinctive:

    Verify it is unused before deleting.

    line 40
  3. Distinctive:

    Comments restating the line below them: Keep the comment that explains WHY, delete the one that narrates WHAT.

    line 55
  4. Distinctive:

    No dead-end error messages: Every failure names what happened and what to do next.

    line 97
  5. Distinctive:

    Do not achieve brevity by compressing sentences into fragments.

    line 99

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. 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.
  2. 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.
  3. 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 catch that 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.