Build1 distinct publisher2 min readPublished
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

Compiled by The EngineerSomething wrong?How this is made
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 [1] gives each about 71 characters, names included [4], while his descriptions average around 307 [3]. The measured listing ran 4.3 times over [2]. The per-skill cap makes the same point from the other end: five skills written up to the 1536-character maximum [8] consume 7,680 characters, about 96 percent of a 200K window's allowance [5].
That is why trimming alone does not clear it. Rewriting every description to under 250 characters [17] still leaves 26,342 characters of listing, roughly 3.3 times the default [7]. The escape hatch is `SLASH_COMMAND_TOOL_CHAR_BUDGET`, which replaces the fraction calculation outright [9], and the author set it to 45,000 across two config files [15].
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 [8]. 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 [9]. 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 [15]. 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 [4].
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 [18]. 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 [21]. 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 [19]. 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 [20].
Ranked by verification strength, evidence, and original report placement.
The listing budget is 1 percent of the context window, controlled by a setting called skillListingBudgetFraction with a default of 0.01.
A 200K-token window yields a budget of approximately 8,000 characters; a 1M-token window yields approximately 40,000.
The environment variable SLASH_COMMAND_TOOL_CHAR_BUDGET overrides the whole budget calculation.
His first approach was deleting the redundant-feeling parts, which he abandoned because he had no way to prove to himself that he had not cut something load-bearing.
His trim targets were the same sentence written twice in two languages, enumerations trimmed down to three items, and restatements of the SKILL.md body; trigger words such as identifiers and symptom phrases were kept.
In Claude Code, each skill is a folder containing a SKILL.md file whose frontmatter carries a name and a description field.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 28, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
A Retention Policy for Agent Memory: Flag Unused Skills at 30 Days, Archive at 901 distinct publisher
build
Agent Memory Is Two Systems, Not One Dial With Scratch On One End1 distinct publisher
build
A SKILL.md layer quietly rerouted an agent off the MCP tools it was given1 distinct publisher
build
Instrumentation Is the Whole Gap Between an Agent and an Agent You Can Run1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
First-hand and checked, but only by its author
The mechanism claims are unusually well grounded for a blog post: setting names and defaults read out of a decompiled binary rather than repeated from other posts, and the fix confirmed by making a headless sub-session quote a previously invisible description word for word. What holds the score down is that one person did all of it. No build number is given for the binary, the maker has not confirmed the eviction order beyond a quoted documentation phrase, and the character counts come from a single machine.
A sample of one, described in detail
Concrete usage exists and is quantified — 112 installed skills, about 70 stripped to names, an override set to 45000, a refill two weeks later — but it is all one developer's laptop. Nothing in this reporting shows another install hitting the ceiling, a team encountering it, or the tool's maker responding. The generalisation invited in the opening line, that some of your skills may not be loaded either, is untested here.
Claimed less than it proved
The restraint is the story's signature. The author had the headline available — cut descriptions 40 percent and triggering improved — and refused it, saying two cases either way is noise at his sample size. He also volunteers that his own earlier zero-usage post was contaminated, which costs him credit rather than earning it. The unsupported reach is narrow: an opening invitation to assume readers' installs are similarly affected, on evidence from one machine.
Audience-building, no stake in the outcome
The visible interest is attention: a numbers-in-the-title dev.to post that cites the author's own earlier writing on a related blind spot and positions this as the second layer of the same problem. That rewards a dramatic finding. Set against it, he sells nothing, represents no vendor, praises no product, and the piece's own arithmetic argues for keeping tools rather than deleting them — a conclusion with no commercial upside attached. No sponsorship or affiliation is disclosed anywhere in this reporting.
Mechanism believable, breadth unknown
We would bet on the failure mode being real: it is internally consistent, sourced to the binary rather than to rumour, and confirmed by a test whose result would be hard to fake accidentally. We would not yet bet on the exact defaults surviving the next release, nor on the numbers holding outside this one installation, and the trim experiment is a judgement call presented as a result. One publisher, one participant, no corroboration.