GC
User Guide / SkillsMenu
5 min read·Updated 2026-04-10

Skills

Skills are sticky overlays that inject instructions and optional MCP tool servers into agent sessions.

Mental model

A skill is a temporary overlay on a session. When activated, it injects instruction text into the session context and, optionally, launches an MCP tool server whose tools become available alongside native tools. When deactivated or when the session ends, the overlay is dropped.

Activation is sticky: once a skill is active, its instructions stay in context across multiple turns. The reader should think of a skill as a temporary mode the agent enters — not as a per-turn prompt template.

Why skills are sticky

Skills are sticky because most useful behaviors require more than one turn to play out: a code review touches multiple files, an onboarding assistant walks the user through a sequence, a research skill accumulates context. Per-turn prompt injection would force the user to repeat the activation command on every message. Sticky activation collapses that friction into a single decision.

Writing a SKILL.md

A skill lives on disk as a directory under workspace/skills/ with a required SKILL.md file. The YAML frontmatter declares metadata, optional tier override, and optional MCP server. The Markdown body is the instruction text injected into the session.

Skill directory layout
text
workspace/skills/my-skill/
├── SKILL.md          # Required: instructions + metadata
├── scripts/          # Optional: helper scripts
├── templates/        # Optional: document templates
└── resources/        # Optional: reference files
SKILL.md — full contract
yaml
---
name: github-assistant
description: Work with GitHub via MCP
tier: coding
mcp:
  command: npx -y @modelcontextprotocol/server-github
  env:
    GITHUB_PERSONAL_ACCESS_TOKEN: ${GITHUB_TOKEN}
  startup_timeout: 30
  idle_timeout: 10
---

Use the available MCP tools to work with GitHub.
Focus on the repositories the user asks about.
When creating issues or PRs, summarize first and ask for confirmation.

name

Skill identifier. Lowercase, alphanumeric with hyphens. Must be unique across the workspace.

Required

description

Short description shown in the marketplace and /skills list.

Required

tier

Override the active tier when the skill is in effect (balanced, smart, coding, deep).

Optional

mcp

Declare an MCP server: command, env, startup_timeout, idle_timeout. Started on activation.

Optional

Activation lifecycle

A skill moves through four states.

  • Installed — the directory exists on disk, metadata is parsed, skill is visible in the marketplace. Not affecting any session.
  • Activating— a user, chat command, or the agent's skill_management tool triggered the skill. Frontmatter is parsed, tier is overridden if declared, MCP server (if any) is started and handshaked.
  • Active— instructions are in context, MCP tools are exposed. Subsequent turns see the skill's effect.
  • Deactivated — the skill was dismissed or the session ended. The MCP server is stopped after its idle timeout. Instructions are removed from the next context build.

Activation can also be triggered from the Skills page in the dashboard or via the /skills chat command.

Installing and creating

Install skills from Settings → Skills Marketplace (or use /skills in chat to list and activate installed skills). Custom skills appear automatically when you add a directory under workspace/skills/ with a valid SKILL.md.

Minimal SKILL.md (no MCP, no tier)
yaml
---
name: code-reviewer
description: Review code for bugs and style issues
---

Review the provided code for:
- Logic errors and edge cases
- Style violations
- Missing error handling

Recipe for the MCP pattern

Creating a skill that launches an MCP server is the common path. Step-by-step with token setup, activation, and verification lives in Cookbook → Connect GitHub via MCP.

What can go wrong

Common issues

  • Skill not appearing. The marketplace only lists directories with a readable SKILL.md and valid YAML frontmatter. Check workspace/skills/<name>/SKILL.md exists and parses.
  • Name conflict. Skill names must be unique. The marketplace rejects duplicates at load time.
  • MCP server fails to start. See MCP Servers for the full lifecycle and the check/fix table.

What to do next