Essay 5 min read

I had 290 agent skills. I use six.

Global skills are habits. Everything else is project context.

Table of contents

Today I asked my coding agent a simple question:

Help me triage all my global agent skills. Firstly - list all of them on my machine

The answer was 290 skills.

164 of them came from the PostHog plugin. Ten from Stripe. Fourteen from Cloudflare. Matt Pocock’s skill set was installed twice: once by hand in ~/.agents/skills, and once as a Claude Code plugin. All of it loaded globally, in every session, in every project. Including projects with no PostHog, no Stripe and no Cloudflare in sight.

None of it was a deliberate choice for the project I was working on. It just piled up.

Global is for habits, not for context

Here’s the rule I ended up with.

A global skill is something I use no matter which project I’m in. A way of working. It doesn’t care whether the repo is a Swift app or a blog.

Everything tied to a specific tool, service or workflow belongs to the project. PostHog skills belong in the repo that uses PostHog. Not in my home directory, where they sit in the context of every agent I start.

I already have a few custom skills that live this way. A newsletter creator for my side project. A release helper for my iOS app. They are useful in exactly one repo, so that’s where they live. Nobody else would get any value from their contents, and neither would my other projects.

The models don’t need a 290-skill crutch

A big skill library made more sense when models needed help with everything. Today’s models are good enough that most of those skills restate things the model already does well.

Every installed skill still costs something. Its name and description load into context at the start of a session, so the agent can decide when to use it. Codex, for example, spends at most 2% of the context window on that list by default, and starts shortening descriptions or dropping skills when you go over. More skills also means more chances for the agent to pick the wrong one.

So I cleared everything. Second prompt:

clear all global skills from my machine. i want to have a clear setup. don’t touch local project’s skills

The agent moved the folders to the Trash and told me I was done. I wasn’t. It had missed three Claude Code plugins, including PostHog with its 164 skills and the duplicate copy of Matt’s set. It also got wrong which folders one of my harnesses reads. Its first summary was wrong; only a second check found what was left.

That’s the boring lesson of this whole exercise: ask the agent to verify, then verify the agent.

One folder, every harness

I use Claude Code, Codex and OMP. I don’t want three copies of every skill. Third prompt:

Find out using latest web sources how to install skills that would work in Codex, Claude Code, OMP etc.

The good news is that skills are an open standard now (agentskills.io). A skill is a folder with a SKILL.md file: a name, a description, and instructions. The same folder works everywhere. The only difference is where each tool looks:

ToolGlobal folder it reads
Codex~/.agents/skills
OMP~/.agents/skills
Claude Code~/.claude/skills

So the setup is: real folders in ~/.agents/skills, and one symlink per skill in ~/.claude/skills for Claude Code.

mkdir -p ~/.agents/skills ~/.claude/skills
cp -R path/to/repo/skills/my-skill ~/.agents/skills/
ln -s ~/.agents/skills/my-skill ~/.claude/skills/my-skill

Two details worth knowing:

  • Link each skill, not the whole folder. Claude Code keeps its own folders inside ~/.claude/skills, like synced/ for skills downloaded from your claude.ai account.
  • Turn off claude.ai sync if you want a clean setup. Otherwise Claude Code quietly brings some skills back, like pdf and xlsx. The setting is "syncClaudeAiSkills": false in ~/.claude/settings.json.

If you prefer a tool for this, npx skills add owner/repo -g from vercel-labs/skills does the copying and linking for you.

My baseline

Last prompt:

now install latest versions global skills (so i can use them in all harnesses)

My baseline has been the same for a long time:

  • Matt Pocock’s skills. The ones I actually use almost every day: grill-me to stress-test a plan, to-spec and to-tickets to turn it into work, and implement-spec to build it.
  • diagram-design by Cathryn Lavery, for diagrams.
  • show-me from HumanLayer, which makes the agent explain things with trees, call stacks and diagrams instead of walls of prose.

That’s around 40 skills, and honestly I use six of them.

I also installed pstack today to try it. That’s 61 more skills, taking me to 101. Yes, that goes against everything I just wrote. That’s exactly why it’s temporary. Two of its skills, tdd and teach, even clash with Matt’s by name, so I had to rename pstack’s copies.

I’ll use it for a while on real work and write a follow-up comparing it with Matt’s set. Most of it will probably go.

Keep the global set small enough that you can name every skill in it. Everything else goes in the project.

Get the next one by email

I’ll send you new articles, plus the interesting links, sources, working notes, and behind-the-scenes details that shaped them.

Free. Unsubscribe anytime. Powered by Substack.