Skills¶
Skills are how Ballet encodes process. A skill is a versioned bundle
of instructions (a SKILL.md plus supporting files) — the format
Claude Code uses — that tells an agent how to work: branching rules,
testing approach, documentation duties, review checklists, architecture
conventions.
Ballet itself prescribes no process. Each project chooses its skills; Ballet ships only neutral starter templates (e.g. for the default pipeline’s stage roles) that projects copy and adapt.
Skill registry¶
Ballet keeps a central skill registry (ADR-0010: Central Skill Registry):
Scopes: platform → organization → project. A lower scope may add skills or override a higher-scope skill of the same name. A project’s effective set contains every published skill of its chain; drafts that were never published are not used.
Drafts and versions: admins edit a skill’s draft; publishing snapshots it as the next immutable version. Projects pin versions in their process profile, so a skill change never alters a running project unexpectedly.
Storage: skills live only in the Ballet database, authored and versioned in the UI; they are searchable like all other content.
Delivery: when a run starts, Ballet resolves the project’s skill set and the agent writes it into the session’s
HOMEin the layout the runtime expects (.claude/skills/for Claude Code,.config/opencode/skills/for opencode).
Skills are shared across organizations only at platform scope; an organization-scoped skill is as private as that organization’s knowledge.
In the UI¶
Skills in the header lists the skills of one scope (the platform,
or for users without platform-wide access, their first organization or
project). Users with skill.write on the scope create skills and
edit the draft: description, SKILL.md (Markdown with preview) and
supporting files. Publish snapshots the saved draft as the next
version; Save and publish does both. The page shows the unpublished
changes as a line diff against the latest version, and each version as a
diff against the one before it.
A project’s Skills page (linked from the board) shows its effective
skills. With skill.write on the project, each skill can follow the
latest version, be pinned to a version, or be disabled for the project.
Process profile¶
Each project’s process profile binds together:
the pipeline definition(s) per ticket type (Ticket Pipeline);
the skill set and pinned versions;
the agent pool (built from the project’s devcontainer);
branch naming, base branch and merge strategy;
default execution policy (review mode, merge mode).