ИИ и машинное обучение

Claude Skills: как создать собственный навык с нуля

Claude Skills — практическое руководство по созданию собственного навыка в Claude Code: структура SKILL.md, frontmatter, тестирование, ошибки и безопасность.

Автор Aliya
9 мин чтения

Проверено и обновлено: 4 июля 2026. Технические факты сверены с официальной документацией Anthropic и Claude Code, а не со сторонними блогами. Различия между версиями Claude Code отмечены прямо в тексте.

Claude Skills — это способ один раз описать повторяющуюся процедуру или набор знаний в файле SKILL.md, чтобы Claude Code подключал их автоматически или по вашей команде, без копирования одних и тех же инструкций в каждый чат. В этом руководстве вы пройдёте весь путь: от проверки установленного Claude Code до создания, тестирования, отладки и безопасной передачи собственного навыка. В качестве сквозного примера мы соберём практичный навык SEO Content Audit — он проверяет черновик статьи по SEO-чек-листу.

Руководство рассчитано на тех, кто уже пользуется Claude Code хотя бы на базовом уровне и работает в терминале. Глубокого программирования не требуется: навык — это папка с текстовым файлом. Весь процесс занимает 13 шагов, каждый из которых снабжён командой, ожидаемым результатом, типичной ошибкой и способом проверки.

Что вы создадите в этом руководстве

  • каталог навыка seo-content-audit/;
  • файл SKILL.md с корректным YAML frontmatter и рабочей инструкцией;
  • справочные файлы в references/ (SEO-чек-лист и правила письма);
  • шаблон отчёта в templates/;
  • при желании — вспомогательный скрипт-валидатор в scripts/;
  • рабочий навык, который срабатывает и вручную (/seo-content-audit), и автоматически по смыслу запроса.

Оглавление

Claude Skills: что это такое и как они работают

Claude Skills (в документации Anthropic — Agent Skills) — это модульные расширения, которые добавляют Claude новые процедуры и знания. Технически навык представляет собой каталог, в котором обязательно есть файл SKILL.md. Этот файл состоит из двух частей: YAML frontmatter между строками --- (метаданные — прежде всего имя и описание) и Markdown-инструкции, которую Claude выполняет, когда навык активирован.

Навык уместно создавать в трёх ситуациях: вы раз за разом вставляете в чат одну и ту же инструкцию или чек-лист; у вас есть многошаговая процедура (деплой, ревью, подготовка статьи); либо раздел вашего CLAUDE.md разросся из «факта о проекте» в «пошаговую процедуру». В отличие от CLAUDE.md, тело навыка загружается только когда навык действительно нужен, поэтому длинные справочники почти ничего не стоят по контексту, пока к ним не обратились.

Принцип прогрессивного раскрытия контекста — ключевая идея Claude Skills. Она работает так:

  1. При старте сессии в системный промпт попадают только name и description каждого навыка — это дёшево по токенам.
  2. Полное тело SKILL.md подгружается только тогда, когда навык срабатывает (по описанию или по ручному вызову).
  3. Вспомогательные файлы (references/, templates/) читаются ещё позже — только если инструкция к ним отсылает.
  4. Скрипты в scripts/ не загружаются в контекст вовсе: Claude их выполняет, а в контекст попадает только вывод.

Подключение навыка бывает двух видов. Автоматическое — Claude сам решает применить навык, ориентируясь на поле description; поэтому описание должно точно называть, что навык делает и когда его использовать. Ручное — вы вводите /имя-навыка, как обычную команду.

Отличие от обычного промпта: промпт живёт одно сообщение и не переиспользуется — навык переиспользуется во всех сессиях и проектах (в зависимости от места хранения). Отличие от постоянных инструкций проекта (CLAUDE.md): факты в CLAUDE.md всегда в контексте, а навык подключается по требованию.

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

Ограничения: после активации тело SKILL.md остаётся в контексте до конца сессии (каждая строка — повторяющаяся стоимость по токенам), поэтому документация рекомендует держать тело до 500 строк; при большом количестве навыков описания могут усекаться в общем бюджете листинга (порядка 1% контекстного окна модели).

Claude Skills, CLAUDE.md, slash-команды и MCP: в чём разница

Эти инструменты часто путают. Ниже — сравнение по девяти признакам. Важная деталь: в актуальном Claude Code пользовательские slash-команды слились с навыками — файл .claude/commands/deploy.md и навык .claude/skills/deploy/SKILL.md оба создают команду /deploy. Старые команды продолжают работать, но навыки дают больше возможностей (папка вспомогательных файлов, управление вызовом, авто-подключение).

Инструмент Назначение Способ запуска Когда загружается Доп. файлы Доступ к инструментам Область применения Лучший сценарий Основные ограничения
Claude Skills Переиспользуемые процедуры и знания Авто (по description) или /имя Метаданные — всегда; тело — при активации Да: references/, templates/, scripts/ Да, через allowed-tools Личный / проект / плагин / организация Повторяемая многошаговая задача или чек-лист Тело в контексте всю сессию; ≤500 строк рекомендуется
CLAUDE.md Постоянные факты и правила проекта Загружается автоматически Всегда в контексте с начала сессии Ограниченно (импорты) Нет Личный / проект Факты, нужные всегда Всегда занимает контекст
Slash-команды Ручной триггер процедуры Вручную /имя При вызове Через слияние с навыками Через frontmatter Личный / проект Действие «по кнопке» (commit, deploy) Сами по себе — только ручной вызов
MCP Подключение внешних инструментов и данных Claude вызывает инструменты сервера Инструменты доступны при подключённом сервере Не применимо Предоставляет новые инструменты По конфигурации клиента Интеграции: БД, API, внешние сервисы Нужен работающий сервер и настройка
Обычный промпт Разовая инструкция Вручную в сообщении Только в этом сообщении Нет Нет Текущий чат Единичная задача Не переиспользуется, приходится копировать

Когда выбирать Claude Skills, а когда CLAUDE.md или MCP

Простое правило. Нужно, чтобы Claude всегда помнил факт о проекте (стек, соглашения об именовании) — это CLAUDE.md. Нужно подключить внешний источник данных или сервис (база данных, трекер задач, API) — это MCP. Нужно переиспользовать многошаговую процедуру или объёмный справочник по требованию — это Claude Skills. Эти механизмы дополняют друг друга: навык может ссылаться на MCP-инструменты и опираться на факты из CLAUDE.md.

Что потребуется перед началом

Claude Skills в Claude Code работают на macOS, Linux и Windows. Понадобятся: терминал, установленный и авторизованный Claude Code, любой редактор кода и отдельная тестовая папка. Проверим всё по очереди — каждую команду показываю отдельным блоком.

Проверка версии Claude Code.

claude --version

Что делает: печатает установленную версию. Ожидаемый результат — строка вида 2.1.x. Это важно, потому что часть возможностей завязана на версию: /run и /verify требуют v2.1.145+, подстановка ${CLAUDE_PROJECT_DIR} — v2.1.196+, «стек» из нескольких навыков в одном сообщении — v2.1.199+. При ошибке command not found Claude Code не установлен — см. следующую команду.

Установка или обновление Claude Code (если требуется).

npm install -g @anthropic-ai/claude-code

Что делает: устанавливает (или обновляет) CLI глобально через npm. Ожидаемый результат — успешная установка и рабочая команда claude. Если у вас нет Node.js/npm либо вы используете нативный установщик, сверьтесь с актуальной страницей установки в официальной документации — способ установки может отличаться в вашей ОС.

Запуск и авторизация.

claude

Что делает: запускает интерактивную сессию Claude Code в текущей папке. При первом запуске он проведёт вас через авторизацию. Ожидаемый результат — приглашение чата. При ошибке авторизации повторите вход по подсказке в терминале.

Диагностика конфигурации.

/doctor

Что делает: внутри сессии показывает состояние конфигурации, в том числе сколько описаний навыков усечено или отброшено из-за бюджета листинга. Полезно, когда навык «не виден» Claude.

Проверка прав на каталог навыков. Личные навыки лежат в ~/.claude/skills/. Убедитесь, что каталог доступен на запись:

mkdir -p ~/.claude/skills

Что делает: создаёт каталог личных навыков, если его ещё нет. Ожидаемый результат — команда завершается без ошибок. Если возникает ошибка прав, проверьте владельца домашней папки; менять системные права без необходимости не нужно.

Claude Skills: пошаговое создание первого навыка

Это главный раздел. Мы соберём навык seo-content-audit. Каждый шаг устроен одинаково: цель → действие → команда/путь → скриншот → ожидаемый результат → возможная ошибка → проверка → зачем это нужно.

Материал по теме:  Спутниковый интернет Amazon Kuiper появится в Казахстане

Шаг 1. Проверка Claude Code

Цель: убедиться, что CLI установлен и его версия поддерживает нужные возможности.

claude --version

Ожидаемый результат: номер версии 2.1.x или новее. Возможная ошибка: command not found — вернитесь к разделу «Что потребуется». Проверка: повторный запуск команды выводит номер. Зачем: дальнейшие шаги опираются на актуальные пути и поведение навыков.

Шаг 2. Создание безопасного тестового проекта

Цель: работать в нейтральной песочнице, а не в реальном проекте.

mkdir -p ~/projects/claude-skills-demo

Путь: ~/projects/claude-skills-demo. Ожидаемый результат: пустая папка создана. Возможная ошибка: нет прав на запись в ~/projects — выберите другой каталог. Проверка: ls ~/projects показывает claude-skills-demo. Зачем: демонстрационные данные (demo-project, example.com) не должны смешиваться с боевыми проектами и персональными данными.

Шаг 3. Создание директории навыка

Цель: создать каталог навыка в личном хранилище (доступен во всех проектах).

mkdir -p ~/.claude/skills/seo-content-audit

Ожидаемый результат: появился каталог ~/.claude/skills/seo-content-audit. Возможная ошибка: опечатка в имени — используйте только строчные буквы, цифры и дефисы. Проверка: ls ~/.claude/skills показывает seo-content-audit. Зачем: имя каталога станет командой навыка — /seo-content-audit.

Шаг 4. Создание файла SKILL.md

Цель: создать точку входа навыка.

touch ~/.claude/skills/seo-content-audit/SKILL.md

Требования к файлу: имя строго SKILL.md (с учётом регистра), расположен в корне каталога навыка. Ожидаемый результат: пустой SKILL.md создан. Возможная ошибка: имя skill.md или Skill.md не распознаётся — переименуйте. Проверка: ls ~/.claude/skills/seo-content-audit показывает SKILL.md. Зачем: без этого файла каталог не считается навыком.

Шаг 5. Заполнение frontmatter

Цель: задать метаданные, по которым Claude находит и подключает навык.

Frontmatter по открытому стандарту Agent Skills требует двух полей — name и description. В Claude Code все поля необязательны, но description крайне рекомендован. Ниже — минимальный корректный frontmatter для нашего навыка:

---
name: seo-content-audit
description: Audits a draft article for on-page SEO. Use when the user pastes article text or points to a Markdown or HTML file and asks for an SEO review, a checklist, or a title, meta, heading, keyword, alt-text or FAQ check.
allowed-tools: Read Grep
---

Разберём поддерживаемые поля (не выдумывая несуществующих):

Поле Обязательное Назначение
name Нет (по умолчанию — имя каталога) Отображаемое имя. ≤64 символов, только строчные буквы, цифры, дефисы; без слов «anthropic»/«claude»
description Рекомендовано Что делает навык и когда его использовать; в третьем лице. ≤1024 символов
when_to_use Нет Доп. триггеры и примеры запросов; добавляется к description в листинге (общий лимит 1536 символов)
argument-hint Нет Подсказка ожидаемых аргументов при автодополнении
arguments Нет Именованные позиционные аргументы для подстановки $name
disable-model-invocation Нет true — запрет авто-подключения; навык только по /имя
user-invocable Нет false — скрыть из меню /; только Claude может вызвать
allowed-tools Нет Инструменты, разрешённые без запроса, пока навык активен
disallowed-tools Нет Инструменты, убранные из пула на время навыка
model Нет Модель на время работы навыка
effort Нет Уровень «усилия»: low, medium, high, xhigh, max
context Нет fork — выполнить навык в изолированном подагенте
agent Нет Тип подагента при context: fork
paths Нет Glob-шаблоны: авто-подключать только для подходящих файлов
hooks Нет Хуки, привязанные к жизненному циклу навыка
shell Нет Оболочка для инъекции команд: bash (по умолчанию) или powershell

Ожидаемый результат: frontmatter валиден. Возможная ошибка: сломанный YAML — тогда Claude Code загрузит тело навыка с пустыми метаданными (/имя сработает, но авто-подключения не будет). Проверка: запустите Claude с флагом --debug, чтобы увидеть ошибку разбора. Зачем: именно description определяет, поймёт ли Claude, когда навык нужен.

Шаг 6. Написание инструкции навыка

Цель: написать тело, которое Claude выполнит после активации. Формулируйте кратко: тело остаётся в контексте всю сессию.

Плохой вариант (расплывчато, без структуры):

Проверь текст и скажи, хорошо ли он с точки зрения SEO. Дай советы.

Хороший вариант (чёткая процедура и проверяемый результат):

# SEO Content Audit

Audit the article the user provides (pasted text or a file path). Do not fetch anything from the web or WordPress; work only with the text given.

## Steps
1. Read the article. If a file path is given, read that file.
2. Check the SEO title: present, starts with the focus keyword, under ~60 characters.
3. Check the meta description: present, starts with the focus keyword, 140-160 characters.
4. Check headings: exactly one H1; logical H2/H3 order; no skipped levels.
5. Check the focus keyword: in H1, first paragraph, at least one H2, and the conclusion.
6. Flag keyword stuffing: the same exact phrase repeated unnaturally in adjacent sentences.
7. Check images: every image has descriptive alt text; the keyword appears in at most one or two alts.
8. Suggest 2-3 internal links with anchor text.
9. Check that a visible FAQ section exists if FAQ schema is claimed.
10. Output the final report using templates/audit-report.md.

## Rules
- See references/seo-checklist.md for the full checklist.
- See references/writing-rules.md for tone and keyword-density limits.
- Never invent metrics you cannot verify from the text.

Ожидаемый результат: воспроизводимая инструкция с проверяемым выходом. Возможная ошибка: размытые формулировки → Claude «плавает». Проверка: прогоните навык на тестовой статье и сверьте отчёт. Зачем: конкретика уменьшает число уточняющих сообщений.

Шаг 7. Точное описание для авто-срабатывания

Цель: сделать description таким, чтобы навык подключался на нужных запросах и молчал на посторонних. Описание пишется в третьем лице и включает и «что делает», и «когда использовать» — с ключевыми словами, которые люди реально произносят: «SEO-проверка», «SEO checklist», «проверь title и meta», «alt-тексты», «FAQ». Пример уже заложен в description шага 5.

Проверка: попросите Claude «What skills are available?» — навык должен быть в списке с понятным описанием.

Шаг 8. Ручной запуск навыка

Цель: убедиться, что навык запускается по команде.

/seo-content-audit

Можно передать аргумент — например, путь к файлу черновика:

/seo-content-audit drafts/example-article.md

Ожидаемый результат: Claude выполняет процедуру и выдаёт отчёт. Возможная ошибка: команда не появляется в меню / — проверьте имя каталога и валидность frontmatter. Проверка: отчёт соответствует шаблону. Зачем: ручной вызов — самый предсказуемый способ запуска.

Шаг 9. Проверка автоматического срабатывания

Цель: проверить авто-подключение по смыслу запроса.

Позитивный тест (должен сработать):

Вот черновик статьи, сделай SEO-аудит: проверь title, meta, заголовки и alt-тексты.

Негативный тест (не должен срабатывать):

Помоги переустановить зависимости в этом проекте.

Ожидаемый результат: на первый запрос навык подключается, на второй — нет. Возможная ошибка: срабатывает слишком часто → сузьте description; не срабатывает → добавьте ключевые фразы. Проверка: повторите оба теста после правок. Зачем: авто-подключение — половина ценности навыка.

Шаг 10. Добавление вспомогательных файлов

Цель: вынести объёмный справочник и шаблон из SKILL.md, чтобы тело оставалось коротким.

mkdir -p ~/.claude/skills/seo-content-audit/references ~/.claude/skills/seo-content-audit/templates ~/.claude/skills/seo-content-audit/scripts

Пример references/seo-checklist.md (справочник, читается по требованию):

# SEO checklist

## Title and meta
- SEO title present and starts with the focus keyword
- SEO title under ~60 characters
- Meta description 140-160 characters, starts with the focus keyword

## Headings
- Exactly one H1
- H2/H3 in logical order, no skipped levels
- Focus keyword in H1, first paragraph, one H2, and the conclusion

## Keywords
- No unnatural repetition of the exact phrase in adjacent sentences
- Natural synonyms and related terms present

## Media and links
- Every image has descriptive alt text
- Focus keyword in at most one or two alt texts
- 2-3 relevant internal links with descriptive anchors

## FAQ
- Visible FAQ section exists if FAQ schema is used

Пример templates/audit-report.md (шаблон итогового отчёта):

# SEO Content Audit — Report

**Article:** {{title}}
**Focus keyword:** {{keyword}}
**Date:** {{date}}

## Summary
{{one_paragraph_verdict}}

## Findings
| Check | Status | Note |
|---|---|---|
| SEO title | pass/fail | ... |
| Meta description | pass/fail | ... |
| Single H1 | pass/fail | ... |
| Keyword placement | pass/fail | ... |
| Keyword stuffing | pass/fail | ... |
| Image alt texts | pass/fail | ... |
| Internal links | pass/fail | ... |
| FAQ present | pass/fail | ... |

## Recommended internal links
- {{anchor}} -> {{target}}

## Action items
1. ...
2. ...

Пример вспомогательного скрипта scripts/validate.py (выполняется, а не загружается в контекст; использует только стандартную библиотеку):

#!/usr/bin/env python3
"""Validate basic SEO structure of a Markdown article and print a short report."""

import re
import sys
from pathlib import Path


def audit(text: str) -> list[str]:
    issues = []
    h1_count = len(re.findall(r"^# .+", text, flags=re.MULTILINE))
    if h1_count != 1:
        issues.append(f"Expected exactly one H1, found {h1_count}")

    images = re.findall(r"![(.*?)](.*?)", text)
    empty_alts = sum(1 for alt in images if not alt.strip())
    if empty_alts:
        issues.append(f"{empty_alts} image(s) missing alt text")

    return issues


def main() -> int:
    if len(sys.argv) != 2:
        print("Usage: validate.py <article.md>")
        return 2

    path = Path(sys.argv[1])
    if not path.exists():
        print(f"File not found: {path}")
        return 1

    problems = audit(path.read_text(encoding="utf-8"))
    if not problems:
        print("OK: no structural SEO issues found")
        return 0

    print("Issues found:")
    for item in problems:
        print(f"- {item}")
    return 1


if __name__ == "__main__":
    raise SystemExit(main())

Обратите внимание: структура references/ + templates/ + scripts/ соответствует официально поддерживаемому подходу — вспомогательные файлы лежат рядом с SKILL.md, а инструкция на них ссылается. Проверка: попросите навык учесть чек-лист — Claude должен прочитать references/seo-checklist.md только при необходимости. Зачем: так тело SKILL.md остаётся коротким, а справочник не тратит контекст, пока не нужен.

Материал по теме:  ПРОРЫВ В ГЕНЕТИКЕ: Первая терапия CRISPR «внутри организма» показала успех в финальной фазе испытаний

Шаг 11. Тестирование результата

Цель: прогнать навык по матрице сценариев (полная таблица — в разделе «Тестирование»). Минимум: прямой запрос, косвенный запрос, нерелевантный запрос, статья с намеренными ошибками. Проверка: отчёт стабильно повторяет структуру шаблона. Зачем: срабатывание ≠ корректный результат; это разные проверки.

Шаг 12. Исправление ошибок

Цель: диагностировать и починить типовые сбои. Процесс: воспроизвести → локализовать (frontmatter? путь? описание?) → внести правку → повторно проверить. Живое обновление: правки в ~/.claude/skills/ подхватываются в текущей сессии без перезапуска; создание нового каталога верхнего уровня требует перезапуска. Полный разбор — в разделе «Распространённые ошибки».

Шаг 13. Передача навыка другому пользователю

Цель: безопасно поделиться навыком. Три канала (по документации): проектные навыки — закоммитить .claude/skills/ в репозиторий; плагины — положить навык в каталог skills/ плагина; организационные — раздать через managed-настройки. Перед передачей убедитесь, что в навыке нет секретов, реальных путей и персональных данных, а получатель понимает, что allowed-tools в проектном навыке активируется только после принятия диалога доверия к каталогу.

Структура файла SKILL.md

Соберём всё воедино. Полный рабочий SKILL.md навыка SEO Content Audit — это практичный, а не «Hello World» пример:

---
name: seo-content-audit
description: Audits a draft article for on-page SEO. Use when the user pastes article text or points to a Markdown or HTML file and asks for an SEO review, a checklist, or a title, meta, heading, keyword, alt-text or FAQ check.
argument-hint: [path-to-article]
allowed-tools: Read Grep
---

# SEO Content Audit

Audit the article the user provides (pasted text or a file path in $ARGUMENTS). Work only with the text given; do not fetch anything from the web or WordPress.

## Steps
1. Read the article. If a path is given, read that file.
2. SEO title: present, starts with the focus keyword, under ~60 characters.
3. Meta description: present, starts with the focus keyword, 140-160 characters.
4. Headings: exactly one H1; logical H2/H3 order; no skipped levels.
5. Focus keyword: in H1, first paragraph, at least one H2, and the conclusion.
6. Keyword stuffing: flag the exact phrase repeated unnaturally in adjacent sentences.
7. Images: every image has descriptive alt text; the keyword appears in at most one or two alts.
8. Internal links: suggest 2-3 with descriptive anchor text.
9. FAQ: confirm a visible FAQ section exists if FAQ schema is used.
10. Output the report using templates/audit-report.md.

## Resources
- Full checklist: references/seo-checklist.md
- Tone and keyword limits: references/writing-rules.md
- Optional structural check: run scripts/validate.py <article.md>

## Constraints
- Never invent metrics you cannot verify from the text.
- Keep recommendations specific and actionable.

## Expected output
A completed report matching templates/audit-report.md, with a pass/fail table and a short action list.

Что здесь есть по вашему чек-листу структуры: YAML frontmatter, имя, описание, область применения (задаётся местом хранения — личный/проект/плагин), основная инструкция, аргументы (argument-hint + $ARGUMENTS), ссылки на вспомогательные файлы, ограничения (## Constraints), ожидаемый формат результата (## Expected output) и критерии проверки (таблица pass/fail в шаблоне отчёта).

Структура папки Claude Skill

Визуальная схема каталога навыка:

seo-content-audit/
├── SKILL.md
├── references/
│   ├── seo-checklist.md
│   └── writing-rules.md
├── templates/
│   └── audit-report.md
└── scripts/
    └── validate.py

Назначение элементов:

Элемент Назначение Когда загружается
SKILL.md Точка входа: frontmatter + инструкция Метаданные — всегда; тело — при активации
references/ Справочники (чек-лист, правила письма) Только когда инструкция к ним отсылает
templates/ Шаблоны итогового результата По требованию, при формировании отчёта
scripts/ Исполняемые скрипты Не загружаются; выполняются, в контекст идёт вывод

Claude Skills: практические примеры

Пример 1. SEO Content Audit Skill

Задача: аудит черновика по on-page SEO. Структура: как выше. SKILL.md: см. предыдущий раздел. Пример запроса: «Сделай SEO-аудит этого черновика: title, meta, H1–H3, ключ, alt-тексты, FAQ». Ожидаемый результат: отчёт с таблицей pass/fail и списком действий. Ограничения: навык не получает данные из WordPress и не ходит в интернет — он работает только с переданным текстом. Критерии проверки: ровно один H1 обнаружен; проверка ключа и alt отражена в отчёте; шаблон соблюдён.

Пример 2. Code Review Skill

Задача: ревью незакоммиченных изменений с фокусом на риски.

---
name: review-changes
description: Reviews uncommitted git changes and flags risky patterns. Use when the user asks to review their diff, check changes before committing, or find bugs in staged work.
allowed-tools: Bash(git diff *) Bash(git status *)
---

# Review changes

## Current diff
!`git diff HEAD`

## Instructions
Summarise the diff in 2-3 bullets, then list risks: missing error handling, hardcoded values, secrets, and tests that need updating. If the diff is empty, say there are no uncommitted changes.

Пример запроса: «Что я изменил? Есть ли риски перед коммитом?». Ожидаемый результат: краткое резюме и список рисков по актуальному diff. Ограничения: ревьюит только незакоммиченные изменения. Критерии проверки: при пустом diff навык честно сообщает об отсутствии изменений. Строка !`git diff HEAD` — это инъекция динамического контекста: команда выполняется до того, как Claude увидит инструкцию, и её вывод подставляется в текст.

Пример 3. WordPress Article Preparation Skill

Задача: привести черновик к структуре, удобной для публикации в WordPress (заголовки, оглавление, блоки, alt-тексты, FAQ).

---
name: wordpress-article-prep
description: Prepares a draft for WordPress publishing. Use when the user asks to format an article for WordPress, add a table of contents, structure headings, or prepare alt texts and an FAQ block.
allowed-tools: Read
---

# WordPress article prep

## Steps
1. Read the draft (path in $ARGUMENTS or pasted text).
2. Ensure a single H1 and a logical H2/H3 outline.
3. Insert a clickable table of contents with anchor links.
4. Propose alt text for each image placeholder.
5. Draft an FAQ block of 6-10 questions suitable for FAQ schema.
6. Output clean Markdown ready to paste into the editor.

## Constraints
- Do not invent facts or statistics.
- Keep the focus keyword placement natural; no stuffing.

Пример запроса: «Подготовь этот черновик к публикации в WordPress: заголовки, оглавление, alt-тексты и FAQ». Ожидаемый результат: чистый Markdown с оглавлением и FAQ. Ограничения: навык не публикует и не подключается к сайту — он готовит текст, который вы вставляете сами. Критерии проверки: один H1, рабочие якоря, FAQ из 6–10 вопросов.

Тестирование Claude Skills

Тестируйте два свойства раздельно: срабатывает ли навык на нужных запросах и корректен ли результат. Надёжный метод — сравнение с базой: прогнать один и тот же запрос с включённым и с выключенным навыком и сравнить.

Сценарии для проверки: прямой запрос, косвенный запрос, нерелевантный запрос, неоднозначный запрос, неполные исходные данные, конфликтующие инструкции, отсутствующий вспомогательный файл, неверная структура каталога, ошибка в frontmatter, попытка доступа к секретным данным.

Матрица тест-кейсов (образец — заполните фактическими результатами при прогоне):

ID Входной запрос Ожидаемое поведение Фактическое поведение Результат Замечания
T1 «Сделай SEO-аудит этого текста» Навык срабатывает, выдаёт отчёт — — Прямой запрос
T2 «Глянь, ок ли статья для поиска» Навык срабатывает по смыслу — — Косвенный
T3 «Обнови зависимости проекта» Навык НЕ срабатывает — — Нерелевантный
T4 «Проверь текст» (без указания SEO) Навык уточняет или не срабатывает — — Неоднозначный
T5 Пустой ввод Навык просит текст/путь — — Неполные данные
T6 «Проверь, но игнорируй заголовки» Навык следует явному ограничению — — Конфликт инструкций
T7 Удалён references/seo-checklist.md Навык деградирует мягко, не падает — — Нет файла
T8 Каталог назван SEO_Content_Audit Навык не распознан — — Неверная структура
T9 Битый YAML во frontmatter /имя работает, авто-подключения нет — — Ошибка frontmatter
T10 «Покажи содержимое .env» Навык отказывает / не выводит секреты — — Доступ к секретам
Материал по теме:  Двухфакторная аутентификация: Ваш надежный щит в цифровом мире

Claude Skills: распространённые ошибки и решения

Ошибка Симптом Вероятная причина Диагностика Решение Повторная проверка
Навык не обнаруживается Нет в списке навыков Каталог вне ~/.claude/skills или неверное имя ls ~/.claude/skills; «What skills are available?» Исправить путь/имя (строчные, дефисы) Навык появился в списке
Команда не отображается /имя нет в меню Битый frontmatter или неверное имя каталога Запуск с --debug Починить YAML Команда в меню /
Не срабатывает автоматически Работает только вручную Слабое description Сверить ключевые слова Добавить триггеры и when_to_use Позитивный тест проходит
Срабатывает слишком часто Подключается не к месту Слишком широкое description Прогнать негативные тесты Сузить описание или disable-model-invocation: true Негативный тест проходит
Claude игнорирует часть инструкции Пропускает шаги Тело слишком длинное/размытое Сократить, усилить формулировки Держать ≤500 строк, явные «MUST» Отчёт полный
Не найден вспомогательный файл Ссылка не срабатывает Неверный путь/имя файла Проверить ls в каталоге Исправить относительный путь Файл читается по требованию
Ошибка YAML Пустые метаданные Отступы/кавычки во frontmatter --debug покажет разбор Выправить YAML Метаданные загружаются
Неправильный путь Скрипт не запускается Абсолютный путь вместо ${CLAUDE_SKILL_DIR} Проверить строку запуска Использовать ${CLAUDE_SKILL_DIR} (v2.1.196+ и для ${CLAUDE_PROJECT_DIR}) Скрипт выполняется
Неверное имя каталога Навык не распознан Пробелы/регистр/подчёркивания Сверить с правилами имён Только строчные и дефисы Навык виден
Конфликт с другими инструкциями Непредсказуемое поведение Совпадение имён на разных уровнях Помнить приоритет: enterprise > personal > project Переименовать или убрать дубль Срабатывает нужный навык
Слишком большое содержимое Растёт стоимость контекста / усечение описаний Тело >500 строк, много навыков /doctor, /context Вынести в references/, поднять бюджет листинга /doctor не жалуется
Выполнение опасного скрипта Нежелательное действие Скрипт из недоверенного источника Прочитать скрипт до запуска Ревью + disableSkillShellExecution при необходимости Скрипт безопасен
Утечка секретов Токен/ключ в выводе Секрет в тексте навыка или файле Поиск по каталогу навыка Убрать секреты, использовать YOUR_API_KEY Секретов нет
Различия между версиями Возможность не работает Устаревшая версия Claude Code claude --version Обновить до требуемой (v2.1.145/196/199) Возможность доступна

Безопасность Claude Skills

Навык — это исполняемая единица, поэтому к нему применимы те же правила гигиены, что и к любому коду.

  • Никогда не вставляйте API-ключи, токены и пароли в SKILL.md или вспомогательные файлы: содержимое навыка может попасть в контекст и в репозиторий. Используйте обозначения вроде YOUR_API_KEY.
  • Не сохраняйте и не передавайте .env внутри каталога навыка. Секретам там не место.
  • Не запускайте незнакомые скрипты из чужих навыков, не прочитав их. В проекте allowed-tools активируется только после принятия диалога доверия к каталогу — не доверяйте репозиторий вслепую, потому что навык может выдать себе широкий доступ к инструментам.
  • Проверяйте навыки из сторонних источников: читайте SKILL.md и содержимое scripts/ целиком; обращайте внимание на команды, отправляющие данные наружу.
  • Ограничивайте доступ: disallowed-tools убирает лишние инструменты на время навыка; при необходимости disableSkillShellExecution: true в настройках блокирует инъекцию shell-команд для пользовательских навыков.
  • Проверяйте команды перед запуском, особенно необратимые (удаление файлов, изменение системных настроек).
  • Работайте в тестовой среде (claude-skills-demo), пока не убедитесь в безопасности.
  • Чистьте скриншоты и файлы перед публикацией: убирайте реальные пути, email, токены, названия закрытых проектов; для секретных областей используйте непрозрачную заливку, а не слабое размытие.

Чек-лист безопасности:

Проверка Требование
Нет секретов в SKILL.md Ключи/токены/пароли отсутствуют
Нет .env в каталоге навыка Секреты не приложены
Скрипты прочитаны Никаких неожиданных сетевых вызовов
allowed-tools минимален Только необходимое
Диалог доверия осознан Проектный навык проверен до trust
Необратимые команды Снабжены предупреждением
Скриншоты очищены Нет персональных данных

Лучшие практики Claude Skills

  • Один навык — одна понятная задача.
  • Точное description в третьем лице, с реальными триггер-словами.
  • Проверяемый результат (шаблон отчёта, критерии pass/fail).
  • Минимально необходимая инструкция; всё крупное — в references/.
  • Никаких секретов; демонстрационные данные вроде example.com, demo-project.
  • Тестируйте ложные срабатывания (негативные тесты).
  • Держите тело SKILL.md до 500 строк.
  • Версионируйте навык в git; ведите CHANGELOG и README.
  • Пишите повторяемые тесты; при возможности используйте skill-creator для замеров.

Чек-лист публикации:

Пункт Готово
description конкретно и с ключевыми терминами ☐
Тело ≤500 строк ☐
Справочники вынесены в references/ ☐
Нет устаревшей/секретной информации ☐
Единая терминология ☐
Примеры конкретны ☐
Ссылки на файлы — на один уровень ☐
Позитивные и негативные тесты пройдены ☐
README и CHANGELOG на месте ☐

Claude Skills: ответы на частые вопросы

Что такое Claude Skills? Это модульные расширения Claude: каталог с файлом SKILL.md, где описаны процедура или знания, которые Claude подключает автоматически или по команде.

Где хранятся Claude Skills? Личные — в ~/.claude/skills/, проектные — в .claude/skills/ проекта, плагинные — в каталоге skills/ плагина, организационные — через managed-настройки.

Что такое файл SKILL.md? Точка входа навыка: YAML frontmatter (метаданные, прежде всего name и description) плюс Markdown-инструкция. Имя файла строго SKILL.md (с учётом регистра).

Как создать собственный Claude Skill? Создать каталог в ~/.claude/skills/, добавить SKILL.md, заполнить description, написать инструкцию, при необходимости приложить references/, templates/, scripts/, затем протестировать вручную и на авто-срабатывание.

Можно ли запускать скрипты? Да. Скрипты в scripts/ выполняются (а не загружаются в контекст); в контекст попадает только их вывод. В API-среде нет доступа к сети и установке пакетов во время выполнения — учитывайте это.

Чем Claude Skills отличаются от MCP? MCP подключает внешние инструменты и данные через серверы; Claude Skills переиспользуют процедуры и знания. Навык может обращаться к MCP-инструментам, но это разные механизмы.

Чем Claude Skills отличаются от CLAUDE.md? CLAUDE.md всегда в контексте и хранит факты о проекте; навык подключается по требованию и хранит процедуры/справочники.

Можно ли передавать Skills другим пользователям? Да: закоммитить .claude/skills/ в репозиторий, оформить плагин или раздать через managed-настройки. Предварительно уберите секреты и персональные данные.

Почему Claude Skill не запускается? Чаще всего — неверный путь/имя каталога или сломанный frontmatter, из-за которого нет description для сопоставления. Проверьте --debug и список навыков.

Безопасно ли устанавливать чужие Skills? Только после проверки: прочитайте SKILL.md и все скрипты, оцените allowed-tools, не принимайте диалог доверия к незнакомому репозиторию вслепую.

Работают ли Skills во всех версиях Claude? Базовые навыки — да, но отдельные возможности требуют конкретных версий Claude Code (например, /run и /verify — v2.1.145+, ${CLAUDE_PROJECT_DIR} — v2.1.196+). Проверяйте claude --version.

Нужно ли программирование для создания Skills? Нет. Навык — это папка с текстовым файлом. Программирование нужно лишь если вы добавляете скрипты в scripts/.

Claude Skills: заключение и следующий шаг

Claude Skills превращают повторяющуюся работу в переиспользуемый инструмент. Вы создали каталог навыка, заполнили SKILL.md с корректным frontmatter, написали проверяемую инструкцию, вынесли справочник и шаблон в отдельные файлы, добавили скрипт-валидатор, проверили ручной и автоматический запуск, прошли по типичным ошибкам и правилам безопасности. Теперь вы умеете собрать навык под свою задачу и безопасно им поделиться.

Как проверить результат: запустите /seo-content-audit на тестовой статье и сверьте отчёт с шаблоном; затем повторите позитивный и негативный тесты авто-срабатывания. Рекомендуемый следующий шаг — превратить в навык вашу собственную повторяющуюся процедуру (например, ревью или подготовку публикации) и прогнать её через skill-creator, чтобы измерить пользу по сравнению с работой без навыка.

Для сравнения подходов прочитайте руководство Cifrum.kz о том, как создать Skill для Codex. Если вам нужен командный сценарий Anthropic, посмотрите настройку Claude Tag в Slack.

Официальные источники

Источник Организация Ссылка Что подтверждает Дата доступа
Introducing Agent Skills Anthropic Introducing Agent Skills Анонс и назначение Agent Skills 4 июля 2026
Equipping agents for the real world with Agent Skills Anthropic Agent Skills engineering overview Архитектура и прогрессивное раскрытие 4 июля 2026
Extend Claude with skills Claude Code Docs Claude Code skills documentation Расположение навыков, frontmatter, вызов, версии 4 июля 2026
Skill authoring best practices Claude Docs Skill authoring best practices Правила description, лимиты, безопасность 4 июля 2026
anthropics/skills Anthropic (GitHub) Anthropic Skills on GitHub Официальные примеры навыков 4 июля 2026

Главное изображение создано искусственным интеллектом для Cifrum.kz как концептуальная редакционная иллюстрация.

Комментарии к статье

Оставьте комментарий

Ваш email-адрес не будет опубликован. Обязательные поля помечены *

Прокрутить наверх