Files
msd-core/docs/ja-JP/CLI-TOOLS.md
Tom Boucher b54c1c5848 fix(#4709): retire the Gemini CLI reviewer lane (#4716)
* fix(#4709): retire the Gemini CLI reviewer lane

Google stopped serving Gemini CLI for the free/Pro/Ultra tiers on 2026-06-18 —
the same sunset that removed the gemini RUNTIME in #1928 (shipped 1.8.0). GSD
targets solo developers, so those tiers ARE the user path: the lane spawned
`gemini {{model}} -p -`, a binary that no longer answers for the majority of
users, and five locales documented it as a supported choice.

The lane was re-created after #1928 by the reviewer-lane-as-manifest-data work
(6a9babda69, #2798/#2837, ADR-2782). Per the maintainer that re-creation was an
error in that buildout rather than a considered decision, so this corrects a
mistake and needs no ADR-2782 amendment.

Reviewer roster: 12 lanes / 13 flags -> 11 lanes / 12 flags.

TWO sources of truth had to be removed, not one. Deleting
capabilities/gemini/capability.json left the capability registry at 11 lanes
while src/review-lane-descriptor.cts's hand-maintained REVIEWER_LANES array
still carried its own complete gemini entry at 12 — precisely the disagreement
checkReviewerLaneParity exists to catch. Both are gone; both parity checkers
now run clean against the real tree (lane parity ok/0 violations, docs parity
0 violations).

Surfaces stripped of the dead flag:
- capabilities/gemini/ deleted; registry and capability-matrix regenerated
- src/review-lane-descriptor.cts: REVIEWER_LANES entry, docblock count, and the
  three doc comments that used --gemini as a live example
- commands/gsd/{review,plan-review-convergence,autonomous,progress}.md and the
  four matching skills/*/SKILL.md: argument-hint frontmatter and flag bullets
- gsd-core/workflows/help/modes/{full,full.compact}.md: /gsd-help signatures,
  the detected-CLI list, and the reviewer-title list
- gsd-core/workflows/settings-integrations.md: the integrations wizard no longer
  offers "Gemini" as a model option, and the settable-keys list drops it
- gsd-core/workflows/review.md: the `command -v gemini` probe, the --gemini
  flag, the roster frontmatter, the install pointer to the sunset repo, and the
  jq-less / precedence / self-skip lane lists
- gsd-core/workflows/sync-skills.md: "two runtimes (grok, gemini) resolve to
  ANOTHER runtime's skills root" is now one runtime; gemini never aliased
  anything, it fell through canonicalizeRuntimeName to a fail-closed default
- docs/{CONFIGURATION,COMMANDS,CLI-TOOLS}.md, docs/reference/capability-matrix.md,
  docs/how-to/set-up-cross-ai-review.md — including its `npm install -g
  @google/gemini-cli` instruction and the two rows recommending --gemini
- docs/features/{cross-ai-peer-review,opt-in-parallel-reviewer-lanes}.md as the
  generator inputs behind docs/FEATURES.md, plus the three locale FEATURES.md
  signature lines the docs-parity gate covers (the #2781 class: a flag change
  that never reaches the mirrors)

Counts reconciled against measurement rather than arithmetic: 8 timeout keys of
11 lanes, 11 budget keys, 9 model keys, and four hardcoded literals in
tests/reviewer-lane-declarations.test.cjs (NEW_LANE_ONLY_IDS 5->4, LITERAL_ROSTER
12->11, two roster counts 12->11).

BEHAVIOR CHANGE, accepted deliberately: `gsd config-set review.models.gemini`
now errors with "Unknown config key". An existing key already in
.planning/config.json still parses and is simply never read, so no project fails
to load. This is the repo's own documented policy for exactly this case
(docs/CONFIGURATION.md:327 — "a key left over from a removed reviewer validated
silently and was never read. Such a key is now rejected by config-set"), so no
installer migration ships. Note my first measurement of this was WRONG: I tested
config-get, which reads undeclared keys fine, and generalised. Read and write are
different surfaces and gave different answers.

Antigravity is untouched throughout — its --antigravity/--agy flags,
review.models.agy, ~/.gemini/antigravity configHome, ~/.gemini/config global
skills root (#3738), hookEvents "gemini", GEMINI.md instruction file, and every
gemini-* model id it actually runs on.

Refs #4709

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore(#4709): changeset for the reviewer-lane retirement

Type Removed: the --gemini flag and its three config keys are user-visible
surface that no longer exists.

Refs #4709

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(#4709): close the 24 test failures and the locale-doc gap the gates found

An adversarial review and a full matrix run between them found substantially
more fallout than inspection had. All of it is this PR's own, and all of it is
fixed rather than waved off.

THE MATRIX RUN FOUND 24 FAILURES ACROSS 6 FILES. Inspection had predicted two.
The dominant class was a test helper that looks up a lane by slug and throws
`no declared lane 'gemini'`:

- tests/feat-2483-review-claude-mds-guard.test.cjs (6) — used gemini as the
  "other declared first-party lane" to contrast against claude's env
  suppression. Now qwen, verified from source as a lane that declares no `env`
  (only claude does), so the contrast still holds.
- tests/review-lane-descriptor.test.cjs (6) — the duplicate-flag and
  duplicate-section fixtures deliberately COLLIDED with a real declared lane to
  prove the parity checker reports a duplicate. `--gemini`/`Gemini` no longer
  collide with anything, so the checker reported
  `descriptor_lane_not_in_registry:acme` instead and the tests proved nothing.
  Now collide with `--codex`/`Codex`, reproduced against the real checker.
- tests/review-reviewer-selection.test.cjs (3) — these distinguish KNOWN-but-
  undetected from UNKNOWN. gemini flipped categories, inverting what they
  proved. The known case now uses qwen; `__nope__` stays the unknown fixture.
- tests/review-default-reviewers-resolution.test.cjs (2), and
  tests/settings-integrations.test.cjs (3) — the wizard now offers three
  reviewer CLIs, not four, so the test and its name say three.
- Two count assertions the earlier sweep missed outright:
  reviewer-lane-declarations.test.cjs:359 (`length, 12`) and
  reviewer-docs-parity.test.cjs:681 (`>= 12`).

THE LOCALE-DOC GAP, and why the parity gate stayed green over it. All four
locale mirrors still documented `--gemini` as a live reviewer flag. The
docs-parity checker asserts the PRESENCE of every current flag and never the
ABSENCE of a retired one, so "0 violations" was never evidence those files were
clean — my earlier reading of it as such was wrong. This is the #2781
locale-drift class in the opposite direction. Fixed across 12 locale files:
COMMANDS.md flag lists and table rows, CONFIGURATION.md `review.models.gemini`
rows and reviewer prose, CLI-TOOLS.md config examples, and
set-up-cross-ai-review.md including its install block and its
which-reviewer-to-choose row, which now recommends Antigravity.

ALSO FOUND, and instructive about my own method: docs/CONFIGURATION.md:297 still
carried a `review.models.gemini` row. My sweep had missed it because my grep
excluded lines matching `gemini-[0-9]` to spare Google's model ids — and that
row's example value is `"gemini-2.5-pro"` on the same line. The exclusion built
to avoid false positives created a false negative.

Remaining comment/example sites: src/review-reviewer-selection.cts:309 and
src/config.cts:598 named the dead flag and key as examples;
gsd-core/references/planning-config.md:269 likewise; and
review-reviewer-selection.cts:22 claimed in the PRESENT tense that gemini is a
lane-only reviewer capability. Line 38 of that same docblock says "Before this
phase the five non-runtime reviewers (gemini, ...)" and is left exactly as is —
that is past-tense history, and rewriting it would falsify the record.

Deliberately still deferred to Phase 4, because it is the RUNTIME axis rather
than the reviewer lane: the locale install-on-your-runtime.md `--gemini --global`
instructions, the USER-GUIDE colon-form notes, and the ARCHITECTURE
runtime-detection flag lists.

Both parity checkers green against the real tree; lint:ci exit 0.

Refs #4709

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore(#4709): backfill the changeset PR number

pr: 0 -> 4716, now that the PR exists. Never guessed ahead of the number.

Refs #4709

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: sim <sim@local>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 03:03:44 -04:00

22 KiB
Raw Blame History

GSD CLI ツールリファレンス

gsd-tools CLI(gsd-core/bin/gsd-tools.cjs)のリファレンスです。スラッシュコマンドとユーザーフローについては コマンドリファレンス を参照してください。docs インデックス に戻る。


概要

gsd-tools.cjs は、設定の解析、モデル解決、フェーズ検索、git コミット、サマリー検証、状態管理、テンプレート操作を GSD コマンド・ワークフロー・エージェント全体で一元化します。

配置パス gsd-core/bin/gsd-tools.cjs
実装 gsd-core/bin/lib/ 配下の 20 個のドメインモジュール(ディレクトリが正式)
ステータス オーケストレーション・ワークフロー・自動化処理のための主要ランタイムコマンドサーフェス。

使い方(CJS):

node gsd-tools.cjs <command> [args] [--raw] [--cwd <path>]

グローバルフラグ(CJS):

フラグ 説明
--raw 機械可読な出力(JSON またはプレーンテキスト、フォーマットなし)
--cwd <path> 作業ディレクトリの上書き(サンドボックス化されたサブエージェント向け)
--ws <name> .planning/workstreams/<name> パス用のワークストリームコンテキスト

State コマンド

.planning/STATE.md を管理します — プロジェクトの生きた記憶です。

# プロジェクトの全設定 + 状態を JSON として読み込む
node gsd-tools.cjs state load

# STATE.md のフロントマターを JSON として出力
node gsd-tools.cjs state json

# 単一フィールドを更新
node gsd-tools.cjs state update <field> <value>

# STATE.md の内容または特定セクションを取得
node gsd-tools.cjs state get [section]

# 複数フィールドの一括更新
node gsd-tools.cjs state patch --field1 val1 --field2 val2

# プランカウンターをインクリメント
node gsd-tools.cjs state advance-plan

# 実行メトリクスを記録
node gsd-tools.cjs state record-metric --phase N --plan M --duration Xmin [--tasks N] [--files N]

# プログレスバーを再計算
node gsd-tools.cjs state update-progress

# 決定事項を追加
node gsd-tools.cjs state add-decision --summary "..." [--phase N] [--rationale "..."]
# ファイルから追加する場合:
node gsd-tools.cjs state add-decision --summary-file path [--rationale-file path]

# ブロッカーの追加・解決
node gsd-tools.cjs state add-blocker --text "..."
node gsd-tools.cjs state resolve-blocker --text "..."

# セッション継続性を記録
node gsd-tools.cjs state record-session --stopped-at "..." [--resume-file path]

# フェーズ開始 — 新しいフェーズの STATE.md Status/Last activity を更新
node gsd-tools.cjs state begin-phase --phase N --name SLUG --plans COUNT

# エージェント検出可能なブロッカーシグナル送信(discuss-phase / UI フローで使用)
node gsd-tools.cjs state signal-waiting --type TYPE --question "..." --options "A|B" --phase P
node gsd-tools.cjs state signal-resume

State スナップショット

STATE.md 全体の構造化パース:

node gsd-tools.cjs state-snapshot

現在位置、フェーズ、プラン、ステータス、決定事項、ブロッカー、メトリクス、最終アクティビティを含む JSON を返します。


Phase コマンド

フェーズを管理します — ディレクトリ、番号付け、ロードマップとの同期。

# 番号でフェーズディレクトリを検索
node gsd-tools.cjs find-phase <phase>

# 挿入用の次の小数フェーズ番号を計算
node gsd-tools.cjs phase next-decimal <phase>

# ロードマップに新しいフェーズを追加 + ディレクトリを作成
node gsd-tools.cjs phase add <description>

# 既存フェーズの後に小数フェーズを挿入
node gsd-tools.cjs phase insert <after> <description>

# フェーズを削除し、後続を振り直し
node gsd-tools.cjs phase remove <phase> [--force]

# フェーズを完了としてマークし、状態 + ロードマップを更新
node gsd-tools.cjs phase complete <phase>

# ウェーブとステータス付きでプランをインデックス化
node gsd-tools.cjs phase-plan-index <phase>

# フィルタリング付きでフェーズを一覧表示
node gsd-tools.cjs phases list [--type planned|executed|all] [--phase N] [--include-archived]

Roadmap コマンド

ROADMAP.md の解析と更新。

# ROADMAP.md からフェーズセクションを抽出
node gsd-tools.cjs roadmap get-phase <phase>

# ディスク状態を含む完全なロードマップ解析
node gsd-tools.cjs roadmap analyze

# ディスクからプログレステーブル行を更新
node gsd-tools.cjs roadmap update-plan-progress <N>

Config コマンド

.planning/config.json の読み書き。

# デフォルト値で config.json を初期化
node gsd-tools.cjs config-ensure-section

# 設定値をセット(ドット記法)
node gsd-tools.cjs config-set <key> <value>

# 設定値を取得
node gsd-tools.cjs config-get <key>

# モデルプロファイルを設定
node gsd-tools.cjs config-set-model-profile <profile>

モデル解決

# 現在のプロファイルに基づいてエージェント用モデルを取得
node gsd-tools.cjs resolve-model <agent-name>
# --raw 出力では選択されたモデル ID/ティアを返します。
# JSON 出力ではプロファイルも含み、アクティブなランタイムがサポートしている場合は
# reasoning_effort も含まれます。

エージェント名: gsd-planner, gsd-executor, gsd-phase-researcher, gsd-project-researcher, gsd-research-synthesizer, gsd-verifier, gsd-plan-checker, gsd-integration-checker, gsd-roadmapper, gsd-debugger, gsd-codebase-mapper, gsd-nyquist-auditor


Verification コマンド

プラン、フェーズ、参照、コミットを検証します。

# SUMMARY.md ファイルを検証
node gsd-tools.cjs verify-summary <path> [--check-count N]

# PLAN.md の構造 + タスクをチェック
node gsd-tools.cjs verify plan-structure <file>

# 全プランにサマリーがあるか確認
node gsd-tools.cjs verify phase-completeness <phase>

# @参照 + パスが解決可能か確認
node gsd-tools.cjs verify references <file>

# コミットハッシュの一括検証
node gsd-tools.cjs verify commits <hash1> [hash2] ...

# must_haves.artifacts をチェック
node gsd-tools.cjs verify artifacts <plan-file>

# must_haves.key_links をチェック
node gsd-tools.cjs verify key-links <plan-file>

Validation コマンド

プロジェクトの整合性をチェックします。

# フェーズ番号、ディスク/ロードマップの同期を確認
node gsd-tools.cjs validate consistency

# .planning/ の整合性チェック、任意で修復
node gsd-tools.cjs validate health [--repair]

# ステータスライン / フック呼び出し元向けのコンテキストウィンドウ使用率をプローブ(v1.40.0)
node gsd-tools.cjs validate context

# 型付き JSON サーフェスとしてのコンテキスト使用率(#455)
node gsd-tools.cjs validate context --json

validate context は utilization、status(60% / 70% の閾値で ok / warn / critical)、および suggestion 文字列を含む構造化エンベロープを出力します。同じデータが /gsd-health --context を支えます。 型付き IR を直接受け取るには --json を渡してください(スクリプトやテストアサーションで有用)。


Template コマンド

テンプレートの選択と穴埋め。

# 粒度に基づいてサマリーテンプレートを選択
node gsd-tools.cjs template select <type>

# 変数でテンプレートを穴埋め
node gsd-tools.cjs template fill <type> --phase N [--plan M] [--name "..."] [--type execute|tdd] [--wave N] [--fields '{json}']

fill のテンプレートタイプ: summary, plan, verification


Frontmatter コマンド

任意の Markdown ファイルに対する YAML フロントマターの CRUD 操作。

# フロントマターを JSON として抽出
node gsd-tools.cjs frontmatter get <file> [--field key]

# 単一フィールドを更新
node gsd-tools.cjs frontmatter set <file> --field key --value jsonVal

# JSON をフロントマターにマージ
node gsd-tools.cjs frontmatter merge <file> --data '{json}'

# 必須フィールドを検証
node gsd-tools.cjs frontmatter validate <file> --schema plan|summary|verification

Scaffold コマンド

事前構造化されたファイルとディレクトリを作成します。

# CONTEXT.md テンプレートを作成
node gsd-tools.cjs scaffold context --phase N

# UAT.md テンプレートを作成
node gsd-tools.cjs scaffold uat --phase N

# VERIFICATION.md テンプレートを作成
node gsd-tools.cjs scaffold verification --phase N

# フェーズディレクトリを作成
node gsd-tools.cjs scaffold phase-dir --phase N --name "phase name"

Init コマンド(複合コンテキスト読み込み)

特定のワークフローに必要なすべてのコンテキストを一度に読み込みます。プロジェクト情報、設定、状態、ワークフロー固有のデータを含む JSON を返します。init onboard [--fast] [--text] は /gsd-onboard 用に、brownfield シグナル、計画ドキュメント候補、コードベースマップの完全性、fast マップの準備状況、テキストモードルーティング、部分的な planning 状態、オンボーディングサマリー状態を返します。

node gsd-tools.cjs init execute-phase <phase>
node gsd-tools.cjs init plan-phase <phase>
node gsd-tools.cjs init new-project
node gsd-tools.cjs init new-milestone
node gsd-tools.cjs init onboard [--fast] [--text]
node gsd-tools.cjs init quick <description>
node gsd-tools.cjs init resume
node gsd-tools.cjs init verify-work <phase>
node gsd-tools.cjs init phase-op <phase>
node gsd-tools.cjs init todos [area]
node gsd-tools.cjs init milestone-op
node gsd-tools.cjs init map-codebase
node gsd-tools.cjs init progress

# ワークストリームスコープ付き init(`--ws` フラグ)
node gsd-tools.cjs init execute-phase <phase> --ws <name>
node gsd-tools.cjs init plan-phase <phase> --ws <name>

大容量ペイロードの処理: 出力が約 50KB を超える場合、CLI は一時ファイルに書き出し、@file:/tmp/gsd-init-XXXXX.json を返します。ワークフローは @file: プレフィックスを確認し、ディスクから読み込みます:

INIT=$(node gsd-tools.cjs init execute-phase "1")
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi

Milestone コマンド

# マイルストーンをアーカイブ
node gsd-tools.cjs milestone complete <version> (--confirm | --dry-run) [--name <name>] [--no-archive-phases] [--force] [--archive-quick]

# 要件を完了としてマーク
node gsd-tools.cjs requirements mark-complete <ids>
# 受け付ける形式: REQ-01,REQ-02 または REQ-01 REQ-02 または [REQ-01, REQ-02]

エージェントスキル

指定されたエージェントタイプのスキルブロックを出力します。

# 生の XML スキルブロックを出力(デフォルト — シェル展開に安全)
node gsd-tools.cjs agent-skills <agent-type>

# 型付き JSON サーフェス(#455)を出力 — { agent_type, block, skills_count }
node gsd-tools.cjs agent-skills <agent-type> --json

--json フラグは構造化消費やテストアサーションに適した型付き IR オブジェクトを返します。デフォルト(フラグなし)はワークフローのシェル展開が依存する生の XML 出力を維持します。


スキルマニフェスト

コマンド読み込みを高速化するためのスキル検出の事前計算とキャッシュ。

# スキルマニフェストを生成(.claude/skill-manifest.json に書き込む)
node gsd-tools.cjs skill-manifest

# カスタム出力パスで生成
node gsd-tools.cjs skill-manifest --output <path>

利用可能なすべての GSD スキルとそのメタデータ(名前、説明、ファイルパス、引数ヒント)の JSON マッピングを返します。インストーラとセッション開始フックが繰り返しのファイルシステムスキャンを避けるために使用します。


ユーティリティコマンド

# テキストを URL セーフなスラッグに変換
node gsd-tools.cjs generate-slug "Some Text Here"
# → some-text-here

# タイムスタンプを取得
node gsd-tools.cjs current-timestamp [full|date|filename]

# 保留中の TODO をカウントして一覧表示
node gsd-tools.cjs list-todos [area]

# ファイル/ディレクトリの存在確認
node gsd-tools.cjs verify-path-exists <path>

# 全 SUMMARY.md データを集約
node gsd-tools.cjs history-digest

# SUMMARY.md から構造化データを抽出
node gsd-tools.cjs summary-extract <path> [--fields field1,field2]

# プロジェクト統計
node gsd-tools.cjs stats [json|table]

# 進捗表示(人間が読める形式)
node gsd-tools.cjs progress [json|table|bar]

# 型付き JSON サーフェスとしての進捗(#455)
node gsd-tools.cjs progress --json

# TODO を完了にする
node gsd-tools.cjs todo complete <filename> [--dry-run]

# UAT 監査 — 全フェーズの未解決項目をスキャン
node gsd-tools.cjs audit-uat

# クロスアーティファクト監査キュー — `.planning/` の未解決監査項目をスキャン
node gsd-tools.cjs audit-open [--json]

# GSD-2 プロジェクトを現在の構造にリバースマイグレーション(`/gsd-import --from-gsd2` のバックエンド)
node gsd-tools.cjs from-gsd2 [--path <dir>] [--force] [--dry-run]

# 設定チェック付き git コミット
node gsd-tools.cjs commit <message> [--files f1 f2] [--amend] [--no-verify] [--respect-staged]

--no-verify: プリコミットフックをスキップします。ウェーブベース実行時に並列エグゼキューターエージェントがビルドロックの競合(例: Rust プロジェクトでの cargo ロック競合)を避けるために使用します。オーケストレーターは各ウェーブ完了後にフックを一度実行します。順次実行時には --no-verify を使用せず、フックを通常通り実行してください。 --files <paths> ステージング動作: デフォルトでは、--files はコミット前に各指定ファイルに対して git add -- <path> を実行します。これにより git add -p で設定したハンク単位のステージングが上書きされます。git add ステップをスキップして指定パス内のステージング済みファイルのみをコミットするには --respect-staged を渡してください。そのスコープ内でステージングされたファイルがない場合、コマンドはエラーなしで { committed: false, reason: 'nothing staged' } を返します。コミット時の末尾 -- <paths> パス指定は両モードで適用されるため、--files スコープ外でステージングされたファイルは決して含まれません(#3061 不変条件)。

Web 検索(Brave API キーが必要)

node gsd-tools.cjs websearch [--limit N] [--freshness day|week|month]


---

## Graphify

`.planning/graphs/` 内のプロジェクトナレッジグラフをビルド、クエリ、検査します。`config.json` で `graphify.enabled: true` が必要です([設定リファレンス](CONFIGURATION.md#graphify-settings) を参照)。

```bash
# ナレッジグラフをビルドまたは再ビルド
node gsd-tools.cjs graphify build

# グラフで用語を検索
node gsd-tools.cjs graphify query <term>

# グラフの鮮度と統計を表示
node gsd-tools.cjs graphify status

# 前回のビルドからの変更を表示
node gsd-tools.cjs graphify diff

# 現在のグラフの名前付きスナップショットを書き込む
node gsd-tools.cjs graphify snapshot [name]

ユーザー向けエントリーポイント: /gsd-graphify(コマンドリファレンス を参照)。


モジュールアーキテクチャ

モジュール ファイル エクスポート
Core lib/core.cjs error(), output(), parseArgs()、共通ユーティリティ、互換性再エクスポート
State lib/state.cjs すべての state サブコマンド、state-snapshot
Phase lib/phase.cjs フェーズ CRUD、find-phase、phase-plan-index、phases list
Planning Workspace lib/planning-workspace.cjs プランニングシーム: planningDir、planningPaths、アクティブワークストリームルーティング、.planning/.lock
Roadmap lib/roadmap.cjs ロードマップ解析、フェーズ抽出、進捗更新
Config lib/config.cjs 設定の読み書き、セクション初期化
Verify lib/verify.cjs すべての検証・バリデーションコマンド
Template lib/template.cjs テンプレート選択と変数の穴埋め
Frontmatter lib/frontmatter.cjs YAML フロントマター CRUD
Init lib/init.cjs 全ワークフロー向け複合コンテキスト読み込み
Milestone lib/milestone.cjs マイルストーンアーカイブ、要件マーキング
Commands lib/commands.cjs その他: slug、タイムスタンプ、TODO、scaffold、統計、Web 検索
Model Profiles lib/model-profiles.cjs プロファイル解決テーブル
UAT lib/uat.cjs 全フェーズ横断 UAT/検証監査
Profile Output lib/profile-output.cjs 開発者プロファイルのフォーマット
Profile Pipeline lib/profile-pipeline.cjs セッション分析パイプライン
Graphify lib/graphify.cjs ナレッジグラフのビルド/クエリ/ステータス/差分/スナップショット(/gsd-graphify のバックエンド)
Learnings lib/learnings.cjs フェーズ/SUMMARY アーティファクトからの学習抽出(/gsd-extract-learnings のバックエンド)
Audit lib/audit.cjs フェーズ/マイルストーン監査キューハンドラ; audit-open ヘルパー
GSD2 Import lib/gsd2-import.cjs GSD-2 プロジェクトからのリバースマイグレーションインポーター(/gsd-import --from-gsd2 のバックエンド)
Intel lib/intel.cjs クエリ可能なコードベースインテリジェンスインデックス(/gsd-map-codebase --query のバックエンド)

レビュアー CLI ルーティング

review.models.<cli> はレビュアーフレーバーをコードレビューワークフローが呼び出すシェルコマンドにマッピングします。/gsd-config --integrations または直接設定できます:

node gsd-tools.cjs config-set review.models.codex    "codex exec --model gpt-5"
node gsd-tools.cjs config-set review.models.agy      "gemini-3.1-pro-preview"
node gsd-tools.cjs config-set review.models.opencode "opencode run --model claude-sonnet-4"
node gsd-tools.cjs config-set review.models.claude   ""   # クリア — セッションモデルにフォールバック

スラッグは [a-zA-Z0-9_-]+ に対してバリデーションされます。空またはパスを含むスラッグは拒否されます。完全なフィールドリファレンスは docs/CONFIGURATION.md を参照してください。

シークレット処理

/gsd-settings で設定された API キー(brave_search、firecrawl、exa_search)は .planning/config.json に平文で書き込まれますが、config-set / config-get のすべての出力、確認テーブル、インタラクティブプロンプトでは(****<last-4> として)マスクされます。マスキングの実装は gsd-core/bin/lib/secrets.cjs を参照してください。config.json ファイル自体がセキュリティ境界です — ファイルシステムのパーミッションで保護し、git には含めないようにしてください(.planning/ はデフォルトで gitignore されます)。