Skip to content
Apothem
Адаптеры окружений

Claude Code

Адаптер окружения Apothem для Claude Code (GA).

Поставщик: Anthropic Имя установки: claude-code Статус: GA Нативная конфигурация: ~/.claude/

Установка

apothem install --harness claude-code

Адаптер claude-code устанавливает общий корпус Apothem в нативное дерево обнаружения Claude Code. Markdown-исполнители, правила, навыки, output-стили и настройки устанавливаются в свои нативные расположения; промпты команд преобразуются в навыки, чтобы повторно используемые рабочие процессы оставались видимыми через текущую поверхность навыков Claude Code. Рендерер строки состояния копируется в ~/.claude/statuslines/, но не подключается: Claude Code читает строку состояния из настройки statusLine, которую адаптер оставляет незаданной. Чтобы включить её, добавьте в settings.json запись statusLine с "type": "command", которая запускает ~/.claude/statuslines/render.py. Значение commandWindows в фрагменте запускается в Windows и называет интерпретатор без кавычек. Если путь к интерпретатору содержит пробел, установка записывает в это значение его короткую форму Windows 8.3, когда она есть на томе. Записи хуков в settings.json сохраняют полный путь.

Записываемые файлы: settings.json, блок Apothem в CLAUDE.md, agents/, rules/, skills/, statuslines/, output-styles/ и поддерево поддержки .apothem/support/ (.apothem/support/hooks/, .apothem/support/conformity/, .apothem/support/schemas/, .apothem/support/templates/) в ~/.claude/. Файлы команд преобразуются в дочерние каталоги навыков. Диспетчер хуков и шлюз соответствия запускаются из своих материализованных копий — записи хуков в settings.json вызывают ~/.claude/.apothem/support/hooks/dispatch.py и ~/.claude/.apothem/support/conformity/gate.py по абсолютному пути, поэтому импортируемый пакет apothem на хосте не нужен.

~/.claude/CLAUDE.md остаётся во владении оператора. Адаптер записывает в него один блок Apothem, ограниченный маркерами-разделителями, который содержит проекцию профиля (идентичность, предпочтения, правила, уровень серьёзности и включённые по выбору варианты поведения) и раздел о вспомогательных файлах Apothem, и дословно сохраняет каждую строку за пределами маркеров. Раздел о вспомогательных файлах называет абсолютный каталог, относительно которого разрешается каждая ссылка в стиле репозитория в установленных правилах, навыках и исполнителях: rules/<name>.md — в ~/.claude/rules/, а templates/..., schemas/..., hooks/... и conformity/... — в ~/.claude/.apothem/support/. Он также указывает на индекс правил, ~/.claude/rules/apothem-rule-index.md. Остальная часть поверхности управления Apothem достигает Claude Code через распространяемое дерево rules/ и хук SessionStart. OpenCode также загружает ~/.claude/CLAUDE.md, когда ~/.config/opencode/AGENTS.md не существует, поэтому блок не называет своим читателем ни один конкретный инструмент.

Сопоставление профиля с нативной конфигурацией

При каждом запуске apothem install или apothem update адаптер распространяет общий корпус apothem в ~/.claude/ согласно манифесту распространения. Адаптер по возможности напрямую использует нативные каталоги и преобразует промпты команд в папки навыков. Для существующих совпадающих дочерних элементов, управляемых Apothem, создаются резервные копии перед заменой; не связанные с ними записи, созданные оператором, сохраняются. settings.json объединяется, чтобы ключи, созданные оператором, оставались восстанавливаемыми.

Файлы, созданные оператором, сохраняются только вне папок ниже. Каждая установка и каждое обновление удаляют каждую из этих папок под ~/.claude/, если она существует, независимо от того, создал ли её Apothem: src/, conformity/, schemas/, hooks/, config/, scripts/, tools/, lib/, templates/, docs/, tests/, packaging/, mcp/, examples/, assets/, site/, public/ и commands/. Также удаляются statuslines/__init__.py и файлы AGENTS.md в agents/, rules/, skills/, statuslines/ и output-styles/. Удалённая папка уходит целиком, включая файлы, которые вы в ней разместили. Слеш-команды, которые вы храните в commands/, тоже удаляются, а собственные командные подсказки Apothem устанавливаются как навыки в skills/. Скрипт хука, который вы храните в hooks/, удаляется, поэтому любая запись в settings.json, которая его вызывает, остаётся указывающей в никуда. Очистка выполняется до того, как установка запишет собственные файлы. Каждый удаляемый путь сначала копируется в ~/.apothem/backups/, а запись об установке называет эту копию. Команда Uninstall её не восстанавливает. Чтобы восстановить удалённый путь, выполните apothem rollback --harness claude-code --install-id ID для установки, которая его удалила, как описано в справочнике по rollback. Простой apothem rollback отменяет только последнюю установку. Записи об установке и их копии хранятся для 10 самых новых установок, поэтому удалённый путь можно восстановить, только пока его установка входит в их число. apothem diff --harness claude-code перечисляет эти удаления как Prune stale files до того, как вы выполните установку.

Установленные навыки, а также навыки, входящие в плагин Claude Code, содержат user-invocable вместо userInvocable исходного корпуса, потому что Claude Code читает только ключ с дефисом. Два контейнера шаблонов (plan-suite, research-suite) задают ему значение false, поэтому они не попадают в меню /. Каждый output-стиль задаёт keep-coding-instructions: true, поэтому при выборе любого из них встроенные инструкции Claude Code по программной инженерии сохраняются.

Оба также содержат ключи фронтматтера, существующие только в Apothem (version, updated, archetype, portability), в замыкающей карте metadata: из строк в кавычках, в этом фиксированном порядке. Claude Code игнорирует неизвестные ключи верхнего уровня, а открытый формат навыков хранит дополнения, специфичные для клиента, в metadata. Исходные файлы не меняются. Папки навыков уровня пользователя (~/.agents/skills/, ~/.codebuddy/skills/, ~/.kiro/skills/ и ~/.trae/skills/) используют ту же форму metadata, поэтому установки, разделяющие папку, никогда не перезаписывают файлы друг друга. Все остальные окружения получают эти ключи на верхнем уровне, как и прежде.

Правила и что загружается при запуске

Claude Code загружает файл правила при запуске, если его фронтматтер не содержит списка paths:, ограничивающего его область. С paths: он загружает правило, когда читает или редактирует подходящий файл. Список, состоящий только из **, ничего не ограничивает, поэтому такое правило тоже загружается при запуске; ни одно правило Apothem его не использует. Установка превращает pathFilter каждого правила в такой список. Пять правил не имеют его и загружаются в каждой сессии: agnostic-posture, authority-inquiry, session-closure, context-management и индекс правил, apothem-rule-index. Каждое другое правило устанавливается в ~/.claude/rules/ с paths: и загружается при обращении к подходящему файлу.

Claude Code сопоставляет эти глобы, с семантикой .gitignore, с путём файла относительно рабочего каталога и никогда — с файлом за его пределами. Каталог автоматической памяти находится в ~/.claude/projects/, поэтому auto-memory и auto-memory-topic-files никогда не загружаются по совпадению пути. Редактирование ~/.claude/CLAUDE.md или файла в ~/.claude/rules/ из другого проекта также не загружает правила, ограниченные этими файлами. Эти правила попадают в сессию через индекс.

Индекс называет каждое правило и ситуацию, которая его требует. Шаг, который ссылается на rules/<name>.md как на свою процедуру, сначала читает этот файл. После сжатия контекста перечитайте любое правило, которое вы применяли: Claude Code не внедряет повторно правило, ограниченное путями, пока снова не будет затронут подходящий файл. Имя apothem-rule-index.md зарезервировано, потому что установка создаёт резервную копию и перезаписывает файл правила с этим именем.

Правила, которые управляют собственными поверхностями Apothem, ограничены CLAUDE.md, AGENTS.md и Markdown в rules/, commands/, skills/, agents/, hooks/ и output-styles/. Репозиторий приложения редко содержит такие файлы, поэтому в нём эти правила попадают в сессию через индекс, через навык, команду или помощника, которые на них ссылаются, и через хуки, а не через совпадение пути.

Копии правил записываются без замыкающего раздела ## Bindings, как и навыки команд. Этот раздел содержит взаимные ссылки для сопровождающих и шлюза соответствия. Исходные файлы его сохраняют, как и копии, которые получают другие окружения.

Чтобы ограниченное правило действовало в каждой сессии, можно попробовать импортировать его из текста вне блока Apothem в ~/.claude/CLAUDE.md, например @rules/definitiveness.md. Страница памяти Claude Code документирует импорт и сообщает, что импортированный путь разрешается относительно импортирующего файла. Она не сообщает, как обрабатывается список paths импортированного правила, и Apothem этого не проверял. С помощью хука InstructionsLoaded проверьте, что правило загружается при запуске и не загружается второй раз по совпадению пути.

Навыки команд и справочные файлы

После сжатия контекста Claude Code заново прикрепляет только первые 5,000 токенов каждого вызванного навыка и рекомендует SKILL.md объёмом примерно 500 строк или меньше, с подробностями в соседних файлах. Промпты команд достигают 67 KB, поэтому вывод для Claude Code разделяет каждый из них на компактный SKILL.md и файлы в references/:

  • Раздел ## Bindings отбрасывается. Это текст для сопровождающих, предназначенный для шлюза соответствия, и модели он никогда не нужен.
  • Pipeline Contract, Foundational Stanzas, Decision Tree, примеры, разделы режимов и несколько цитируемых перечней переносятся в справочные файлы. Заголовок остаётся, а однострочный указатель под ним называет файл и сообщает, когда его читать. Указатели для Pipeline Contract и Foundational Stanzas также перечисляют, что охватывает файл.
  • Если SKILL.md всё ещё больше 15,800 байт, самые крупные шаги Workflow переносятся в references/step-NN-<slug>.md, начиная с самого крупного, пока он не уложится в лимит. Slug — это заголовок шага без префикса Step N: и без замыкающего идентификатора мандата или дисциплины в скобках. Шаги меньше 600 байт остаются на месте. Если этого недостаточно, разделы Output, Mandates, Critical Rules и Instructions переносятся в этом порядке.
  • Короткое примечание после преамбулы сообщает модели, где находятся файлы (${CLAUDE_SKILL_DIR}/references/), и что она MUST перечитать те из них, которые управляют её текущим шагом, после сжатия контекста.

Каждый выводимый SKILL.md, включая примечание ## Installed Reference Paths, которое добавляет установка, остаётся не больше 17,000 байт при корне установки длиной до 140 символов. Плагин поставляет те же файлы без этого примечания, а его команды являются навыками в skills/, поэтому у него нет папки commands/; вызов /apothem:<name> не меняется. Разделение детерминировано и обратимо: текст SKILL.md и его справочных файлов восстанавливает исходную команду без Bindings. Исходные файлы и вывод для всех остальных окружений не меняются. Другие инструменты также читают навыки из ~/.claude/skills/, поэтому видят те же файлы; apothem install называет их.

Чтобы увидеть числа для каждой команды, запустите скрипт измерения из рабочей копии репозитория:

python scripts/dev/measure_claude_skills.py          # per-command table
python scripts/dev/measure_claude_skills.py --check  # exit 1 on a breach

Он сообщает размеры исходника, SKILL.md и справочных файлов, запас до бюджета и оценочное число токенов, а также перечисляет нативные навыки для сравнения. research-suite, нативный навык, исходник которого не разделяется, — единственный навык, превышающий предел.

Заметки о совместимости

Промпты команд преобразуются в каталоги навыков, а правила рендерятся, как описано выше; навыки и output-стили копируются как есть, а исполнители копируются в исходном виде, за исключением того, что помощник, указанный в ключе профиля agent_mcp_servers, получает запись mcp__<server>__* для каждого названного сервера в своей строке tools (см. Серверы MCP). Установка проверяет, что профиль корректно сформирован и что все привязки хуков в settings.json разрешимы. Адаптер не создаёт записей серверов MCP: регистрируйте серверы командой claude mcp add (см. Серверы MCP).

~/.claude/agents/ — общий корень, которым владеет Claude Code, как и ~/.claude/skills/: другие поддерживаемые инструменты загружают эти папки, поэтому исполнители и навыки, которые установка Claude Code записывает туда, появляются и в этих инструментах, а установка выводит примечание с их названиями. В реестре окружений перечислены читатели каждого корня.

Claude Code применяет все привязки хуков из settings.json при каждом запуске сессии. Каждый адаптер проверяется относительно собственного нативного окружения — привилегированного «эталонного» окружения не существует.

Ограничения правил разрешений

Шаблон настроек запрещает Read(...) для путей к секретам и кешам, таких как .env* и ~/.ssh/**. Claude Code применяет запрет Read к своим файловым инструментам, к файловым командам, которые он распознаёт в Bash (cat, head, tail, sed, tee), и к целям перенаправления. Он не применяет этот запрет к поиску, который читает файлы, не называя их, например grep -r pattern ., или к скрипту, который сам открывает файлы (справочник по разрешениям). В macOS, Linux и WSL Claude Code не включает инструменты Glob и Grep в набор инструментов по умолчанию и вместо них выполняет поиск через Bash, поэтому разрешающие записи Glob и Grep из шаблона действуют только там, где эти инструменты присутствуют. Чтобы запретить любому процессу читать путь, включите песочницу Claude Code.

Навыки и определения помощников, в которых упоминается TodoWrite, также упоминают TaskCreate, TaskGet, TaskList и TaskUpdate, потому что Claude Code по умолчанию отключает TodoWrite в пользу этих инструментов.

Проверка

apothem verify --harness claude-code

Команда verify подтверждает, что:

  1. Нативная конфигурация существует по ожидаемому пути.
  2. Каждая управляемая цель существует; управляемые файлы не пусты, а конфигурации JSON или YAML разбираются. Добавьте --profile PATH, чтобы дополнительно подтвердить, что установленные файлы соответствуют этому профилю.
  3. Процедура проверки, специфичная для адаптера, сообщает об успехе.

Обновление

apothem update --harness claude-code

Повторно выводит нативную конфигурацию из текущего общего профиля. Запускайте после обновления установленного пакета apothem, чтобы распространяемая поверхность соглашений (исполнители, правила, навыки, строки состояния, output-стили) отражала новую версию. В CLAUDE.md обновление перезаписывает только блок Apothem между его маркерами.

Удаление

apothem uninstall --harness claude-code

Удаляет блок Apothem из ~/.claude/CLAUDE.md и сохраняет в нём любой другой текст. Файл удаляется, только когда в нём больше ничего не остаётся. Удаляет записи, добавленные адаптером в ~/.claude/settings.json (ваши собственные правила разрешений, ключи и обработчики хуков остаются, а файл удаляется, только если его создал Apothem и ничего вашего в нём не осталось). Также удаляет файлы Apothem в ~/.claude/agents/, ~/.claude/rules/, ~/.claude/skills/, ~/.claude/statuslines/, ~/.claude/output-styles/ и ~/.claude/.apothem/support/; остальные файлы в этих каталогах остаются. Резервная копия каждого файла создаётся в ~/.apothem/backups/ до того, как он будет изменён или удалён. Установленный пакет apothem и исходный репозиторий не затрагиваются.

Шлюз соответствия

python -m apothem.conformity.gate --all .

При запуске на репозитории шлюз требует раздел ## Bindings в каждом правиле, команде, помощнике и навыке. При запуске на установленном дереве ~/.claude/ он принимает копию правила или навыка без такого раздела, потому что установка его опускает, и всё равно проверяет раздел, если он присутствует.

Устранение неполадок

СимптомИсправление
Файл конфигурации не найденПовторно запустите apothem install --harness claude-code
Проверка не пройденаЗапустите apothem update --harness claude-code, затем проверьте снова
Неожиданное содержимое конфигурацииПовторно запустите apothem update; источником истины является общий профиль apothem, а не ~/.claude/

Параметры конфигурации

ФлагПо умолчаниюОписание
--dry-runfalseПредпросмотр установки без записи файлов.

См. также

On this page