AIP-3: SKILL.md — skill manifest format
A markdown + frontmatter format for distributing reusable agent skills as portable, version-controlled files.
| Field | Value |
|---|---|
| AIP | 3 |
| Title | SKILL.md — skill manifest format |
| Status | Draft |
| Type | Schema |
| Domain | skills.sh |
| Reference Impl | packages/skills |
Abstract
SKILL.md is a markdown-with-frontmatter file format that packages a single
reusable agent skill — its metadata, instructions, optional tool bindings,
and example invocations — into a portable, version-controlled artifact.
Skills are first-class citizens of an agent's repertoire; SKILL.md makes
them shareable across runtimes.
Motivation
Skills today are scattered across vendor-specific JSON, framework-specific class hierarchies, and ad-hoc prompt files. A skill defined for one runtime rarely runs in another without rewriting. SKILL.md gives a single declarative file a developer can hand to any AIP-compliant runtime and have the skill loaded, indexed, and invocable.
The format draws on:
- Anthropic's "Agent Skills" pattern (markdown-as-skill, frontmatter for metadata)
- The success of
package.jsonandCargo.tomlas portable manifests - AIP-4 (DESIGN.md) and AIP-5 (CANVAKIT.md) as sibling Schema specs in the same family
Specification
Status note. The reference implementation in
packages/skills/(v1.0.0) defines the working schema. The canonical normative specification is being authored from that implementation. This section will be filled in as part of moving AIP-3 from Draft → Review.
The high-level shape, pending the full normative text:
---
schema: skills/v1
name: <kebab-case-skill-id>
title: <human-readable title>
description: <one-sentence what-it-does>
version: <semver>
tags: [<topic>, <topic>]
inputs:
- name: <param>
type: string | number | boolean | object
required: true
description: <prose>
tools:
- <tool-name> # optional — tools this skill expects to be available
examples:
- input: { ... }
output: <expected output sketch>
---
# Body — instruction prose for the agent
The body is markdown. Headings, code blocks, and prose are all consumed
by the runtime as instructions. Sections that read as data (e.g. "## Tool
catalog") are conventionally extracted; sections that read as guidance
("## When to use this skill") are passed through verbatim.Rationale
To be authored. Key decisions to defend in this section: why markdown
over JSON Schema, why YAML frontmatter over TOML, why no separate
runtime field (use tags + capability negotiation instead), why no
embedded code (skills declare what they need, runtimes provide it).
Reference Implementation
packages/skills —
parser, file-tree source, DB-backed source, and library tooling. The
implementation is the source of truth for the schema during the Draft
phase.
Backwards Compatibility
Not applicable — this AIP introduces a new spec.
Security Considerations
To be authored. Threat surface includes: untrusted skills loaded into a
trusted runtime, skill bodies that perform prompt injection on the host
agent, frontmatter tools declaring tools the runtime should not expose.
Mitigations live in runtime policy, not the file format itself.
AIP-2: AIP Template
The template every new AIP starts from. Copy this file, change the frontmatter, and fill in the sections.
AIP-4: DESIGN.md — design token format & registry conventions
A markdown + frontmatter format for portable design tokens, and the registry conventions used by designkit.sh to share community kits.