Скилл — это папка с файлом SKILL.md, которая даёт ИИ-агенту готовый навык: инструкции, при необходимости скрипты и справочные материалы под конкретную задачу. Claude Code и OpenAI Codex используют один открытый стандарт Agent Skills, поэтому перенос обычно сводится к смене папки и проверке нескольких полей. Переписывать навык с нуля не нужно.
Ключевое правило: главная причина, по которой перенесённый навык «не виден» в Codex, — неправильная папка. Codex читает скиллы из .agents/skills, не из .claude/skills и не из .codex/skills.
Что это
Agent Skills — это открытый стандарт описания навыков для ИИ-агентов. Файл SKILL.md содержит YAML-фронтматтер (что это за навык и когда его применять) и markdown-инструкции (что именно делать). Папка может также содержать scripts/, references/ и assets/. Оба агента используют прогрессивное раскрытие: при старте в контекст попадают только name, description и путь, а полное тело подгружается, только когда агент применяет навык.
Различаются три вещи: расположение папки, набор полей frontmatter и механизм динамических вставок. Тело markdown, структура каталога и подпапки scripts/references/assets переезжают без изменений.
Стандарт изначально разработан Anthropic и передан в открытую разработку. Поддерживают не только Codex и Claude Code, но и Junie (JetBrains), Gemini CLI (Google) и другие агенты. Если Skill написан корректно по стандарту, он работает в нескольких агентах без переписывания.
Зачем нужно
- Перевести команду с Claude Code на Codex или наоборот без потери накопленных навыков.
- Использовать один и тот же навык в обоих агентах: например, summarize-changes и в Claude Code, и в Codex.
- Поделиться навыком с сообществом: стандарт Agent Skills работает в обоих агентах, README достаточно один раз.
- Сократить дублирование: одна кодовая база скиллов вместо двух параллельных репозиториев.
Как устроено
| Элемент скилла | Что при переносе | Что делать |
|---|---|---|
| name, description | Без изменений | Оставить как есть |
| Markdown-инструкции (тело) | Без изменений | Оставить как есть |
| Папки scripts/, references/, assets/ | Без изменений | Перенести, проверить пути |
| Расположение папки скилла | Меняется | См. таблицу путей ниже |
| Claude-поля frontmatter | Убрать или адаптировать | allowed-tools, disable-model-invocation и др. |
| Динамические вставки $ARGUMENTS | Аналога нет | Переписать вручную |
Хронология и зрелость экосистем
| Параметр | Claude Code | OpenAI Codex |
|---|---|---|
| Когда появились Skills | Середина 2025 (как slash commands); конец 2025 — объединены в Skills | Конец 2025 — в CLI; начало 2026 — в Codex app и API |
| Зрелость экосистемы | Зрелая, активное сообщество | Молодая, быстро растёт |
| Публичные Skills | Тысячи на GitHub (filename: SKILL.md) | Растёт, каталог на agentskills.io, $skill-installer |
| Встроенные Skills | /batch, /simplify, /debug, /loop, /claude-api | $skill-creator, $plan |
Claude Code исторически называл эту функцию slash commands (.claude/commands/). Пользовательские commands были объединены со Skills — старые файлы в .claude/commands/ продолжают работать, но Skills рекомендуются как основной формат.
Сравнение формата: 13 аспектов
| Аспект | Claude Code | OpenAI Codex |
|---|---|---|
| Обязательный файл | SKILL.md | SKILL.md |
| Frontmatter | name, description, disable-model-invocation, user-invocable, allowed-tools, model, effort, context, agent, hooks, argument-hint | name, description + расширение в agents/openai.yaml (interface, policy, dependencies) |
| Директория Skills | ~/.claude/skills/ (личные), .claude/skills/ (проект), enterprise, plugins | $HOME/.agents/skills/ (личные), $REPO_ROOT/.agents/skills/ (проект), /etc/codex/skills/ (admin), system |
| Явный вызов | /skill-name в чате | $skill-name или /skills в CLI/IDE |
| Блокировка авто-вызова | disable-model-invocation: true в frontmatter | policy.allow_implicit_invocation: false в openai.yaml |
| Аргументы | $ARGUMENTS, $ARGUMENTS[N], $N — подстановка в контент | Через текст промпта |
| Субагенты | context: fork + agent: Explore/Plan/general-purpose или кастомные | Базовая поддержка, развивается |
| Hooks (события) | В frontmatter: hooks — триггеры на события жизненного цикла Skill | Не поддерживается |
| Динамический контекст | !command — выполнение команд до загрузки Skill | Не поддерживается |
| Ограничение инструментов | allowed-tools: Read, Grep, Bash(gh ) — гранулярно | Через sandbox-конфигурацию |
| Выбор модели на Skill | model и effort (low/medium/high/max) в frontmatter | Через общие настройки |
| API для Skills | Нет — только файловая система | POST /v1/skills, версионирование, монтирование в Responses API |
| Визуальный UI | Только CLI | Skills UI в Codex app |
Когда использовать
| Ситуация | Решение |
|---|---|
| Перевести команду с Claude Code на Codex | Перенести скиллы из .claude/skills в .agents/skills, проверить frontmatter |
| Скилл использует allowed-tools | Убрать поле, доступ к инструментам в Codex задаётся политикой подтверждений |
| Скилл использует динамические вставки !команда | Превратить в явный шаг «выполни …» или вынести в scripts/ |
| В Claude стоял disable-model-invocation: true | Добавить agents/openai.yaml с policy.allow_implicit_invocation: false |
| Скилл не виден после переноса | Проверить, что папка называется .agents/skills, а не .codex/skills |
Встроенные Skills: что есть из коробки
У Claude Code — 5 встроенных Skills, проверенных на больших кодовых базах. У OpenAI Codex — 2 встроенных Skills, помогающих в самом процессе разработки.
| Skill (Claude Code) | Что делает |
|---|---|
| /batch | Масштабные изменения в кодовой базе параллельно — декомпозиция на 5–30 юнитов, по агенту на каждый, PR на выходе |
| /simplify | Ревью недавних изменений — 3 параллельных агента проверяют качество, переиспользование и эффективность |
| /debug | Диагностика текущей сессии по debug-логу |
| /loop | Повторяет промпт по интервалу — мониторинг деплоя, ожидание CI |
| /claude-api | Загружает справку по Claude API для языка проекта |
| Skill (OpenAI Codex) | Что делает |
|---|---|
| $skill-creator | Создаёт новый Skill по описанию задачи |
| $plan | Планирование изменений в кодовой базе перед выполнением |
Пример
Сравнение путей. Уровень пользователя и проекта различается — это первая точка путаницы.
| Уровень | Claude Code | Codex |
|---|---|---|
| Пользовательский (все проекты) | ~/.claude/skills/ | ~/.agents/skills/ |
| Репозиторий / проект | .claude/skills/ | .agents/skills/ |
| Системный / админский | managed settings | /etc/codex/skills/ |
| Плагин | плагин Codex |
Codex сканирует .agents/skills от текущей папки вверх до корня репозитория. Положите навык не туда — и агент просто его не увидит. В Codex навык вызывается явно через /skills или $имя-скилла, либо неявно по description. В Claude — командой /имя-скилла или автоматически.
Совет: в description выносите вперёд ключевой сценарий и слова-триггеры. И Claude, и Codex обрезают длинные описания в общем списке навыков, поэтому первое предложение важнее последнего.
Пример переносимого Skill (write-tests)
Если Skill содержит только SKILL.md с frontmatter (name, description) и инструкциями — он работает в обоих агентах без изменений. Пример — Skill, который пишет unit-тесты для публичных функций.
---
name: write-tests
description: Пишет unit-тесты для новых публичных функций в текущем файле
---
1. Найди все публичные функции без тестов
2. Для каждой напиши тест в соответствующем test-файле
3. Покрой edge cases: null, пустые значения, граничные числа
Этот Skill запустится и в Claude Code, и в Codex без единой правки — потому что использует только name, description и текстовые инструкции. Никаких hooks, субагентов, allowed-tools или $ARGUMENTS.
Чеклист портирования Skill из Claude Code в Codex
- Скопировать папку Skill в .agents/skills/ проекта
- Проверить frontmatter: name и description присутствуют
- Убрать Claude-специфичные поля: context, agent, allowed-tools, hooks, effort, model
- Убрать $ARGUMENTS и динамический контекст (!cmd)
- Если нужно управление авто-вызовом — создать agents/openai.yaml с блоком policy
- Протестировать явный вызов: $skill-name
Ограничения
Ограничения
Что учитывать
Где Codex впереди
Где Claude Code впереди
Trade-off: Codex быстрее, дешевле и более предсказуем. Claude Code — гибче и мощнее при многоэтапных задачах. Для большинства instruction-only Skills разница несущественна.
name и description — единственные обязательные поля в обоих агентах.
Всё остальное — надстройки Claude поверх общего стандарта.
allowed-tools и disable-model-invocation в Codex не работают.
Доступ к инструментам регулируется политикой подтверждений, явный вызов — agents/openai.yaml.
Динамические вставки !команда в Codex не выполняются.
Это не баг, а осознанный выбор архитектуры — агенту нельзя выполнять код до того, как скилл попал в контекст.
$ARGUMENTS и $1 в Codex не подставляются.
Если скилл принимает аргументы, опишите их явно в инструкциях.
paths и context: fork в Codex не работают.
Ограничения и субагенты описываются словами или настраиваются отдельно.
Skills через API — загрузка, версионирование (version: 2 или “latest”), монтирование в Responses API.
Claude Code работает только через файловую систему.
Visual UI
— панель Skills в Codex app для создания и управления без терминала.
Progressive disclosure — Codex загружает только метаданные, полный SKILL.md — по необходимости.
Снижает потребление контекста.
Цена — $20/мес за Codex vs $100+/мес за Claude Max.
При высоких объёмах Codex значительно дешевле.
$skill-installer
— встроенный установщик готовых Skills из каталога.
Automations
— Skills + Automations в Codex app для рутинных фоновых задач.
Субагенты — context: fork + выбор типа агента (Explore, Plan, кастомные).
Полноценная оркестрация команд агентов.
Hooks — триггеры на события жизненного цикла Skill.
Позволяют строить CI-подобные пайплайны.
Динамический контекст
— !command выполняет команды до загрузки Skill и подставляет результат в инструкции.
Гранулярный контроль инструментов
— allowed-tools на уровне отдельного Skill.
Аргументы с подстановкой
— $ARGUMENTS, $0, $1 для параметризованных Skills.
Выбор модели и effort
— каждый Skill может использовать свою модель и уровень усилий.
Встроенные мощные Skills
— /batch (декомпозиция + параллельные агенты + PR), /simplify (3 ревью-агента параллельно), /loop (мониторинг по расписанию).
Автономность
— Claude Code работает непрерывно до завершения задачи; Codex чаще запрашивает подтверждение.
Размер экосистемы
— больше публичных Skills за счёт более раннего старта.
Антипаттерны
Антипаттерны
Чего не делать
Не делать: класть скилл в .codex/skills
— потому что Codex эту папку не сканирует, агент навык не увидит.
Не делать: оставлять allowed-tools в frontmatter
— потому что Codex это поле игнорирует, безопасность даёт ложное чувство защищённости.
Не делать: использовать !git diff HEAD в теле скилла
— потому что Codex не выполнит команду до загрузки скилла, и в контексте окажется пустая строка.
Не делать: переносить скилл без проверки путей в scripts/
— потому что относительные пути в Claude-версии могут не работать в Codex из-за другого рабочего каталога.
Чеклист
Чеклист
Проверка перед запуском
Папка скилла:
~/.agents/skills// для личного, .agents/skills// для проектного.
В frontmatter оставлены только name и description, остальные Claude-поля удалены или заменены.
Динамические вставки !команда превращены в явные шаги «выполни …» или вынесены в scripts/.
Если в Claude был disable-model-invocation:
true, добавлен agents/openai.yaml с policy.allow_implicit_invocation: false.
Пути в scripts/ проверены:
скрипты запускаются из рабочего каталога Codex.
Codex перезапущен, скилл появился в /skills и работает по явному и неявному вызову.
Скопируйте существующие Skills из .claude/skills/ в .agents/skills/
— instruction-only Skills заработают сразу.
Добавьте agents/openai.yaml к Skills, которые нужно авто-вызывать или настроить.
Не портируйте Skills с hooks, субагентами и динамическим контекстом
— упростите логику.
Используйте GitHub-каталог — ищите filename:
SKILL.md и забирайте проверенные Skills.
Пишите Skills по стандарту agentskills.io
— они будут работать в обоих агентах и в Junie, Gemini CLI.
Начните с instruction-only — без скриптов, хуков и субагентов.
Добавляйте по необходимости.
Один Skill = один процесс.
Хороший description = точный авто-вызов.
Храните Skills в репозитории
— они доступны всей команде через version control.
Claude Code
— для планирования, сложных структурных решений и многоэтапных задач.
Codex
— для чётко определённого исполнения, параллельных задач и ревью перед мержем.
Skills общие
— один набор SKILL.md файлов в репозитории, работает в обоих.
Ссылки
Ссылки
- Agent Skills — открытый стандарт: agentskills.io
- Codex — официальный сайт: openai.com/codex
- Claude Code: claude.ai/code