Skip to content
Apothem
Справочник CLI

profile

Справочник CLI для группы команд apothem profile.

Управляет общим профилем Apothem.

profile — группа команд с четырьмя подкомандами: init, show, set и edit. Общий профиль — единый источник истины, который каждый адаптер окружения материализует в свою нативную конфигурацию.

Сводка

apothem profile init [--profile PATH] [--force]
                     [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile show [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile set KEY VALUE
                     [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile edit [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]

Общие параметры

Каждая подкоманда принимает приведённые ниже общие параметры.

ПараметрОписание
--profile PATHПуть к YAML общего профиля (по умолчанию — стандартное расположение профиля).
--quiet, -qПодавляет информационный вывод; выводятся только ошибки.
--verbose, -vВыводит дополнительную диагностику.
--format plain|jsonФормат вывода (по умолчанию: plain).
--jsonСокращение для --format json.
--no-colorОтключает коды цвета ANSI в выводе.
-h, --helpПоказывает справку и завершает работу.

Подкоманды

profile init

Создаёт минимальный каркас профиля, допустимый по схеме, в ~/.config/apothem/profile.yaml или по пути --profile PATH. Существующие файлы сохраняются, если не указан --force.

Первая строка каркаса — строка режима (modeline) yaml-language-server, указывающая $id схемы профиля, https://apothem.ahmedgad.com/schemas/profile.schema.json. Сайт отдаёт поставляемую схему по этому адресу, поэтому редактор с поддержкой языка YAML проверяет профиль, пока вы его редактируете. Каждая поставляемая схема под src/apothem/schemas/ отдаётся тем же способом по адресу https://apothem.ahmedgad.com/schemas/<file>.

ПараметрОписание
--forceПерезаписывает существующий каркас профиля.

profile show

Отображает проверенный общий профиль с раскрытыми значениями по умолчанию. С --json документом является сам профиль, начинающийся с schema_version: версии схемы профиля, по которой движок его прочитал (см. контракт вывода JSON).

profile set KEY VALUE

Задаёт ключ в общем профиле. KEY — путь через точку, спускающийся во вложенный профиль (identity.name, preferences.style, enforcement.sprints, harnesses.<harness>.preferences.style); одиночный ключ без точки задаёт узел верхнего уровня. VALUE сохраняется как литеральная строка — слова без кавычек не приводятся к другим типам (no остаётся "no", 2024-01-01 и 1.0 остаются строками), — за исключением true/false (булевы флаги принудительного применения) и явного ввода списка/словаря [...]/{...}. Полностью собранный профиль проверяется по схеме перед записью; недопустимая установка отклоняется, и профиль на диске остаётся без изменений.

АргументОписание
KEYПуть через точку в профиле к задаваемому ключу (обязателен).
VALUEЛитеральное присваиваемое значение; проверяется перед записью (обязательно).

profile edit

Открывает общий профиль в системном редакторе.

Ошибки проверки

Каждая команда, читающая профиль, проверяет его по поставляемой схеме и за один проход сообщает о каждой найденной проблеме, чтобы одной правкой можно было исправить их все:

  • Обычный вывод полностью описывает первую проблему (Field, Reason, Fix и Offending value (redacted): входные данные, не прошедшие проверку, в которых значения, похожие на секреты, заменены на <redacted>; это никогда не предлагаемая замена), затем перечисляет до десяти остальных под Other problems.
  • Вывод JSON сохраняет первую проблему в полях верхнего уровня объекта error и добавляет массив errors со всеми проблемами (code, field, reason, fix, safe_value).
  • Неизвестные ключи: выводится только неожиданный ключ и его замаскированное значение, а не весь профиль.
  • Маркеры управляемого блока. Ни один ключ или текстовое значение не может содержать <!-- BEGIN APOTHEM MANAGED BLOCK --> или <!-- END APOTHEM MANAGED BLOCK -->. Apothem записывает эти маркеры вокруг блока, которым он управляет в файлах инструкций, а текст профиля попадает внутрь этого блока, поэтому маркер в нём разделил бы блок. Каждое такое поле не проходит проверку с кодом profile.managed_block_marker: field — его путь через точку (например, rules.2 или mcp_servers.search.env.SEARCH_MODE), а reason называет маркер. Само значение никогда не выводится (safe_value равно null), поскольку оно может быть учётными данными.

profile init (и любая другая команда, создающая каркас профиля) записывает schema_version: 1. Профиль без schema_version читается как версия 1.

Примеры

apothem profile init
apothem profile init --profile ./profile.yaml --force --json
apothem profile show
apothem profile show --json
apothem profile set seriousness SHARED
apothem profile set rules '["Use fake placeholders in examples."]'
apothem profile edit

Коды выхода

КодЗначение
0Успех (или, для edit, редактор завершился нормально)
1Профиль отсутствует, недействителен, уже существует без --force или не может быть записан
64Ошибка использования: неизвестный параметр или команда либо отсутствующее или недопустимое значение параметра. При --json ошибка выводится как конверт JSON с кодом cli.usage.

См. также

  • apothem install — материализует профиль в окружение
  • apothem doctor — запускает общесистемную диагностику установки

On this page