1. R-CLI
  2. Skills and Discovery

Skills are reusable instructions for specific workflows — a review checklist, a deploy runbook, a house style guide. They are not loaded automatically; you choose which ones a session uses.

​
Open the skill picker

/skills
Backboard R-CLI skills picker

The skills picker has Repo, Personal, and skills.sh tabs.

The picker has three tabs. Use ← and → to switch tabs when the search box is empty, or type to search across all fields.

TabSourceScope
Repo<cwd>/.agents/skills/<name>/SKILL.mdShared with everyone working in the project
Personal~/.agents/skills/<name>/SKILL.mdYours, available in every project
skills.shPublic skill directoryInstalled into the repo or your personal library on demand

Repo skills are discovered by walking up from your working directory to the repository root, so a .agents/skills/ folder in any ancestor directory is picked up too.

If a repo skill and a personal skill share a name, the repo one wins in the auto-loaded catalog. Selecting the personal entry in /skills replaces it for that session.

​
Invoke a loaded skill

​
Once a skill is loaded, reference it with `--- title: “Skills and Discovery” description: “Load reusable workflows from your repo, your personal library, or skills.sh, and let the agent find new ones on demand.”

Skills are reusable instructions for specific workflows — a review checklist, a deploy runbook, a house style guide. They are not loaded automatically; you choose which ones a session uses.

​
Open the skill picker

PROTECTED_BLOCK_0

Backboard R-CLI skills picker

The skills picker has Repo, Personal, and skills.sh tabs.

The picker has three tabs. Use PROTECTED_BLOCK_10 and PROTECTED_BLOCK_11 to switch tabs when the search box is empty, or type to search across all fields.

TabSourceScope
PROTECTED_BLOCK_12PROTECTED_BLOCK_13Shared with everyone working in the project
PROTECTED_BLOCK_14PROTECTED_BLOCK_15Yours, available in every project
PROTECTED_BLOCK_16Public skill directoryInstalled into the repo or your personal library on demand

Repo skills are discovered by walking up from your working directory to the repository root, so a PROTECTED_BLOCK_17 folder in any ancestor directory is picked up too.

If a repo skill and a personal skill share a name, the repo one wins in the auto-loaded catalog. Selecting the personal entry in PROTECTED_BLOCK_18 replaces it for that session.

​
Invoke a loaded skill

Once a skill is loaded, reference it with followed by its name:

$code-review check this diff

Or mention it in a normal sentence:

Use $deploy-runbook to ship this to staging.

Skills are not slash commands. Typing /code-review will report an unknown command and point you at $code-review instead.

​
Skill actions

Selecting a skill in the picker opens an action menu rather than acting immediately:

ActionAvailable when
Load SkillThe skill is installed but not active in this session
Unload SkillThe skill is currently active
Remove SkillThe skill is installed in your repo or personal library
DownloadThe skill comes from skills.sh and is not installed yet

Downloading from skills.sh asks where to put it:

TargetLocation
Project<cwd>/.agents/skills/ — committed with your repo
Personal~/.agents/skills/ — available everywhere, not shared

The skills.sh tab lists from a local cache. It refreshes in the background when stale, so opening the picker never blocks on the network. If skills.sh is unreachable, the tab shows an error and the other tabs still work.

Removing a skill only ever deletes a directory directly under a skills root. Anything else is refused, so a malformed entry cannot delete unrelated files.

​
Writing a skill

A skill is a folder with a SKILL.md inside:

.agents/skills/code-review/SKILL.md
---
name: code-review
description: Review a diff for correctness, tests, and style.
---

When reviewing a change:

1. Read the full diff before commenting.
2. Check that new behavior has tests.
3. Flag anything that changes a public API without a docs update.

Put project conventions in .agents/skills/ so the whole team gets them, and personal habits in ~/.agents/skills/.

​
Discovery tools

R-CLI can also find skills and MCP servers for you, instead of you picking them up front.

/discover

This toggles two agent tools for the current session:

ToolWhat it does
find_skillSearches your installed skills first, then skills.sh
find_mcpSearches the curated MCP server catalog

Discovery is off by default and is session-only — it resets when you restart. Turning it on lets the agent propose installing third-party code. Every install still requires your explicit confirmation.

When find_skill finds a good local match, it activates it silently. When the best match is remote, it asks first:

Download and use "changelog-writer" from skills.sh?
Source: github.com/example/skills, 1,240 installs.
This runs "npx skills add" to install third-party code into this repo.

  › Download
    Cancel

find_mcp behaves the same way, and tells you up front if the server needs credentials:

Add and connect the "Monday" MCP server?
Requires env vars: MONDAY_API_KEY (set them in your MCP config for it to connect).

  › Add
    Cancel

Servers that authenticate in the browser rather than through environment variables — Linear, for example — omit the second line.

Servers marked unavailable in the catalog are never suggested. Asking for one by name explains why:

"Example Server" is unavailable: the upstream service was retired.

​
Sub-agents cannot install

Sub-agents can call find_skill and find_mcp, but can never install anything — installing needs your confirmation, and only the main agent can prompt you. A sub-agent reports the match back instead:

Found "changelog-writer" on skills.sh, but downloading a third-party skill must be
confirmed by the user and a sub-agent cannot prompt. Ask the main agent to run
find_skill for this task.

This keeps every third-party install behind a prompt you actually see.