docs.na.id.au

What a skill is

06 — Skills

Skills: packaged, reusable units of knowledge/procedure that an agent loads on demand to do a specific job well — and how to build and manage them.

What a skill is

A skill is a self-contained bundle that teaches an agent how to do a particular kind of task. Where a model’s weights carry general knowledge and the system prompt carries standing instructions, a skill carries domain-specific procedure plus reference material for a narrow job. It’s the difference between “the model knows about git” and “the model knows this repo’s git conventions and will run markdownlint after editing.”

A skill typically combines:

Why skills exist (the context problem)

An agent can’t load everything it might ever need into context — that’s both expensive and degrading (see Context Sizing). Skills solve this with on-demand, just-in-time knowledge: the description list is cheap to keep resident, and the full skill body is loaded only when the task matches. This is the same isolation principle as sub-agents, but applied to knowledge rather than work:

They compose naturally: a sub-agent prompt that references the relevant skill gives the worker both a clean context and the domain procedure it needs.

Anatomy of a good skill

A skill that an agent actually uses well has a few properties:

Skills vs the things they’re confused with

ThingWhat it isRelation to a skill
System promptStanding, always-loaded instructionsA skill is loaded on demand; the system prompt is resident. Put cross-cutting rules in the system prompt; task-specific procedure in a skill.
Tool (e.g. Open Terminal)A capability — something the agent can doA skill is knowledge about how to use capabilities well. A skill frequently references tools (e.g. “run markdownlint-cli2 via the terminal”).
Sub-agentA delegated execution in a fresh contextA skill can be handed to a sub-agent as its brief; the sub-agent provides the clean context, the skill provides the procedure.
MCP serverA protocol for exposing tools/dataMCP is how tools are wired in; a skill is what to do with them.

The clean way to think about it: tools are hands, skills are the manual, sub-agents are the fresh pair of hands.

How an agent uses a skill (the loop)

User request
   │  agent scans available skill *descriptions* (cheap, resident)
Match?  ──no──► proceed without a skill
   │yes
Load the skill *body* into context (procedure + references + guardrails)
Follow the procedure, calling tools (terminal, file ops, …) as needed
   │  may delegate a step to a sub-agent, passing the skill as its brief
Done — result returned; skill body can be dropped from context

Because only the description list needs to be resident, you can have many skills without paying for their full bodies until one is actually used.

Tips for building skills on a local stack


Source Disclaimer