<!-- BEGIN:compound:skill-managed -->
Why this exists
The plugin is deterministic. The agent is not. So we separate:
- Agent: decides what to learn (writes the spec).
- Tool (
compound_apply): validates and applies changes safely.
CompoundSpec v2
Top-level keys (all optional except schema_version):
schema_version: must be2auto:{ reason, sessionID }
instincts
create[]:{ id, title, trigger, action, confidence }update[]:{ id, confidence_delta, evidence_note }
skills
create[]:{ name, description, body }update[]:{ name, description?, body }
Notes:
namemust match^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$.bodyis markdown without frontmatter.- If updating a skill:
skills.update[].bodymust be the entire final managed body (no snippets/diffs).
docs
sync: boolean (refresh derived indexes/blocks)blocks.upsert[]:{ file, id, content }
Only upsert AI-managed blocks; do not rewrite human-owned text.
When writing markdown content inside docs.blocks.upsert[].content:
- Use repo-root-relative paths when referencing files/dirs (no absolute paths).
changelog
{ note }: a single sentence describing the memory delta.
Apply
- Draft the CompoundSpec v2 as a single JSON object.
- Output JSON only (no code fences, no commentary).
- Run
compound_apply()to validate and write the memory/doc updates.
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.
微信扫一扫