TaskSkills

Authoring a skill

Write a skill in connect0 — the SKILL.md frontmatter and body, the six body kinds, and where in the dashboard to create one.

Updated 9/16/2026

A skill is a single SKILL.md-shaped document: YAML frontmatter that describes the skill, followed by a markdown body that is the work. This page walks through authoring one from the dashboard.

1. Open the skill editor

Go to /a/<account>/settings/skills and choose New skill, or open an agent's Skills tab to author one bound to that agent. The editor validates the frontmatter live, shows a preview of the discovery card the model will see, and its right rail answers two questions while you type:

  • Cost estimate — what one call and one month of this draft cost on the model it will run on: ≈ $0.0031 per call on ‹model› · was $0.0028 in v1.2 (+11%) and ≈ $31 / month at 10,000 calls (your last 30 days when the skill has run; a neutral scale otherwise). The badge says how exact the count is; Assumptions opens the model, the output-token figure and the rates behind it. When a draft costs more than a fifth more per call than the saved revision the panel says so, in dollars per month.
  • Inputs — the form a consumer sees, generated from inputs, with the schema's errors and warnings listed by line (the same underlines the YAML editor shows) and hints when the form would be hard to use. Fill it in and Run to render the body with those values before saving; View JSON shows the same payload raw.

2. Write the frontmatter

The frontmatter is the discovery card — it is loaded into the model's tool list at every turn, so keep it tight and concrete.

---
name: pr-recap
description: Summarise a GitHub PR's diff and comments in three bullets.
version: 0.4.2
when_to_use: When a user asks "what changed in PR #X" or wants standup prep.
inputs:
  pr_url:
    type: string
    format: uri
    required: true
outputs:
  summary:
    type: string
---

name, description, version, and when_to_use are required. inputs and outputs are maps of field name → field (type — string, number, integer, boolean, object, array — plus description, format, required, enum, default, items, properties); the runtime validates the caller's input against inputs before the skill runs, and the editor underlines anything outside that shape. name is the skill's slug (kebab-case). Make when_to_use specific — it is the hint the model uses to decide when to reach for the skill.

3. Pick a body kind

The body kind determines what running the skill actually does. There are six, each mapping to one runtime:

Body kindWhat the body isRuns as
promptA prompt template with {{var}} substitutionThe agent's current model
model_callA user-message templateOne call to a chosen catalog model
mcp_toolHuman-facing descriptionA passthrough to an MCP tool
integration_actionDescriptionOne call through a connector
scriptA fenced code block (or sidecar file)A sandboxed script in /workspace
compositionA description of the stepsA linear pipeline of other skills

The most common kind is prompt — the body is the instruction:

Summarise the following PR for a standup. Return three bullets:
what changed, why, and any risk.

{{pr_url}}

For a model_call or integration_action skill, declare the binding in frontmatter (the catalog model slug, or the connector the action runs through) so the skill is self-contained.

4. Save — every save is a revision

Saving creates a new revision and points the skill at it. History is the full revision list, so you can diff and revert. Recommend semver-ish version strings; imported skills inherit their upstream version.

Where to go next

What this does not do

  • A saved skill is not attached to any agent — add it to the agent's tool belt yourself.
  • The editor validates frontmatter and body shape, not whether the skill works; run it from an agent to find out.
  • The cost estimate counts the body as written — `{{var}}` placeholders, not the values a caller sends — with the OpenAI tokenizer; it is exact for OpenAI models and marked approximate for others.
  • A skill cannot grant itself connections or credentials; the agent's own grants apply at call time.
  • Composition and script kinds run inside the sandbox limits (time, output size); a long job belongs in a den, not a skill.

Ask Zero

Ask a question about connect0 and get an answer grounded in the docs, with links to the sources. Signed in? Zero answers with your account in mind.