DEV Community

Alfred Emmanuel
Alfred Emmanuel

Posted on

I audited a month of my AI coding setup — 87% of it was dead weight

Like most people using AI coding tools daily, I'd spent months installing things into Claude Code: skills, subagents, MCP servers, hooks, plugins. Every one of them felt essential at install time. None of them ever got reviewed again.

Then I mapped it.

Agent Atlas map of my real setup — 103 capabilities clustered by purpose, sized by usage, grey = never fired

That's my actual setup: 103 installed capabilities, and 90 of them never fired once in the last 30 days. The grey swarm around the ENGINEERING hub is months of "this looks useful" with zero follow-through.

The three questions nobody can answer about their own setup

  1. What is my setup actually tuned for? More engineering than writing? Any research capability at all?
  2. What am I paying for but never using? Installed skills and MCP servers load context into every session whether you use them or not.
  3. Where are the overlaps and gaps? Two things doing the same job; whole capability areas with nothing.

You can't answer these by reading config files, because half the answer lives somewhere else: your session transcripts — what actually fired.

So I built Agent Atlas

One command:

npx agent-atlas-cli
Enter fullscreen mode Exit fullscreen mode

It runs a four-stage pipeline, entirely on your machine: the scanner inventories ~/.claude (skills, subagents, MCP servers, hooks — read-only); the usage miner streams your local session transcripts and counts what fired in the last 30 days; the classifier scores every item across five capability axes — engineering, writing, research, design, ops — with one cheap Haiku call (or a fully-offline keyword mode if you don't set an API key); and the renderer writes a single self-contained HTML file: a force-directed map where node size = usage and grey = never used, a "tuning bar" summarizing your whole stack, and a diagnostics panel.

What it found on my machine

Dead weight with a price tag. A skill I'd installed and forgotten was loading ~150 tokens of description into the context of every session. Across 72 sessions in a month: ~11,000 tokens spent on something I never used once. The diagnostics panel lists every case like this, worst first. (The token figures are deliberately labeled as lower bounds — real MCP tool schemas can't be measured without connecting to the servers, and I'd rather under-claim.)

25 pairs of literally identical skills. The same plugin was cached under two different marketplace names, so every one of its skills existed twice. Invisible in any config file; obvious on a map when two nodes claim the same job and one has 31 uses while its twin has zero.

The installed-vs-used gap. My tuning bar says I installed a 43%-engineering stack but use a 36%-engineering one — the toggle between "installed" and "used" turns out to be the most honest single view of the whole thing.

The exported share card — headline stats, tuning bar, map snapshot

The part I care most about: privacy

A tool that reads your AI config and transcripts had better be paranoid about where that data goes:

  • Read-only, local-only. No server, no accounts, no telemetry. The output is one offline HTML file.
  • The optional classification call sends item names and descriptions only — never transcripts, never code. Hook commands never leave the machine at all.
  • --rough mode skips the API entirely: nothing leaves your machine, period.
  • It's MIT-licensed and small enough to read in an afternoon: https://github.com/Pycomet/agent-atlas

How it was built (briefly)

Spec first, then four strict milestones — scanner+miner, classifier, renderer, diagnostics — each test-driven against a fake ~/.claude fixture tree, each verified against my real machine before merging. Before publishing I had the implementation adversarially reviewed; all six findings were confirmed and fixed (one of them was the plugin-cache bug that would have produced false dead-weight claims — the exact failure mode that kills trust in a tool like this). Built with Claude Code, npm-published via OIDC trusted publishing.

Try it on your own setup

npx agent-atlas-cli          # scan, classify, open the map
npx agent-atlas-cli --rough  # fully offline, no API key needed
Enter fullscreen mode Exit fullscreen mode

Works with Claude Code today. The scanner sits behind a small adapter interface, so Codex CLI / Cursor / Gemini CLI adapters are the obvious next step — contributions very welcome.

I'd genuinely like to see what your map looks like — there's a "Share card" button in the page for exactly that.

Top comments (0)