Skip to content

Build Not yet confirmed elsewhere1 publisher 2 min read Published

Overflowing Claude Code's skill listing strips the descriptions the model triggers on

One developer found roughly 70 of his 112 installed skills reduced to bare names in the system prompt, and nothing in the tool had flagged it, because the listing budget drops descriptions without erroring.

The Engineer · Build desk

Send a correction

Illustration accompanying Overflowing Claude Code's skill listing strips the descriptions the model triggers on
Generated illustration

What happened

  • Claude Code packs every skill's name and description into the system prompt at session start, and that listing is the model's only inventory of what it can reach for.
  • Past the budget the description is evicted while the name is kept, so the skill still answers to /skill-name but can no longer surface on its own.
  • The author says he decompiled the local binary and found the budget set to 1 percent of the context window by skillListingBudgetFraction, alongside a 1536-character per-skill cap.
  • His own toolbox measured 89 project skills at about 22,700 characters plus 23 global ones at 11,700, roughly 34,400 against a default budget of 8,000.

Why it matters

  • What it limits constraint Eviction takes the least-used skills first, so a skill that never fires loses the description that would let it fire, and it stays at the front of the queue the next time the listing overflows.
  • Who has to decide decision Pruning on invocation counts stops being defensible until the budget is fixed: 79 of his 89 skills had never been explicitly invoked, a number that mixes dead weight with tools the model was never told about.
  • What it costs cost The override is upkeep rather than a one-time config edit, since two weeks after he raised it the listing had refilled and eight more skills lost their descriptions.
  • What doesn't add up contradiction These defaults have one witness, the author himself, who says the community write-ups he checked were second-hand and wrong, so anyone relying on the figures is relying on his read of the binary.

Dividing the budget by the toolbox shows why the default is not a ceiling you can just nudge. Eight thousand characters spread across 112 skills [21] gives each about 71 characters, names included [24], while his descriptions average around 307 [23]. The measured listing ran 4.3 times over [22]. The per-skill cap makes the same point from the other end: five skills written up to the 1536-character maximum [11] consume 7,680 characters, about 96 percent of a 200K window's allowance [25].

That is why trimming alone does not clear it. Rewriting every description to under 250 characters [19] still leaves 26,342 characters of listing, roughly 3.3 times the default [27]. The escape hatch is `SLASH_COMMAND_TOOL_CHAR_BUDGET`, which replaces the fraction calculation outright [3], and the author set it to 45,000 across two config files [17].

At that point the listing becomes a standing cost. Work backwards from the published equivalence, 8,000 characters for 1 percent of a 200K-token window, and the implied conversion is about four characters per token [28]. A 45,000-character listing is therefore near 11,250 tokens, roughly 5.6 percent of a 200K context, sitting in the system prompt of every session [29]. Trimming is what keeps that figure from climbing.

The verification step is the part I would copy. He opened a headless sub-session and forced it to quote, verbatim, the description of a skill that had previously been name-only, then compared the words to the file [17]. That separates a config value you edited from text the model can actually see. A skill that can only be reached by typing its name functions as a slash command with a folder around it [9].

Which leaves the A/B. He cut 10,400 characters and reports no systematic decline in trigger rate, while explicitly refusing to claim an improvement, because two cases either way is noise at his sample size [31]. Read it as a result about his 41 tools. For the number to transfer, your descriptions would need a comparable share of what he cut: the same sentence written twice in two languages, long enumerations, and restatements of the SKILL.md body [5]. Your invocations would also need to hinge on the identifiers and symptom phrases he kept, since the description is the entire basis for the model's decision to reach for a skill, and a deleted trigger word simply stops working, with no error and no warning [20]. His first pass, cutting whatever felt redundant, was abandoned for the honest reason: he had no way to prove he had not removed something load-bearing [4].

What to watch

  • Whether the defaults skillListingBudgetFraction 0.01 and skillListingMaxDescChars 1536 turn up in published documentation, which would move this off a single reading of the binary.
  • Whether the CLI starts reporting how many skill descriptions it evicted at session start, since the eviction currently produces no output.
  • A repeat A/B with per-case counts published, which would show whether the trimmed descriptions cost any triggers at all.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence52
Adoption14
Hype gap−12
Incentives34
Confidence46
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    The listing budget is 1 percent of the context window, controlled by a setting called skillListingBudgetFraction with a default of 0.01.

  2. [2]

    A 200K-token window yields a budget of approximately 8,000 characters; a 1M-token window yields approximately 40,000.

  3. [3]

    The environment variable SLASH_COMMAND_TOOL_CHAR_BUDGET overrides the whole budget calculation.

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

1 independent publisher whose own reporting we read for this story.

  1. dev.to

    1 article · August 28, 2026

    I cut 41 AI tools' self-descriptions in half, then A/B tested that trigger rate didn't drop

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Entities

Loading related stories