Skills¶
A skill is a named set of markdown instructions an agent type can attach: AgentType.skills lists skill names, and when that type runs, each resolved skill's content is injected into its system prompt under a ## Skills section. Skills are capability instructions distinct from tools and plugins - an agent type carries them, the sub-agent reads them.
Storage¶
Skills come from three layers, merged like types and teams: plugin contributions first, then global, then local, with local winning per field:
- Plugin - skills contributed by plugins via the
register_skillsentry hook (registry.add_plugin(...), see plugins.md). An in-memory layer: never written to.replio/skills/, refreshed on/plugins install/update/uninstall. - Global -
~/.config/replio/skills/<name>.md. - Local -
.replio/skills/<name>.md.
Each skill is one flat Markdown file: the filename stem is the skill name, the file body is the skill's instructions.
Schema¶
# finders
Find sources and evaluate them. For each finding include the claim,
the source URL, and a one-line reliability assessment.
A skill has:
name- the filename stem (finders.md->finders), referenced fromAgentType.skills.content- the full file body, injected verbatim into the agent type's system prompt.description- optional, defaults to the first line of the content for file-based skills. Plugin contributions may set it explicitly along withtags.
Plugin contributions use the same entry shape, with an explicit content field:
def register_skills(registry):
registry.add_plugin({'name': 'finders', 'content': '# finders\n\n...'})
Injection¶
When an agent type with skills runs as a sub-agent (delegate), each registered skill's content is appended to the agent type's system prompt:
<type system prompt>
## Skills
### finders
Find sources and evaluate them. ...
Missing or empty skills are skipped silently, and an agent type without skills gets an unchanged prompt. Jobs with --type inject the same section (from the global/local file layers - plugin contributions do not reach the scheduler's preparse, same rule as plugin types there). The injection format is built by skills_section(registry, names) in replio.skills.
Managing skills¶
/skill- list skills (name, first-line description, origin) -(local)/(global)/(plugin)/(merged)./skill show <name>- print the full skill content./skill new <name>- create an empty local skill (edit the created.mdfile, or write one directly)./skill remove <name>- remove a local skill. Plugin skills cannot be removed (override them locally instead).
The team kit (see swarm.md) generates skills as part of its templates and persists them to the local skills dir.