Два класса файлов: правила и скиллы
Правила (CLAUDE.md, AGENTS.md, .mdc, copilot-instructions.md) грузятся в контекст на старте или при работе с подходящим файлом и лежат там постоянно. Каждая строка стоит токенов в каждом запросе, поэтому их держат короткими: Anthropic советует до 200 строк на CLAUDE.md, Cursor до 500 строк на правило, Codex по умолчанию перестаёт добавлять AGENTS.md после 32 КиБ.
Скиллы (SKILL.md) работают по принципу progressive disclosure: на старте в контексте только имя и описание, тело читается, когда задача совпала с описанием. Туда уходит всё длинное и ситуативное. Подробно о формате в гайде как написать SKILL.md.
Матрица: какой агент какой файл читает
| Формат | Путь | Кто читает | Когда грузится |
|---|---|---|---|
| CLAUDE.md | ./CLAUDE.md, .claude/CLAUDE.md, ~/.claude/CLAUDE.md, CLAUDE.local.md | Claude Code; Copilot (cloud agent, code review, CLI); opencode как запасной; Codex только через project_doc_fallback_filenames | на старте, от корня к текущей папке; файлы подпапок по запросу |
| AGENTS.md | корень репозитория и подпапки | Codex, Cursor, Copilot, Devin Desktop, Kiro, opencode, Zed, Cline, Junie; Gemini CLI через context.fileName; Claude Code с v2.1.277 | всегда; ближайший к правке файл главнее |
| GEMINI.md | ~/.gemini/GEMINI.md, рабочие папки и родители | Gemini CLI; Copilot (cloud agent, CLI); Zed | склеиваются и уходят с каждым промптом |
| SKILL.md | .claude/skills/, .agents/skills/, .kiro/skills/ и др. | Claude Code, Codex, Cursor, Copilot, Gemini CLI, Kiro, opencode, Zed, Devin Desktop | имя и описание на старте, тело при вызове |
| .claude/rules/*.md | .claude/rules/, ~/.claude/rules/ | Claude Code | без paths всегда, с paths при работе с подходящим файлом |
| .cursor/rules/*.mdc | .cursor/rules/ | Cursor | всегда, по globs, по description или вручную |
| .cursorrules | корень | Cursor (legacy), Cline, Zed | всегда |
| copilot-instructions.md | .github/ | Copilot; Zed | всегда в контексте репозитория |
| *.instructions.md | .github/instructions/ | Copilot | когда путь совпал с applyTo |
| .clinerules | .clinerules/ или .cline/rules/ | Cline | всегда или по paths |
| .devin/rules/*.md | .devin/rules/ (запасной .windsurf/rules/) | Windsurf / Devin Desktop | по trigger: always_on, model_decision, glob, manual; до 12 000 символов на файл |
| Kiro steering | .kiro/steering/*.md | Kiro | по inclusion: always, fileMatch, manual, auto |
Zed стоит особняком: из списка .rules → .cursorrules → .windsurfrules → .clinerules → .github/copilot-instructions.md → AGENT.md → AGENTS.md → CLAUDE.md → GEMINI.md он берёт только первый найденный файл. Старый .rules в корне перекроет ваш AGENTS.md.
AGENTS.md и CLAUDE.md: как ужиться
С версии 2.1.277 Claude Code читает AGENTS.md сам, но по умолчанию только если в текущей папке и выше нет CLAUDE.md, .claude/CLAUDE.md или CLAUDE.local.md. Есть CLAUDE.md, и AGENTS.md молча игнорируется. Документированный мост: строка @AGENTS.md внутри CLAUDE.md. Разбор граблей в гайде AGENTS.md vs CLAUDE.md.
Общая папка .agents/skills
Путь .agents/skills/ (и ~/.agents/skills/) читают Codex, Cursor, Copilot, Gemini CLI, opencode, Zed и Devin Desktop. Это ближайшее к общему стандарту место для скиллов.
Два исключения. Документация Claude Code этот путь не упоминает: Claude Code ищет скиллы в .claude/skills/. Kiro читает только .kiro/skills/. Зато .claude/skills/ подхватывают Cursor, Copilot, opencode и, если включено, Devin Desktop.
Установщики решают это сами. npx skills add owner/repo -a claude-code положит скилл в .claude/skills/, с -a codex в .agents/skills/. Как ставить по платформам: Claude Code, Codex, Cursor.
Слэш-команды: форматов по-прежнему много
| Агент | Где | Формат |
|---|---|---|
| Claude Code | .claude/commands/*.md | Markdown; слиты со скиллами, старые файлы работают |
| Codex | ~/.codex/prompts/*.md | объявлены устаревшими, замена скиллы |
| Gemini CLI | .gemini/commands/*.toml | TOML с полем prompt |
| Copilot (VS Code) | .github/prompts/*.prompt.md | Markdown + frontmatter |
| Devin Desktop | .devin/workflows/*.md | Markdown, вызов /имя |
Тренд виден: Claude Code и Codex переводят команды в скиллы, Cursor делает то же через /migrate-to-skills. Новую команду разумнее сразу писать скиллом.
Конвертеры: один источник на все агенты
Звёзды GitHub на 24.10.2026.
| Инструмент | Что делает | Охват |
|---|---|---|
| rulesync (1 551★, MIT) | генерирует правила, MCP, команды, субагентов, скиллы и хуки из .rulesync/; умеет импорт из CLAUDE.md, .cursorrules, copilot-instructions | около 65 целей |
| ruler (2 950★, MIT) | из .ruler/ пишет большинству агентов AGENTS.md, MCP вливает в нативные конфиги | 31 строка в таблице README |
| block/ai-rules (139★, Apache-2.0) | правила и MCP из ai-rules/ | 11 агентов |
| vercel-labs/skills (36 354★, MIT) | не конвертер, а установщик: кладёт SKILL.md в папку каждого агента | Claude Code, Codex, Cursor, OpenCode и ещё 75 по README |
| openskills (10 808★) | ставит скиллы и вписывает их список в AGENTS.md | агенты, читающие AGENTS.md; последний push 18.01.2026 |
Наша позиция. Один агент и один человек: конвертер не нужен, хватит родного файла. Команда на двух и больше агентах: держите правила в AGENTS.md, скиллы в .agents/skills/, а для Claude Code поставьте мост @AGENTS.md в CLAUDE.md. Когда к правилам добавляются MCP и хуки для трёх агентов, берите rulesync: он покрывает больше всего фич и работает в обе стороны.