Skills
A skill is a Markdown playbook with optional supporting files. The agent sees each skill’s name and description, and reads the full text only when a task needs it. That keeps context small, which is why guidance that is only sometimes relevant belongs in a skill rather than an instruction.
Layout
Section titled “Layout”Directoryskills/
Directoryreview/
- SKILL.md
Directoryreferences/
- style.md
Directoryscripts/
- check.py
Each directory under skills/ that contains a SKILL.md is one skill. Supporting files must be text. Binaries belong in the sandbox image or an environment.
SKILL.md
Section titled “SKILL.md”---name: release-notesdescription: Draft release notes from the changes merged since the last release.---
List the changes merged since the last release, group them by user-visible impact,and write one plain sentence for each. Put breaking changes first.Frontmatter
Section titled “Frontmatter”| Field | Required | Meaning |
|---|---|---|
name |
No | Identifies the skill across updates. Defaults to the directory name. 1 to 128 ASCII letters, digits, dots, underscores or hyphens; starts with a letter or digit and cannot end with a dot. |
description |
No | One line telling the agent when to use the skill. If omitted, Cengrid derives it from the first prose line of the body, capped at 200 characters. Write it yourself. |
requiredCapabilities |
No | Capabilities the skill needs, such as egress:api.linear.app. |
requiresConnectors |
No | Account connectors the skill needs, such as google or linear. |
declaredCreds, egress |
No | Recognised by the importer. egress is read as a shorthand for requiredCapabilities. |
private, agent_only, scope, visibility |
No | Mark a skill as private to the agent or to a person. Do not use them in plugin skills. A plugin skill marked private, or scoped to personal, private or me, is rejected, which rejects the plugin. |
A skill with a blank body is an error, and any error rejects the whole plugin on connect or re-sync.
A skill that uses a connected account
Section titled “A skill that uses a connected account”The starter google-workspace skill shows the pattern for a per-person OAuth connector:
---name: google-workspacedescription: Read and act on the user's Gmail, Google Calendar, and Google Tasks through per-user OAuth.requiredCapabilities: - egress:gmail.googleapis.com - egress:www.googleapis.comrequiresConnectors: - google---
Use this skill when the user asks about Gmail, Google Calendar, or Google Tasks.
The resolved user's Google OAuth token is available as an environment variable,one per API host: `$VAULT_TOKEN_GMAIL_GOOGLEAPIS_COM` for `gmail.googleapis.com`.Do not ask the user for a token, log it, or use another principal's.Who can create skills
Section titled “Who can create skills”- Administrators create custom skills in the console, at the organisation or a team.
- The agent creates skills in the bucket of the scope it is working in. In a team’s rooms, that is the team’s bucket.
- Plugin and pack skills are read-only in the console. Edit them in GitHub and Re-sync.
Skills can also be shared by grant, and promoted to the whole organisation by an administrator. Skill packs, the older form that imports skills from a git repository, are still accepted under Available.