Короткий ответ
Навык в Codex — это папка с файлом SKILL.md внутри. Codex ищет навыки в нескольких местах по порядку старшинства:
| Где | Путь | Для чего |
|---|---|---|
| Текущая папка | $CWD/.agents/skills | навыки под конкретную задачу |
| Корень репозитория | $REPO_ROOT/.agents/skills | общие для команды |
| Домашний каталог | $HOME/.agents/skills | ваши личные, во всех проектах |
| Системные | /etc/codex/skills | заданные администратором |
Самый частый выбор — ~/.agents/skills для себя и .agents/skills в репозитории для команды.
Минимальный навык
---
name: имя-навыка
description: Когда этот навык нужно применять, а когда не нужно.
---
Инструкции, которым Codex должен следовать.
Обязательных полей ровно два: name и description. Всё остальное в файле — обычный текст с инструкциями.
Главное, что понимают не сразу
Навык вызывается двумя способами. Явно — вы пишете @имя-навыка или $имя-навыка. И неявно — Codex сам решает применить навык, если ваш запрос похож на то, что написано в description.
Отсюда неочевидное следствие: описание важнее содержимого. Можно написать блестящую инструкцию на три страницы, но если в описании стоит расплывчатое «помогает с кодом», навык не сработает никогда — модель просто не поймёт, что момент настал.
Хорошее описание отвечает на два вопроса: когда применять и когда не применять. Слова-триггеры лучше ставить в начало.
Плохо: «Навык для работы с базой данных». Лучше: «Миграции PostgreSQL: создать, проверить, откатить. Не для обычных SQL-запросов».
Чем это отличается от навыков Claude
Тем же стандартом. Codex построен на открытом формате agent skills — том же, что использует Claude Code. Структура папки и обязательные поля совпадают, различаются пути, куда агент смотрит.
На практике это значит, что навык, написанный для одного агента, обычно переносится в другой копированием папки. Подробный разбор формата — в материале про Claude Skills, а порядок создания с нуля — в инструкции, как написать свой навык.
Когда навык лучше, чем просто попросить
Навык окупается, когда задача повторяется и у неё есть порядок действий, который вы каждый раз объясняете заново.
Признак, что пора: вы третий раз пишете агенту одно и то же вступление про то, как в вашем проекте принято оформлять коммиты или куда складывать миграции. Это вступление и есть навык.
Не окупается для разовых задач: пока вы описываете навык, задача решилась бы вручную.
Частые ошибки
Слишком широкое описание. Навык начинает срабатывать где попало и мешает. Сузьте формулировку и добавьте, чего он не покрывает.
Навык вместо инструкции проекта. Общие правила репозитория — что за проект, как собирать, каким стилем писать — живут в другом файле. Про это есть отдельный разбор AGENTS.md.
Слишком много навыков сразу. Модель выбирает из описаний, и на трёх десятках похожих навыков начинает промахиваться. Лучше десять точных, чем тридцать размытых.
Если хочется посмотреть на готовые примеры, прежде чем писать своё, — где брать готовые навыки.