---
title: Skills
description: Ad-ops playbooks your connected AI agents can run via the AdCrunch MCP server. Write them in the console, or import them from the Skill Catalog.
---

A **Skill** is an ad-ops playbook — a set of instructions that teaches an MCP-connected agent how to run a workflow using AdCrunch's own tools (for example: "pull the last 14 days of Meta campaigns, then flag anything over target CPA"). You write a Skill once; every teammate's connected agent can run it consistently, with no copy-paste.

Skills are **private to your organization**. New organizations start with an empty Skills store. AdCrunch also writes playbooks of its own, in the [Skill Catalog](#the-skill-catalog). You can import one into your organization as a Skill.

## Manage Skills in the console

Open **Skills** in the console sidebar. The app header shows **Skills**. The Skills page has two tabs. Each tab shows its count beside its name. A tab shows no count while the console reads the list, or when the read fails.

- **Your Skills** lists the Skills of your organization.
- **Skill Catalog** lists the playbooks that AdCrunch writes.

On **Your Skills**, each Skill is a card, and the whole card is a link to the page of the Skill. The cards show one column on a narrow page and two columns on a wide page, sorted by name. Each card shows:

- The name of the Skill, and its handle with a leading `/`, for example `/brand-brief-check`. You type the handle with a `/` to run the Skill in an AI client.
- The description, in at most two lines. Point at it to read the full text.
- The source: **Written** for a Skill that you wrote, or **Catalog v** and the version for an imported Skill.
- **Later version**, when the Skill Catalog has a later version of the Catalog Skill. See [Re-import a later version](#re-import-a-later-version).

An organization with no Skills sees **Browse the Skill Catalog** and **New skill**.

On the Skills page, you can:

- **Create** a Skill with **New skill**. It opens [the Adgent](/console/adgent) beside the list, and sends it "I want to create a new Skill." The Adgent asks you what the playbook does, and when an agent must use it. It then writes the Skill at once, and the page of the new Skill opens on the left of the screen.
- **Create** a Skill with the form: Cmd-click **New skill** (Ctrl-click on Windows and Linux). The form asks for a name, a description (what an agent reads to decide when to use it), and a body (the markdown instructions). The handle comes from the name.
- **Import** a Skill from the Skill Catalog. See [Import a Catalog Skill](#import-a-catalog-skill).
- **Edit** a Skill on its own page. See [The page of a Skill](#the-page-of-a-skill).

## The page of a Skill

The app header shows the path, **Skills / the name of the Skill**. The page has no tabs. One row holds the state of the saves and a **⋯** menu with **Delete skill…**.

The main column shows the name, the description and the body, and you edit each one in place. There is no **Save** button:

- The name and the description save when you leave the field, or when you press Enter. If you leave one of them blank, it goes back to the saved text.
- The body is a Markdown editor. It saves one second after you stop typing. A body has at most 50,000 characters.
- A Skill needs instructions. If you empty the body, the editor shows "A skill needs instructions." and the page does not save the body.
- The handle saves at once, from the rail.

Only what you changed is sent. The top row says **Saving…**, **Saved** or **Not saved**. After **Not saved**, **Try again** sends your edits again.

On a narrow screen, the rail shows between the description and the body.

### If an agent changes the Skill while you edit

A connected agent can write a Skill, so this race is real. When your save is refused, the page reads the Skill again and keeps your writing. It folds in the fields that the agent changed and saves your edits once more.

### The rail

| Property | What it is |
| --- | --- |
| **Handle** | The handle agents use, with a copy button. A new handle changes the address of the page. A handle that another Skill of your organization uses is refused. The old handle stays, and the window shows the error. |
| **Source** | Shown on an imported Skill only. It names the Catalog Skill and the version that you imported. When a later version exists, it shows **Re-import**. See [Re-import a later version](#re-import-a-later-version). |
| **Created by** | Who created the Skill. You cannot change it. |

## The slug is the agent handle

Every Skill has a **slug**, its stable, per-organization handle. The rail calls it **Handle**. Agents fetch a Skill by slug (`skill_get` with `skill_name: "weekly-meta-audit"`). The slug comes from the name when you create the Skill.

:::warning[Changing the handle is a rename]

A new handle changes the handle that agents use. Any agent or saved prompt that referenced the old slug needs updating.

:::

## The Skill Catalog

The **Skill Catalog** holds the playbooks that AdCrunch writes. Each playbook in it is a **Catalog Skill**. The **Skill Catalog** tab of the Skills page lists the current Catalog Skills.

A Catalog Skill is not a Skill of your organization, and an agent cannot read it. An agent reads only the Skill that you import from it.

Each Catalog Skill shows its name, its description, and its **version**, with two actions: **View** and **Import**. The version is a date, for example `2026-10-09`. A later date is a later version. The version is not the revision of a Skill: the revision counts the edits of one Skill of your organization.

A Catalog Skill gives an agent no new access. Each tool that the playbook names checks its own scope. For example, a Catalog Skill that pauses ads can pause an ad only when the agent has the `mutation:write` scope.

### Import a Catalog Skill

To read the playbook before you import it, click **View** on the Catalog Skill. A side sheet shows the playbook, rendered from its Markdown, with its version and **Import**. If the read fails, the sheet shows a message and **Try again**.

To import, click **Import** on the Catalog Skill, or in the sheet. One click is enough:

1. AdCrunch makes a Skill in your organization from the name, the description, and the body of the Catalog Skill. The Skill keeps the handle of the Catalog Skill.
2. The page of the new Skill opens.

On the Skill Catalog tab, the Catalog Skill now shows **Imported as** _handle_, a link to your Skill. When the Skill Catalog has a later version, the card also shows "· version _version_ available". The page of the Skill has the **Re-import** action.

The import is a copy. Your organization owns it, and an agent can use it at once, as any other Skill.

Your organization holds at most one import of each Catalog Skill. When your organization has an import of it, the Skill Catalog tab shows **Imported as** _handle_ in place of **Import**. To import the Catalog Skill again, delete that Skill first.

Each member who can write Skills can import a Catalog Skill and re-import it.

### If the slug is taken

A handle is unique in your organization. If a Skill of your organization has the handle already, the import makes no Skill, and a dialog opens. The dialog asks for another **Handle** and shows "A Skill of your organization has the handle _handle_. Give another handle." Type another handle, and click **Import** again.

The new Skill has a different handle, and it still records the Catalog Skill as its source.

### Edit an imported Skill

Edit an imported Skill on its page, as you edit any other Skill. You can change its name, its description, its body, and its handle, or delete it.

The rail of an imported Skill shows its **Source**: the Catalog Skill, and the version that you imported. An edit keeps the source.

:::info[Agents see a plain Skill]

An agent does not see the source. [`skill_list`](/mcp/tools/skill-list), [`skill_get`](/mcp/tools/skill-get), and [Prompts](/mcp/prompts) show an imported Skill as any other Skill. No MCP tool reads the Skill Catalog or imports from it.

:::

### Re-import a later version

AdCrunch can publish a later version of a Catalog Skill. Your Skill does not change when it does. A later version gets to your organization only when you re-import it.

When the Skill Catalog has a later version, the Source of your Skill shows **Re-import** _version_. To re-import:

1. Click **Re-import** _version_. A dialog tells you what the re-import replaces.
2. Click **Re-import** to confirm.

The re-import replaces the name, the description, and the body of your Skill with the later version. The page shows the re-imported text. The slug stays the same, so each agent finds the Skill with the same handle. The source then shows the later version.

The re-import also discards the edits that the page has not saved yet.

:::warning[A re-import replaces your edits]

The re-import does not merge. Each edit that your organization made to the name, the description, or the body is lost. Copy the text that you want to keep before you re-import. If you do not re-import, your Skill stays as it is, and agents can use it.

:::

If somebody saved the Skill after you opened it, the re-import makes no change. The console reloads the Skill. Read it, then re-import again.

### No longer in the Skill Catalog

AdCrunch can remove a Catalog Skill from the Skill Catalog. Each Skill that your organization imported from it stays as it is, and it keeps its source. Agents can use it as before.

The Source of such a Skill shows **No longer in the Skill Catalog**, and the console offers no re-import.

:::info[The same operations in the API]

The console uses the Context API. To list the Skill Catalog, read one Catalog Skill with its body, import a Catalog Skill, or re-import a Skill from your code, see [List the Skill Catalog](/api/skills/list-skill-catalog), [Get a Catalog Skill](/api/skills/get-catalog-skill), [Import a Catalog Skill](/api/skills/import-catalog-skill), and [Re-import a Skill](/api/skills/reimport-skill).

:::

## Agents can edit Skills too

A connected agent with the `skill:write` scope can create, edit, and delete Skills over MCP, also in the middle of a conversation. It cannot import a Catalog Skill or re-import a Skill: no MCP tool does that. To keep a human edit and an agent edit from clobbering each other, every save is guarded by a revision: if the Skill changed since you opened it, the console keeps your writing and folds in the agent's change instead of overwriting it.

:::info[Run a Skill from your AI client]

See the MCP side of this: [Prompts](/mcp/prompts), which runs a skill from the slash menu of your AI client, and the [`skill_*` tool reference](/mcp/tools/skill-list).

:::
