# Claude skills 2026: как упаковать командные стандарты и 3 проверки

> Skill упаковывает повторяемый способ работы с проектом в папку с инструкциями, примерами и проверкой. Показываю, как собрать первый пакет и не перепутать его с `CLAUDE.md`.

Источник: https://vibeceh.ru/guides/skills-v-claude-code-upakovat-komandnye-standarty
Автор: Сергей Мазур · опубликовано 2026-08-11

**Claude skills** - это папки с инструкциями, примерами и правилами, которые Claude Code подключает для повторяющейся задачи. Начни с одного, собранного под свой проект, а не с коллекции готовых пакетов. Дальше я показываю, как собрать один такой пакет, подключить его к проекту и проверить фактический результат работы.

## Что такое Skills в Claude Code и зачем они нужны?

claude skills - это папки с файлом `SKILL.md`, инструкциями, скриптами и дополнительными ресурсами. Claude сначала видит краткое описание, а подробности читает по ситуации. Поэтому повторяемый процесс можно держать отдельно от постоянных правил проекта и не загружать весь набор инструкций в каждый диалог.

**Agent Skills** - это инструкции и возможности для агента. **ai skills** в Claude Code задают конкретные процедуры: изменить код по правилам, проверить сборку, найти локальную ошибку.

Раз в неделю разбираю одну рабочую связку claude skills. Подпишись в Telegram, чтобы не пропустить: https://t.me/vibeceh

Минимальная структура выглядит так:

```text
.claude/
└── skills/
    └── project-standard/
        └── SKILL.md
```

Внутри папки могут лежать:

- `SKILL.md` с основной процедурой;
- скрипты для проверки;
- справочные файлы;
- примеры правильного и неправильного результата;
- локальные правила, о которых модель сама не догадается.

Anthropic описывает Skill коротко:

> «В самом простом виде Skill - это каталог, который содержит файл `SKILL.md`.»
> - Barry Zhang, Keith Lazuka и Mahesh Murag, [Anthropic](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)

Сначала Claude получает `name` и `description` установленных Skills. По этому описанию он решает, подходит ли пакет к текущей задаче. Если подходит, читает полный `SKILL.md`. Дополнительные файлы открывает только при необходимости.

Разница с длинным промптом здесь практическая. Подробности не лежат постоянно в каждом разговоре. Они подгружаются тогда, когда задача совпала с описанием Skill.

Skill задаёт Claude контекст и процесс, но не гарантирует строгого соблюдения стандарта. Соблюдение стандарта всё равно надо подтверждать тестом, build, screenshot, hook или скриптом.

## Когда Skill лучше CLAUDE.md и обычной команды?

`CLAUDE.md` хранит постоянный фон проекта, Skill описывает повторяемую процедуру, а команда вызывает действие явно. Если действие повторяется больше одного раза в день, его стоит превратить в claude skills. Для одного проекта хватит standalone-папки, для команды и нескольких проектов удобнее plugin.

![Кот закрывает морду лапой у развилки CLAUDE.md, Skill и Команда.](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-v-claude-code-upakovat-komandnye-standarty/kadr-1.webp)

В [`CLAUDE.md`](/guides/claude-md-udalit-ili-perepisat) держи то, что относится к проекту всегда. Подробнее о том, как не раздуть файл и когда его пересобрать, я писал в [отдельном разборе](/guides/claude-md-udalit-ili-perepisat):

- как запускать проект;
- где лежат основные каталоги;
- какие зависимости уже используются;
- какие общие правила нельзя нарушать.

Skill нужен для цепочки действий. Например: перед изменением кода прочитать связанные файлы, использовать существующий API-клиент, после правки запустить проверку.

Обычная команда нужна, когда ты хочешь вызвать действие сам. Старый путь `.claude/commands/` продолжает работать, но Skills стали рекомендуемым способом упаковки повторяемых процессов.

Критерий отбора простой:

Если ты делаешь что-то больше одного раза в день, преврати это в Skill.

Я бы не превращал в Skill каждое пожелание вроде «пиши аккуратный код». Такое правило слишком общее. Оно добавляет текст, но не даёт агенту локального решения.

Хороший кандидат выглядит иначе:

- действие повторяется;
- порядок шагов важен;
- в проекте есть свои ловушки;
- результат можно проверить;
- процедуру приходится объяснять заново.

`CLAUDE.md` отвечает на вопрос «что здесь постоянно принято». Skill отвечает на вопрос «как выполнить конкретную повторяющуюся работу». Командой ты говоришь: «запусти это прямо сейчас».

| Критерий | CLAUDE.md | Skill | Команда |
|----------|-----------|-------|---------|
| Назначение | Постоянный фон проекта | Повторяемая процедура | Явный вызов действия |
| Когда срабатывает | Всегда в контексте | По совпадению с задачей | По вызову `/имя` |
| Хранение | Корень проекта | `.claude/skills/` | `.claude/commands/` |

Практикум полезен там, где одного файла уже мало. На нём руками собираешь связку правил, контекста и проверки, чтобы агент не переписывал проект без контроля.

## Как собрать Skill для проекта?

выбери 2-3 повторяющихся сценария, создай папку `.claude/skills/<name>/`, оставь в `SKILL.md` только основную процедуру, а ловушки, примеры и проверку вынеси в отдельные файлы. Начни с минимального frontmatter и проверь Skill реальным вызовом до добавления дополнительных полей. Полный цикл сборки claude skills занимает девять шагов: от выбора сценариев до ручной проверки каждого файла. Пошаговую сборку первого навыка я разбирал в [отдельной инструкции](/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi).

![Собака одобрительно смотрит на схему сборки папки Skill из трёх шагов.](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-v-claude-code-upakovat-komandnye-standarty/kadr-2.webp)

Я записываю 2-3 задачи, которые реально повторяются в проекте. Например: изменить экран по существующему паттерну, проверить результат после правки, подготовить код к ревью. Пошаговую сборку первого навыка я разбирал в [отдельной инструкции](/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi).

Не собирай универсальный Skill «для всего проекта»: слишком широкий пакет путает агента. Начни с одной узкой процедуры и одной повторяющейся ошибки.

Выполни действие из корня проекта.

   ```bash
   mkdir -p .claude/skills/project-standard/examples
   touch .claude/skills/project-standard/SKILL.md
   touch .claude/skills/project-standard/gotchas.md
   touch .claude/skills/project-standard/check.sh
   ```

Минимальный пакет должен содержать `SKILL.md`, `gotchas.md`, примеры и исполняемый `check.sh`.

Открой `SKILL.md` и вставь минимальный frontmatter. Основной файл держи сфокусированным и не раздувай больше 5000 слов.

   ```yaml
   ---
   name: project-standard
   description: Apply project conventions when adding or changing application code.
   ---

   # Project standard

   1. Read the relevant files before editing.
   2. Reuse existing patterns.
   3. Do not introduce a new dependency without asking.
   4. Run `./.claude/skills/project-standard/check.sh` after changes.

   ## Gotchas

   - Do not edit generated files directly.
   - Use the existing API client instead of calling fetch manually.
   - A successful HTTP 200 is not enough; check the response body.

   ## Additional resources

   - For common mistakes, read [gotchas.md](gotchas.md).
   - For examples, read the files in [examples/](examples/).
   ```

В `gotchas.md` запиши 3-5 мест, где агент уже ошибался или легко ошибётся. Не переписывай базовые знания модели: нужны правила именно этого проекта.

   ```markdown
   # Local gotchas

   - Do not edit generated files directly.
   - Reuse the existing API client.
   - A successful HTTP 200 does not prove that the webhook was processed.
   - Read the current implementation before adding a new pattern.
   ```

Сохрани в `examples/bad-example.md` и `examples/good-example.md` короткие образцы. Для плохого примера покажи нарушение локального правила. В хорошем - тот же случай после правильной обработки.

Такой пример помогает Claude отличить требуемый результат от просто похожего текста или кода.

Сделай `check.sh` исполняемым. В него положи команды, которые дают однозначный результат.

   ```bash
   #!/usr/bin/env bash
   set -euo pipefail

   npm test
   npm run lint
   git diff --check
   ```

Запусти:

   ```bash
   chmod +x .claude/skills/project-standard/check.sh
   ./.claude/skills/project-standard/check.sh
   ```

Если проверка невозможна, результат нельзя считать готовым. Слова Claude «всё хорошо» не заменяют тест, build, screenshot или скрипт.

Я использую такой запрос для первого варианта - он сработает как skill builder для черновика:

   

Отправь очевидный запрос, затем перефразируй его. После этого отправь нерелевантный запрос. Skill должен срабатывать на первых двух и не запускаться на третьем.

Я проверяю полезное срабатывание и отдельно отслеживаю ложное. Ложное срабатывание тоже расходует контекст и уводит агента в сторону.

Я открываю `SKILL.md`, `gotchas.md`, примеры и `check.sh`. Убедись, что названия файлов совпадают, ссылки ведут в существующие места, а команда проверки запускается из корня проекта.

На этом месте я останавливаюсь до публикации Skill. Наличие папки ещё не доказывает, что Claude увидит её и сможет прочитать файл.

## Как подключить Skill из GitHub к проекту?

claude skills из GitHub можно держать как standalone-пакет в `.claude/skills/<name>/SKILL.md` или распространять внутри plugin. Первый вариант подходит одному проекту, второй даёт командную установку, версии и Git-историю. Перед подключением проверь структуру пакета и содержание SKILL.md, а для проверки запускай Claude Code из корня проекта и вызывай `/имя-skill`. Для проверки запускай Claude Code из корня проекта и вызывай `/имя-skill` - сам факт, что файл лежит в папке, ещё не гарантирует обнаружение.

**github skills** ищи как исходный код пакета. Сначала проверь, что в репозитории есть папка Skill, `SKILL.md`, описание и связанные скрипты.

Для standalone-варианта структура внутри проекта должна прийти к такому виду:

```text
.claude/
└── skills/
    └── project-standard/
        ├── SKILL.md
        ├── gotchas.md
        ├── examples/
        └── check.sh
```

Если пакет нужен только одному проекту, оставь его в репозитории проекта. Так правила будут лежать рядом с кодом и попадут в Git-историю.

Если один и тот же пакет нужен команде и нескольким проектам, используй plugin. Plugin позволяет версионировать и распространять пакет как единое расширение.

**use skill** проверяй из корня проекта. Сам факт, что файл лежит в `.claude/skills/`, не гарантирует обнаружение.

```text
cd /path/to/project
claude
/имя-skill
```

Если Claude отвечает `Unknown skill`, проверь путь, текущую папку и наличие Skill в глобальном размещении. После этого перезапусти Claude Code и повтори вызов.

Не добавляй поля frontmatter наугад. Для первого подключения хватит `name` и `description`. Дополнительные поля добавляй по одному, каждый раз проверяя реальным вызовом.

## Как проверить, что Skill сработал и результат готов?

проверь три вещи отдельно: Claude выбрал Skill автоматически, вызвал его по команде и прочитал сам `SKILL.md`. Затем подтверди результат независимым доказательством: тестом, build, screenshot, hook или скриптом. Для критичного условия используй бинарную проверку. Она надёжнее просьбы «проверь, всё ли хорошо».

![Кот с поднятой лапой стоит рядом с чек-листом проверки Skill.](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-v-claude-code-upakovat-komandnye-standarty/kadr-3.webp)

Проверка состоит из трёх слоёв.

1. Отправь очевидный запрос по теме Skill.
2. Перефразируй тот же запрос.
3. Отправь нерелевантную задачу и проверь, что Skill не запускается.

Дальше вызови Skill явно:

```text
/имя-skill
```

После вызова попроси Claude прочитать сам файл:

```text
Прочитай установленный Skill и выведи его раздел «Проверка результата».
```

Это отделяет наличие метаданных от доступности файла. Бывает, что название и описание отображаются, а `SKILL.md` среда исполнения не отдаёт агенту. Результат проверяй отдельно от инструкции:

- тестом;
- скриптом;
- build;
- screenshot;
- hook;
- проверкой `git diff --check`.

Формулировка «проверь, всё ли хорошо» оставляет решение самой модели. Лучше дать команду с понятным кодом завершения:

```bash
./.claude/skills/project-standard/check.sh
```

Если условие критичное, сделай его бинарным. Например, скрипт должен завершаться с ошибкой, если найден сгенерированный файл в списке ручных изменений.

Anthropic формулирует границу так:

Всегда добавляй проверку: тесты, скрипты или скриншоты. Если проверить нельзя, не отправляй результат в работу.

Skill объясняет, что делать. Проверка показывает, получилось ли. Эти две части нельзя смешивать.

## Что делать, если Skill не запускается или игнорируется?

сначала вызови Skill вручную через `/имя-skill`, затем проверь корень проекта, путь установки и содержимое `SKILL.md`. Оставь минимальный frontmatter, перезапусти Claude Code и добавляй поля по одному. Для обязательных ограничений используй скрипт или hook, потому что текст Skill модель может воспринять как совет.

Если получаешь `Unknown skill`, пройди короткую диагностику:

1. Запусти Claude Code из корня проекта.
2. Проверь папку `.claude/skills/`.
3. Проверь наличие `SKILL.md`.
4. Вызови `/имя-skill`.
5. Проверь глобальное размещение в `~/.claude/skills/`.
6. Перезапусти Claude Code.

В issue Claude Code описан случай, когда проектный Skill не обнаруживался, а тот же файл в глобальной папке начинал работать:

Skills, размещённые в каталоге `.claude/skills/` проекта, не обнаруживаются и не регистрируются Claude Code.

Другая поломка выглядит коварнее. Название и описание Skill видны, но сам `SKILL.md` отсутствует в среде исполнения. Поэтому проверяй не только список доступных Skills, но и чтение файла.

Автоактивация может быть нестабильной, поэтому для критичного сценария ручной вызов надёжнее ожидания, что Claude сам догадается.

Начни с такого frontmatter:

```yaml
---
name: project-standard
description: Apply the project coding standard when changing application code.
---
```

Если валидатор ругается на `allowed-tools`, `context`, `agent` или `hooks`, не добавляй всё сразу. Оставь минимальный набор, проверь запуск, затем добавляй поля по одному.

После compaction старый Skill может выпасть из контекста. Разрешения `allowed-tools` тоже не считаются постоянными: инструкции Skill сохраняются отдельно, а разрешение на инструмент действует только на текущий ход.

Главная поломка не техническая. Claude может прочитать Skill и всё равно решить, что правило необязательно. Усиление словами `MUST` и `ALWAYS` не превращает текст в блокировку. Обязательные ограничения переноси в тесты, скрипты и [hooks](/guides/huki-ostanovit-opasnye-izmeneniya-claude-code).

## Сколько Skills можно держать включёнными без лишнего контекста?

жёсткого общего лимита claude skills в фактуре нет, но при 20-50 одновременно включённых Skills набор стоит пересмотреть. Три неиспользуемых Skill могут занимать 8,7 тысячи токенов за сессию, а расширение набора способно поднять число загружаемых описаний с 35 до 157. Я начинаю с одного-двух узких пакетов.

Полный текст каждого Skill не загружается постоянно. Но краткие описания установленных Skills попадают в начальный [контекст](/concepts/kontekst), и каждый токен этого описания расходует бюджет окна.

В пользовательском замере три неиспользуемых Skill занимали 8,7 тысячи токенов за сессию. При расширении набора число описаний выросло с 35 до 157.

Три спящих или никогда не срабатывающих Skill стоят 8,7 тысячи токенов за сессию.

При 20-50 одновременно включённых Skills пересмотри набор и используй selective enablement. Оставляй только то, что нужно текущему проекту. Отдельно убирай Skills, которые месяцами не срабатывали.

## Вопросы и ответы

Claude skills - это папки с `SKILL.md`, инструкциями, скриптами и ресурсами. Claude видит краткое описание, а подробный файл читает, когда задача подходит под условия применения.

Claude Code загружает описания доступных Skills при запуске. Если текущая задача подходит, агент читает полный `SKILL.md` и при необходимости обращается к дополнительным файлам.

Создай папку `.claude/skills/<name>/`, добавь `SKILL.md` с минимальным frontmatter и опиши повторяемую процедуру обычными словами. Скрипт проверки можно добавить отдельно, а его содержимое собрать с помощью Claude.

Ищи готовые варианты в GitHub-репозиториях и пакетах plugins - единого claude code skills marketplace пока нет, но репозитории закрывают эту роль. Перед подключением проверь структуру, содержание `SKILL.md`, локальные ловушки, примеры и команды проверки.

Найди в репозитории папку Skill и перенеси её в `.claude/skills/<name>/` для standalone-варианта. Если автор распространяет пакет как plugin, используй его способ установки и проверь версию после подключения.

Напиши инструкции, описания, ловушки и примеры на русском языке. Название Skill и путь к папке оставь стабильными, а затем проверь очевидный, перефразированный и нерелевантный запрос.

Подходят узкие Skills для повторяемых задач: изменения кода по локальным правилам, ревью, тестирования и проверки результата. Skill, который пытается закрыть все процессы проекта, путает агента.

Проверь автоматическое срабатывание, явный вызов `/имя-skill` и чтение самого `SKILL.md`. Затем запусти тест, build, screenshot, hook или отдельный скрипт.

Начни с одного Skill для действия, которое повторяется больше одного раза в день. Положи его в `.claude/skills/`, запусти Claude Code из корня проекта и проверь вызов.

`CLAUDE.md` подходит для постоянного фона и общих правил проекта. Skill лучше использовать для повторяемой процедуры с понятными шагами и отдельным критерием результата.

Да. Plugin подходит для командного распространения, версий и Git-истории. Standalone-вариант в `.claude/skills/` удобнее, когда пакет нужен одному проекту.

Причины бывают разные: нестабильная автоактивация, запуск не из корня проекта, ошибка пути, отсутствие самого `SKILL.md`, конфликт frontmatter или слишком общее описание. Начни с ручного `/имя-skill` и минимального frontmatter.

- [Equipping agents for the real world with Agent Skills](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)
- [Claude Code power user tips](https://support.claude.com/en/articles/14554000-claude-code-power-user-tips)
- [The Complete Guide to Building Skill for Claude](https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf)
- [Best practices for Claude Code](https://www.anthropic.com/engineering/claude-code-best-practices?trk=feed_main-feed-card_feed-article-content)
- [Lessons from building Claude Code: How we use skills](https://claude.com/blog/lessons-from-building-claude-code-how-we-use-skills)
- [Project-level skills in `.claude/skills/` not discovered](https://github.com/anthropics/claude-code/issues/33733)
- [Commands getting replaced with Skills?](https://www.reddit.com/r/ClaudeCode/comments/1psnm9j/commands_getting_replaced_with_skills/)
- [User and Organization Skills: `SKILL.md` files not mounted](https://github.com/anthropics/claude-code/issues/26254)
- [SKILL.md validator frontmatter issue](https://github.com/anthropics/claude-code/issues/25380)
- [I checked which of my Claude Code skills actually fire](https://www.reddit.com/r/ClaudeCode/comments/1tnlbvm/i_checked_which_of_my_claude_code_skills_actually/)
