> ## Documentation Index
> Fetch the complete documentation index at: https://datagen.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Upload skill folders to the workspace registry, review and approve them, and install them on agents, knowledge bases and apps

A **skill** is a reusable procedure packaged as a folder: a `SKILL.md` with instructions, plus any scripts, templates or reference files it needs. Skills go through a review step before anything can use them, so a workspace controls which instructions its agents follow.

The flow is always the same: **upload** a skill folder, a reviewer **approves** it, then you **install** the approved version where it is needed.

Open **More → Skills** in the sidebar (`/signalgen/skills`). The page has two tabs: **Skills** (approved skills) and **Review queue** (pending submissions).

## Prepare a skill folder

A skill folder looks like this:

```text theme={null}
weekly-report/
├── SKILL.md
├── template.md
└── scripts/
    └── build_report.py
```

`SKILL.md` starts with frontmatter:

```markdown SKILL.md theme={null}
---
name: weekly-report
description: Write the weekly pipeline report in the house format. Use when asked for a weekly summary, status report or pipeline update.
---

# Weekly report

1. Load this week's numbers ...
2. Fill in template.md ...
```

The upload is validated before it is accepted:

| Rule | Limit |
| - | - |
| Folder name (the skill name) | Lowercase letters, digits and `-`, starting with a letter or digit, up to 64 characters |
| `SKILL.md` | Exactly one, at the folder root, with a non-empty body |
| `name` in frontmatter | Optional; if present, must match the folder name |
| `description` in frontmatter | Required, up to 1,536 characters |
| Size | Up to 100 files, 1 MiB per file, 5 MiB in total |
| Not allowed | `.git`, `.hg`, `.svn`, `node_modules` and `.claude-plugin` folders; `.mcp.json`, `settings.json` and `settings.local.json` files |

`__MACOSX` folders and `.DS_Store` files are ignored. Two conditions produce **warnings** for the reviewer rather than errors: a `SKILL.md` longer than 500 lines, and a `SKILL.md` that uses dynamic shell context injection.

<Tip>
  Write the `description` as "what it does, and when to use it". It is what an agent reads to decide whether the skill applies.
</Tip>

## Upload a skill

<Steps>
  <Step title="Open the upload dialog">
    On the Skills page, click **Upload skill**.
  </Step>

  <Step title="Choose the target harness and visibility">
    * **Target harness**: the agent runtime the skill is written for, **Claude Agent SDK** or **Codex**. See [Harness](/foundation/harness).
    * **Visibility**: **Workspace** keeps the skill in this workspace. **Public** offers it to every workspace once a platform administrator approves it.
  </Step>

  <Step title="Add the folders">
    Pick a skill folder, or drag and drop one or more folders onto the dialog. Each folder must contain its own `SKILL.md`.
  </Step>

  <Step title="Submit">
    Click **Submit for review**. Each skill appears in the **Review queue** as a pending version.
  </Step>
</Steps>

Uploading a folder with the same name again submits the next version (v2, v3, ...). Each version is reviewed on its own. Only the skill's creator or an administrator can submit a new version of a public skill.

## Review: approve or reject

Open the **Review queue** tab. Under **Pending review**, each submission shows its version, who uploaded it, and how many validation warnings it has. Open a submission to see the **Validation review** and browse its **Files** before deciding.

Click **Approve** or **Reject**.

| Skill visibility | Who can approve or reject |
| - | - |
| **Workspace** | Workspace **Admins** of that workspace, and platform administrators |
| **Public** | Platform administrators only, because approving publishes the skill to every workspace |

Approving a version makes it the skill's current version, and it appears in the **Approved skills** table on the **Skills** tab with its visibility, version, author, reviewer and harness.

### Revoke

A platform administrator can **revoke** an approved version. A revoked version can no longer be installed, the skill falls back to its most recent remaining approved version, and existing installs show a **Revoked** badge so you know to update or remove them.

<Note>
  Approval is about the skill's content. Installing it is a separate decision made on each agent, knowledge base or app, and requires the **Admin** or **Builder** role there.
</Note>

## Install a skill

Approved skills can be installed in three places. Where you install a skill decides who uses it.

| Install on | Where | Who uses it | Shipped with the result? |
| - | - | - | - |
| **Agent** | Agent's **Tools** tab → **Skills** | The agent, on every run | Yes. Copied into the agent's `.claude/skills/` and part of its files |
| **Knowledge base** | Knowledge base's **Skills** tab | The AI Context Builder only | No. Never published to `.context/<slug>/` |
| **App** | App's **Tools & knowledge** tab → **Skills** | The App Builder only | No. Never published with an app version |

<Tabs>
  <Tab title="Agent">
    Open the agent, then the **Tools** tab. In the **Skills** card, search for an approved skill, select it, and click **Add**. The skill is copied into the agent's `.claude/skills/` and loads into the sandbox on every run.

    Agents connected to a GitHub repository cannot install registry skills from this card. Add the skill folder to the repository's `.claude/skills/` instead.
  </Tab>

  <Tab title="Knowledge base">
    Open the knowledge base, then the **Skills** tab. Search the approved skills and click **Install**. The builder can use it right away, including in a session that is already open, and the builder's **Skills** list shows what is installed.

    Use this for skills that help **build** the knowledge base, such as a house style for summaries or a script that converts a file format.
  </Tab>

  <Tab title="App">
    Open the app, then the **Tools & knowledge** tab. Under **Skills**, search the approved skills and click **Install**. The skill lives only in the App Builder's sandbox.
  </Tab>
</Tabs>

### Versions and updates

Each install is **pinned** to the version you installed. When a newer version is approved, the install shows **Update available** (on an agent, an **Update** button with both version numbers). Updating is explicit, so an approval never changes a running agent without someone deciding to.

To remove a skill, click the remove button next to it. The skill stays in the registry.

<Warning>
  Skill names that match a skill built into the builder image -- such as `datagen-data` or `datagen-app-builder` -- cannot be installed on a knowledge base or app. Rename the skill folder and submit it again.
</Warning>

## Skills, knowledge bases or memory?

* Use a **skill** for **how** to do something: a procedure, a format, a script.
* Use a **knowledge base** for **what** is true: policies, product facts, reference tables. See [Build a knowledge base](/context/build).
* Use **memory** for what an agent learns while working. See [Memory](/context/memory).

## Next

<CardGroup cols={2}>
  <Card title="Memory" icon="brain" href="/context/memory">
    Let agents record what they learn between runs.
  </Card>

  <Card title="Agents overview" icon="robot" href="/agents/overview">
    Put knowledge bases, skills and tools together in an agent.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.