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

# Install a Skill in 5 Minutes

> Tutorial: pick a skill with a verified benchmark from the public registry, install it into Claude Code or Cursor, and watch it fire — no signup, no SDK, no API key.

You use Claude Code or Cursor. This tutorial installs one skill from the public registry — a skill with a *measured, verified* benchmark, not just stars — and shows it firing in your next session. No account, no SDK, no API key, under 5 minutes.

A **skill** is a `SKILL.md` file: instructions your agent reads when a matching task comes up (a triage policy, an extraction schema, a commit-message convention). It's an open format your runtime already understands — DecimalAI's registry adds the part no file format can: **evidence that the skill actually works**.

<Steps>
  <Step title="Read the scorecard (1 minute)">
    Open the skill's public page — no login:

    **[app.decimal.ai/skills/support-ticket-kit](https://app.decimal.ai/skills/support-ticket-kit)**

    Before installing anything, read the two surfaces that make this registry different:

    * **Verified lift: +40 pts pass rate** — with the skill, the benchmark agent passed 100% of cases; without it, 60%. That's a with-vs-without A/B run (an *ablation*) over **25 code-graded cases**, executed by the hosted runner — not self-reported by the author. `never_hurt` means no case got worse with the skill loaded.
    * **The fine print that keeps the number honest** — the model it was measured on (`gemini-3.5-flash`), the benchmark date, and the grading method are all on the page. Lift is model-relative: a stronger base model may need a given skill less. The registry shows you the evidence instead of asking you to trust a score.

    Also check the **safety band**: this skill is **Passed** — a static scan (secrets, remote-code execution, hidden unicode), an AI intent review, and a content review all came back clean. [How skills are vetted](/guides/trust-safety/how-skills-are-vetted) covers what that does and doesn't guarantee.

    <Note>
      Why this skill for the demo: `support-ticket-kit` carries a complete internal triage policy for a fictional company. No model can know a company's internal policy — so when your agent answers correctly, you *know* the skill fired. It's a worked example of the general pattern: skills earn lift by supplying knowledge the model can't have.
    </Note>
  </Step>

  <Step title="Install it (pick one of three)">
    All three routes are anonymous and end in the same place: a `SKILL.md` on disk where your runtime auto-discovers it.

    <Tabs>
      <Tab title="npx (recommended)">
        One command, zero install — Node 18+ is the only requirement:

        <Note>
          **Launch wave** — the npm package is rolling out with the current launch. If npm can't find `decimalai` yet, use the CLI-pull or web tab and check back shortly.
        </Note>

        ```bash theme={null}
        npx decimalai add support-ticket-kit
        ```

        This fetches the skill from the public registry and writes `.claude/skills/support-ticket-kit/SKILL.md` (plus any bundled attachments), stamped with provenance frontmatter (`source` + `source_sha256`) and pinned in `.decimal/skills.lock.json` so you can always tell exactly which version you're running.

        Using Cursor or another `.agents/skills/`-scanning runtime? Point it there:

        ```bash theme={null}
        npx decimalai add support-ticket-kit --dir .agents/skills
        ```
      </Tab>

      <Tab title="CLI pull">
        If you have Python around, the DecimalAI CLI pulls skills anonymously — no API key:

        ```bash theme={null}
        pip install decimalai
        decimalai skills pull support-ticket-kit --out .claude/skills/
        ```

        Writes `.claude/skills/support-ticket-kit/SKILL.md` — plus the skill's `eval.yaml` test suite, so you can [re-run the benchmark yourself](/guides/skillevaluation). Read-only: no fork is created, nothing is tracked.
      </Tab>

      <Tab title="Web copy-paste">
        On the [skill's page](https://app.decimal.ai/skills/support-ticket-kit), use the **Copy SKILL.md** button and paste into a new file at `.claude/skills/support-ticket-kit/SKILL.md`. The copy arrives with `name` + provenance frontmatter already stamped — add a `description:` line (your runtime discovers skills by `name` + `description`) so the final block reads:

        ```yaml theme={null}
        ---
        name: support-ticket-kit
        description: support ticket triage decisions per internal policy
        source: https://decimal.ai/s/support-ticket-kit@1
        source_sha256: e10b7e384146
        ---
        ```

        The `source` / `source_sha256` lines are the provenance stamp — the Copy button and the other install routes add it automatically; it records where the file came from and a fingerprint of the exact body you copied. Optional but worth keeping: see [Use skills without the SDK](/guides/use-skills-without-the-sdk#provenance-the-source-stamp).
      </Tab>
    </Tabs>
  </Step>

  <Step title="Watch it fire">
    Start a **new** Claude Code (or Cursor) session in the project — skills are discovered at session start. Then paste a task the skill was built for:

    ```text theme={null}
    Triage this internal IT support ticket and give me the label:

    "Hi IT — this is Dana on the GigaCorp account. We urgently need
    access to the shared drive before tomorrow's demo. Please expedite!"
    ```

    The skill's policy says VIP-client tickets that request **access** get `AUTO_REJECT` — they must go through the client's external vendor portal, not internal IT. That's deliberately counterintuitive: without the skill, every model reads "VIP + urgently" and answers some flavor of *urgent*.

    <Check>
      **What you should see:**

      * The transcript shows the agent reading `support-ticket-kit` (Claude Code surfaces the skill it loaded, or you'll see it open `.claude/skills/support-ticket-kit/SKILL.md`).
      * The answer is **`AUTO_REJECT`**, citing the VIP/access rule — not "urgent."
      * If you get an urgent-style label instead, the skill didn't load: check the file path and frontmatter, start a fresh session, or name it explicitly — "use the `support-ticket-kit` skill to triage this ticket."
    </Check>
  </Step>
</Steps>

## What just happened

You installed a plain-markdown skill your runtime already knows how to read, and you picked it off a scorecard instead of a download count. The policy in this particular skill is a worked example — fork it and swap in *your* rules before using it for real work (the benchmark methodology carries over; the fictional policy shouldn't).

## Next steps

<CardGroup cols={2}>
  <Card title="All the no-SDK routes" icon="route" href="/guides/use-skills-without-the-sdk">
    Web copy, CLI pull, npx, raw URLs, the MCP server, and the Claude Code plugin — one page.
  </Card>

  <Card title="Build a whole agent from skills" icon="robot" href="/tutorials/support-agent-from-skills">
    Assemble a billing & order support agent from five measured registry skills — and wire it so usage counts.
  </Card>

  <Card title="Browse the registry" icon="store" href="https://app.decimal.ai/skills">
    Every published skill, ranked by measured effectiveness. No login to browse.
  </Card>

  <Card title="How the numbers are made" icon="scale-balanced" href="/guides/skillevaluation">
    skillevaluation is the open spec + runner behind every verified lift number. Re-run any benchmark yourself.
  </Card>
</CardGroup>
