Skills
A skill tells an agent how to approach one kind of task: which tools to use, in what order, and
what a good result looks like. A skill is a SKILL.md file in the agent's
workspace. The agent finds its skills with search_files and reads
the one a task needs.
Skills use the Agent Skills layout. A skill made only of instructions works as it is.
Write a skill
Section titled “Write a skill”---name: issue-triagedescription: Triage a new GitHub issue, find duplicates and suggest labels.---Search open and closed issues for the error message before anything else.Name a duplicate only when the steps to reproduce match. Suggest at most two labels.- Put each skill in its own directory:
skills/<name>/SKILL.md. Files a skill refers to go beside it. descriptionsays when to use the skill. The agent reads it to choose.- A skill holds instructions only. Nothing in it runs. Work a script would do belongs in a tool or an MCP server.
- A skill can't give an agent tools. The agent's
toolsandpolicystill decide what it can do.
Give an agent skills
Section titled “Give an agent skills”Keep skills in a directory, such as one in git, and sync it into the agent's workspace:
wardrik agent files sync triage ./skills --to skillsTell the agent to look for skills in its instructions:
---tools: [files, github/*]---Before a task, run search_files for `^description:` in `skills/*/SKILL.md`. Read the skill thatfits the task, and follow it.wardrik reload triagesearch_files returns the description line of every skill in one call. The agent reads only the
skill it needs.
Share skills between agents
Section titled “Share skills between agents”Keep shared skills in one agent's workspace and mount it read-only in the others:
tools: [files]workspace: shared: skills: {agent: agent:skills, mode: read}wardrik agent files sync skills ./skills --deleteTell each agent to search shared/skills/*/SKILL.md too. config.yaml sets who can mount the
workspace. See Sharing workspaces.
Let an agent write skills
Section titled “Let an agent write skills”An agent with files can write skills of its own. Require approval for each one:
policy: ask: ["write_file(skills/*)", "edit_file(skills/*)"]A skill written in a turn that read outside content is labeled
outside. Reading it labels the agent's turn too, so instructions from outside content can't come
back later as a trusted skill.