Post

How is everyone managing their agent SKILL.md files? Is it just chaos? Global skills, repo-specific skills, keeping them in sync between machines, figuring out which ones you have installed, authoring new ones. What are we doing?

0 reposts74 likes

My suspicion (from a call for the with Michael Cohen at the “Build with Opus 4.7” hackathon this weekend) is that this is what is “solved“ by Managed Agents.

I've got a personal repo where I manage user-scoped skills, mcp.json. I use github.com/vercel-labs/... for "install skill", either from local filepath or from git URL. I have a package.json-like file listing each skill I install. I have a script that parses that file and syncs them all.

github.comGitHub - vercel-labs/skills: The open agent skills tool - npx skillsThe open agent skills tool - npx skills. Contribute to vercel-labs/skills development by creating an account on GitHub.

Working on adding (npm i / npm ci)-like semantics to the script. And a global flag, so yeah, (user/repo) skills. The thing I'm most concerned with is a lockfile and exact resolved version, not just syncing latest.

MCP if I need distribution, oauth, tools, bells & whistles, etc., using github and the claude marketplace to manage skills for small groups, but no version pinning in projects is rough (maybe agents/claude.md would work here).

the effect - when the cost of optimization increases an expected benefit from this optimization. many moments linked with llm optimisation & fomo around it remind me of it more often. e.g. "Claude, what is my schedule for today?" - "Master, you have a hair cut at 1pm only"

I was struggling with this recently, had Claude walk me through a new strategy which (absurdly?) includes a skill for skills. Without getting into either of our specifics, a generic meta-skill pattern for this looks something like attached image. Interested in other replies here!

meta-skill is great for people who haven't written one yet. for people already in the loop, the skill you last wrote IS the meta-skill. harder leverage: naming the trigger. wording from the user's POV ("use when the user pastes X and wants Y") triggers way more reliably than from the skill's POV.

I use global skills and manage two sets: 1 for my professional setup, and 2 for my pet projects (different machine). That's enough management for me atm. I'd advise asking AI to update skills based on your sessions regularly. Makes it kind of self learning! Works ok for me.

I use four layers: 1. Account-level CLAUDE.md for behavioural changes I always want from the LLM 2. Project-level CLAUDE.md 3. LLM-maintained documentation within every folder in the repo itself to document code and memorialise decisions 4. Skills only for narrow, repeated tasks, eg. reviews

You can see this at work in this repo: github.com/alexmensch/s... Works extremely well for a large codebase. Then all you're left with is all of the millions of decisions you need to make yourself to end up with a good product...some things don't change :)

I check the skills I’ve installed every once in a while and prune them. It’s difficult, as some are global and some are project-based. Would be great to have a UI to help manage them by highlighting the ones that are rarely used

the main skill is /improve which writes and refactors the skills. I have knowledge directory for background context, and skills are for for small development workflows. These all live in a "developer" repo, and the real code repos are submoduled in, and worktree'd out.

Yes! code repos have Claude.md for heirarchical context still. The top one is more for developer processes, debugging, deploying, investigation, ticket writing, customer notes, org data. The code repos have specific code stuff, formatting, style, tools, architecture.

i don’t use skills, mcps, or anything, just raw doggin the LLM chat interface and avoiding new shiny objects like the plague

I know what you mean, but taking a step back it's kind of funny to say you're avoiding new shiny objects while wielding the strangest non-deterministic technology we've ever seen in our lifetimes (I'm on the same page as you, though — I like the dumbest version of the magic possible)

it’s pretty incredible that even in this uncharted futuristic seeming era the KISS principle is more relevant than ever

That's what I did until I discovered Claude does write project specific state outside of the project dir itself. 😐 Now you're forced to manage that anyway.

We’re looking into this now for our AI SRE where we want to index people’s skills and either run them in an investigation ourselves or delegate to their infrastructure to run them. Sadly there is no real convention. Teams seem to do whatever works best for them, and can vary even in orgs.

Some teams are centralising and creating really large flat directories with a bunch of skills that correspond to very specific tasks, mostly because it’s simple and they can write skills to help them manage those skills easily (quite meta)

Other people have collections of run books and docs that predate AI and they’re gradually creating skills that point at those docs, much like a script might import other libraries to do work

“Global” and “project” are fine. My problem is with “iff typescript project” or “iff using excel” situations where I don’t want them globally or per project I want them by category. I (Claude) wrote a wrapper script for me that detects files like tsconfig or *.xls and loads in other directories.

Depends on what you want to do; no idea what Moob is. What the wrapper script does is give you the ability to say "If this type of file exists in the directory that we're working in, treat it as project type X" and then "If working with project type X, load these Claude Code plugins".

You create a (project type → plugins) mapping and a way to check for what project type you're in, so you don't install/update/sync your plugins to each separate instance of a project type across all your projects. You update in the central place and all projects get the updates.

I took the first step to set up a repo for a particular set of skills (github.com/fubits1/svel...), but so far I failed to establish a practice of updating it. I probably need to block a fix time slot (maybe Friday mornings) in m calendar.

This is an ill posed problem. A well posed problem is "Tell me what you did to accomplish some task". Every time we turn the crank we should be logging what we did and why. Then we should AI figure out how to generalize from these past examples

Yes, at the end of every task I update the repo skills. I turned off memory though. Skills, lint rules and hooks are deliberate practice for LLMs.

But how do you tell the agent which parts to log? That's the skill. Encoding tacit knowledge in skills while the explicit knowledge is just spec files in the repo

I think you want a document centric UX not the conversation centric UX you have today. As you work with the agent you should be producing a doc of the problem describing the problem you are trying to solve and how you solved it