So basically a reusable prompt like the previous has asked?
The way the OP phrased it
> Is a skill essentially a reusable prompt that is inserted at the start of any query?
Actually is a more apt description for a different Claude Code feature called Slash Commands
Where I can create a preset "prompt" and call it with /name-of-my-prompt $ARGS
and this feature is the one that essentially prefixes a Prompt.
The other description of lazy loading is more accurate for Skills.
Where I can tell my Claude Code system: Hey if you need to run our dev server see my-dev-server-skill
and the agent will determine when to pull in that skill if it needs it.
This may all be very wrong, though, as it's mostly conjecture from the little I've worked with skills.
This lets you trigger a skill with '/foo' in a way that resembles the way you'd use the command line.
Claude Code is very good at using well-defined skills without a command though, but in a scenario where this is some nuance between similar skills they are useful.
BUT what makes them powerful is that you can include code with the skill package.
Like I have a skill that uses a Go program to traverse the AST of a Go project to find different issues in it.
You COULD just prompt it but then the LLM would have to dig around using find and grep. Now it runs a single executable which outputs an LLM optimised clump of text for processing.
Inversely, you can persist/summarize a larger bit of context into a skill, so a new agent session can easily pull it in.
So yes, it's just turtles, sorry, prompts all the way down.