Можно ли использовать один Agent Skill в трёх платформах?
Да, если держать переносимое ядро в стандартном SKILL.md и отделить платформенные пути, расширения, доступные инструменты и разрешения. Совместимость формата не означает одинаковое срабатывание и поведение.
Codex, Claude Code и GitHub Copilot поддерживают папки навыков с SKILL.md, метаданными и Markdown-инструкцией. Это даёт общую основу. Но каждая среда по-своему ищет папки, добавляет функции и управляет командами, сетью и внешними инструментами.
Обычная установка без переноса между средами описана отдельно: как установить Agent Skills в Codex и Claude Code.
Где платформы ищут Agent Skills?
Пути различаются. Codex использует .agents/skills, Claude Code — .claude/skills, а GitHub Copilot документирует .github/skills и также поддерживает некоторые совместимые расположения. Актуальные пути нужно сверять с документацией конкретного клиента.
| Среда | Проектный путь | Что проверить |
|---|---|---|
| Codex | .agents/skills | Область видимости и правила обнаружения |
| Claude Code | .claude/skills | Проектный или пользовательский уровень |
| GitHub Copilot | .github/skills | Поддержку выбранного клиента и репозитория |
Не создавайте три независимые копии без владельца: они быстро расходятся. Лучше хранить одно исходное ядро и доставлять его в нужные каталоги управляемым способом.
Что не переносится автоматически?
Платформенные расширения frontmatter, встроенные tools, hooks, slash-команды, политика подтверждений, сетевой доступ и runtime скриптов могут отличаться. Их нужно вынести в тонкий адаптер или описать условными ветками.
- Нестандартные поля метаданных.
- Имена и схемы встроенных инструментов.
- Hooks и события жизненного цикла.
- Команды оболочки и установленные runtimes.
- Пути к пользовательским настройкам.
- Разрешения на сеть, файлы и внешние действия.
Если задача на самом деле требует общих правил проекта или подключения инструментов, сверьтесь с разбором AGENTS.md, CLAUDE.md, SKILL.md и MCP.
Как организовать один исходник без трёх расходящихся копий?
Храните каноническую папку навыка в репозитории, отделите общий SKILL.md от адаптеров и синхронизируйте целевые каталоги скриптом или сборочным шагом. Изменения принимайте через одно ревью.
- 1. Выберите канонический источник
Назначьте одну папку и владельца, а не редактируйте установленные копии.
- 2. Оставьте общий контракт
Вынесите в ядро назначение, маршрут, ограничения и критерии результата.
- 3. Добавьте адаптеры
Отдельно храните только действительно различающиеся пути, команды и настройки.
- 4. Автоматизируйте доставку
Копируйте или связывайте файлы предсказуемым шагом с проверкой результата.
- 5. Версионируйте вместе
Один pull request должен обновлять ядро, адаптеры и тестовые сценарии.
Как переносить scripts и зависимости?
Скрипт должен быть самодостаточным, неинтерактивным и явно сообщать требования к runtime. Если одинаковую операцию нельзя воспроизвести во всех средах, предусмотрите отдельные реализации с единым контрактом входа и выхода.
- Используйте относительные пути от корня навыка.
- Добавьте --help и полезные сообщения об ошибках.
- Не предполагайте наличие пакета или команды без проверки.
- Возвращайте ненулевой код при ошибке.
- Не выполняйте внешнее действие без предусмотренного подтверждения.
При росте пакета держите архитектуру компактной по методике разделения большого SKILL.md.
Как проверить совместимость в Codex, Claude Code и Copilot?
Запускайте один и тот же набор сценариев в каждой целевой среде: обнаружение, прямое срабатывание, отказ на чужой задаче, пограничный вход, доступ к файлам и результат скриптов. Фиксируйте различия, а не только общий статус pass.
| Проверка | Ожидание |
|---|---|
| Обнаружение | Навык виден из документированного пути |
| Выбор | Прямой запрос включает навык, чужой — нет |
| Маршрут | Обязательные шаги одинаковы |
| Инструменты | Адаптер вызывает доступный эквивалент |
| Ограничения | Подтверждения и остановки сохраняются |
Такую матрицу можно запускать автоматически по схеме проверки Agent Skills в CI.
Когда лучше поддерживать разные навыки?
Разделите навыки, если основная работа, инструменты или требования безопасности различаются настолько, что общий файл заполнен условными ветками. Совпадающее название не оправдывает общий пакет при разном поведении.
Оставляйте одно ядро, пока большая часть маршрута и критериев результата совпадает. Если переносимый слой стал лишь короткой вводной, отдельные навыки будут понятнее и безопаснее сопровождать.
Правила владельцев, релизов и удаления дублей собраны в статье как управлять Agent Skills в команде.
