Перенос скилла из Claude Code в Codex: что уедет без правок, а что придётся чинить руками | Виталий Воробьев
VorobeoffAIВиталий Воробьев

Перенос скилла из Claude Code в Codex: что уедет без правок, а что придётся чинить руками

Пошаговое руководство по миграции навыка между двумя агентами. Общий стандарт Agent Skills, разные папки, разные поля frontmatter, динамические вставки $ARGUMENTS. Готовый пример скилла summarize-changes с обеими версиями.

Скилл — это папка с файлом 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 CodeOpenAI 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 CodeOpenAI 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 CodeCodex
Пользовательский (все проекты)
~/.claude/skills//
~/.agents/skills//
Репозиторий / проект
.claude/skills//
.agents/skills//
Системный / админский
managed settings
/etc/codex/skills/
Плагин
/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 файлов в репозитории, работает в обоих.

Ссылки

Продолжить тему

Материалы, которые связаны с этим разбором

Подборка учитывает тему, редкие теги и смысл заголовка с описанием материала.

Открыть материалы по теме ↗

Обсудить задачу

Есть задача, которую хотите усилить с помощью ИИ?

Опишите процесс, что уже пробовали и какой результат хотите получить. Я помогу понять, где ИИ и автоматизация действительно дадут эффект, и предложу понятный следующий шаг.

Для первого сообщения достаточно пары абзацев — готовое техническое задание не требуется.