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 подтверждает, что:
- Нативная конфигурация существует по ожидаемому пути.
- Каждая управляемая цель существует; управляемые файлы не пусты, а
конфигурации JSON или YAML разбираются. Добавьте
--profile PATH, чтобы дополнительно подтвердить, что установленные файлы соответствуют этому профилю. - Процедура проверки, специфичная для адаптера, сообщает об успехе.
Обновление
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-run | false | Предпросмотр установки без записи файлов. |
См. также
- Все окружения — полный каталог поддерживаемых инструментов
- Руководство по установке — установка Apothem в это окружение
- Справочник по
apothem harnesses— вывод списка и просмотр адаптеров из CLI