A skill in Rundock is a folder, not a flat file. Inside the folder, a singleDocumentation Index
Fetch the complete documentation index at: https://docs.rundock.ai/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md file holds the skill definition. The folder name is the skill’s slug.
This page is the reference. For the concept, see Skills. For a walkthrough of creating one, see Write a skill.
Where skill files live
Rundock scans two locations:.claude/skills/. The Playbooks path exists for legacy Personal-OS-style workspaces.
Use lowercase letters, numbers, and hyphens only in the slug. No spaces, no underscores.
Field categories
Skill frontmatter is intentionally lean. Rundock’s parser reads two fields and stops. Every other YAML key in the frontmatter block is preserved on disk, but Rundock does not act on it.- Universal fields work in any tool that supports the Claude agent and skill format. Some are read by Claude Code when the skill is loaded into a subprocess.
- Rundock-only fields are listed here only because the convention exists for agents and may surface in skill files written by hand. For skills, none of them are read.
Frontmatter fields
| Field | Type | Scope | Required | Purpose |
|---|---|---|---|---|
name | string | Universal | Recommended | Display name for the skill, shown on the agent profile and in the skill list. If omitted or equal to the slug, Rundock title-cases the slug (with brand-word overrides like LinkedIn, Notion, MCP). |
description | string | Universal | Recommended | One-paragraph description of what the skill does and when to use it. The orchestrator uses this for routing decisions. A skill with no description is invisible to routing. |
allowed-tools | array | Universal (Claude Code) | No | Tools Claude Code is allowed to invoke while running this skill. Rundock does not read this field; Claude Code does, when the skill is loaded into a subprocess. |
model | string | Universal (Claude Code) | No | Model override for this skill. Same caveat as allowed-tools: Rundock does not read it, Claude Code may. In practice, behaviour follows the invoking agent’s model. |
displayName | string | Rundock-only | No (not parsed) | Not parsed for skills. Rundock derives display name from name and the slug. Listed only to flag that the field is not honoured even though the convention exists for agents. |
icon | string | Rundock-only | No (not parsed) | Not parsed. Skills inherit the icon of their assigned agents in the UI. |
colour | string | Rundock-only | No (not parsed) | Not parsed. Skills inherit accent colours from their assigned agents. |
name and description. Both can be omitted entirely, but a skill without a description is invisible to the orchestrator’s routing decisions, so always write one.
The body
Everything after the closing--- of the frontmatter is the skill’s instruction set. There is no implicit context injection at skill load: Rundock does not prepend or append anything. What you write is what the agent sees.
Write the body in the second person, addressing the agent. Match the voice of the calling agent. Skills are leaf instructions, not standalone personalities, so do not introduce a new identity in the skill body.
Length discipline
Live skills cluster around 100 to 200 lines of body text. If a skill is growing past 300 lines, it is doing too much. Split it into two skills, or move bulk into reference files in a sibling folder and link to them from the body.Reference files
A skill can keep supporting documents next to it: examples, templates, sub-routines, schemas. Put them in areferences/ folder under the skill, and link from the body with relative paths. Rundock does not parse these files; they are loaded by the agent only when the body text instructs it.
Cross-skill references
Skills can mention other skills by slug to suggest follow-on work. The orchestrator does not chain skills automatically: the agent decides whether to invoke a follow-on, based on the body’s guidance.Suggested structure
A typical skill body has six sections in this order:Skill discovery and assignment
Rundock matches skills to agents in two passes. Pass 1: explicit assignment via the agent’sskills: array. Each entry is a skill slug. This pass takes precedence: an agent matched in Pass 1 is not considered again in Pass 2 for the same skill.
Pass 2: implicit assignment via body-text scan. For every agent not matched in Pass 1, Rundock reads the agent’s body and tests whether the skill’s slug appears as a distinct word-boundary token. The match uses negative lookbehind and lookahead so partial slugs do not match.
Use explicit assignment when the relationship is permanent and load-bearing. Let body-text fallback handle weaker references.
Unassigned skills are still callable. If a skill has no owner via either pass, it registers with status: 'unassigned'. The orchestrator can still route work to it if its description matches the request strongly enough. The skill simply does not appear under any agent’s profile until it is assigned.
Platform skills (slugs prefixed with
rundock-) are gated to platform agents, currently only Doc. Non-platform agents do not see them. Non-platform skills are gated to non-platform agents and Doc does not see them.Workspace mode
Skills inherit the workspace mode of the agent that invokes them. There is no per-skill mode override. A skill cannot relax workspace restrictions. If a skill needs to write code in a Knowledge-mode workspace, the user has to switch the workspace to Code mode before running it. For the workspace mode reference, see the Agent file format page.Complete worked example
Here is a complete skill file. Frontmatter is the parser-recognised set, the body is structured around the six standard sections, every step is concrete enough that the agent can follow without asking clarifying questions.- The frontmatter holds only
nameanddescription. Anything else would be ignored. - The
descriptionopens with a verb in present tense and finishes with the trigger phrase. This is the field the orchestrator reads when deciding whether to route work. - The body opens with one paragraph that re-states what the skill does, then jumps straight to “Use this skill when”.
- Steps are numbered, imperative, and reference specific file paths.
- Boundaries are explicit. This is the discipline that keeps a skill leaf-shaped.
- Formatting rules at the bottom carry house style into every output the skill produces.
Common pitfalls
A handful of specific things that go wrong silently. Frontmatter beyondname and description is ignored. Setting displayName, icon, colour, or any other Rundock-only field on a skill file does nothing. The fields persist but no surface reads them.
Flat skill files are not discovered. A file at .claude/skills/my-skill.md is invisible. The skill must live at .claude/skills/<slug>/SKILL.md (or the Playbooks equivalent).
Frontmatter typos fail silently. A misspelled descripton or naem is silently ignored. The skill loads with empty values for those fields.
Inline skills: arrays on the agent side do not parse. The flow-style skills: [a, b] parses as an empty array on the agent file. Always use the block form.
Slug case sensitivity. Rundock lowercases slugs before matching, so Hook-Generator in an agent’s skills: would match a hook-generator directory. Keep all slugs lowercase end to end for readability.
Description is the routing signal. The orchestrator reads the skill’s description field, not its body, when deciding whether to route work. A skill with no description is invisible to routing, even if the body is rich.
Where to next
Skills concept
When to make a skill versus when to put the instruction in the agent’s body.
Write a skill
A walkthrough of creating one and assigning it to an agent.
SKILLS.md in the Rundock GitHub repo. It tracks any new fields as they ship.