Skills: three-level progressive disclosure
Parent: capabilities
A skill is not one-tool-per-script (that explodes the tool list and bloats the system prompt) — and a skill is not a capability either: it's an authored artifact riding on capabilities (confusables). Instead, three levels:
- L1 — only the skill's name + description sits in the system prompt
- L2 — one
skill_use(name)tool reveals the full SKILL.md on demand, when the agent judges it relevant - L3 — one
skill_run_script(name, script, args)runs it in the sandbox
So the agent sees capability names first, reads the details only if interested, executes only if needed (backend/internal/routes/capload/capreg_skill_runner.go). SKILL.md is the canonical agent-facing contract; the DB row is just the management store — the same SKILL.md format is what the marketplace parses.
Class view
The class shape is the disclosure design: two generic tools instead of N per-script tools — the tool list stays O(1) in the number of skills.