Позиция независимости от хоста
Как Apothem достигает позиции независимости от хоста через общий профиль и адаптеры окружений.
Apothem спроектирован вокруг единого принципа: ваша конфигурация управления
должна пережить любую отдельную среду выполнения ассистента по написанию кода. Общий профиль Apothem —
это файл YAML, прошедший проверку по схеме, по адресу ~/.config/apothem/profile.yaml или
--profile PATH; упакованные когорты Apothem предоставляют команды, правила, навыки,
хуки, шаблоны, строки состояния, стили вывода и определения делегирования.
Адаптеры для конкретных окружений в каталоге src/apothem/harnesses/<harness>/ преобразуют эти входные данные в формат,
требуемый каждым поддерживаемым окружением:
Claude Code, Cursor, Gemini CLI, GitHub Copilot, Codex, Windsurf,
OpenCode, Antigravity, Open-Claw, Hermes, Qwen Code,
CodeBuddy, Kiro, Trae, ZedОсновная идея
Независимость от хоста означает, что ваше намерение — кто вы, как вы хотите, чтобы ассистенты себя вели, какие правила они должны соблюдать — живёт в одном месте, которым не владеет ни одно отдельное окружение. Окружения — это взаимозаменяемые потребители этого намерения. Когда появляется новый ассистент, вы внедряете его, добавляя адаптер, а не переписывая свою конфигурацию. Когда ассистент, которым вы пользовались, выходит из употребления, вы отказываетесь от него, не теряя построенного вами управления. Профиль — это актив; окружение — это цель отрисовки. Окружение может использоваться для написания кода, чата, совместной работы, исследований или письма — профиль не зависит от того, для чего предназначено окружение.
Это намеренная инверсия. Общепринятый путь — настраивать каждый инструмент напрямую, что делает ваши вложения заложником долговечности и формата того инструмента. Apothem относится к конфигурации как к переносимому капиталу, а к окружению — как к одноразовому терминалу.
Проблема
У каждого окружения для написания кода свой формат конфигурации:
Claude Code: CLAUDE.md + settings.json
Cursor: .cursor/rules/*.mdc
GitHub Copilot: .github/copilot-instructions.md
Windsurf: .devin/rules/
Codex: AGENTS.mdБез Apothem вы поддерживаете N отдельных файлов конфигурации, которые со временем расходятся друг с другом.
Решение Apothem
One shared Apothem profile (YAML) + packaged cohorts
identity.name
preferences.style
rules[]
|
v
Adapter layer (HarnessAdapter protocol — src/apothem/harnesses/<harness>/)
|
+---> Claude Code adapter -> ~/.claude/
+---> Cursor adapter -> .cursor/rules/*.mdc
+---> Copilot adapter -> .github/copilot-instructions.md
+---> Windsurf adapter -> .devin/rules/
+---> ...Вы редактируете общий профиль один раз, затем запускаете apothem update --harness <name> или
apothem update --harness all --project <path>, чтобы распространить изменение.
apothem harnesses list выводит зарегистрированный набор.
Почему «apothem»
Имя кодирует архитектуру. В геометрии апофема — это перпендикуляр от центра правильного многоугольника до середины одной из его сторон — единственное расстояние от ядра до каждого ребра, одинаковое по каждому направлению. Таков замысел: один общий профиль в центре, семнадцать равноудалённых окружений по периметру, каждая материализация на одинаковом расстоянии от источника истины. Ядро не меняется, когда меняется ребро; рёбра разделяют единое отношение к ядру. Расхождение структурно невозможно.
Гарантии переносимости
Правила, помеченные portability: universal, гарантированно переводимы для каждого
поддерживаемого окружения. Правила, помеченные portability: project-specific, могут требовать
документирования переопределений по каждому окружению в теле правила.
Концепции
Концепции Apothem — идеи, лежащие в основе инструмента: позиция независимости от хоста, когнитивная идентичность, аудиторская проверка и уровни серьёзности.
Возобновляемое планирование
Как Apothem выносит рабочее состояние в локальный для проекта набор .apothem/plans/ (`.plans/` остаётся поддерживаемым резервным вариантом для обратной совместимости), чтобы долгая работа переживала границы сессии, учётной записи и машины.