The Skills Conundrum

// Written by // // Read it in about 12 minutes // RE: AI

This post is brought to you by Clerk. Add secure, native iOS authentication in minutes with Clerk’s pre-built SwiftUI components.

Skills are a paramount puzzle piece to my agent usage. The rub? They are too easily fragmented:

  1. You could be using different agents. Claude, annoyingly, looks at its own spot for skills. Everything else uses an open standard, ~/.agents/skills.
  2. Then, there’s different machines you could be running. Symlinking is great, but run npx skills update on your MacBook at home and then your MacBook on the go is now stale.
  3. Each harness seems to want to funnel you into different paths for installing skills.

Is there an open standard to solve? Surely, if there is, it would have to be cloud based. For example, at Superwall, we simply have GitHub repo for proprietary, shared skills. So, I’ve adopted that same pattern for two things:

  1. The skills I’ve personally made, and just as important…
  2. Skills I’ve installed via Vercel’s skills.sh.

The whole process hinges on three skills: push-my-skills, pull-my-skills, and sync-npx-skills. So, uhhh, naturally - I made a Windows XP recreation to show you how the process works. You got two computers, each needing to be current on 3rd party skills from skills.sh, and my own personal ones. Click on any of the skill buttons below to see how they operate:

Skills Sync Center

My Network Places Choose a job below to watch it travel.
At home

MacBook A

My source filespersonal-skills/
Agent copiesClaude · Codex · more
npx lockWhat is installed here
The handoff

GitHub

Skills I madeDreamingInBinary/skills
Third-party manifestDesired state + baselines
On the go

MacBook B

My source filespersonal-skills/
Agent copiesClaude · Codex · more
npx lockWhat is installed here
THE WHOLE IDEA

Two kinds of skills. One cloud handoff.

Your skills no longer depend on whichever Mac or agent you happened to use last.

  1. 1

    Skills you authorPush the real files up; pull them down elsewhere.

  2. 2

    Skills you installPublish the list; reconcile each Mac against it.

  3. Installed folders are copiesGitHub is the durable source of truth.

Ready. Pick a job to run.

Here’s the technical breakdown.

For the skills that I’ve made… …one GitHub repo is the source of truth; so everything inside ~/.agents/skills is merely an installed copy. On one Mac, push-my-skills refreshes those copies, commits my changes and pushes them to GitHub in one shot. On another, pull-my-skills pulls that repo and reinstalls the same skills for every agent. Now, my personal skills are source controlled and current across machines.

But, that’s just half of it. Third-party skills actually use a shared manifest instead…

…so sync-npx-skills compares that manifest against the Mac’s last sync and its current npx lock file, determining whether a difference was made here, or on another machine. Local additions and removals are published; which means remote changes are applied so each Mac eventually converges on the same set of skills without manually copying folders around.

At this point, I have to ask: Did I solve the problem? Absolutely. Did I engineer myself into a small pyrrhic victory along the way? Also absolutely maybe yes! My hope is that an open standard arrives tomorrow, and makes all of this gloriously obsolete. Until then, at least both Macs agree on what skills they have.

Until next time ✌️

···

Spot an issue, anything to add?

Reach Out.