How skills get invoked
- By the agent itself — the session context lists every available skill with its description; the agent calls its
skilltool to load one before doing matching work (using a rule family for the first time, authoring.rbsbuild files, finishing a change). - By you — in the TUI,
/skillslists the corpus,/skill <name>shows a skill’s body, and every skill is offered as its own slash command:/verificationasks 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.Workflow and engineering skills
Workflow and engineering skills
Rule-family skills
Rule-family skills
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:
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:- Skills registered by
.rbsmodules the workspace actually loads .claude/skills/in the workspace, then your home directory- Skills declared in the workspace’s
rules/tree - Skills from fetched external rule packages
- The embedded built-ins