コンテンツにスキップ

モデルとエフォート

/emet はロールごとにモデルと推論エフォートを自動で選びます。実行中に手動で切り替えるものはありません。すべてのキーは設定リファレンスにあります。

ロール モデル エフォート 設定元
プランニング(フェーズ 1〜4) Opus(opusplan 経由) セッションの設定 ユーザー(1 回のみ)
コーディネーター(フェーズ 5 以降) Sonnet(opusplan 経由) セッションの設定 ユーザー(1 回のみ)
ワーカー(フェーズ 7) Sonnet medium agents/emet-worker.md、または models.worker
レビュー、passive ティア(ドキュメントのみの差分) なし — emet assess
レビュー、medium ティア(通常のソース変更) Opus medium models.reviewer.medium
レビュー、high ティア(リスクの高いパスやシンク) Opus 既定は medium models.reviewer.high
CI ログのトリアージ(フェーズ 8) Haiku — models.triage

2 つのエージェント定義(install.sh が ~/.claude/agents/ にインストールします)は、フロントマターで自身の model/effort を固定しているため、コーディネーターのモデルやエフォートの選択がワーカーやレビュアーに影響することはありません。emet doctor はどちらかのファイルがなくなっても報告するだけで、ブロックはしません。emet preflight は、emet-worker または emet-reviewer がない場合にディスパッチをブロックします。フェーズ 6 とフェーズ 8 が subagent_type でディスパッチするためです。

リスクティアによるルーティング

フェーズ 8 は emet assess --base <trunk> --head <integration branch> を実行します。これは差分を決定的に分類し、ティア、その理由、推奨されるレビュアーのモデルとエフォートを JSON で出力します。

  • passive: ドキュメントのみの差分です。レビュアーはディスパッチされません。
  • medium: レビュアーは models.reviewer.medium で動作します。
  • high: 差分が認証、セキュリティ、決済、Webhook、CI、インストーラー、ロックファイル、マイグレーション、危険なシンク(生の SQL やパイプでシェルに渡す処理など)、または review.highRiskPaths に一致するパスに触れています。レビュアーは models.reviewer.high で動作し、自動マージはチェックがすべて成功し、未解決のレビュー指摘がない場合にのみ PR をランディングします。

リスクの高いパスに触れるチケットには Model: 行(例: Model: opus や Model: opus/high)を付けることができ、そのワーカーに限って models.worker を上書きします。

Haiku によるトリアージ

コーディネーターが CI ログを丸ごと読むことはありません。失敗したチェックは models.triage(既定は haiku)のエージェントに渡され、修正のための file:line ポインターを添えて、最大でおよそ 2k トークンを返します。

設定

すべてのキーは任意で、既定値は上の表のとおりです。

{
"models": {
"worker": { "model": "sonnet", "effort": "medium" },
"reviewer": {
"medium": { "model": "opus", "effort": "medium" },
"high": { "model": "opus", "effort": "medium" }
},
"triage": "haiku"
},
"review": { "highRiskPaths": [] }
}

review.highRiskPaths は、大文字小文字を区別せずに high ティアを強制する追加のパス部分文字列のリストです。リスクの高いウェーブをより厳しく精査したい場合は、models.reviewer.high.effort を(たとえば high に)引き上げてください。

レビュアーが 1 つである理由

複数の観点に分散させず、コンテキストを新規にした単一のレビュアーを使う理由は次のとおりです。両者を直接比較した公開ベンチマークはありませんが、分散型は観点ごとに差分全体を読み直すため、このリポジトリでは 1 時間以上ハングしたことがあります。また、Anthropic や第三者による Opus クラスのモデルに関する報告では、モデルのアップグレードによる効果は観点を増やした場合と同程度だと示唆されています。重要度の高いウェーブについては、その後に手動で /code-review ultra を実行してください。/emet が自動でこれをディスパッチすることはありません。

ユーザーが 1 回だけ設定するもの

/emet は実行中にこれらを切り替えることができません。

  • ~/.claude/settings.json の model: "opusplan": これによってフェーズ 1〜4 は Opus で、フェーズ 5 以降は Sonnet で動作し、/model は不要になります。未設定の場合、emet doctor は警告します(設定を書き換えることはありません)。
  • セッションのエフォートは xhigh ではなく medium または high にします。ワーカーとレビュアーは、ユーザーの設定にかかわらず独自のエフォートを持っています。また、グローバルな既定値を高くしても、ディスパッチの管理、マージ、レポートといった、必要のないコーディネーター自身のターンのコストが増えるだけです。
  • 無人で実行できる permissions.defaultMode(auto、acceptEdits、bypassPermissions)と、git push * main|master および git push --force * をブロックする permissions.deny ルールです。emet doctor はどちらについても警告します。権限プロンプトで止まるウェーブや、トランクブランチを強引に突破できるウェーブでは、無人実行の意味がなくなるためです。

これらは出発点であり、確定した数値ではありません。Opus 5.5 は 2026-09-22 にリリースされたばかりで、コーディングエージェント向けのエフォートとモデルの選択はまだ活発に検討されている分野です。この表を最終版として扱うのではなく、実際のウェーブをいくつか実行してから再調整してください。