Skip to main content
A skill is a named, loadable set of instructions for doing a particular kind of work: how to use a rule family, how to verify a change, how to bootstrap an empty workspace. The agent sees every skill’s name and description up front, and loads the full body only when it decides it needs it — so fifty skills cost almost nothing until one becomes relevant.

How skills get invoked

  • By the agent itself — the session context lists every available skill with its description; the agent calls its skill tool to load one before doing matching work (using a rule family for the first time, authoring .rbs build files, finishing a change).
  • By you — in the TUI, /skills lists the corpus, /skill <name> shows a skill’s body, and every skill is offered as its own slash command: /verification asks the agent to load and apply that skill.
  • Over MCP — every skill is also published as an MCP resource when you run rbs mcp serve, so external agents can read the same corpus. See MCP integration.

Built-in skills

The built-in corpus has two halves: workflow skills that apply everywhere, and one usage guide per rule family. A rule family’s skill ships in the same module as its rules — load the Go rules and “how to use the Go rules” is right there, and it cannot drift from the implementation.
One using-<family>-rules skill per built-in rule family:

Custom skills

You can add skills in two formats, and both share the same surface as the built-ins.

RBS language: native.define_skill

Declare a skill in any .rbs module — typically next to the thing it teaches. A skills.rbs under your workspace’s rules/ directory is discovered automatically, without anything loading it:
If you author a custom build rule, ship its skill in the same module — every workspace that loads your rules also teaches its agents how to use them.

Claude Code format: SKILL.md

The agent also reads skills in Claude Code’s format, from the same places Claude Code looks: .claude/skills/<name>/SKILL.md in the workspace, then in your home directory. An existing skill library carries over without being copied:

Precedence

When the same name exists in several places, the first source wins, in this order:
  1. Skills registered by .rbs modules the workspace actually loads
  2. .claude/skills/ in the workspace, then your home directory
  3. Skills declared in the workspace’s rules/ tree
  4. Skills from fetched external rule packages
  5. The embedded built-ins
So a workspace can override any built-in skill by shadowing its name.