# How to Install Distilled Skills into Claude Code or Cursor Skills Directory

> Easily install distilled skills into Claude Code or Cursor by copying skill folders to your skills directory. Learn the simple steps for user-level, project, or Cursor installations.

- Repository: [kangarooking/cangjie-skill](https://github.com/kangarooking/cangjie-skill)
- Tags: how-to-guide
- Published: 2026-08-13

---

**Copy (or symlink) the skill folder from `books/<book-slug>/<skill-slug>/` to your target skills directory—`~/.claude/skills/` for user-level access, `<project>/.claude/skills/` for Claude Code projects, or `.cursor/skills/` for Cursor projects.**

The **cangjie-skill** pipeline transforms books, video transcripts, podcasts, and courses into atomic, reusable skills. Each skill is a self-contained folder with a canonical [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) and [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json). To make these skills available to Claude Code or Cursor, you must install them into the appropriate skills directory. Below are the exact paths, copy commands, and verification steps as implemented in the [`kangarooking/cangjie-skill`](https://github.com/kangarooking/cangjie-skill) source.

## Understanding the Skill Output Structure

After the pipeline's **delivery stage**, every generated skill resides at:

```

books/<book-slug>/<skill-slug>/

```

Inside each folder you'll find:

- [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) — the canonical skill definition with system prompt and guidelines
- [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) — validation prompts used to verify the skill triggers correctly

The pipeline asks **once** which installation target you prefer, then generates copy commands accordingly ([`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md), lines 48-52). You can also skip installation entirely to keep skills as repository artifacts.

## Installation Target Paths

Choose your destination based on scope and editor:

| Installation target | Path pattern |
|---------------------|--------------|
| **User-level** (global, all projects) | `~/.claude/skills/<skill-slug>/` |
| **Project-level** for Claude Code | `<project-root>/.claude/skills/<skill-slug>/` |
| **Project-level** for Cursor | `<project-root>/.cursor/skills/<skill-slug>/` |

The copy commands are baked into `templates/INDEX.md.template` (lines 63-66):

```bash
cp -r {{skill-slug-1}} ~/.claude/skills/          # user-level

cp -r {{skill-slug-1}} <project>/.claude/skills/  # Claude Code project-level

cp -r {{skill-slug-1}} .cursor/skills/            # Cursor project-level

```

## Copying Skills: Practical Examples

### Example 1: Install a Single Skill (User-Level Claude Code)

```bash

# From the cangjie-skill repository root

cp -r books/clean-code/naming-conventions ~/.claude/skills/

```

The skill is now available to Claude Code in any project on your machine.

### Example 2: Batch Install All Verified Skills (Cursor Project-Level)

```bash

# From your target project root

mkdir -p .cursor/skills

for d in /path/to/cangjie-skill/books/*/*; do
    if [ -f "$d/test-prompts.json" ]; then
        cp -r "$d" .cursor/skills/
        echo "Installed: $(basename "$d")"
    fi
done

```

This loop only copies skills that passed validation (presence of [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) confirms completion of earlier pipeline stages).

### Example 3: Symlink Instead of Copy (Development Workflow)

```bash

# Keeps the skill in the repo; editors see live changes

ln -s "$(pwd)/books/design-patterns/strategy-pattern" ~/.claude/skills/strategy-pattern

```

Symlinks are ideal when iterating on skill content before finalizing.

## Verifying the Installation

The pipeline's delivery stage (step 4) verifies at least one skill triggers with a one-sentence `should_trigger` prompt. Replicate this check manually:

```bash
cd ~/.claude/skills/naming-conventions

# Extract a test prompt from the skill's validation file

jq -r '.should_trigger[0]' test-prompts.json | claude-cli --run

```

Successful execution confirms:

1. The skill is in the correct directory structure
2. [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) is properly formatted and parseable
3. The trigger conditions match natural language inputs

If testing in Cursor, use the Cursor CLI or invoke the skill through the editor's agent panel with a matching prompt.

## Key Files in the Repo

| File | Purpose |
|------|---------|
| [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md) | Detailed installation process and user interaction flow |
| `templates/INDEX.md.template` | Template generating the actual `cp -r` commands |
| [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) | Skill specification format, including installation requirements |
| [`README.md`](https://github.com/kangarooking/cangjie-skill/blob/main/README.md) | Pipeline overview with delivery stage summary |

## Summary

- **Install location**: `~/.claude/skills/` (global), `.claude/skills/` or `.cursor/skills/` (project-level)
- **Source format**: Each skill is a folder with [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) + [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) under `books/<book-slug>/<skill-slug>/`
- **Copy method**: Use `cp -r` for permanence, `ln -s` for development; commands are pre-generated in [`INDEX.md`](https://github.com/kangarooking/cangjie-skill/blob/main/INDEX.md)
- **Validation**: Pipeline verifies triggerability automatically; manual check uses [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) entries

## Frequently Asked Questions

### Can I install skills without copying them out of the repository?

Yes. Skip the copy step entirely if you prefer to keep skills as repository artifacts—for example, to version-control them on GitHub or share across teams. The pipeline makes this optional ([`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md), lines 48-52).

### What's the difference between user-level and project-level installation?

**User-level** (`~/.claude/skills/`) makes skills available to Claude Code in any project on your machine. **Project-level** (`.claude/skills/` or `.cursor/skills/`) limits scope to a single codebase—useful for domain-specific skills that shouldn't pollute global context.

### How does the pipeline know which installation target to use?

It prompts you **once** at the delivery stage, then injects your choice into the generated [`INDEX.md`](https://github.com/kangarooking/cangjie-skill/blob/main/INDEX.md). This avoids repetitive per-skill prompting and produces reusable installation commands.

### What happens if a skill fails the trigger verification?

The pipeline flags it in the delivery report. You can still install the skill manually, but expect unreliable activation. Review [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) for overly restrictive trigger conditions or missing context in [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json).