Skip to main content

What a skill actually is

A skill is a short instructional document, usually a markdown file with a YAML header, that an agent reads alongside its tool catalog. The MCP server tells the agent what tools exist; the skill tells it when and how to use them. For Lavendly, the skill captures four things:
  1. The canonical call sequence. Probe capabilities → check budget → create the workflow → wire audio → render → poll. Skip steps and you waste money or produce bad output.
  2. The decision rules. When to use mix vs native audio, when to add captions, when to render single-shot vs multi-clip.
  3. The idempotency discipline. Which calls cost money, which need keys, how to construct keys that survive retries.
  4. The taste. What “a good Lavendly video” looks like, pacing, voice tone, music mood, when subtitles help vs hurt.
You can use the MCP server without a skill. But loading a skill turns an agent that can call Lavendly tools into an agent that produces good Lavendly output, cheaply, on retry.

How skills compose with the MCP

The skill is prompt-side. It lives in your agent runtime’s prompt or skill loader (e.g. ~/.claude/skills/, Cursor’s project rules, your own SDK harness). The MCP is action-side, it actually moves bits.

Ready-made skills

Storyteller

Narrated shorts from a one-line idea. Voice + music + captions.

Multi-clip

Consistent characters and palette across a sequence.

Cost-aware

Budget guardrails for autonomous loops.

Author your own

Write a custom skill for your use case.

Installing a skill

Skills are platform-specific. The same skill text gets loaded in slightly different ways:
The skill files land in ~/.claude/skills/lavendly/. Claude Code auto-loads them in any project that has the Lavendly MCP server registered.

Skill precedence, when skills disagree

You can load more than one skill at a time. When their rules conflict, Lavendly uses a deterministic resolution order:
1

`priority: high` wins over `priority: normal`

Skills declare priority in their YAML frontmatter. cost-aware ships as priority: high because its budget rules must override domain choices that would otherwise overspend. Domain skills (storyteller, multi-clip) default to priority: normal.
2

Within the same priority, later wins over earlier

Skills are read in the order they’re loaded. If two priority: normal skills both pick a music mood, the later skill’s rule wins. Order your loader explicitly.
3

Tool catalog is never overridden

Skills cannot remove tools from the MCP catalog or add new ones. They can only constrain which tools to call and how.
In practice: load cost-aware first (its budget rules apply everywhere), then the domain skill that fits the current task. The resulting prompt looks like:
Or in Python:

Conflict resolution at a glance

What’s not in a skill

A skill is not:
  • A second tool catalog. The MCP is the only source of truth for what tools exist and what they accept.
  • A cache of API responses. Tool calls always hit the live API.
  • A place for your API key. Keys come from the MCP server’s env.
Skills are pure prompt material. Editing one never changes what the platform can do, only how the agent reasons about it.