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 — запускает общесистемную диагностику установки