# Claude Skills

> Discovers and executes Claude Code skills (SKILL.md) from the current project and the user's personal Claude setup so they work in Cursor. Use when the user invokes a Claude slash command, mentions a Claude skill by name, asks to use a Claude Code workflow, or when a task clearly matches a Claude skill's description. Also use to list available Claude skills.

- Skill: `jesign/claude-skills` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jesign/claude-skills`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jesign/claude-skills/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: jesign (https://skillmd.com/u/jesign)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/jesign/claude-skills

---


# Claude Skills Bridge

Treat Claude Code skills as first-class Cursor skills. Discover them on disk, read the matching `SKILL.md`, and follow it immediately.

## Skill locations (search in this order)

1. **Project skills** — `<workspace>/.claude/skills/*/SKILL.md`
2. **Personal skills** — `~/.claude/skills/*/SKILL.md`
3. **Installed Claude plugins** — `~/.claude/plugins/cache/*/*/skills/*/SKILL.md`  
   (and any newer plugin skill paths under `~/.claude/plugins/`)

If a skill name exists in more than one place, prefer **project** over **personal** over **plugin**.

## When this applies

- User runs a Claude-style command: `/skill-name …`
- User names a skill: "use my-deploy-skill", "run code-review on …"
- Task matches a Claude skill description already on disk
- User asks what Claude skills are available

If Cursor already lists a matching path under `available_skills`, read that path. Otherwise discover via the locations above.

## Workflow

### 1. Discover (only if needed)

List skill dirs / `SKILL.md` files from the locations above. For a quick inventory:

```bash
# Project
find "$WORKSPACE/.claude/skills" -name 'SKILL.md' 2>/dev/null

# Personal
find "$HOME/.claude/skills" -name 'SKILL.md' 2>/dev/null

# Plugins
find "$HOME/.claude/plugins" -path '*/skills/*/SKILL.md' 2>/dev/null
```

Read only the YAML `name` + `description` (and optional `argument-hint`) from each `SKILL.md` when listing. Do not load full skill bodies until one is selected.

### 2. Select

Match by:
- Slash command / folder name (`my-skill.local` → `my-skill`)
- Frontmatter `name`
- Description trigger phrases

If multiple skills match and the intent is ambiguous, ask which one. If none match, say so and offer the inventory.

### 3. Execute

1. **Read the full `SKILL.md` with the Read tool** before doing the task. Do not rely on memory or a partial summary.
2. **Follow it as the source of truth** — same steps, tools, output format, and constraints.
3. **Resolve `${CLAUDE_SKILL_DIR}`** to the directory that contains that skill's `SKILL.md` (not the repo root). Example: for  
   `~/.claude/plugins/cache/example-tools/example/0.1.0/skills/example-skill/SKILL.md`  
   → `CLAUDE_SKILL_DIR` = that `example-skill` directory. Rewrite script paths accordingly before running them.
4. **Load linked files** the skill references (e.g. `reference.md`, scripts) only as needed.
5. **Adapt tools, not the workflow** — if the skill names Claude-only tooling, use the closest Cursor equivalent (Shell, MCP, browser tools, etc.) while keeping the same procedure and success criteria.
6. **Mention which Claude skill you are following** (name + path) once at the start of the work.

### 4. List-only requests

When the user asks what Claude skills exist, return a compact table:

| Name | Source | Description (short) | Path |

Sources: `project` | `personal` | `plugin:<plugin-id>`.

## Conventions

- Folder suffixes like `.local` are still valid skills; match them by base name or full folder name.
- Claude plugin skills may declare `allowed-tools` with Bash/node scripts — run those scripts via Shell after resolving `CLAUDE_SKILL_DIR`.
- Do not copy Claude skills into `~/.cursor/skills/` unless the user asks; bridge by reading in place.
- Do not create duplicate project docs about this bridge.

## Examples

**User:** `/my-skill some-arg`  
→ Read `<workspace>/.claude/skills/my-skill/SKILL.md` (or `my-skill.local`) and follow it.

**User:** "Use the example-skill from my Claude plugin"  
→ Read that skill from `~/.claude/plugins/.../skills/example-skill/SKILL.md` and follow it.

**User:** "What Claude skills do I have?"  
→ Inventory project + personal + plugin skills; do not execute any.

