An Agent Skill is a directory-level instruction package whose required SKILL.md
frontmatter makes it discoverable, while optional scripts, references, and assets
are loaded only when the active task needs them.
- A skill is a directory, not just a prompt: The minimum shape is a directory
containing
SKILL.md; scripts, reference docs, assets, and other files are
optional supporting material.
SKILL.md has a strict frontmatter contract: The file must start with YAML
frontmatter and then Markdown instructions. name and description are
required; license, compatibility, metadata, and allowed-tools are
optional.
- Names are constrained for stable discovery: A skill name is 1-64
characters, must match the parent directory, and is limited to lowercase
letters, numbers, and single hyphens.
- Descriptions drive activation: The description should say both what the
skill does and when to use it, with concrete keywords that help an agent select
the skill.
- Progressive disclosure is the core design: Agents initially see only small
metadata, then load the full
SKILL.md after activation, and read scripts,
references, or assets only as needed.
- Keep the main instruction file small: The spec recommends keeping
SKILL.md under 500 lines and moving detailed material into focused referenced
files.
- References should stay shallow: File references should be relative to the
skill root and kept one level deep from
SKILL.md to avoid long chains.
- Validation exists: The
skills-ref reference library can validate
frontmatter and naming conventions with skills-ref validate ./my-skill.
| Claim |
Support |
Caveat / Confidence |
| Skills are meant to be self-contained packages. |
The directory structure includes SKILL.md plus optional scripts/, references/, and assets/. |
High. |
| Metadata is intentionally compact. |
Startup discovery uses only the name and description, estimated around 100 tokens. |
High. |
| The description is part of routing, not decoration. |
The spec says it should describe what the skill does, when to use it, and include keywords. |
High. |
| Large skills should be split into on-demand resources. |
Progressive disclosure separates instructions from resources and recommends focused reference files. |
High. |
| Tool pre-approval is not portable yet. |
allowed-tools is marked experimental and support may vary. |
High. |
| Term |
Meaning |
| Skill |
A directory containing a required SKILL.md and optional supporting files. |
SKILL.md |
The required skill entry point with YAML frontmatter and Markdown instructions. |
| Frontmatter |
YAML metadata used for discovery, validation, and optional compatibility/tool metadata. |
| Progressive disclosure |
Loading only the amount of skill context needed for the current task. |
| Reference file |
Focused supplemental documentation under references/, read on demand. |
| Asset |
Static reusable material such as templates, images, data files, or schemas. |
- What two fields are required in every
SKILL.md frontmatter block?
- Require
name and description before a skill can be discovered or loaded.
- Why should a skill description include “when to use it” language?
- Put activation criteria in the description so routing can happen without loading the whole skill.
- What is the difference between
SKILL.md, references/, and assets/?
- Keep
SKILL.md as routing and core instructions, references/ as on-demand detail, and assets/ as reusable static material.
- When should detailed instructions move out of
SKILL.md?
- Move detail out when it is conditional, lengthy, or only relevant to specific variants of the workflow.
- Why does shallow file referencing matter for agent context management?
- Keep references shallow so agents can load only task-relevant context without recursive instruction chasing.
- Related ideas: prompt fragments, tool descriptions, slash-command prompts,
project-local instruction files.
- Related sources: prompts, codex-prompts,
goose-prompts, pi-prompts.
- Tension: Skills can package rich workflows, but skill infrastructure should
wait until repeated workflows justify the extra loader, validation, and
precedence rules.
- Conceptual use: the prompt system can borrow the spec’s progressive
disclosure shape now: keep base instructions small, put specialized edit or
workflow rules near the tool/command that needs them, and avoid always loading
every reference.
- Should a harness support repo-local skill discovery, or are
AGENTS.md plus
built-in prompt fragments enough?
- Recommendation: Borrow progressive disclosure and strict metadata concepts now, but defer repo-local skill discovery until repeated workflows justify loader, validation, and precedence rules.
- If skills are added, should
allowed-tools be ignored until the harness has a
real permission system?
- Recommendation: Ignore
allowed-tools as enforcement until a real permission model exists, but preserve it as advisory metadata if useful.
- What validation would be needed to prevent malformed skill metadata from
becoming model-visible prompt noise?
- Recommendation: Validate required metadata, relative references, file size caps, and unsupported fields before any skill content becomes model-visible.
- Treat reusable agent behavior as a small, discoverable package with strict
metadata and on-demand detail.
- Put activation keywords and task boundaries in the description.
- Keep main instructions short; move detailed references, scripts, and assets
behind explicit file references.