1. Архитектура и обязательные разделы файла SKILL.md
Файл SKILL.md — это инженерный инструмент, превращающий универсальную языковую модель в подготовленного профильного инженера для выполнения одного регламентированного рабочего процесса. Он не подменяет общесистемные правила проекта, а дополняет их узким прикладным знанием.
Перед созданием навыка обязательно изучите глобальный файл правил репозитория (AGENTS.md или CLAUDE.md). Эти документы служат единственным источником истины для критических правил безопасности и локальных команд. Задача навыка — обучить агента последовательности действий, ссылаясь на системные правила, а не дублируя их.
Подробный разбор обязательных компонентов
- Description во Frontmatter: Единственный блок текста, который агент считывает до принятия решения о вызове навыка. Его необходимо формулировать как предикатное условие запуска («Используй, когда...»), а не как абстрактную тему.
- When to trigger (Когда активировать): Развернутый перечень прямых запросов, ошибок в терминале или операций в Git, при которых навык обязан сработать.
- Procedure (Регламентированная процедура): Нумерованный алгоритм действий с проверенными командами и существующими путями к файлам.
- Pitfalls (Подводные камни): Каталог реальных сбоев. Каждая запись строится по формуле: Ошибочное действие → Точный технический сбой → Рецепт исправления.
Если процедура завершается деплоем или релизом, не дублируйте пайплайн внутри навыка. Завершайте шаг указанием: «Запусти навык ship-pipeline».
2. Структура размещения: синхронизация между Codex и Claude Code
В современных рабочих процессах инженеры часто используют несколько агентских клиентов (например, OpenAI Codex в консоли или IDE и Claude Code). Оба рантайма поддерживают спецификацию Agent Skills, но ожидают найти файлы в разных директориях.
Пути размещения файлов навыков для рантаймов Codex и Claude CodeМатрица путей для рантаймов
| Рантайм / Агент | Целевой путь SKILL.md | Особенности обнаружения |
|---|---|---|
| OpenAI Codex | .agents/skills/<name>/SKILL.md | Считывается Codex при сканировании локальных инструментов |
| Anthropic Claude Code | .claude/skills/<name>/SKILL.md | Считывается Claude Code при инициализации сессии |
Требование дуальной синхронизации: Навык, созданный только в .claude/skills/, останется невидимым для Codex, и наоборот. Всегда поддерживайте актуальность файлов в обоих каталогах или настраивайте символические ссылки.
3. Критерии готовности и валидация чернового навыка
Перед добавлением навыка в репозиторий команды проверьте его по следующим критериям качества:
- Фальсифицируемость триггера: Вы можете назвать как минимум 2 смежных запроса в этой области, при которых навык НЕ должен срабатывать.
- Аудит команд: Каждая выполняемая команда присутствует в разделе Local Commands системного файла
AGENTS.md. - Фактические подводные камни: Каждый пункт в Pitfalls описывает реальный инцидент, а не абстрактный совет вроде «будьте внимательны».
- Компактность текста: Чтение навыка занимает не более 2–3 минут (до 500 строк).
- Нулевое дублирование: Ни один абзац не копирует общие правила из
AGENTS.md.
4. Паттерны компоновки: диспетчеры, референсы и цепочки
Реальные инженерные процессы редко укладываются в один файл. Попытка описать всю систему в монолитном SKILL.md приводит к размыванию контекста. Используйте три проверенных архитектурных паттерна:
Паттерн 1: Entry Router (Навык-диспетчер)
Один общий навык выступает картой маршрутизации. Он анализирует намерение пользователя и перенаправляет задачу специализированным под-навыкам:
Паттерн 2: Reference-файлы
Основной SKILL.md содержит только базовый алгоритм, а подробные схемы, таблицы и грамматики выносятся в папку references/:
Паттерн 3: Skill Chain (Цепочка навыков)
Навыки ссылаются друг на друга как на логически следующий этап через директиву или поле relatedPaths:
5. Стратегии рефакторинга: когда разделять, а когда объединять навыки
Правильный баланс между дроблением и укрупнением навыков обеспечивает долгосрочную стабильность системы.
В большинстве спорных ситуаций правильным решением является разделение. Попытка создать «универсальный навык для всего бэкенда» неизбежно приводит к галлюцинациям модели.
6. Контракт версионирования и конвейер сборки флагманских навыков
В зрелых кодовых базах навыки разделяются на три уровня в зависимости от дистрибуции и способа компиляции:
Матрица сборки и размещения различных типов навыков в системе| Уровень навыка | Где редактируется исходный код | Конвейер сборки | Назначение |
|---|---|---|---|
| Навык репозитория (приватный) | .agents/skills/<name>/SKILL.md + .claude/skills/<name>/SKILL.md | Не требуется (читается напрямую) | Внутренние регламенты команды для текущего проекта |
| Публичный флагманский (многофайловый) | skills-source/<slug>/ + метаданные в скрипте сборки | node scripts/build-flagship-skills.mjs skills-source/ | Комплексные модульные решения с reference-файлами для маркетплейса |
| Публичный однофайловый | baseSkills в lib/library/skills.ts | Не требуется | Легковесные базовые навыки для общего каталога платформы |
Запрет ручной правки скомпилированных файлов: Никогда не редактируйте скомпилированные артефакты флагманских навыков напрямую. Любые изменения вносятся исключительно в папку skills-source/<slug>/ с последующим запуском генератора.
7. Методология тестирования: пять обязательных проверок качества
Написание текста навыка — это лишь половина пути. Перед релизом навык обязан пройти 5 последовательных проверок:
Детали протокола тестирования
- Trigger Probe (Проверка триггера): Составьте 3 запроса, которые должны запускать навык, и 2 запроса, которые должны отклоняться. Убедитесь, что описание во frontmatter четко разделяет эти случаи.
- Procedure Walk-Through (Натурный прогон): Выполните каждый шаг вручную в терминале. Если для выполнения шага вам не хватило контекста — в инструкции пропущено необходимое условие.
- Pitfall Audit (Аудит сбоев): Убедитесь, что каждая описанная ошибка действительно происходила на практике, а предложенное исправление работает.
- Scope Test (Тест фокуса): Сформулируйте назначение навыка одним предложением. Если формулировка требует союза «а также» — навык необходимо разделить.
- Staleness Check (Контроль актуальности): Сверьте команды и пути с текущими версиями зависимостей и структурой проекта.
8. Анатомия антипаттернов: как отличить рабочий навык от черновика
Сравнение типовых дефектов помогает быстро провести самопроверку перед коммитом.
| Признак | Черновик (Draft) | Готовый навык (Ready) |
|---|---|---|
| Формулировка триггера | Описывает общую тему: «Для работы с базой данных» | Задает условие: «Используй при создании миграций Drizzle» |
| Описание шагов | Размытые советы: «запусти линтер при необходимости» | Четкие команды: «запусти npm run lint:fix» |
| Описание рисков | Общее предостережение: «будь осторожен с файлами» | Конкретный сбой: «git add несуществующего пути прервет staging» |
| Источники правил | Копирует текст из AGENTS.md | Содержит прямую ссылку на раздел в AGENTS.md |
| Синхронизация | Создан только в .claude/skills/ | Синхронизирован одновременно в .agents/ и .claude/ |
9. Предотвращение подводных камней: отказ от дублирования AGENTS.md
Наиболее распространенная ошибка — копирование глобальных правил проекта (запрет длинных тире, стили кнопок в CSS или правила работы с ветками) внутрь SKILL.md.
Безопасное добавление файлов в Git
В процедурах коммита внутри навыков всегда проверяйте существование файлов перед их добавлением в индекс:
10. Итоговый чек-лист готовности к продакшену
Перед сохранением созданного навыка в Git проверьте выполнение каждого пункта:
- Навык синхронизирован в обоих каталогах:
.agents/skills/<name>/SKILL.mdи.claude/skills/<name>/SKILL.md. - Поле
descriptionначинается со слов «Используй, когда...» и задает точные условия активации. - Пройдены все 5 проверок тестового протокола (Trigger, Procedure, Pitfall, Scope, Staleness).
- В тексте отсутствуют слова неопределенности («по возможности», «при необходимости»).
- Все терминальные команды проверены в рабочей консоли проекта.
- Глобальные правила оформлены в виде ссылок на
AGENTS.mdбез дублирования текста.