claude-code

Skill Atlas cuts Claude Code's skill overhead from 2,544 tokens to 338

Claude News

claude-code

Skill Atlas, a Claude Code plugin published on Github, cuts the per-session skill overhead of a 53-skill collection from 2,544 tokens to 338, a drop of 86.7%, with six skills left enabled. It does that by adding a third state between enabled and disabled: dormant skills stay out of context but remain findable on demand. The figures are measured rather than estimated, according to the project.

At a glance

  • Claude Code injects every enabled skill's description into each session at roughly 48 tokens apiece, so a large library spends thousands of tokens constantly and near-duplicate skills compete for the model's attention.
  • A searchable skill costs nothing until it is requested, and the entire dormant tier is advertised by a single line of about 50 tokens at session start.
  • Lookups are not free but deferred: a search reads a 1,600-token index plus one 600-token catalog shard, and the search skill itself costs 400, about 2,400 tokens per query.

Why it matters Skill libraries have grown faster than the context budget, and the standard choice has been binary: pay for a skill in every session or lose access to it. A dormant tier appears to change the shape of that trade, converting a fixed per-session cost into an occasional lookup fee. The arbitrage holds only where searches are infrequent, and the same graph tooling doubles as a way to see which skills are actually registered.

A search opens the index and one shard, leaving about 10,000 tokens of the other 13 unread

The search path reads two files rather than the whole catalog. The index runs 14 lines, one per category, with name, count, coverage and member tokens, and costs about 1,600 tokens, while a single shard such as version-control.md adds roughly 600. The other 13 shards, about 10,000 tokens in total, are never opened.

A second shard is opened only when a matched entry names a category that has not been read, and never a third. Category counts overlap on purpose, so the pick has to land on a right bucket rather than the right one, and disabled skills are excluded when shards are written, so a disabled plugin cannot return through a side door. The chosen skill is named in one line before the work continues.

The first run freezes a taxonomy of 8 to 12 categories

Categorization happens once. The first run drafts 8 to 12 categories named for user-intent task shapes rather than products, then freezes the taxonomy, and later runs only file new skills and re-confirm entries whose description changed, because each assignment carries a hash of the description it was made against.

Setup runs through /skill-atlas, which builds the graph, categorizes what is new and renders atlas.html. /skill-atlas:edit-searchable moves plugins between tiers interactively, and /skill-atlas:skill-search runs the lookup, though the model normally calls it on its own before a nontrivial task. A SessionStart hook keeps the data current afterwards, and the rendered graph opens from ./.claude/skill-atlas/atlas.html in a browser.

Loose mention matching produced 91 edges on a 41-skill collection

Skills are nodes in the graph, and the edges are references, from a skill to its own bundled files, and mentions, where one skill names another. A references edge whose file is missing draws red, and a mention pointing at a disabled, unregistered or absent target is flagged dangling.

Mention matching is strict: only backticked names, skills/<name> paths or unambiguous hyphenated names count, with code fences stripped first. Loose matching produced 91 edges on a 41-skill collection, almost all of them ordinary English words. Discovery is manifest-driven, reading installed_plugins.json, then each plugin.json, then settings, and counting every directory with a SKILL.md over-counts by about 60%.

The Makefile builds the graph and catalog, renders atlas.html, and runs a unit suite against fixtures that never touches the real ~/.claude, while make check exits 1 on any broken reference or dangling mention. The atlas is self-contained and loads from file:// with no network requests, and duplicate names and orphans are flagged too.

What's next Installation runs through the plugin marketplace with claude plugin marketplace add danielLublinsky/Skill_Atlas, followed by claude plugin install skill-atlas@skill-atlas, and claude plugin update skill-atlas@skill-atlas for later versions. The project needs Python 3 and no dependencies, and ships under Apache-2.0, with D3 vendored under ISC. Documentation covers nine numbered components plus DESIGN.md, which records both phases of the design. Further development plans are not stated in the documentation.

Comments

No comments yet. Be the first.

Join the conversation

Sign in with Google to leave a comment. Your name and avatar come from your Google profile, and the comment appears after moderation.

We only use your name and avatar from Google. We never store your email address.