
TL;DR
Two quality-of-life tools we built this week for Claude Code daily drivers: a SKILL.md linter and a VS Code status bar that shows live LLM spend.
The big AI tooling debates get all the airtime. Which model. Which harness. Which framework. Meanwhile the thing that actually slows you down on a Tuesday afternoon is something dumb: a SKILL.md file that quietly bloated past the token budget and stopped loading, or a forgotten background agent that has been burning OpenAI credits since lunch.
These are not glamorous problems. They are the small frictions that compound across a week of agent work, and they tend to be invisible until they hurt.
This week we shipped two tools to fix exactly those frictions. Both are tiny. Both live in the part of the workflow nobody writes blog posts about. We are writing one anyway, because if you run Claude Code every day you probably want them too.
The pairing is intentional. SkillForge CI keeps your skills repo from rotting. Cost Tape keeps your spend visible while you ship. Together they cover two of the easiest ways to lose a day to invisible drift.
If you have written more than five Claude Code skills, you have probably hit at least one of these:
./scripts/foo.sh reference in the body pointed at a file that got renamed three commits ago.name: in frontmatter, so the registry got confused.Skills fail silently. There is no compiler. The agent just quietly stops loading the file and you do not notice until you wonder why a behavior you wired up last month is gone.
SkillForge CI is a pure linter for SKILL.md files. It checks the things that bite you in production:
namespace:name form).It is a single Node script with one runtime dependency (gray-matter) and no I/O side effects beyond reading. The whole thing is about 130 lines in lib/lint.js plus a 40-line CLI wrapper in bin/skillforge.js, which means you can read it end to end before deciding whether to trust it in CI. We deliberately kept it boring. Linters that try to do too much become impossible to extend, and skills move fast enough that the rules are going to keep changing.
The defaults are tuned to where skills actually start failing in practice: a 50 KB hard cap (well above any real skill we have written), a 2,000 token soft warning (where Claude Code starts deprioritizing auto-load), and a 20-character minimum description (anything shorter and the skill almost never matches user intent).
npx skillforge-ci-cli ~/.claude/skills
Or wire it into a repo:
npm install -D skillforge-ci-cli
npx skillforge .Output looks like this:
skillforge: scanned 42 SKILL.md file(s) under ~/.claude/skills
ok ~/.claude/skills/commands/qa/SKILL.md (~480 tok)
warn ~/.claude/skills/commands/handoff/SKILL.md (~2380 tok)
warn: Estimated 2380 tokens (>2000). Consider splitting or trimming.
FAIL ~/.claude/skills/commands/old-thing/SKILL.md (~120 tok)
error: Frontmatter must include a string `description`.
warn: Broken local reference: ./scripts/run.sh
1 error(s), 2 warning(s)
Exit code is non-zero on errors, so it drops straight into a GitHub Action. There is also a --json flag for piping into a PR-comment script.
This is v0.1. The token estimate is a 4-chars-per-token approximation, not a real tokenizer. There is no autofix. The GitHub Action wrapper is in dist/ but Org Actions billing is currently blocking the public release on our side, so the action runs red regardless of code health for the moment. CLI use is unaffected.
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools - delivered free every week.
If you run more than one Claude Code session, plus a Codex tab, plus a background agent or two, you lose track. The first time you really notice is a billing email. We have written about the $400 overnight bill before. The fix is not to stop running agents. The fix is to make the cost visible the way git status is visible: always there, in your peripheral vision, ambient.
Cost Tape is a tiny VS Code extension that puts your live LLM API spend in the status bar:
$3.60 today / $96.65 mtd
Click it for a per-provider breakdown. That is the whole product.
It polls the official cost endpoints every five minutes (configurable, minimum 60 seconds) and caches results for 60 seconds in memory so it does not hammer anything:
GET /v1/organizations/cost_report (admin key, anthropic-version: 2023-06-01).GET /v1/organization/costs (admin key bearer auth).You bring your own admin keys. Workspace or per-call API keys do not have access to usage endpoints. You will need:
sk-ant-admin-...).sk-admin-...).The .vsix lives in the repo. Install with:
code --install-extension cost-tape.vsix
Then in VS Code settings:
{
"costTape.anthropicAdminKey": "sk-ant-admin-...",
"costTape.openaiAdminKey": "sk-admin-...",
"costTape.providers": ["anthropic", "openai"],
"costTape.pollIntervalSeconds": 300,
"costTape.hideWhenZero": false
}
Either key alone is fine. Cost Tape only polls providers that are configured.
Two commands ship with it:
Cost Tape: Refresh Now clears the cache and re-polls.Cost Tape: Show Details opens a modal with the per-provider split.Status-bar screenshots: TODO once we have a few weeks of real data on the tape.
v0.1 is the status-bar tape and the modal. That is it.
The biggest known limitation: Anthropic does not expose a public per-API-key usage endpoint, so Cost Tape reports org-wide Anthropic spend. If you run multiple projects against one org, you cannot split them yet. We are watching the admin API changelog and will wire per-key attribution the moment it ships.
Coming later: a webview dashboard with charts, multi-account support, and shareable spend snapshots. Today it is a tape. The tape is enough.
Cost Tape only talks to api.anthropic.com and api.openai.com. Your admin keys are stored in VS Code settings (machine-scoped) and never leave your machine. No telemetry, no analytics, no third-party calls. The whole extension is roughly 800 lines of TypeScript split between two provider files, lib/providers/anthropic.ts and lib/providers/openai.ts, and a thin status-bar renderer. If you want to read it before installing, the source is the docs.
Here is how these two land in a real workday.
You open VS Code. Cost Tape sits in the bottom right and tells you yesterday's runaway agent cost you nine bucks, not ninety. Good. You open a skills repo, run npx skillforge . from the integrated terminal, and find one warning on a skill you edited last week. Fix it in two minutes. Push. Move on.
That is the entire pitch. Neither tool is exciting. Neither tool will be the headline of a launch week. But both replace a recurring small failure with a thirty-second check, and over a month that adds up to real time.
If you are interested in the rest of the small-tools sweep we shipped this week, the other five are in our ten tools for agent infrastructure announcement and live tutorials. And if you are still picking your AI coding stack, the compare page has the side-by-side.
The point of all of this is not the tools individually. The point is that developer hygiene is mostly small tools used consistently. Lint your skills. Watch your spend. Then go back to building the interesting thing.
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Automatic reuse of cached context for substantial cost reduction.
Claude Code2.5x faster Opus at a higher token cost (research preview).
Claude CodeReusable markdown files with instructions and workflows.
Claude Code
A curated directory of 312 Claude Code skills, plus Pro tools for authors who want analytics, version pinning, and a rea...

Agent runs are opaque. TraceTrail turns a Claude Code JSONL into a public share link with a stepped timeline of messages...

Claude Code hooks are powerful but discovery and install is a manual JSON-paste exercise. Hookyard is a directory plus C...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.