Files
msd-core/docs/ja-JP/CONFIGURATION.md
Tom Boucher eb49ff98df fix(#4728): stop presenting the retired Gemini CLI as a supported runtime (#4743)
* fix(#4728): stop presenting the retired Gemini CLI as a supported runtime

#1928 removed the Gemini CLI runtime after Google sunset it on 2026-06-18, and
updated the ENGLISH docs. The locale mirrors and the runtime-loaded workflow
prose were not updated in the same change, and no gate asserts the ABSENCE of a
retired runtime, so both drifted quietly for a year.

The finding that shaped this change: English is already correct. docs/
ARCHITECTURE.md, CONFIGURATION.md, USER-GUIDE.md, how-to/install-on-your-runtime.md
and CLI-TOOLS.md carry zero runtime-axis Gemini references; the only English hits
anywhere are a Gemini 2.5 Pro MODEL line, the GEMINI_API_KEY row, and prose that
correctly documents the retirement. So the docs half of this is translation lag,
not a content decision, and every locale edit here is parity with an existing
English line rather than new wording:

  - install-on-your-runtime.md  English has NO `### Gemini CLI` section  -> deleted
  - USER-GUIDE.md :843          "…, Antigravity CLI, Kilo)"              -> substituted
  - ARCHITECTURE.md             English has NO Gemini CLI table row      -> row deleted
  - ARCHITECTURE.md :24         English holds `Kimi CLI` in that slot    -> Kimi CLI
  - context-monitor.md :3       "`AfterTool` for Antigravity CLI"        -> substituted
  - spike-and-sketch.md :93     "(Codex, Antigravity CLI, etc.)"         -> substituted
  - configure-model-profiles    "Codex, OpenCode, Antigravity CLI, or Kilo" -> substituted
  - COMMANDS.md                 English keeps only hyphen + Codex bullets -> colon bullet deleted
  - FEATURES.md                 source docs/features/multi-runtime-support.md:10
                                lists no Gemini CLI                       -> name removed

ARCHITECTURE.md:24 is the clearest case for reading English rather than
substituting blind: Antigravity ALREADY appears later in that list, so replacing
Gemini CLI with Antigravity would have named it twice. English holds Kimi CLI
there, so that is what the locales get.

The largest single class was hand-duplicated boilerplate. A "Text mode" paragraph
repeated across 34 runtime-loaded workflow files ends "…required for non-Claude
runtimes (OpenAI Codex, Gemini CLI, etc.)". No lint enforces that sentence and no
script syncs it, so every copy was edited. These files are read by the agent at
runtime, so they steer behavior rather than only informing a reader — which is why
this class matters more than its word count suggests.

The slash-command-form section is restructured in all four languages to match
English, which had already dropped its colon-form bullet. That bullet claimed the
colon form is "Gemini CLI only", which was false on its own terms independent of
the retirement: `/gsd:…` is GSD's canonical AUTHORING token, rewritten per runtime
at install time, and NO runtime registers it — VALID_COMMAND_STYLES is
{slash-hyphen, shell-var} and 18 of 19 runtimes declare slash-hyphen. Substituting
the runtime name would have left the claim false with Antigravity's name in it, so
the claim is gone, matching English.

Two anchor regressions were caught and fixed while doing that. zh-CN lost its
explicit {#slash-command-forms-hyphen-vs-colon} anchor while its TOC still linked
it; the anchor is restored. ko-KR and pt-BR never had an explicit anchor and rely
on the slug generated from the heading text, so shortening the heading broke their
own TOC links; those links now point at the new slugs. English's heading lost its
anchor while its TOC still links the old one — that latent English bug is
deliberately NOT copied.

Preserved, because `gemini` is not one thing here and a blanket sweep breaks the
product: ~/.gemini/antigravity{,-ide,-cli} and ~/.gemini as their parent;
~/.gemini/config (#3738); GEMINI.md; hookEvents "gemini"; GEMINI_API_KEY in all
four locales; every gemini-* model id and the Gemini 2.5 Pro references in
ko-KR/pt-BR/zh-CN (ja-JP genuinely lacks that line — the locales have diverged, so
a uniform patch would be wrong); the hook-event dialect notes, which are
RE-ATTRIBUTED rather than deleted because Antigravity inherits that dialect;
reapply-patches.md:93's legacy-install note; host-integration-capability-matrix.md
:27 and :342, which correctly record the sunset and Antigravity's contract;
whats-new-1.7.0.md and FEATURES.md:3506, which document the retirement itself; and
the generated launcher preamble, which belongs to epic #4632 — zero
_GSD_SHIM_NAME lines appear in this diff.

Coverage: a #4728 block in tests/gemini-runtime-removed.test.cjs asserts the
retired name is gone from STRUCTURAL POSITIONS (a level-3 heading, a table row's
first cell, a runtime-example parenthetical) rather than asserting the string is
absent, which would be wrong. It pairs those with positive PRESERVE assertions
over the same files — Antigravity's heading, ~/.gemini/antigravity, GEMINI_API_KEY,
AfterTool — so a patch that deletes too much fails as loudly as one that deletes
too little. The model-axis test pins both the presence in three locales and the
absence in ja-JP, so a later uniform patch that "helpfully" adds it back fails.
The new docs/ reads tripped lint-docs-guard-registration for the first time in
this file, so the test is registered in scripts/docs-guard-registry.cjs.

Not covered here, by design: nothing above would catch a Gemini-as-runtime
reference appearing in a NEW file tomorrow. That is the repo-wide drift guard,
#4729, which must land last — written now it would red on the very references this
change removes.

Fixes #4728

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

* fix(#4728): fix four review blockers, including a vacuous test and my own duplicate

A full matrix run on 31f12d7943 FAILED with 3 real failures, and an isolated
adversarial review returned BLOCK on four blockers. All of it was correct.

1. I committed the exact error I claimed to have avoided. The commit message
   boasted that ARCHITECTURE.md:24 proved the value of reading English rather
   than substituting blind, because Antigravity already appeared later in that
   list. Five hundred lines further down the SAME four files, my
   `Gemini:` -> `Antigravity:` substitution produced TWO consecutive
   `- Antigravity:` bullets, because an Antigravity bullet was already there.
   English (ARCHITECTURE.md:827) merges them into one. Now merged in all four
   locales, reusing each locale's existing words.

2. `--gemini` survived in the runtime-detection CLI flag list in all four
   locale ARCHITECTURE.md files. English:817 holds `--kimi` in that slot and
   already lists `--antigravity` later, so this is another place where
   substituting Antigravity would have duplicated it. Now `--kimi`.

3. Two runtime-loaded workflow files still enumerated Gemini one line ABOVE the
   line I had already corrected -- the "Adaptive (Recommended)" option in
   settings.md:192 and new-project/steps/auto-mode-config.md:95.

4. THE NEW TEST WAS VACUOUS for two of its five files. It matched only
   `non-Claude runtimes (` and `(e.g. `, and neither regex could reach the two
   lines the change actually fixed: health.md:52 reads `non-Claude (Codex, ...)`
   without the word "runtimes", and execute-phase.md:1028 has no parenthetical
   at all. The reviewer proved it by re-introducing Gemini at both lines and
   watching the assertion stay GREEN. That same blind spot is what hid finding 3.

   Replaced with a case-sensitive `/\bGemini\b/` walk over every
   `gsd-core/workflows/**/*.md`, which works because every LEGITIMATE gemini
   reference in that tree is spelled differently and cannot match: Antigravity's
   paths are lowercase with a slash (`~/.gemini/antigravity`), Google's model ids
   are lowercase and hyphenated (`gemini-3.1-pro-preview`), and the env vars are
   uppercase (`GEMINI_CONFIG_DIR`, `GEMINI_SESSION_ID`). A bare capitalised
   `Gemini` there means the retired RUNTIME is being named. The walk asserts it
   found at least 50 files so an empty walk cannot pass vacuously, and it now
   covers the nested `new-project/steps/` directory where finding 3 lived.

   Two allowlist entries, both by line CONTENT and both justified:
   reapply-patches.md's `Legacy: ... pre-#1928` note, and settings-advanced.md's
   `Known provider` menu. The second was escalated by the agent rather than
   decided: Section 8 of that file says model policy is defined "independently"
   of the runtime, so `(Claude / OpenAI / Gemini / Qwen)` is the PROVIDER axis --
   the same axis as the lowercase model ids -- and must keep working.

   Proven to fail, not just asserted: the predicate reports 0 offenders on the
   real tree and exactly 2 on a /tmp copy with Gemini re-injected at
   health.md:52 and execute-phase.md:1028.

Also from the review: a `| Gemini |` COLUMN survived in the locale FEATURES.md
comparison tables (English has none) -- removed from all three, with header,
separator and every body row kept aligned; two ENGLISH runtime-axis sites were
missed by my own parity standard (how-to/execute-a-phase.md:88 and
how-to/verify-and-ship.md:89, the latter doubly stale since #4716 retired the
Gemini reviewer lane); docs/USER-GUIDE.md:12 linked a dead anchor, which I had
found and deliberately left -- record-and-proceed on a known defect is exactly
what the rules forbid, so it is fixed; docs/COMMANDS.md:12 and all four mirrors
still claimed "the hyphen and colon forms are runtime-specific spellings" with
no colon form documented anywhere, so that false sentence is deleted; and ko-KR
had the installer rather than the user doing the targeting.

The other two matrix failures were the compact-content benchmark baseline, which
drifted because this PR changes byte counts, refreshed via the script's own
`--write` path rather than by hand; and this commit's emitted-drift-ack trailers.

Method note on the acks: the failing run measured growth against
origin/next@1110c3b4ee, which is the STALE LOCAL `next` ref -- gsd-test merges
into the local base branch, and this machine's `next` is seven commits behind
origin/next, which is checked out in the main worktree and so cannot be
fast-forwarded from here. The 32 trailers below are computed against the REAL
base (origin/next @ ca8d9d4459) by comparing each tracked file's blob size, which
is one more file than that run reported -- the extra is settings.md, grown again
by fix 3. docs-update.md and map-codebase.md are deliberately NOT acked: they
SHRANK, since there the fix deleted ", Gemini CLI" rather than substituting, and
acking a file no delta consumed is itself an error.

Refs #4728

Emitted-Drift-Ack-Growth: add-tests.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: add-todo.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ai-integration-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: check-todos.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: cleanup.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: complete-milestone.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: do.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: eval-review.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: execute-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: execute-plan.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: health.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: import.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: inbox.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: manager.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: new-milestone.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: new-workspace.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: note.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: onboard.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: plant-seed.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: profile-user.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: quick.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: remove-workspace.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: secure-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: settings.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ship.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: smart-entry.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ui-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ui-review.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: undo.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: update.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: validate-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: verify-work.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore(#4728): add the changeset fragment

The PR body claimed one was present and it was not — caught by
scripts/changeset/lint.cjs reporting fail_missing_fragment, not by the
checklist, which is exactly why the lint exists.

Type Fixed: the diff is prose, and a docs-only fix uses Fixed since there is
no Documentation type.

Refs #4728

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 16:49:52 -04:00

19 KiB
Raw Blame History

GSD 設定リファレンス

設定スキーマの全容、ワークフロートグル、モデルプロファイル、Git ブランチオプション。機能の詳細については機能リファレンスを参照してください。


設定ファイル

GSD はプロジェクト設定を .planning/config.json に保存します。/gsd-new-project 実行時に作成され、/gsd-settings で更新できます。

完全スキーマ

{
  "mode": "interactive",
  "granularity": "standard",
  "model_profile": "balanced",
  "model_overrides": {},
  "planning": {
    "commit_docs": true,
    "search_gitignored": false
  },
  "workflow": {
    "research": true,
    "plan_check": true,
    "verifier": true,
    "auto_advance": false,
    "nyquist_validation": true,
    "ui_phase": true,
    "ui_safety_gate": true,
    "node_repair": true,
    "node_repair_budget": 2,
    "research_before_questions": false,
    "discuss_mode": "discuss",
    "skip_discuss": false,
    "text_mode": false,
    "use_worktrees": true
  },
  "hooks": {
    "context_warnings": true,
    "workflow_guard": false
  },
  "parallelization": {
    "enabled": true,
    "plan_level": true,
    "task_level": false,
    "skip_checkpoints": true,
    "max_concurrent_agents": 3,
    "min_plans_for_parallel": 2
  },
  "git": {
    "branching_strategy": "none",
    "phase_branch_template": "gsd/phase-{phase}-{slug}",
    "milestone_branch_template": "gsd/{milestone}-{slug}",
    "quick_branch_template": null
  },
  "gates": {
    "confirm_project": true,
    "confirm_phases": true,
    "confirm_roadmap": true,
    "confirm_breakdown": true,
    "confirm_plan": true,
    "execute_next_plan": true,
    "issues_review": true,
    "confirm_transition": true
  },
  "safety": {
    "always_confirm_destructive": true,
    "always_confirm_external_services": true
  }
}

コア設定

設定 型 選択肢 デフォルト 説明
mode enum interactive, yolo interactive yolo は判断を自動承認、interactive は各ステップで確認
granularity enum coarse, standard, fine standard フェーズ数を制御: coarse(3〜5)、standard(5〜8)、fine(8〜12)
model_profile enum quality, balanced, budget, inherit balanced 各エージェントのモデルティア(モデルプロファイルを参照)

注意: granularity は v1.22.3 で depth から改名されました。既存の設定は自動的に移行されます。


ワークフロートグル

すべてのワークフロートグルは 未設定 = 有効 のパターンに従います。config にキーが存在しない場合、デフォルトは true になります。

設定 型 デフォルト 説明
workflow.research boolean true 各フェーズの計画前にドメイン調査を実施
workflow.plan_check boolean true プラン検証ループ(最大3回の反復)
workflow.verifier boolean true 実行後にフェーズ目標に対する検証を実施
workflow.auto_advance boolean false discuss → plan → execute を停止せずに自動連鎖
workflow.nyquist_validation boolean true plan-phase のリサーチ中にテストカバレッジマッピングを実施
workflow.ui_phase boolean true フロントエンドフェーズで UI デザインコントラクトを生成
workflow.ui_safety_gate boolean true plan-phase 中にフロントエンドフェーズに対して /gsd-ui-phase の実行を促すプロンプトを表示
workflow.node_repair boolean true 検証失敗時にタスクを自律的に修復
workflow.node_repair_budget number 2 失敗タスクあたりの最大修復試行回数
workflow.research_before_questions boolean false ディスカッション質問の後ではなく前にリサーチを実行
workflow.use_worktrees boolean true false の場合、git worktree 分離を無効化 (v1.31)
workflow.discuss_mode string 'discuss' /gsd-discuss-phase のコンテキスト収集方法を制御。'discuss'(デフォルト)は質問を1つずつ行います。'assumptions' はまずコードベースを読み取り、信頼度レベル付きの構造化された仮説を生成し、誤っている点のみ修正を求めます。v1.28 で追加
workflow.skip_discuss boolean false true の場合、/gsd-autonomous は discuss-phase を完全にスキップし、ROADMAP のフェーズ目標から最小限の CONTEXT.md を作成します。開発者の要望が PROJECT.md/REQUIREMENTS.md に十分に記載されているプロジェクトに適しています。v1.28 で追加
workflow.text_mode boolean false AskUserQuestion の TUI メニューをプレーンテキストの番号付きリストに置き換えます。TUI メニューが表示されない Claude Code リモートセッション(/rc モード)で必要です。discuss-phase で --text フラグを使用してセッションごとに設定することもできます。v1.28 で追加

推奨プリセット

シナリオ mode granularity profile research plan_check verifier
プロトタイピング yolo coarse budget false false false
通常の開発 interactive standard balanced true true true
本番リリース interactive fine quality true true true

プランニング設定

設定 型 デフォルト 説明
planning.commit_docs boolean true .planning/ ファイルを git にコミットするかどうか
planning.pr_strict boolean false /gsd-pr-branch のフィルタモード。false は STATE.md、ROADMAP.md、MILESTONES.md、PROJECT.md、REQUIREMENTS.md、milestones/ などの構造的なプランニング状態を PR ブランチに残す。true はすべての .planning/ パスを削除する
planning.search_gitignored boolean false .planning/ を含めるために広範な検索に --no-ignore を追加

自動検出

.planning/ が .gitignore に含まれている場合、config.json の設定に関係なく commit_docs は自動的に false になります。これにより git エラーが防止されます。


フック設定

設定 型 デフォルト 説明
hooks.context_warnings boolean true コンテキストモニターフックによるコンテキストウィンドウ使用量の警告を表示
hooks.workflow_guard boolean false GSD ワークフローのコンテキスト外でファイル編集が行われた場合に警告(/gsd-quick または /gsd-fast の使用を推奨)

プロンプトインジェクションガードフック(gsd-prompt-guard.js)は常に有効であり、無効にすることはできません。これはワークフロートグルではなく、セキュリティ機能です。

プライベートプランニングのセットアップ

プランニング成果物を git から除外するには:

  1. planning.commit_docs: false と planning.search_gitignored: true を設定
  2. .planning/ を .gitignore に追加
  3. 既にトラッキング済みの場合: git rm -r --cached .planning/ && git commit -m "chore: stop tracking planning docs"

並列化設定

設定 型 デフォルト 説明
parallelization.enabled boolean true 独立したプランを同時に実行
parallelization.plan_level boolean true プランレベルで並列化
parallelization.task_level boolean false プラン内のタスクを並列化
parallelization.skip_checkpoints boolean true 並列実行中にチェックポイントをスキップ
parallelization.max_concurrent_agents number 3 同時実行エージェントの最大数
parallelization.min_plans_for_parallel number 2 並列実行をトリガーする最小プラン数

pre-commit フックと並列実行について: 並列化が有効な場合、executor エージェントはビルドロックの競合(例: Rust プロジェクトでの cargo lock の競合)を回避するために --no-verify でコミットします。オーケストレーターは各ウェーブの完了後にフックを1回検証します。STATE.md の書き込みはファイルレベルのロックで保護され、同時書き込みによる破損を防ぎます。コミットごとにフックを実行する必要がある場合は、parallelization.enabled: false に設定してください。


Git ブランチ

設定 型 デフォルト 説明
git.branching_strategy enum none none、phase、または milestone
git.phase_branch_template string gsd/phase-{phase}-{slug} phase 戦略のブランチ名テンプレート
git.milestone_branch_template string gsd/{milestone}-{slug} milestone 戦略のブランチ名テンプレート
git.quick_branch_template string or null null /gsd-quick タスク用のオプションのブランチ名テンプレート

戦略の比較

戦略 ブランチ作成 スコープ マージポイント 適したケース
none なし N/A N/A 個人開発、シンプルなプロジェクト
phase execute-phase 開始時 1フェーズ フェーズ後にユーザーがマージ フェーズごとのコードレビュー、きめ細かいロールバック
milestone 最初の execute-phase 時 マイルストーン内の全フェーズ complete-milestone 時 リリースブランチ、バージョンごとの PR

テンプレート変数

変数 使用可能な場所 例
{phase} phase_branch_template 03(ゼロパディング)
{slug} 両方のテンプレート user-authentication(小文字、ハイフン区切り)
{milestone} milestone_branch_template v1.0
{num} / {quick} quick_branch_template 260317-abc(quick タスク ID)

quick タスクのブランチ設定例:

"git": {
  "quick_branch_template": "gsd/quick-{num}-{slug}"
}

マイルストーン完了時のマージオプション

オプション Git コマンド 結果
スカッシュマージ(推奨) git merge --squash ブランチごとに1つのクリーンなコミット
履歴付きマージ git merge --no-ff 個別のコミットをすべて保持
マージせずに削除 git branch -D ブランチの作業を破棄
ブランチを保持 (なし) 後で手動対応

ゲート設定

ワークフロー中の確認プロンプトを制御します。

設定 型 デフォルト 説明
gates.confirm_project boolean true 確定前にプロジェクトの詳細を確認
gates.confirm_phases boolean true フェーズの分割を確認
gates.confirm_roadmap boolean true 続行前にロードマップを確認
gates.confirm_breakdown boolean true タスクの分割を確認
gates.confirm_plan boolean true 実行前に各プランを確認
gates.execute_next_plan boolean true 次のプラン実行前に確認
gates.issues_review boolean true 修正プラン作成前に課題をレビュー
gates.confirm_transition boolean true フェーズ遷移を確認

セーフティ設定

設定 型 デフォルト 説明
safety.always_confirm_destructive boolean true 破壊的操作(削除、上書き)の確認
safety.always_confirm_external_services boolean true 外部サービ<EFBFBD><EFBFBD>とのやり取りの確認

セキュリティ設定 (v1.31)

設定 型 <EFBFBD><EFBFBD>フォルト 説明
security_enforcement boolean true 脅威モデルセキュリティ検証を有効化
security_asvs_level number (1-3) 1 OWASP ASVS 検証レベル
security_block_on string "high" フェーズ進行をブロックする最小重大度

レスポンス言語設定 (v1.32)

設定 型 デフォルト 説明
response_language string (なし) エージェントレスポンスの言語コード(例: "pt"、"ko"、"ja")

response_language が設定されると、すべてのフェーズおよびスポーンされたエージェントで一貫した言語出力が保証されます。


フック設定

設定 型 デフォルト 説明
hooks.context_warnings boolean true セッション中にコンテキストウィンドウの使用量警告を表示

モデルプロファイル

プロファイル定義

エージェント quality balanced budget inherit
gsd-planner Opus Opus Sonnet Inherit
gsd-roadmapper Opus Sonnet Sonnet Inherit
gsd-executor Opus Sonnet Sonnet Inherit
gsd-phase-researcher Opus Sonnet Haiku Inherit
gsd-project-researcher Opus Sonnet Haiku Inherit
gsd-research-synthesizer Sonnet Sonnet Haiku Inherit
gsd-debugger Opus Sonnet Sonnet Inherit
gsd-codebase-mapper Sonnet Haiku Haiku Inherit
gsd-verifier Sonnet Sonnet Haiku Inherit
gsd-plan-checker Sonnet Sonnet Haiku Inherit
gsd-integration-checker Sonnet Sonnet Haiku Inherit
gsd-nyquist-auditor Sonnet Sonnet Haiku Inherit

エージェントごとのオーバーライド

プロファイル全体を変更せずに特定のエージェントをオーバーライドできます:

{
  "model_profile": "balanced",
  "model_overrides": {
    "gsd-executor": "opus",
    "gsd-planner": "haiku"
  }
}

有効なオーバーライド値: opus、sonnet、haiku、inherit、または完全修飾モデル ID(例: "openai/o3"、"google/gemini-2.5-pro")。

非 Claude ランタイム(Codex、OpenCode、Antigravity CLI、Kilo)

GSD が非 Claude ランタイム向けにインストールされると、インストーラーは自動的に ~/.gsd/defaults.json に resolve_model_ids: "omit" を設定します。これにより GSD はすべてのエージェントに対して空のモデルパラメータを返し、各エージェントはランタイムで設定されたモデルを使用します。デフォルトの場合、追加のセットアップは不要です。

異なるエージェントに異なるモデルを使用させたい場合は、ランタイムが認識する完全修飾モデル ID で model_overrides を使用してください:

{
  "resolve_model_ids": "omit",
  "model_overrides": {
    "gsd-planner": "o3",
    "gsd-executor": "o4-mini",
    "gsd-debugger": "o3",
    "gsd-codebase-mapper": "o4-mini"
  }
}

意図は Claude のプロファイルティアと同じです。計画やデバッグ(推論品質が最も重要な部分)にはより強力なモデルを使用し、実行やマッピング(プランに既に推論が含まれている部分)にはより安価なモデルを使用します。

どのアプローチを使うべきか:

シナリオ 設定 効果
非 Claude ランタイム、単一モデル resolve_model_ids: "omit"(インストーラーのデフォルト) すべてのエージェントがランタイムのデフォルトモデルを使用
非 Claude ランタイム、ティアードモデル resolve_model_ids: "omit" + model_overrides 指定されたエージェントは特定のモデルを使用、それ以外はランタイムのデフォルト
Claude Code + OpenRouter/ローカルプロバイダー model_profile: "inherit" すべてのエージェントがセッションモデルに従う
Claude Code + OpenRouter、ティアード model_profile: "inherit" + model_overrides 指定されたエージェントは特定のモデルを使用、それ以外は継承

resolve_model_ids の値:

値 動作 使用場面
false(デフォルト) Claude エイリアス(opus、sonnet、haiku)を返す Claude Code + ネイティブ Anthropic API
true エイリアスを完全な Claude モデル ID(claude-opus-4-8)にマッピング 完全な ID が必要な API を使用する Claude Code
"omit" 空文字列を返す(ランタイムがデフォルトを選択) 非 Claude ランタイム(Codex、OpenCode、Antigravity CLI、Kilo)

プロファイルの設計思想

プロファイル 設計思想 使用場面
quality すべての意思決定に Opus、検証に Sonnet クォータに余裕がある場合、重要なアーキテクチャ作業
balanced 計画のみ Opus、それ以外は Sonnet 通常の開発(デフォルト)
budget コード記述に Sonnet、リサーチ/検証に Haiku 大量の作業、重要度の低いフェーズ
inherit すべてのエージェントが現在のセッションモデルを使用 動的なモデル切り替え、非 Anthropic プロバイダー(OpenRouter、ローカルモデル)

環境変数

変数 用途
CLAUDE_CONFIG_DIR デフォルトの設定ディレクトリ(~/.claude/)をオーバーライド
GEMINI_API_KEY コンテキストモニターがフックイベント名を切り替えるために検出
WSL_DISTRO_NAME インストーラーが WSL のパス処理のために検出
GSD_SKIP_SCHEMA_CHECK スキーマドリフト検出をバイパス (v1.31)

グローバルデフォルト

将来のプロジェクト向けにグローバルデフォルトとして設定を保存できます。

保存場所: ~/.gsd/defaults.json

/gsd-new-project が新しい config.json を作成する際、グローバルデフォルトを読み込み、初期設定としてマージします。プロジェクトごとの設定は常にグローバル設定を上書きします。