#Превратите повторяющийся процесс в скилл
Средний уровень · Урок 1 из 8 · около 20 минут · Нужно: Оглавление Среднего уровня · Сверено с Claude Code v2.1.285 (stable) 06.10.2026
#Цель
К концу урока вы сможете превратить процесс, который постоянно повторяете, в скилл проекта: он запускается, когда вы набираете его имя, и сам подгружается, когда запрос ему соответствует.
#Что понадобится
- Один из ваших репозиториев с командой запуска тестов и без незакоммиченных изменений, а также ваша копия шаблона для практики с Node.js LTS: проверка запускается из копии. Если хотите практиковаться в копии шаблона, используйте её в обеих ролях. Подготовьте в репозитории папку
.practice/, как описано в уроке 1 Начального уровня, если ещё не сделали этого. - Расход лимита: от небольшого до умеренного. В задании «Ваша очередь» вы соберёте одну небольшую функцию.
Примечание
Начиная с этого уровня, уроки написаны для macOS, Linux и WSL 2. В Windows запускайте Claude Code внутри WSL 2 (Set up on Windows): в нативной Windows нет песочницы, которая используется в уроке 4, а хуки в уроке 5 — это bash-скрипты.
#Идея
Скилл — это папка с файлом SKILL.md: сначала YAML-фронтматтер, где сказано, для чего скилл, затем инструкции, которым следует Claude. Скилл проекта лежит в .claude/skills/<name>/SKILL.md. Закоммитьте его — и он будет у всех, кто работает в репозитории.
Пока скилл не запущен, в контексте Claude находится максимум его описание. Запускается он одним из двух способов, и в обоих случаях Claude Code затем загружает файл целиком:
flowchart LR accTitle: Два способа запустить скилл accDescr: Вы набираете имя скилла и проблему, которая попадает в $ARGUMENTS, или Claude сопоставляет ваш запрос с описанием скилла. В обоих случаях Claude Code загружает весь SKILL.md, и Claude следует его инструкциям. A["Вы набираете /five-whys и проблему — она попадает в $ARGUMENTS"] --> C["Claude Code загружает весь SKILL.md"] B["Вы задаёте вопрос, совпадающий с описанием скилла"] --> C C --> D["Claude следует инструкциям"]
disable-model-invocation: trueво фронтматтере оставляет скиллу только первый способ. Используйте это для процессов с побочными эффектами, например деплоя (Control who invokes a skill).$ARGUMENTSв теле скилла получает всё, что вы напечатали после его имени.- Markdown-файл в
.claude/commands/— это старый формат, и он по-прежнему запускается как/name. Для новой работы выбирайте скилл.
#Разбор примера
- В своём репозитории создайте папку скилла и скачайте пример из этого руководства —
five-whys. Прочитайте его, прежде чем использовать:
mkdir -p .claude/skills/five-whys
curl -fsSL https://raw.githubusercontent.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know/main/examples/intermediate/01-first-skill/dot-claude/skills/five-whys/SKILL.md -o .claude/skills/five-whys/SKILL.md
Если не считать строк-комментариев в начале фронтматтера, в файле написано:
---
name: five-whys
description: Finds the root cause of a bug, failure or recurring problem by asking "why" until the answer is a cause you can fix. Use when the user asks why something keeps happening, or wants the root cause rather than a quick fix.
argument-hint: "[problem]"
---
Find the root cause of this problem: $ARGUMENTS
Дальше идут пять пронумерованных шагов и правило «Don't change any files» («Не меняй никаких файлов»).
2. Запустите claude в репозитории и выполните /skills (Commands). В списке будет five-whys с пометкой «скилл проекта».
3. Запустите скилл по имени, передав проблему из своего репозитория. В шаблоне для практики:
/five-whys npm run linkcheck -- samples exits with code 1
Claude воспроизводит проблему, задаёт вопрос «почему» на основе фактов, пока не дойдёт до причины, которую команда может изменить, а затем выдаёт цепочку, первопричину и два варианта исправления. Формулировки у вас будут другими. Во втором терминале git status покажет только новые файлы в .claude/: скилл велел Claude ничего не менять.
4. Выполните /clear, затем задайте вопрос, который подходит под описание, не называя скилл:
Why does the test suite pass even though samples/guide.md has a broken link? I want the root cause, not a quick fix.
Прежде чем Claude ответит, в расшифровке появится вызов инструмента Skill для five-whys: Claude подгрузил скилл сам (Tools reference).
#Ваша очередь
Допишите незаконченный скилл, который строит функции через тесты (test-first), и воспользуйтесь им обоими способами.
- Скачайте незаконченный скилл
tdd:
mkdir -p .claude/skills/tdd
curl -fsSL https://raw.githubusercontent.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know/main/examples/intermediate/01-first-skill/dot-claude/skills/tdd/SKILL.md -o .claude/skills/tdd/SKILL.md
В его фронтматтере стоят description: TODO и disable-model-invocation: true, а шаги заканчиваются так:
2. Green: TODO
3. Refactor: TODO
- Допишите его в редакторе:
- замените
TODOв описании одним-двумя предложениями: что делает скилл и когда Claude стоит его использовать; - удалите строкуdisable-model-invocation: true; - напишите шаги Green и Refactor в том же стиле, что и шаг Red. - Закоммитьте скилл:
git add .claude/skills/tdd/SKILL.md, затемgit commit -m "Add a tdd skill". - В сессии запустите его по имени на небольшой функции. В шаблоне для практики:
/tdd a slugify(heading) function in src/slug.js that turns a Markdown heading into its link anchor: lowercase, punctuation dropped, spaces turned into hyphens
Одобрите правки и запуски тестов и дайте скиллу сделать коммит. Затем сохраните этот коммит: git rev-parse HEAD > .practice/i-1-commit.txt.
5. Выполните /clear и попросите сделать ещё одну небольшую функцию через тесты, не называя скилл, например Add a countHeadings(markdown) function, test-first. Проследите, как Claude сам запускает tdd через инструмент Skill. Увидев это, можете нажать Esc, чтобы остановить Claude (Interactive mode), и выполнить /rewind, чтобы откатить его правки (Checkpointing), как в уроке 4 Начального уровня.
#Проверка
Урок пройден, когда выполнено всё это:
- Готовый скилл закоммичен и в нём не осталось TODO:
git grep -n TODO HEAD -- .claude/skills/tddничего не выводит. - Он запускается как
/tddи подгружается сам:git show HEAD:.claude/skills/tdd/SKILL.mdпоказывает описание того, что он делает и когда его использовать, и в нём нетdisable-model-invocation: true. - Коммит, сохранённый в
.practice/i-1-commit.txt, содержит тест и проверяемый им код:git show --stat $(cat .practice/i-1-commit.txt)показывает и то и другое. - Самопроверка (не тестируется):
/tddзапустил скилл, а в очищенном разговоре Claude сам подгрузилtdd.
Запустите npm run check -- i-1 --dir <your repo> из своей копии для практики или npm run check -- i-1 в самой копии.
Если скилл не закоммитился, выполните git check-ignore -v .claude/skills/tdd/SKILL.md: правило игнорирования, совпадающее с .claude, — в .gitignore, .git/info/exclude или вашем глобальном файле исключений — прячет папку от git add, поэтому добавьте файл через git add -f. Если не проходит второй пункт, перепишите описание так: что делает скилл, затем «Use when» и запросы, которым он подходит, — ведь решая, подгружать ли скилл, Claude читает только описание. Если не проходит пункт о коммите, снова запустите /tdd на новой небольшой функции и дайте ему закоммитить тест вместе с кодом.
#Осторожно
- Скилл может заранее одобрить инструменты через
allowed-tools, и Claude Code применяет такое разрешение из скилла проекта даже при запускеclaude -pв папке, которой вы никогда не доверяли (Pre-approve tools for a skill). Прочитайте скиллы репозитория, прежде чем запускать в нём Claude Code. - Если папки
.claude/skills/не было на момент старта сессии, выполните/reload-skills, чтобы новый скилл появился (Edit a skill during a session). - После запуска скилла его текст остаётся в разговоре, и Claude Code не перечитывает файл. Отредактировав скилл, запустите его снова, чтобы Claude получил новую версию (Skill content lifecycle).
#Что дальше
- Introduction to agent skills: курс Claude Academy о том, как писать скиллы и делиться ими.
- Agent Skills: открытый стандарт, которому следуют скиллы Claude Code; он работает и в других ИИ-инструментах.
- Extend Claude with skills: все поля фронтматтера, аргументы, вспомогательные файлы и запуск скилла в субагенте.
Источники: Extend Claude with skills · Advanced setup · Commands · Tools reference · Interactive mode · Checkpointing
← Оглавление Среднего уровня · Организуйте память проекта и посмотрите, что загрузилось → · Тема: Скиллы · Застряли на уроке?