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

# Creating Skills

> How to create skills that teach your agent to handle specific tasks

This guide shows how to create skills using three methods: asking the agent, using the dashboard, or via API.

<Info>
  New to skills? Read [Understanding Skills](/explanation/skills) first.
</Info>

## Where Skills Live

In this product, organization skills are stored in the backend database and scoped to your current organization.

* Create and edit them from the **Skills** page.
* The agent can also create and update them with `create_skill` and `update_skill_with_patch`.
* Each skill is still authored as full `SKILL.md` content (YAML frontmatter + Markdown body).

In addition to org-managed skills, the runtime includes one global built-in skill:

* `skill-creator-webmcp` at location `builtin://skill-creator-webmcp`

The built-in skill is shared across organizations and is read-only.

## Ask the Agent

The agent has a built-in `create_skill` tool. Describe the workflow you want to capture:

> "Create a skill for processing return requests. First verify the order exists, check if it's within 30 days and unused, generate a return label, then send confirmation."

To refine an existing skill:

> "Update the returns skill to require photo proof for items over \$100"

The agent uses `update_skill_with_patch` to make targeted edits.

## From the Dashboard

1. Go to **Skills** in the sidebar
2. Click **Create Skill**
3. Enter a name (lowercase, hyphens only)
4. Write a description of when the skill should activate
5. Add workflow steps in the body
6. Click **Save**

## From the API

See [Skill Schema — API](/reference/skill-schema#api) for endpoints and request formats.

## Writing the Description

The description determines when the agent loads the skill. Be specific:

| Vague              | Specific                                                                 |
| ------------------ | ------------------------------------------------------------------------ |
| `Handle orders`    | `Check order status, provide tracking links, explain delivery estimates` |
| `Customer support` | `Process returns, explain refund timelines, generate shipping labels`    |

## Writing the Body

Structure the body as numbered steps. Reference the tools the agent should use:

```markdown theme={null}
---
name: process-return
description: Process return requests by verifying eligibility and generating labels
---

# Process Return

## 1. Verify Order
- Use `orders.lookup` with order ID or customer email
- Confirm the order belongs to this customer

## 2. Check Eligibility
- Within 30 days of delivery
- Unused, original packaging
- Not a final-sale item

## 3. Generate Label
- Call `shipping.create_return_label`
- Save the tracking number

## 4. Confirm
- Send email with label and refund timeline (5-7 days)
```

## Testing

Ask the agent a question that should trigger the skill. If it doesn't activate:

* Check the description matches the question type
* Verify the name format (lowercase, no consecutive hyphens)
* Check for validation errors in the dashboard

## Next Steps

<CardGroup cols={2}>
  <Card title="Skill Schema" icon="file-code" href="/reference/skill-schema">
    Field definitions and validation rules
  </Card>

  <Card title="Understanding Skills" icon="book" href="/explanation/skills">
    How progressive disclosure works
  </Card>
</CardGroup>
