Compile Skill
Turn an accepted procedure into a portable Skill you own.
Read schemas in ../soulcatcher/reference.md.
Canonical output shape: learned-skills/examples/adversarial-decision-analysis/
Prerequisites
- challenge-inference verdict: accept
- User explicitly approved compilation
Output Structure
learned-skills/{skill-name}/
├── SKILL.md # ~300 tokens — executable procedure
└── evidence.md # sessions, traces, confidence, compile date
Do not put evidence dumps in SKILL.md. Keep the Skill lean.
SKILL.md Template
---
name: {skill-name}
description: {Third-person WHAT + WHEN — how user thinks through problem, not taste}
---
# {Title}
## When to use
Use when {trigger scenarios}.
## Procedure
1. {Imperative step}
2. {Imperative step}
...
## Additional resources
- Evidence and session citations: [evidence.md](evidence.md)
Description rules
- Third person
- Describe how the user thinks through the problem
- Include trigger terms (WHEN)
- Max 1024 characters
Good: "Stress-tests competing options by searching for counterexamples and surfacing the strongest downside before recommending a choice. Use when evaluating decisions, tradeoffs, architecture options, or recommendations."
Bad: "User prefers concise answers." / "User likes adversarial analysis."
evidence.md Template
# Evidence: {skill-name}
**Compiled:** {date}
**Confidence:** {N}%
**Problem class:** {class}
**Source sessions:** {count}
## Observed sequence
{arrow-separated sequence}
## Session citations
| Session | Context | Key evidence |
|---------|---------|--------------|
| ... | ... | ... |
## Counterexamples noted
- {session}: {deviation}
## Assumptions
- {assumption}
Naming
- Lowercase hyphens only:
adversarial-decision-analysis - Derived from procedure title
- Max 64 characters
Handoff
Inform user:
- Skill path:
learned-skills/{skill-name}/ - Skill is portable — copy to any Agent Skills-compatible agent
- Run skill-audit periodically to detect drift