CLI リファレンス¶
yohaku CLI の全コマンドリファレンスです。コマンドごとに 用途 / 主な引数 / 実行例 を示します。コマンド名・引数・既定値はすべて yohaku --help(実装の printHelp)に基づいています。
ヘルプとバージョンはいつでも確認できます。
共通の既定値
多くのコマンドが以下の既定パスを使います。--root <dir> で基準ディレクトリを変更できます。
| 対象 | 既定値 |
|---|---|
| 知識グラフ DB | .yohaku/graph.sqlite(--db で変更可) |
| 生成物出力先 | docs/generated(--output で変更可) |
| Salesforce API バージョン | 62.0(--api で変更可) |
| domains 定義 | .yohaku/domains.yaml(--path で変更可) |
| カバレッジ | .yohaku/coverage.json |
クイック運用コマンド¶
yohaku init¶
用途: 利用者の Salesforce DX プロジェクトに .yohaku/ の足場(設定・スキャフォールド)を展開します。--bootstrap を付けると、init に続けて graph build と render まで一気に実行します。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--bootstrap |
init + graph build + render を一括実行 | (なし) |
--target <dir> |
展開先ディレクトリ | カレント |
--profile minimal\|standard\|full |
同梱スキャフォールドの規模 | standard |
--project-name <name> |
プロジェクト名(--name も可) |
ディレクトリ名 |
--language ja\|en |
生成物の言語 | ja |
--api <version> |
Salesforce API バージョン | 62.0 |
--segment enterprise\|smb\|vendor |
利用者セグメント | unspecified |
--conflict skip\|overwrite\|rename |
既存ファイル衝突時の挙動 | skip |
実行例
# 最小構成でブートストラップ(init + build + render)
yohaku init --bootstrap --profile minimal
# 標準構成・プロジェクト名と言語を指定
yohaku init --bootstrap --profile standard --project-name acme-sfdx --language ja
yohaku sync¶
用途: 日常運用コマンド。graph build --incremental と render を 1 コマンドでまとめて実行し、設計書を最新化します。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--full-rebuild |
差分ではなく全再構築する | (差分) |
--quiet |
ログを抑止 | (なし) |
--output <dir> |
生成物出力先 | docs/generated |
--api <version> |
API バージョン | 62.0 |
実行例
init = 初回、sync = 毎回
初回だけ yohaku init --bootstrap、以降は yohaku sync を回す、という運用が基本リズムです。
知識グラフ¶
yohaku graph build¶
用途: force-app/ 等のメタデータを解析し、SQLite 知識グラフ(.yohaku/graph.sqlite)を構築します。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--incremental |
変更分のみ反映(差分ビルド) | (フルビルド) |
--source local\|dx-mcp\|org |
入力ソース | local |
--types ApexClass,Flow,... |
対象メタデータ種を絞り込む | 全種 |
--retrieve-to <dir> |
--source=org 取得先ディレクトリ |
(内部) |
--async |
子プロセスを detach し即座に戻る(Claude Code hook 向け) | (同期) |
--quiet |
ログ抑止 | (なし) |
--no-timing-log |
実行時間ログ(.yohaku/hook-timings.jsonl)を抑止 |
(記録する) |
実行例
# ローカルの force-app/ から差分ビルド
yohaku graph build --incremental
# 認証済み org(sf CLI の defaultusername)から package.xml 一括 retrieve
yohaku graph build --source org
# Apex と Flow だけを対象にビルド
yohaku graph build --types ApexClass,Flow
--source=org
--source=org は sf CLI で認証済みの defaultusername から package.xml ベースで一括 retrieve します(Phase 4)。--async は hook から呼ぶときに有用で、実行時間は .yohaku/hook-timings.jsonl に記録されます。
yohaku graph query¶
用途: 構築済みの知識グラフに対して任意の SQL を実行し、結果を出力します。AI / 人間が事実を直接確認するための窓口です。
主な引数: SQL 文字列を直接渡します。
実行例
yohaku graph query "SELECT name FROM sobject LIMIT 10"
yohaku graph query "SELECT name FROM apex_class WHERE name LIKE '%Controller'"
yohaku graph schema¶
用途: グラフのスキーマを出力します。バリデーション用の meta schema と、実 SQLite テーブル定義(PRAGMA 代替・LLM 向け)の 2 系統があります。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--format json\|markdown |
出力形式 | json |
--tables |
実 SQLite テーブル定義を出力 | (meta schema) |
--table <name> |
特定テーブルのみ(--tables と併用) |
全テーブル |
実行例
# バリデーション用の meta schema を Markdown で
yohaku graph schema --format markdown
# 実テーブル定義(LLM 向け PRAGMA 代替)
yohaku graph schema --tables
# 特定テーブルだけ
yohaku graph schema --tables --table apex_class
レンダリング¶
yohaku render¶
用途: 知識グラフから設計書を決定的に生成します。引数なしは後方互換で system-index + objects を生成、all で全種を生成します。
ターゲット
| ターゲット | 生成物 |
|---|---|
render(引数なし) |
system-index + objects(後方互換) |
render all |
全種を一括 |
render system-index |
プロジェクト全体像 |
render objects |
SObject 個別(field / ValidationRule / 依存関係) |
render flows |
Flow 個別 |
render apex |
ApexClass 個別 |
render triggers |
ApexTrigger 個別 |
render permissions |
PermissionSet + Profile |
render validation-rules |
ValidationRule 個別 |
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--output <dir> |
出力先ディレクトリ | docs/generated |
--format md\|html\|md,html |
出力形式 | md(後方互換) |
実行例
# 全種を Markdown で生成
yohaku render all
# プロジェクト全体像だけ
yohaku render system-index
# Markdown と HTML を同時生成(html は <output>/html/ に配置)
yohaku render --format md,html
HTML 詳細設計書を作りたいとき
--format html を使うと人間がレビューする HTML 詳細設計書が <output>/html/ に生成されます。生成・プレビュー・LLM 充填の一連の流れは 設計書パイプライン を参照してください。
差分(Diff)¶
yohaku diff¶
用途: 2 つの git ref 間でメタデータの差分を抽出します。JSON 出力のほか、リリースレビュー用の HTML 出力(各変更ファイルから component leaf へリンク)も生成できます。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--from <ref> |
比較元 ref(必須) | (なし) |
--to <ref> |
比較先 ref | HEAD |
--json |
JSON で出力 | (なし) |
--path-prefix <prefix> |
対象パスを絞り込む | (全体) |
--limit <n> |
対象ファイル上限 | 1000 |
--include-static-analysis <sarif> |
SARIF 静的解析結果を取り込む | (なし) |
--format html |
HTML 出力 | (テキスト/JSON) |
--output <file> |
HTML 出力先 | (例: release-review.html) |
実行例
# 直前のタグから HEAD までの差分を JSON で
yohaku diff --from v0.5.0 --json
# リリースレビュー用 HTML を生成
yohaku diff --from v0.5.0 --to HEAD --format html --output release-review.html
レンダリング(HTML 充填・LLM 連携)¶
yohaku explain-prompts¶
用途: HTML の空 ai_managed ブロックを LLM に埋めてもらうための prompt + context を一括生成します。出力 JSON を LLM に渡し、結果(fill.json)を html-write で書き戻します。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--kind business-meaning,concerns |
充填対象のブロック種別 | 全種 |
--types apex,trigger,... |
コンポーネント種で絞り込む | 全種 |
--names X,Y,... |
コンポーネント名で絞り込む | 全件 |
--max-items <n> |
出力アイテム上限 | (上限なし) |
--output <file> |
出力先(省略時は標準出力) | stdout |
実行例
yohaku explain-prompts --output prompts.json
yohaku explain-prompts --kind business-meaning --types apex --max-items 20 --output prompts.json
yohaku html-write¶
用途: LLM が埋めた内容(fill.json)を、HTML の AI-managed ブロック(<!-- yohaku:block kind="ai_managed" ... -->)にだけ安全に書き戻します。他のブロックには触れません。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--input <fill.json> |
充填内容 JSON(必須) | (なし) |
--out <dir> |
生成物ルート | docs/generated |
--dry-run |
書き込まず結果のみ表示 | (書き込む) |
実行例
# 充填内容を書き戻す
yohaku html-write --input fill.json
# まず dry-run で対象を確認
yohaku html-write --input fill.json --dry-run
explain-prompts → html-write の往復
explain-prompts で prompt を出し、サブスクの Claude Code 等が充填し、html-write で書き戻す——この往復は LLM 側で完結します。core 自身は API を呼びません。 詳細は 設計書パイプライン を参照してください。
yohaku explain-write¶
用途: Markdown 側(/yohaku-explain skill 連携)で、LLM が生成したブロックを AI_MANAGED ブロックにだけ安全に上書きします。
主な引数
| 引数 | 説明 |
|---|---|
--kind <種別> |
apexClass / apexTrigger / flow / object / lwc / auraBundle / flexiPage など |
--fqn <name> |
対象コンポーネント名(必須) |
--input <blocks.json> |
{ blockId: content, ... } 形式の JSON(必須) |
--project-root <dir> |
プロジェクトルート |
--output-dir <dir> |
出力先 |
実行例
業務ドメイン(Domains)¶
yohaku domains init¶
用途: 知識グラフからヒューリスティックで初期 domains.yaml(業務ドメイン分類)を生成します。
主な引数: --path <yaml>(既定 .yohaku/domains.yaml)/ --force(既存を上書き)
yohaku domains sync¶
用途: グラフに追加された新メンバを、domains.yaml の Unclassified に追記します。
yohaku domains lint¶
用途: domains.yaml の重複 id / 多重所属 / 孤立メンバ / 未分類を検出します。エラーがあると終了コード 1 を返します。
オンボーディング¶
yohaku onboard context¶
用途: ペルソナ別に「読むべき順序」を踏まえたオンボーディング用コンテキストを出力します。
主な引数: --role <new_joiner|reviewer|release_manager|customer_facing>
yohaku onboard state¶
用途: オンボーディングの進捗状態を管理します。サブコマンドは show / record-step / increment-questions / reset。
yohaku onboard state show
yohaku onboard state record-step --role new_joiner --step intro --entities Account,Order__c
yohaku onboard state increment-questions --role reviewer
yohaku onboard state reset --role new_joiner
yohaku onboard faq¶
用途: 対話ログ(Markdown)から FAQ を抽出します。
主な引数: --input <dialog.md>(必須)/ --topic <name>(既定 general)/ --min-occurrences <n>(既定 1)
ローカルプレビュー¶
yohaku serve¶
用途: docs/generated/html を配信する軽量 HTTP サーバを立てます。--watch でソース変更時に graph + HTML を再生成し、SSE でブラウザを自動 reload します。
主な引数
| 引数 | 説明 | 既定値 |
|---|---|---|
--port <n> |
ポート | 4000 |
--host <addr> |
バインドアドレス | 127.0.0.1 |
--dir <dir> |
配信ディレクトリ | docs/generated/html |
--watch |
変更監視 + 自動 rebuild + 自動 reload | (なし) |
--watch-dir <dir> |
監視対象ディレクトリ | force-app |
--quiet |
ログ抑止 | (なし) |
実行例
0.0.0.0 へのバインド
--host 0.0.0.0 を指定すると LAN からアクセス可能になります(起動時に警告が出ます)。共有が不要なら既定の 127.0.0.1 のままにしてください。
テストカバレッジ¶
yohaku coverage import¶
用途: sf apex run test --code-coverage --result-format json の出力を取り込み、正規化して保存します。
主な引数: --input <coverage.json>(必須)/ --out <path>(既定 .yohaku/coverage.json)
yohaku coverage show¶
用途: 取り込み済みカバレッジのサマリを、低カバレッジ順に上位 10 件表示します。
主な引数: --path <path>(既定 .yohaku/coverage.json)
その他¶
yohaku validate¶
用途: グラフ JSON を meta schema で検証します。
主な引数: --target <graph.json>
yohaku context¶
用途: opt-in の context-hub 連携。対象に関連するプロジェクト/顧客コンテキストを context-hub から取得し、ContextBrief(JSON)で出力します。.yohaku/config.json の contextProvider を参照し、未設定なら空 brief を返します(従来動作のまま)。
主な引数: --kind <metadataKind>(必須)/ --fqn <name>(必須)/ --project-root <dir>
詳細は .yohaku 設定 / contextProvider と context-hub 連携 を参照してください。
yohaku metrics¶
用途: LLM トークン使用量などのメトリクスを記録・表示します。
主な引数
metrics show --period day|week|month|all(既定month)metrics record --model <id> --command <name> --in <tokens> --out <tokens>
yohaku metrics show --period week
yohaku metrics record --model claude-sonnet --command explain-prompts --in 1200 --out 800
yohaku version¶
用途: バージョン番号を出力します(yohaku --version と同等)。
終了コードの目安¶
| コード | 意味 |
|---|---|
0 |
正常終了 |
1 |
実行時エラー(処理失敗・lint エラー検出など) |
2 |
引数不正・前提ファイル欠如(例: グラフ未構築、未知のサブコマンド) |
前提ファイルの自動チェック
多くのコマンドは .yohaku/graph.sqlite の存在を前提にし、無い場合は Run "yohaku graph build" first. と案内して終了コード 2 を返します。domains / coverage 系も同様に、前段コマンドの実行を促します。