profile
apothem profile コマンドグループの CLI リファレンス。
共有の Apothem プロファイルを管理します。
profile は、init、show、set、edit の 4 つのサブコマンドを持つコマンドグループです。
共有プロファイルは単一の信頼できる情報源であり、各ハーネスアダプターはこれをそれぞれのネイティブ設定へマテリアライズします。
構文
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 を指定しない限り、既存のファイルは保持されます。
足場の 1 行目は、プロファイルスキーマの $id である https://apothem.ahmedgad.com/schemas/profile.schema.json を指定する yaml-language-server モードラインです。
サイトはそのアドレスで同梱のスキーマを配信しているため、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(ブール値の強制フラグ)と、明示的な [...]/{...} のリスト/マップ入力は例外です。
完全に組み立てられたプロファイルは、書き込みの前にスキーマに照らして検証されます。無効な set は拒否され、ディスク上のプロファイルは変更されません。
| 引数 | 説明 |
|---|---|
KEY | 設定する、プロファイル内のドット区切りのパス(必須)。 |
VALUE | 割り当てるリテラル値。書き込みの前に検証されます(必須)。 |
profile edit
システムのエディターで共有プロファイルを開きます。
検証エラー
プロファイルを読み取るすべてのコマンドは、同梱のスキーマに照らしてプロファイルを検証し、見つかったすべての問題を 1 回で報告するため、1 回の編集ですべてを修正できます。
- プレーン出力は、最初の問題を完全に示し(
Field、Reason、Fix、そしてOffending value (redacted)。最後のものは失敗した入力であり、シークレットらしき値は<redacted>に置き換えられます。これが置き換え値の提案であることは決してありません)、続いてOther problemsの下に最大 10 件の問題を追加で一覧表示します。 - 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 の下では、エラーはコード cli.usage を持つ JSON エンベロープになります。 |
関連項目
- apothem install — プロファイルをハーネスへマテリアライズする
- apothem doctor — システム全体のインストール診断を実行する