agentleFS
Totes-MickGOATsTotes-MickGOATs/opus-pocus/skills/descriptio-reducio/SKILL.md

descriptio-reducio

Skill9 starsChanged 3 months agoMITView on GitHub

Audit every skill and agent description against the router's truncation cliff — the router selects on the description alone, listings truncate long descriptions (~1,500 chars in some harnesses), and routing-critical clauses written last silently vanish. Use for "the wrong agent keeps getting picked", "my skill never triggers", "NOT-for clauses aren't working", "right-size my descriptions", or as part of /opus-pocus. Reports per-description length, what the router actually sees, and a reordered/trimmed rewrite. NOT for skill/agent BODY content — the description field only.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every description: in .claude/skills/*/SKILL.md, .claude/agents/*.md, plugin skills and agents, and any harness config that sets a listing …

    line 19

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

✨ Descriptio Reducio

"The router stops reading at 1,535 characters. Your masterpiece dies at 1,536."

Two facts about routing, both easy to forget: the router reads only the description: frontmatter, never the body — and listings truncate. In harnesses with a listing cap (around 1,500 characters in one measured setting; measure yours, the number is not a constant), everything past the cliff is invisible. Authors write descriptions front-loaded with capabilities and append the disambiguation ("NOT for: X → other-agent") last — exactly the part that falls off.

What to scan

Every description: in .claude/skills/*/SKILL.md, .claude/agents/*.md, plugin skills and agents, and any harness config that sets a listing cap.

Anti-patterns to find

  1. Past the cliff. Description length exceeds the listing cap.

    Measure the cap from inside a session, not from this file. The listing is injected into the model's system prompt and never displayed, so "render the listing" is not something a user can do — but the agent running this pass can read its own listing. Procedure:

    a. Find the longest description in the repo: for f in .claude/skills/*/SKILL.md .claude/agents/*.md; do awk '/^description:/{print length($0)-13, FILENAME}' "$f"; done | sort -rn | head b. Ask the running agent to quote that description back verbatim from its own listing, and diff it against the file. Where the quote stops is the cap. c. If nothing in the repo is long enough to truncate, the cap is unmeasurable here: this class has no instances, and the pass grades ? (could not verify), not O. Do not substitute a number measured on another harness.

  2. NOT-for clauses last. Disambiguation after the cliff — the router sees only the capabilities, so near-miss tasks route wrong. This is the highest-impact class: a truncated NOT-for is a routing defect, not a style issue.
  3. Body-only disambiguation. The routing rule lives in the agent's body ("do not use this for X") where no router ever reads it.
  4. Keyword stuffing. Fifty comma-separated trigger phrases; the description becomes noise and matches everything weakly.
  5. Twin descriptions. Two skills/agents whose descriptions overlap enough that routing between them is a coin flip — the distinction exists only in the bodies.
  6. Description restating the body. Procedure detail in the description (steps, flags, internal paths) that costs length without aiding routing.

Fix prescriptions

Finding classFix
Past the cliffTrim to fit with margin (~90% of cap). Cut procedure detail first, then example lists
NOT-for lastReorder: one-line capability → WHEN-to-use triggers → NOT-for clauses — all inside the first ~800 chars. Detail after
Body-only disambiguationMove the routing-relevant sentence into the description; leave the body copy
Keyword stuffingKeep the 5–8 phrases users actually say; delete the tail
TwinsPut the distinguishing clause in BOTH descriptions, each pointing at the other by name
Body restatedDelete from the description; the body is loaded after routing succeeds

Ordering template

<What it does, one line>. Use for <top trigger phrases>. <Key constraint/behavior>.
NOT for: <adjacent-task> (→ <other-skill>), <adjacent-task> (→ <other-skill>).

Bounds

  • If legilimens-anthropica ran this session, prefer its measured numbers over the ones in this file. This file is a snapshot; that pass is the current reading.
  • Scope: the description: frontmatter of skills and agents, plus any harness config that sets a listing cap. Not skill bodies, except to note where a routing clause is stranded in one.
  • Cap: measure every description (that is cheap and complete); cap the rewrites proposed at 15, highest routing impact first.
  • Done when every description has been measured once against the cliff — or when the cap has been established as unmeasurable here, which is a ?, not a pass.
  • Quote once, at read time; mark anything you cannot re-confirm UNVERIFIED rather than re-reading to check yourself.
  • See skills/opus-pocus/references/casting-safety.md for the full rules.

Report format

Table: name · length · over-cliff? (by how much) · what falls off · rewrite proposed? Then each rewrite in full. Lead with the count of routing defects (class 1–3) vs style issues (4–6). SCANNED NOTHING if no skills or agents exist, grading N/A.

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.