Инсайды утечки Claude Code.

Если вынести за скобки сам инцидент, то из истории вокруг Claude Code интереснее всего инженерный контур продукта.

Во-первых, это не просто CLI к модели, а настраиваемая среда с иерархией конфигурации: user, project, local project и enterprise policy. В settings.json отдельно описаны permissions (allow / ask / deny), дополнительные рабочие директории, hooks, model overrides и переменные окружения. Причём deny-правила можно использовать не только для действий, но и чтобы целиком скрывать чувствительные файлы вроде .env и secrets/** от агента.

Во-вторых, память вынесена в отдельный слой. У Claude Code есть несколько уровней memory через CLAUDE.md: enterprise, project и user. Это значит, что в контекст подмешиваются не только текущие сообщения, но и долговременные инструкции: стандарты команды, архитектурные правила проекта и личные предпочтения разработчика.

В-третьих, внутри есть полноценная модель специализации агентов. Subagents задаются markdown-файлами с YAML frontmatter, могут жить на уровне пользователя или проекта, получают собственный system prompt, отдельное context window и отдельный набор разрешённых tools. То есть продукт из коробки поддерживает не только “одного агента”, а делегирование задач специализированным подпроцессам.

Дальше — hooks. Claude Code позволяет вешать команды на PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, Stop, SubagentStop и другие события. Это уже не просто UX-фича, а точка встраивания policy-as-code: можно валидировать запросы, логировать действия, добавлять контекст при старте сессии и даже блокировать завершение, если не выполнены нужные условия.

Отдельный слой — MCP. В официальной документации Claude Code описан как клиент к внешним MCP-серверам, через которые он получает доступ к API, базам данных, GitHub, Jira и другим системам. Важно, что MCP-инструменты и slash commands встроены в общую permission-модель, а сами MCP tools имеют нормализованный нейминг вида mcp____, на который можно навешивать те же hooks и правила доступа.

Ещё одна важная деталь — разделение между slash commands и skills. Slash commands — это короткие пользовательские команды в одном markdown-файле. Skills — более крупные capability-пакеты с SKILL.md, дополнительными файлами, скриптами и автоматическим discovery по контексту. То есть расширяемость построена не одним механизмом, а двумя разными уровнями абстракции: быстрые команды и полноценные reusable capabilities.

И наконец, видно, что команда отдельно инвестирует в безопасность и управляемую автономность. В настройках есть managed policy и возможность запретить bypass-mode на уровне организации, а в свежем research preview для Teams появился auto mode: permission-запросы сначала прогоняются через classifier, который автоматически разрешает безопасные действия и эскалирует рискованные.

Сухой вывод: главный технический инсайт тут в том, что зрелый coding agent — это не Ralph Loop. Основная инженерия находится в слоях памяти, прав доступа, событийной оркестрации, специализации субагентов и стандартизированного подключения внешних инструментов.