To a lot of people, the eagerness of the GPT 5+ models to invoke skills would be considered a benefit. It was a well reported fault that LLMs struggled to load skills, so this should be an improvement.

However, this has been infuriating for me. This has exposed a gap in how I view skills, vs how the rest of the industry views them.

I view skills as a menu at a nice restaurant. The dishes are exquisitely prepared. I get to pick a small selection of dishes from the menu.

The industry views skills as a buffet. I’m given an outrageous amount of choice, with a placard to describe each one. I’m encouraged to take a small portion of each dish, and come back with a plate piled with choices.

I could tolerate the buffet, because the models were picky children. I had to force food on their plate, and thus, it became my choice. The models have grown up to be overeager teenagers, desperate to put anything and everything onto their plate.

The issue with progressive disclosure

Progressive disclosure, from my perspective, was a bonus for skills. However, it has become the load-bearing critical aspect of skills.

I prefer to control the context directly, so this is an issue. The skill ecosystem provides many useful tools, but using them risks my model picking one without my consent and going off the rails. The models’ inability to pick skills acted as a blocker, which is no longer the case – the GPT 5+ models optimistically load skills. Given how aggressively the industry is coalescing around skills, it is only a matter of time before all models follow the same pattern.

Some harnesses allow configuring skills as only user invocable. Sadly, as it is not a part of the agent skills specification, the current implementations are a mess.

Can we combine the view points?

Probably not. I see the value in skills being auto-invocable by agents, but I don’t want this to be the default.

Standardising the configuration around model invocation would go some way to satisfying me. It currently serves as yet another form of harness lock-in. It is all the more annoying when Cursor’s Rules format had already specified invocability almost six months earlier.

Nevertheless, skills aren’t going away, and they can contain useful ideas or workflows for models, so I will manually cajole them into what I want, despite how difficult it currently is.

  • Claude Code in general does not appear to handle chaining multiple skills particularly elegantly. If I try to load multiple skills via slash commands, it causes none of them to be loaded. The slash command instead primes the model to load them.
  • Codex has some functionality to load skills from Claude Code. However, because Codex doesn’t support Claude’s full syntax, skills you’ve disabled being invocable in Claude are invocable in Codex.