Skills
Define reusable skill packages with descriptions, scripts, and domain knowledge
Skills
The skills block defines reusable capability packages that agents can use. Skills bundle a description, scripts, and domain knowledge into a named unit that can be shared across agents.
Basic Syntax
skills {
code-review {
description: "Performs thorough code reviews with style and correctness checks"
scripts: ["scripts/lint.sh", "scripts/test.sh"]
domains: [coding-standards, architecture]
}
}Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
description | string | Yes | What this skill does |
scripts | list | No | Shell scripts associated with this skill |
domains | list | No | Memory domains this skill draws knowledge from |
Defining Skills
Each skill has a name and a set of capabilities:
skills {
frontend-dev {
description: "Builds React components with TypeScript and Tailwind CSS"
scripts: ["scripts/component-gen.sh"]
domains: [frontend, design-system]
}
api-design {
description: "Designs RESTful APIs following OpenAPI conventions"
domains: [api-spec, backend]
}
deployment {
description: "Deploys applications to AWS using CDK"
scripts: ["scripts/deploy.sh", "scripts/rollback.sh"]
domains: [infrastructure]
}
}Agent Skill References
Agents reference skills with the skills field:
agent frontend-engineer {
model: sonnet
skills: [frontend-dev]
tools: [Read, Write, Bash]
}
agent fullstack-dev {
model: opus
skills: [frontend-dev, api-design, deployment]
tools: [Read, Write, Bash]
}When an agent has a skill, it gains access to that skill's description (as context), scripts (as executable tools), and domain knowledge (from the referenced memory domains).
Full Example
topology dev-team : [supervisor] {
memory {
domains {
frontend {
path: "memory/frontend"
routing: "React, components, UI"
}
backend {
path: "memory/backend"
routing: "API, database, server"
}
}
}
skills {
ui-dev {
description: "Builds and tests React components"
scripts: ["scripts/test-ui.sh"]
domains: [frontend]
}
api-dev {
description: "Builds and tests API endpoints"
scripts: ["scripts/test-api.sh"]
domains: [backend]
}
}
agent lead {
model: opus
role: "Technical lead who delegates and reviews"
skills: [ui-dev, api-dev]
}
agent frontend {
model: sonnet
skills: [ui-dev]
tools: [Read, Write, Bash]
}
agent backend {
model: sonnet
skills: [api-dev]
tools: [Read, Write, Bash]
}
}Tips
- Skills are a way to package expertise. Think of them as roles or specializations.
- The
domainsfield links skills to memory domains, so agents with a skill automatically get relevant context. - Scripts referenced in skills must exist at the specified paths relative to the topology file.
- Skills can be shared across agents — define once, reference many times.