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

# Coding Agent skills

> Use a skill in a coding task, create reusable instructions, and manage private and shared skills in your organization's library.

export const OpenBetaBadge = ({tip = "This feature is currently in open beta. We are actively improving it based on your feedback. If you encounter any issues or have suggestions, please share them on our Discord community or visit the support page.", title = "Open Beta", cta = "Contact support", href = "/support", disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="badge-alert" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const BitbucketBadge = ({tip = "This feature is available on Bitbucket.", title = "Bitbucket", cta, href, disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="bitbucket" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const AzureBadge = ({tip = "This feature is available on Azure DevOps.", title = "Azure", cta, href, disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="microsoft" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const GitLabBadge = ({tip = "This feature is available on GitLab.", title = "GitLab", cta, href, disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="gitlab" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const GitHubBadge = ({tip = "This feature is available on GitHub and GitHub Enterprise.", title = "GitHub", cta, href, disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="github" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

<GitHubBadge /> <GitLabBadge /> <AzureBadge title="Azure DevOps" /> <BitbucketBadge title="Bitbucket Cloud" /> | <OpenBetaBadge tip="Coding Agent is in beta." />

## Overview

A **skill** is a reusable set of instructions for a coding task. It describes when to use a procedure, the steps to follow, and how to check the result. Use one for work you repeat — adding tests, reviewing a release, or applying your team's implementation conventions — without writing the same instructions every time.

You can choose a skill from the catalog or create your own. Manage your saved skills under **Code > Skills**, or go directly to [app.coderabbit.ai/code/skills](https://app.coderabbit.ai/code/skills).

## Use a skill in a task

<Steps>
  <Step title="Open the skill picker">
    On the new-task page, choose **Skill** under **Start with**. In a task's composer, use `/skill` or choose **Use a skill** from the attachment menu.
  </Step>

  <Step title="Choose a skill">
    Browse **Trending** or **Official**, or search the catalog. Open **My skills** for your private skills and the skills shared with your organization.
  </Step>

  <Step title="Describe the work">
    Select one skill, then add the request it should apply to. You can also send it without additional instructions to run the skill as written. The selected skill appears in the composer; remove it there if you change your mind before sending.
  </Step>
</Steps>

A skill can start a task or guide a follow-up in an existing task. If the agent is already working, a message with a selected skill is queued for a subsequent turn. It does not replace the running turn's instructions.

Catalog skills are checked for compatibility and security before use. If a skill is blocked or incompatible, the picker explains why it cannot be selected. Where an audit reports a risk, its badge links to the audit details.

## Create a skill

Open **Code > Skills** and choose **Create skill**. There are three ways to provide the instructions:

| Method             | What to provide                                                                            |
| ------------------ | ------------------------------------------------------------------------------------------ |
| **Write a skill**  | A name, a description of when to use it, and the instructions to follow.                   |
| **Import files**   | A `SKILL.md` file, a skill folder, or a ZIP containing the skill and any supporting files. |
| **Paste SKILL.md** | The complete Markdown, including its frontmatter.                                          |

Choose **Private — only you** or **Organization — all members** for access. New skills default to private. Select **Preview skill** to review the instructions and included files, then **Save skill** to add it to the library.

### Write a SKILL.md file

A skill needs a root `SKILL.md` with a `name` and `description` in its YAML frontmatter, followed by the procedure. Use lowercase letters, numbers, and single hyphens for the name, up to 64 characters.

```markdown SKILL.md theme={null}
---
name: add-regression-test
description: Add a focused regression test for a reported bug.
---

1. Read the bug report and the relevant code.
2. Find the existing tests and follow their conventions.
3. Add a test that reproduces the reported behavior.
4. Run the test and report the result, including any setup blockers.
```

Import a folder or ZIP when the skill needs supporting scripts, examples, or reference files. Keep those files alongside `SKILL.md` and refer to them with relative paths.

| Limit            | Value |
| ---------------- | ----- |
| Files per skill  | 512   |
| Size per file    | 1 MiB |
| Total skill size | 2 MiB |

## Share and manage skills

The library belongs to the selected organization. **My skills** includes both skills private to you in that organization and skills its members have shared.

| Action            | What happens                                                                 |
| ----------------- | ---------------------------------------------------------------------------- |
| **View skill**    | Read the instructions and supporting files.                                  |
| **Change access** | The owner switches a skill between private and organization access.          |
| **Update skill**  | The owner imports a new version of the skill.                                |
| **Archive**       | The owner removes the skill from the available list and picker.              |
| **Restore**       | The owner makes an archived skill available again from the **Archived** tab. |

A task uses the library version selected for that turn. Updating the skill does not replace the version already attached to existing work.

<Warning>
  A private skill can expose its instructions and outputs when you use it in a shared task. Making the skill private or archiving it later does not remove it from existing tasks. Use a [private task](/code/work-with-a-task#control-who-can-see-a-task) when its contents should stay visible only to you.
</Warning>

Skills run with the task's existing permissions. Sharing a skill does not grant additional repository access or change who can see a task.

## What's next

<CardGroup cols={1}>
  <Card title="Start a coding task" href="/code/start-a-task" icon="play" horizontal>
    Choose the repository and context for your first task with a skill.
  </Card>

  <Card title="Work with a running task" href="/code/work-with-a-task" icon="activity" horizontal>
    Follow the work, queue another skill, and review the result.
  </Card>

  <Card title="Coding environments" href="/code/environments" icon="container" horizontal>
    Prepare the toolchains and dependencies your skills need to run.
  </Card>
</CardGroup>
