~/guides/skill-md-cross-agent-portability

AI Agents

SKILL.md в Codex CLI и Gemini CLI: одинаковый формат, разные допущения

Что происходит с Claude-специфичными полями SKILL.md вроде allowed-tools при использовании skill в других AI-агентах.

Базовое ядро SKILL.md — name, description, markdown-тело — работает одинаково в Claude Code, Codex CLI, Cursor и Gemini CLI. Но Claude Code добавляет собственные поля, которые официально безопасно игнорируются другими агентами. Разница между “игнорируется” и “работает так же” — источник тихих сюрпризов при переносе skills между командами с разными инструментами.

Что значит “безопасно игнорируется” на практике

Парсер другого агента не упадёт с ошибкой при встрече незнакомого поля во frontmatter — просто не выполнит связанную с ним логику.

---
name: deploy-helper
description: Handles deployment workflows
allowed-tools: [bash, read]
context: fork
---

Deployment instructions here.

В Claude Code поле allowed-tools ограничит доступные skill инструменты именно этим списком. В Codex CLI или Gemini CLI эта же skill выполнится с полным доступом ко всем инструментам агента — без предупреждения, потому что поле формально валидно, просто не имеет смысла вне контекста Claude Code.

Три поля, о которых чаще всего забывают

Поле Что делает в Claude Code Что происходит в других агентах
context: fork Форк контекста выполнения Игнорируется, skill выполняется в основном контексте
hooks Привязка к событиям жизненного цикла Хуки просто не срабатывают
allowed-tools Ограничение доступных инструментов Skill выполняется с полным доступом

Когда это реально имеет значение

Если команда использует только Claude Code, эти поля дают полезную дополнительную функциональность без всяких рисков. Проблема возникает именно тогда, когда skill репозитория расшаривается между разными инструментами — например, публичный набор skills в open-source проекте, который потребляют разработчики с разными агентами.

Практический подход

Для skills, предназначенных к широкому распространению, стоит явно решить: либо не полагаться на Claude-специфичные поля вообще, ограничившись базовым ядром формата, либо явно документировать в самой skill, что определённое поведение доступно только в Claude Code.

Как проверить свою библиотеку skills

SKILL.md Portability Checker находит Claude-специфичные поля во frontmatter и объясняет конкретно, что произойдёт при использовании этой же skill в агенте, который их не поддерживает.

Итоговый чеклист

Базовое ядро SKILL.md (name, description, тело) переносимо между всеми поддерживающими агентами без изменений в поведении.

Claude-специфичные поля безопасно игнорируются другими агентами — это не ошибка, а молчаливое отсутствие эффекта.

Для skills, которые команда планирует делиться между разными инструментами, стоит явно проверить и документировать зависимость от Claude-специфичной функциональности.