qvib.pro
EN

~4 мин чтения · всем

Какой инструмент: Claude Code vs Cursor vs VS Code (и почему важна переносимость)

Что это

Один и тот же движок компилируется под три реальные цели (проверено в коде — ExportTarget = 'agents-md' | 'claude-code' | 'cursor', диспетчер бросает ошибку на любой другой):

Claude CodeХуки ENFORCED (блокируют)Слэш-команды и субагентыCursorПравила alwaysApplyhooks.json (блок команд)AGENTS.md±Читают многие инструменты±Текст advisory + git-hook/CI floor
Один движок — три носителя с разным уровнем гарантий
  • Claude Code — пакет .claude-plugin + субагенты + команды + правила .claude/rules/ + hooks + .mcp.json.
  • Cursor — правила как .cursor/rules/*.mdc с фронтматтером + .cursor/mcp.json.
  • VS Code и всё остальное — через универсальный AGENTS.md в корне репозитория. Отдельной цели vscode НЕТ: VS Code (Copilot), Codex, Jules, Zed и десятки других агентов понимают AGENTS.md, поэтому именно он ваш путь для VS Code.

Почему это важно (переносимость)

Без единого стандарта вы каждый раз руками пишете AGENTS.md или .claude в каждом новом репо и под каждый инструмент. Движок даёт один валидированный спек, из которого детерминированный компилятор собирает нативный пакет под любую из трёх целей. Сменили инструмент — не переписываете дисциплину заново, а экспортируете тот же движок под новую цель. Для профи это и есть ценность: переносимый, версионируемый стандарт конфигурации AI-агентов вместо разрозненных ручных файлов.

Ключевое отличие — уровень гарантий (честно)

Это самое важное при выборе. Гарантия бывает ENFORCED (код возврата физически блокирует) и ADVISORY (строгая инструкция-текст, которой модель следует, но нарушение технически возможно).

Гарантия Claude Code Cursor AGENTS.md / VS Code
Guard от опасных команд (rm -rf, DROP TABLE, git push --force) ENFORCED (PreToolUse-hook, exit-код блокирует) ADVISORY-текст ADVISORY-текст
Инварианты/правила (tenancy, i18n, миграции) ADVISORY + ENFORCED, когда выйдет Portable Safety Floor ADVISORY + floor (roadmap) ADVISORY + floor (roadmap)
Verify-гейт / done-гейт ADVISORY, пока не вшит в pre-commit/CI (roadmap) ADVISORY ADVISORY
Вердикты призм / вето ADVISORY (модель проинструктирована подчиняться) ADVISORY ADVISORY

Сегодня жёсткий блок есть только в Claude Code — через PreToolUse-hook (подтверждено: hooksFiles() эмитит хуки только для Claude). Переносимый git-pre-commit + CI-floor (который дал бы ENFORCED на Cursor и AGENTS) — в разработке (P0 roadmap). Пока он не вышел, «enforced» означает «только Claude PreToolUse», и мы это помечаем прямо в пакете.

Важный нюанс про Cursor: его собственные Project Rules (always / auto-glob / agent-requested / manual) — бесплатная встроенная фича, и она совпадает с нашей моделью активации правил ИМЕННО на Cursor. Наше отличие тут — не «мы лучше Cursor Rules», а одна спека компилируется в три цели плюс самоспециализация glob'ов под стек на установке.

Как выбрать

  • Нужен максимум enforced-защиты прямо сейчас → Claude Code (единственный с exit-код блоком today).
  • Работаете в Cursor → берите cursor-таргет: правила лягут в родные .mdc, MCP — в .cursor/mcp.json.
  • VS Code / Copilot / любой другой агент → универсальный AGENTS.md в корень.
  • Не уверены / меняете инструменты → это и есть аргумент за переносимость: купили движок один раз, экспортируете под любую цель.

Worked-пример

Вход: команда работает половина в Claude Code, половина в Cursor, а CI-бот дергает Copilot в VS Code. Один движок Quest.

Что делает движок: из одной спеки laskoff-mod/v1 компилятор exportMod(spec, target) выдаёт три пакета:

  • для Claude — .claude/agents/*.md, .claude/commands/quest.md, .claude/rules/*.md, .claude/hooks/*.sh с регистрацией в .claude/settings.json (реальный guard-hook + route-engine), .mcp.json, тонкий CLAUDE.md;
  • для Cursor — .cursor/rules/*.mdc + .cursor/hooks.json с тем же guard-скриптом (beforeShellExecution — блокирует опасные команды и здесь) + .cursor/mcp.json;
  • для VS Code и остальных — один AGENTS.md в корень (проводка MCP — JSON-блоком внутри него).

Результат: дисциплина команды идентична везде, а guard от rm -rf / физически срабатывает и в Claude Code (PreToolUse), и в Cursor (beforeShellExecution); на AGENTS.md-целях жёсткую страховку даёт переносимый safety floor — git-hook .engine/hooks/pre-commit + CI engine-guard.yml, которые уже лежат в каждом пакете. Никто не переписывал конфиги руками — три пакета собраны из одного источника. Именно эту разницу в гарантиях мы печатаем честно, чтобы вы выбирали инструмент осознанно.