.yawn Skills Documentation
Complete reference for the .yawn agentic skill system. Extends the Agent Skills standard with holonic composition, trust scoring, and autonomous lifecycle management.
Getting Started
A .yawn skill is a directory containing at minimum a SKILL.yawn or SKILL.md file that describes a capability an AI agent can invoke.
# Install a skill from the yawn shop
yawn install entity-extract
# Create a new skill
yawn skill create my-skill --category=perception
# Score a skill's trust level
yawn score my-skill
Each skill lives in a directory under .yawn/skills/<category>/<skill-name>/. The directory name IS the skill ID. The path IS the holarchy position.
SKILL.yawn Format
The SKILL.yawn format extends the standard SKILL.md with structured YAML frontmatter and .yawn-specific sections.
--- name: entity-extract description: Extract named entities from natural language. version: 1.0.0 category: perception status: active priority: high holarchy-path: yawn/skills/perception/entity-extract handler: lib/skills/handlers/entity-extract.ts required-skills: [llm-invoke] evidence-kind: skill_entity_extract autonomy-level: 3 trust-score: null # Computed by the scorer # .yawn extensions (not in standard SKILL.md) lifecycle: spawn-condition: "When text input contains > 3 potential entities" retire-condition: "Superseded by domain-specific extractor" parent: perception children: [] holarchy: inherits-from: perception overridable: true scope: subtree --- # Entity Extract Extracts named entities (people, organizations, dates, locations, amounts) from natural language text. ## When to Use - Processing user input that references real-world entities - Building knowledge graphs from unstructured text - Populating entity databases from notes or triggers ## Instructions 1. Accept raw text input 2. Run NER via LLM with structured output schema 3. Return typed entity array with confidence scores ## Evidence Every invocation logs a `skill_entity_extract` event with: - Input length, entity count, confidence distribution - Used for trust score computation and gradient analysis
Standard fields (SKILL.md compatible)
- name, description, version
- category, status, priority
- # Instructions, ## When to Use
.yawn extensions
- holarchy-path, handler, evidence-kind
- autonomy-level, trust-score
- lifecycle (spawn/retire/parent/children)
- holarchy (inherits-from, scope, overridable)
The Holarchy Model
In the .yawn system, skills nest inside skills. Each skill is both a whole (it can execute independently) and a part (it belongs to a category or parent skill). This is the holarchy.
Skill Holarchy (URL = Holarchy = Permission Tree)
yawn.ai/yawn/skills - root manifest
├── core/ - fundamental capabilities
├── llm-invoke/ [L4]
├── json-parse/ [L4]
└── rate-limit/ [L3]
├── perception/ - input understanding
├── entity-extract/ [L3]
└── intent-classify/ [L4]
├── safety/ - guardrails
├── risk-assess/ [L2]
└── kernel-pdp/ [L1]
└── action/ - world changes
├── db-mutate/ [L3]
└── yawn-create/ [L3]
[L1]=human-required [L2]=human-oversight [L3]=auto+audit [L4]=fully-autonomous
The holarchy encodes three things simultaneously:
- Composition - which skills are needed to compose a capability
- Navigation - the URL path maps directly to the tree position
- Permission - depth determines autonomy requirements
Skill Lifecycle
Skills progress through these stages. The loop status is derived from the lifecycle stage and handler availability:
Status is 'active', handler exists, evidence is being captured. The skill works end-to-end.
Skill exists but is incomplete. May be missing a handler, evidence capture, or error handling.
The skill is a stub, planned, or blocked. It is a lacuna that needs to be filled.
Trust Scoring
Every skill is scored across four dimensions with 35+ automated checks.
Does the skill have a handler, inputs/outputs, and evidence capture?
Error handling, schema validation, documentation completeness.
Scope boundaries, escalation paths, rate limiting. Safety floor: if < 50%, overall grade capped at D.
Update frequency, dependency health, deprecation markers.
Try it live: yawn.ai/agentic-skills-testing
Cross-Platform Usage
Every SKILL.yawn generates a standard SKILL.md that works everywhere.
Cursor
.cursor/skills/
Native support
Claude Code
.claude/skills/
Native support
Codex
.codex/skills/
Via SKILL.md
Manus
.manus/skills/
Via SKILL.md
Windsurf
.windsurf/skills/
Via SKILL.md
Any MCP
Custom
Via yawn.ai API
Desired Outcome Matching
The core primitive: describe what you want, get the skill tree needed to achieve it.
POST /api/skills/match
{
"outcome": "Extract entities from user notes and store them",
"context": {
"autonomyLevel": 3,
"platform": "cursor"
}
}Response
{
"outcome": "Extract entities from user notes...",
"skillTree": {
"root": "entity-extract",
"skills": [...],
"edges": [...],
"gaps": [...],
"executionOrder": ["llm-invoke", "entity-extract", "db-mutate"]
},
"summary": {
"total": 3,
"closed": 2,
"partial": 1,
"missing": 0,
"healthScore": 83
}
}Try the live matcher: yawn.ai/yawn/skills
API Reference
/api/skills/statusGet all skills with status, grouped by category/api/skills/matchMatch a desired outcome to a skill tree/api/skills/[skillId]/executeExecute a specific skill with input/api/yawn-shop/listList available skills on the Yawn Shop