extract — скилл для Claude Code: создание скиллов
Превращает повторяющийся приём или решение проблемы в отдельный скилл с инструкцией и примерами. Пригодится, когда вы хотите повторно использовать найденное решение в другом проекте.
/plugin marketplace add alirezarezvani/claude-skills
/plugin install self-improving-agent@claude-code-skillsЧто делает extract
Скилл изучает описание приёма и ищет связанные записи в auto-memory Claude Code. Затем определяет область применения, при необходимости задаёт до двух вопросов и передаёт создание файлов субагенту skill-extractor. Результат включает SKILL.md, README.md и, если нужна, папку reference с примерами.
Для имени действуют правила: строчные буквы, дефисы и запрет на фрагменты claude и anthropic; для скиллов о Claude Code предусмотрен префикс cc-. Есть режимы предварительного просмотра --dry-run, задания имени через --name и каталога через --output. Устанавливайте его, если хотите оформлять повторяемые решения в переносимые инструкции; для разовой задачи он не нужен.
Какие задачи решает
- сохранить решение отладки для другого проекта
- превратить повторяющийся приём в отдельный скилл
- собрать примеры и инструкции в
SKILL.md - проверить результат через
--dry-run
Примеры запросов агенту
- /si:extract «Исправление ошибки Docker builds failing on Apple Silicon with platform mismatch»
- /si:extract «После изменения OpenAPI spec регенерировать TypeScript API client» --name api-client-regen
- /si:extract «Настройка pnpm workspace» --output ./skills/ --dry-run
Как установить extract
1Через маркетплейс плагинов
/plugin marketplace add alirezarezvani/claude-skills/plugin install self-improving-agent@claude-code-skillsКоманда ставит плагин self-improving-agent целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add alirezarezvani/claude-skills --skill extract -a claude-code3Вручную: положить файлы
~/.claude/skills/extract/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/extract/
Вручную: положить файлы
.agents/skills/extract/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/extract/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install alirezarezvani/claude-skills extract2Вручную: положить файлы
.github/skills/extract/SKILL.mdКомандой платформы
gemini skills install https://github.com/alirezarezvani/claude-skills --path engineering-team/self-improving-agent/skills/extractВручную: положить файлы
.devin/skills/extract/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора349
Весь набор →Похожие
Вопросы о extract
Как установить extract в Claude Code?
Добавьте маркетплейс командой /plugin marketplace add alirezarezvani/claude-skills, затем установите скилл: /plugin install self-improving-agent@claude-code-skills.
Что делает extract?
Он превращает повторяемый приём или решение отладки в отдельный скилл с SKILL.md, обзором и примерами. Для генерации файлов вызывается субагент skill-extractor.
Как extract использует auto-memory?
Скилл ищет там записи по ключевым словам из описания. Если подходящих записей нет, использует описание пользователя.
Исходный текст
SKILL.md · MIT
---
name: "extract"
description: "Turn a proven pattern or debugging solution into a standalone reusable skill with SKILL.md, reference docs, and examples. Use when the user runs /si:extract or asks to package a recurring solution from memory into a skill."
---
# /si:extract — Create Skills from Patterns
Transforms a recurring pattern or debugging solution into a standalone, portable skill that can be installed in any project.
## Usage
```
/si:extract <pattern description> # Interactive extraction
/si:extract <pattern> --name docker-m1-fixes # Specify skill name
/si:extract <pattern> --output ./skills/ # Custom output directory
/si:extract <pattern> --dry-run # Preview without creating files
```
## When to Extract
A learning qualifies for skill extraction when ANY of these are true:
| Criterion | Signal |
|---|---|
| **Recurring** | Same issue across 2+ projects |
| **Non-obvious** | Required real debugging to discover |
| **Broadly applicable** | Not tied to one specific codebase |
| **Complex solution** | Multi-step fix that's easy to forget |
| **User-flagged** | "Save this as a skill", "I want to reuse this" |
## Workflow
### Step 1: Identify the pattern
Read the user's description. Search auto-memory for related entries:
```bash
MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -rni "<keywords>" "$MEMORY_DIR/"
```
If found in auto-memory, use those entries as source material. If not, use the user's description directly.
### Step 2: Determine skill scope
Ask (max 2 questions):
- "What problem does this solve?" (if not clear)
- "Should this include code examples?" (if applicable)
### Step 3: Generate skill name
Rules for naming:
- Lowercase, hyphens between words
- Descriptive but concise (2-4 words)
- Examples: `docker-m1-fixes`, `api-timeout-patterns`, `pnpm-workspace-setup`
**Reserved fragments — must NOT appear in the skill name:**
- `claude`
- `anthropic`
For skills about Claude Code itself, use the `cc-` prefix instead:
- ❌ `claude-code-settings` → ✅ `cc-settings`
- ❌ `claude-code-maintenance` → ✅ `cc-maintenance`
- ❌ `claude-mcp-tools` → ✅ `cc-mcp-tools`
- ❌ `claude-plugin-development` → ✅ `cc-plugin-development`
Before writing the skill directory, check the proposed name against this list.
If a reserved fragment is present, transform it (drop the fragment or replace
the `claude*`/`anthropic*` prefix with `cc-`) and confirm with the user.
### Step 4: Create the skill files
**Spawn the `skill-extractor` agent** for the actual file generation.
The agent creates:
```
<skill-name>/
├── SKILL.md # Main skill file with frontmatter
├── README.md # Human-readable overview
└── reference/ # (optional) Supporting documentation
└── examples.md # Concrete examples and edge cases
```
### Step 5: SKILL.md structure
The generated SKILL.md must follow this format:
```markdown
---
name: "skill-name"
description: "<one-line description>. Use when: <trigger conditions>."
---
# <Skill Title>
> One-line summary of what this skill solves.
## Quick Reference
| Problem | Solution |
|---------|----------|
| {{problem 1}} | {{solution 1}} |
| {{problem 2}} | {{solution 2}} |
## The Problem
{{2-3 sentences explaining what goes wrong and why it's non-obvious.}}
## Solutions
### Option 1: {{Name}} (Recommended)
{{Step-by-step with code examples.}}
### Option 2: {{Alternative}}
{{For when Option 1 doesn't apply.}}
## Trade-offs
| Approach | Pros | Cons |
|----------|------|------|
| Option 1 | {{pros}} | {{cons}} |
| Option 2 | {{pros}} | {{cons}} |
## Edge Cases
- {{edge case 1 and how to handle it}}
- {{edge case 2 and how to handle it}}
```
### Step 6: Quality gates
Before finalizing, verify:
- [ ] SKILL.md has valid YAML frontmatter with `name` and `description`
- [ ] `name` matches the folder name (lowercase, hyphens)
- [ ] `name` does NOT contain reserved fragments `claude` or `anthropic` (use `cc-` prefix for Claude Code skills)
- [ ] Description includes "Use when:" trigger conditions
- [ ] Solutions are self-contained (no external context needed)
- [ ] Code examples are complete and copy-pasteable
- [ ] No project-specific hardcoded values (paths, URLs, credentials)
- [ ] No unnecessary dependencies
### Step 7: Report
```
✅ Skill extracted: {{skill-name}}
Files created:
{{path}}/SKILL.md ({{lines}} lines)
{{path}}/README.md ({{lines}} lines)
{{path}}/reference/examples.md ({{lines}} lines)
Install: /plugin install (copy to your skills directory)
Publish: clawhub publish {{path}}
Source: MEMORY.md entries at lines {{n, m, ...}} (retained — the skill is portable, the memory is project-specific)
```
## Examples
### Extracting a debugging pattern
```
/si:extract "Fix for Docker builds failing on Apple Silicon with platform mismatch"
```
Creates `docker-m1-fixes/SKILL.md` with:
- The platform mismatch error message
- Three solutions (build flag, Dockerfile, docker-compose)
- Trade-offs table
- Performance note about Rosetta 2 emulation
### Extracting a workflow pattern
```
/si:extract "Always regenerate TypeScript API client after modifying OpenAPI spec"
```
Creates `api-client-regen/SKILL.md` with:
- Why manual regen is needed
- The exact command sequence
- CI integration snippet
- Common failure modes
## Tips
- Extract patterns that would save time in a *different* project
- Keep skills focused — one problem per skill
- Include the error messages people would search for
- Test the skill by reading it without the original context — does it make sense?
© Alireza Rezvani · MIT · alirezarezvani/claude-skills