A skill guides what the agent does using the same data access the agent already has. The
first version of skills is instructions-only —
title, description, and instructions.
There is no per-skill data scoping or external actions yet.Defining skills
Skills are defined as Markdown files underagents/skills/. Each skill lives in its own
file: the YAML frontmatter holds metadata, and the Markdown body is the instructions the
agent follows.
skills/ directory are treated as skills automatically — no kind
property is required. The name is inferred from the file name (e.g.,
weekly-revenue-report.md → weekly-revenue-report). Nested folders are allowed for
organization but do not namespace the skill — skill names must be unique across the
entire skills/ directory.
Frontmatter properties
| Property | Type | Required | Description |
|---|---|---|---|
title | string | Yes | User-facing label shown on the skill button and in the / menu. |
description | string | Yes | What the agent matches free-text requests against to auto-select the skill. |
name | string | No | Unique identifier. Inferred from the file name if omitted. |
Inlining skills in YAML
You can also inline skills directly inagents/config.yml under a skills key:
name, title (required), and description (required) as
Markdown skills. Since there is no Markdown body in YAML, provide the instructions inline
via the instructions key.
Skills inlined at the root of
agents/config.yml are attached to the implicit auto
space and applied to the default agent in a single-agent setup. In a
multi-agent setup, attach skills to a specific space by inlining
them under that space’s skills key (or by placing Markdown files under
agents/skills/<space-name>/).How skills are surfaced
Skills use progressive disclosure. The agent is given a compact catalog of every available skill — just thename, title, and description — so it knows what each
skill is for without carrying the full instructions. When a skill is run, the agent loads
its complete instructions on demand.
- The chat UI only ever receives a skill’s
name,title, anddescription. The full instruction body stays server-side and is never sent to the browser. - Skills are surfaced through a viewer-accessible deployment endpoint, so they work for
any configured agent as well as the default
autoagent. - Because the agent matches against
description, a well-written description makes automatic matching more reliable.
/ menu, and automatic matching —
see Agent skills.
Deploying and testing
Skills ship through the normal Cube development flow: author the skill on a development branch, commit, and merge to your production branch. Because skills live on the branch, a skill on a development branch is testable before it reaches production — open chat against the dev branch and run the skill to confirm it behaves as intended.Permissions
Authoring skills requires data-model edit access — the same access needed to define rules and certified queries. In Cube Cloud’s built-in roles, that means the Admin or Developer roles, or a custom role with semantic-model edit access. Running skills is available to anyone with chat access, including Explorer and Viewer roles. In-product tips that promote authoring skills, rules, and certified queries are role-aware and shown only to developers.Writing effective skills
- Phrase
descriptionas a “use when…” statement. This is what the agent matches against incoming requests, so describe the situations the skill applies to. - Write instructions as an explicit workflow. Number the steps and state the output you expect, the same way you’d brief an analyst.
- Account for added context. Users can add specifics after selecting a skill (e.g.,
/weekly-revenue-report for EMEA, last 6 weeks), so instruct the agent to honor a named region or time range when provided. - Keep each skill focused. One skill should cover one well-defined workflow; create separate skills for distinct tasks.