Agent Skills formal specification for cross-platform compatibility. Ensures skills are evolutionarily robust across Claude, Codex, Cursor, Amp, and future agents.
Formal specification for evolutionarily robust agent skills.
Skills that follow the spec work across:
Non-compliant skills break silently or fail validation.
---
name: skill-name # REQUIRED: lowercase, hyphens, 1-64 chars
description: What and when # REQUIRED: max 1024 chars, no < or >
license: Apache-2.0 # optional
compatibility: Requires git # optional, max 500 chars
metadata: # optional: custom key-value pairs
trit: 0
author: bmorphism
version: "1.0"
allowed-tools: Bash Read # optional, experimental
---
# Body content (Markdown)
| Field | Required | Rules |
|---|---|---|
name |
ā | [a-z0-9-]+, no --, no leading/trailing -, max 64 |
description |
ā | 1-1024 chars, no < or >, includes WHEN to use |
license |
ā | Short name or file reference |
compatibility |
ā | Environment requirements, max 500 |
metadata |
ā | Arbitrary k:v for custom fields |
allowed-tools |
ā | Space-delimited tool names |
Level 1: name + description (~100 tokens) - loaded at startup
Level 2: SKILL.md body (<5000 tokens) - loaded on activation
Level 3: scripts/, references/, assets/ - loaded on demand
Keep SKILL.md under 500 lines. Move details to references/.
# BAD - platform-specific
allowed-tools: claude_desktop_mcp
# GOOD - generic capability
compatibility: Requires MCP server access
Include validation in your skill:
# scripts/validate.sh
skills-ref validate "$(dirname "$0")/.."
metadata:
version: "2.1.0"
breaking-changes: "v2.0 changed API"
For plurigrid/asi skills:
metadata:
trit: -1 # MINUS: verification, constraint
trit: 0 # ERGODIC: balance, mediation
trit: +1 # PLUS: generation, exploration
Conservation: Σ trits ┠0 (mod 3) across compositions.
skill-name/
āāā SKILL.md # Required
āāā scripts/ # Executable code
ā āāā main.py
āāā references/ # Additional docs
ā āāā REFERENCE.md
āāā assets/ # Static resources
āāā template.json
# Official validator
skills-ref validate ./my-skill
# Codex-rs validator
python3 codex-rs/core/src/skills/assets/samples/skill-creator/scripts/quick_validate.py ./my-skill
# Batch validate
for d in skills/*/; do skills-ref validate "$d"; done
| Error | Fix |
|---|---|
| No YAML frontmatter | Add --- delimiters |
| Unexpected keys | Move to metadata: |
| Angle brackets in description | Remove < and > |
| Name not hyphen-case | Lowercase, hyphens only |
| Description too long | Max 1024 chars |
| YAML colon in value | Quote the string |