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

# Skill library

> Browse every skill, command, and prompt definition Weave detects across your organization, with quality ratings and invocation counts

The skill library lists every Claude Code skill, slash command, and prompt definition Weave finds across your organization — what each one contains, how good the prompt is, and how often it actually gets used.

Find it at **Reports → AI → Skill library**.

## Two independent signals

This is the single most useful thing to understand about the page: a row can appear from either of two sources, and they have completely different requirements.

| Column | Comes from | Requires |
| - | - | - |
| **Skill name, source, repository, quality, prompt content, version history** | Definition files committed in your connected repositories | A [connected code platform](/code-platforms/overview) |
| **Invocations, last used, top arguments** | Telemetry captured when a skill runs | The [Claude Code plugin](/tutorials/weave-plugin-installation) or [Cursor plugin](/tutorials/weave-plugin-installation) |

They are matched by skill name. A skill can therefore show up with a definition and zero invocations, or with invocations and no definition at all.

<Note>
  Invocation counts need a **plugin**, not org-level telemetry. If you send
  Claude Code OTLP metrics through your own collector, you'll get cost, lines of
  code, and adoption — but no skill or tool-call signal, so every skill shows 0
  invocations until the plugin is installed. See [Claude Code
  plugin](/tutorials/weave-plugin-installation).
</Note>

## Where Weave looks for definitions

Weave scans the default branch of every connected repository. Two locations are built in and always scanned:

| Path | Skill name comes from |
| - | - |
| `.claude/skills/<name>/SKILL.md` | the containing directory (`<name>`) |
| `.claude/commands/<name>.md` | the filename |

Only `SKILL.md` is read from `.claude/skills/` — a `README.md` or `reference.md` next to it is treated as supporting material for that skill, not as a skill of its own.

### Skills that live outside those folders

If your skills live somewhere else in a repository, add the folder under **Settings → Organization → Skill detection**, one path per line:

```
global-claude/skills/
tools/skills/
```

Rules for these entries:

* They are folders **inside your repositories, relative to the repository root**. They are not paths on a developer's machine — `~/.claude/skills` refers to a laptop Weave cannot see, and is rejected.
* Literal prefixes only. Globs (`*`, `?`, `[`), absolute paths, and `..` segments are rejected.
* Lines starting with `#` are comments.
* Up to 50 entries, each up to 200 characters.

Under a custom folder Weave accepts both `<name>/SKILL.md` and a bare `<name>.md`, so flat command-style folders work too. Two kinds of markdown are skipped so they don't show up as skills:

* Files sitting next to a `SKILL.md` — a `reference.md` inside a skill's own directory is that skill's supporting material.
* Unambiguous repository documentation: `README`, `CONTRIBUTING`, `LICENSE`, `CHANGELOG` and similar. Names that could plausibly be a real skill (`reference.md`, `index.md`) are kept when they stand alone.

Changes apply on the next repository sync.

<Note>
  Skills installed only on a developer's machine — under `~/.claude/skills`, or
  symlinked in from a global location — are **not** detected. Weave reads
  committed file content, and git stores a symlink as a pointer rather than the
  file it points at. To get definitions for a globally distributed skill
  library, connect the repository you publish it from.
</Note>

## Limits

* **50 skill files per repository.** Built-in `.claude/` locations are scanned first, so custom folders never crowd them out.
* **100 KB per file.** Larger definitions are skipped.
* Files are read from the default branch only.

## Skills with usage but no definition

A skill that has been invoked but has no matching definition file appears with the source **Usage only**. The name and counts are accurate; there's no prompt content, quality rating, or version history because Weave never found a file for it.

This is expected when a skill is installed globally on developer machines rather than committed to a connected repository.

<Note>
  Invocation counts are attributed to the repository the Claude Code session ran
  in. When the same skill name is defined in more than one repository, each row
  shows invocations for that repository only. Invocations from a globally
  installed skill run outside a tracked checkout may appear as **Usage only**
  with no matching definition file.
</Note>

## Prompt quality

Each detected definition is scored for prompt quality with a confidence level, using the same classifier as [conversation prompt quality](/metrics/conversation-prompt-quality). Re-scoring happens when the file's contents change; the skill detail panel keeps the version history, so you can see how a prompt evolved.

## Related

* [AI skills report](/reports/ai-skills) — how effectively engineers work with AI, a separate report from this one
* [Claude Code plugin](/ai-tools/claude-code-plugin) — required for invocation counts
* [Cursor plugin](/ai-tools/cursor-plugin) — the Cursor equivalent


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