Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@

## [Unreleased]

### Changed

- **model-strategy**: モデル・コンテキスト・委譲の実行方針を整備。担当の責任、根拠に基づく相談と受け入れ、完了通知による待機、会話の区切りと利用量計測を定義。README に導入方法、Orca アドバイザーの利用条件と依頼例、任意の監査・警告・表示機能を掲載。
- **model-strategy**: コンテキスト表示の警告をウィンドウ使用率に基づく内訳確認とし、大規模探索・状態表示の資料を同じ判断基準で整備。

## [0.7.0] - 2026-09-08

### Added
Expand Down
127 changes: 75 additions & 52 deletions plugins/model-strategy/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# model-strategy

Claude Code / Codex で、タスク完了までの総利用量を抑えるためのプラグインです。モデル選択に加え、会話のコンテキスト量、やり取りの回数、サブエージェントへの委譲コストを考慮して実行方針を決めます
Claude Code / Codex のモデル・effort(推論に割く労力)・委譲方針を決めるプラグインです。必要な品質を満たしながら、会話履歴の反復処理、相談の往復、エージェントの起動と結果統合を含む総利用量を抑えます

次のような場合に使います。
## 利用する場面

- タスクに合うモデルと effort(推論に割く労力)を選びたい
- 長い会話や繰り返しの探索による利用量を抑えたい
- メインで実行する作業と、サブエージェントに任せる作業を決めたい
- 操作ごとの担当を記録し、監査可能な形で実行したい
- タスクに合うモデルと effort を選ぶ
- 長い会話や繰り返しの相談による消費を抑える
- メイン、実装担当、アドバイザーの担当範囲を決める
- 操作の割当と受け入れ判断を監査可能な形で記録する

通常のコーディング依頼だけでは自動起動しません。モデル選択・利用量・委譲方針を明示的に相談するか、`model-effort-guide` を指定して使います。

## インストール

Expand All @@ -16,92 +18,113 @@ Claude Code の会話内:
```text
/plugin marketplace add 9uiLe/plugins
/plugin install model-strategy@9uile-plugins

```

Codex 用のターミナルコマンド:
Codex のターミナル:

```bash
codex plugin marketplace add 9uiLe/plugins
codex plugin add model-strategy@9uile-plugins
```

## 使い方

モデル選択や利用量、委譲方針を明示的に相談すると、`model-effort-guide` スキルが起動します。
## 基本的な依頼

```text
このタスクに最適なモデルと effort を選んで
利用上限を節約して、この機能を実装して
委譲方針を決めて
model-effort-guide を使って、このタスクに合うモデル・effort・委譲方針を決めてください。
```

推奨を求めた場合は、モデル・effort・必要な委譲先、選択理由、会話を区切るタイミングを返します。実行も依頼した場合は、最初に方針を共有してから作業を進めます
作業内容を添えて実行も依頼できます。推奨だけを求めた場合は、担当とモデル、判断理由、会話を区切る条件を返します。実行も求めた場合は、開始時に方針を共有して作業を進め、成果物・検証結果・未解決事項を報告します

通常のコーディング依頼だけでは自動起動しません。同じ方針が続く間は繰り返し呼び出さず、セッション冒頭や方針変更時に使います
ユーザーが指定したモデル・effort・アドバイザー利用を優先します。セッション冒頭や方針変更時に使い、同じ方針が続く間は繰り返し呼び出す必要はありません

## 実行方針
## 作業の進め方

モデルを選ぶ前に、不要なコンテキストの蓄積と反復送信を抑えます。作業の区切りでは `/clear`、継続情報を残したい場合は状態を保存して `/compact` を使います。探索・検証は同じ目的の依頼にまとめ、待機には実行環境の wait / monitor 機能を使います。
1. **会話の内訳を確認する。** 開始時のツール・常駐指示・メモリと、作業中に蓄積したファイル・ログ・議論を区別します。
2. **作業単位で担当を決める。** 小さな既知操作は直接実行し、独立した探索や実装は起動・統合の負担を含めて委譲を判断します。
3. **依頼と回答をまとめる。** 目的・対象範囲・受け入れ条件を渡し、結果と検証の根拠を受け取ります。
4. **完了または状態変化を待つ。** 実行環境の通知や待機機能を使い、待機中は結果に依存しない作業を進めます。
5. **成果物を検証して区切る。** 決定事項・対象ファイル・検証結果・残作業を保存し、継続性に応じて会話の継続・圧縮・分離を選びます。

日常の作業は、次の区分で担当を決めます
圧縮の要否は token 数だけで決めません。初期入力が大きい場合は構成を調べ、不要な履歴が蓄積した場合は新規セッションや compact を検討します。計測では入力のキャッシュ作成・読み取りと出力を区別し、総 token 数を請求額や利用枠へそのまま換算しません

| 区分 | 作業 | 担当方針 |
| --- | --- | --- |
| P0 | 外部への書き込み、破壊的操作、履歴改変 | 実行権限を確認する |
| R0 | 既知ファイルの短い読み取り、単発の状態確認 | メインで直接実行する |
| R1 / R2 | 複数ファイルの探索、広域抽出、独立した検証 | 範囲を定めた探索・検証担当にまとめて依頼する |
| R3 | 対象、期待結果、変更範囲、検証方法が確定した実装 | 実装担当に委譲する |
| R4 | 設計、曖昧さの解消、デバッグ、レビューの統合 | メインで判断する |
詳細は [コンテキスト・往復・待機の管理](./references/03-cost-levers.md) を参照してください。

委譲は、作業が独立し、最初の依頼だけで完結でき、起動や結果統合を含めても利用量が減る場合に行います。小さな既知操作は直接実行します。
## 担当とモデル

### 同梱サブエージェント
メインはユーザーへの応答と成果物の受け入れを担います。実装担当は指定範囲の作業を行い、アドバイザーは判断材料を返します。

Claude Code 向けに、モデルを固定した次のエージェント定義を同梱しています。Codex では、利用可能なモデルと委譲機能に応じて担当を読み替えます。
| 区分 | 作業 | 担当候補 |
| --- | --- | --- |
| P0 | 外部への書き込み、破壊的操作、履歴改変 | 承認済みの範囲と実行権限を確認 |
| R0 | 既知ファイルの短い読み取り、単発の状態確認 | メイン |
| R1 / R2 | 複数ファイルの探索、広域抽出、独立した検証 | 探索・検証担当 |
| R3 | 対象・期待結果・変更範囲・検証方法が確定した実装 | 実装担当 |
| R4 | 設計、曖昧さの解消、デバッグ、レビューの統合 | メイン。アドバイザーの根拠も検証して判断 |

Claude Code 向けに次のエージェント定義を同梱しています。Codex では利用可能なモデルと委譲機能に応じて担当を選びます。

| Agent | モデル | 用途 |
| --- | --- | --- |
| `haiku-scout` | Haiku | 探索・独立検証 |
| `sonnet-implementer` | Sonnet | 仕様が確定した、まとまりのある実装 |
| `judge` | Opus | 高保証モードでの独立判定 |
| `judge-fable` | Fable 5 | 高保証モードで、難しい判断や Opus judge の失敗後に使う独立判定 |
| `sonnet-implementer` | Sonnet | 仕様が確定した実装 |
| `judge` | Opus | 高保証モードの独立判定 |
| `judge-fable` | Fable 5 | 高保証モードの難しい判断や、Opus judge で解決できない問題の独立判定 |

モデルと effort が未指定なら、作業に必要な能力と手戻りのリスクに合わせて選択します。料金・対応モデル・推論設定の詳細は、各参照資料の確認日と公式リンクを参照してください。

## Orca でアドバイザーを利用する

モデル価格、effort の対応、選択条件は[価格資料](./references/00-pricing.md)、[effort 資料](./references/01-effort-levels.md)、[Codex 向け資料](./references/07-codex.md)にまとめています。各資料の確認日と公式リンクを参照してください。
Orca と公式 `orchestration` スキルを利用できる環境が必要です。Orca はこのプラグインには同梱されていません。

`model-effort-guide` が相談範囲と判断基準を定め、`orchestration` がエージェントの起動・待機・完了処理を担います。通常のアドバイザー利用に高保証モードの設定は不要です。

作業内容に次の依頼を添えます。モデルと effort は用途に合わせて指定してください。

```text
model-effort-guide と orchestration スキルを利用し、Codex gpt-6-astra(effort: medium)をアドバイザーとして使ってください。
あなたが作業と最終判断を担当し、重要な設計判断・リスク・見落としをまとめて相談してください。

相談には目的・制約・検討案・具体的な質問・必要なファイルや差分を渡し、回答は重要な指摘・根拠・推奨案・未解決事項に絞ってください。
指摘は事実や検証結果に照らして採否を判断し、新しい証拠・重大な未解決点・結論に影響する変更がある場合だけ、同じ相手へ差分をまとめて再相談してください。
同じ論点で新しい根拠が出なくなったら往復を終え、採否と理由、残る未解決事項を記録してください。

待機は公式 orchestration の現行ガイドに従い、完了通知や待機機能を使ってください。sleep・端末読込・状態確認だけでモデルを繰り返し呼び出さず、待機中は結果に依存しない作業を進めてください。
最後に、成果物と検証結果、重要な指摘の採否と理由、未解決事項を簡潔に報告してください。
```

## 任意機能
## 任意の監査・警告・表示

### 監査と独立判定
### 高保証モード

監査可能なルーティングや独立判定を明示的に求めた場合は、高保証モード(conductor mode)を使います。操作ごとの割当をマニフェストに記録し、変更可能な範囲を基準線として保存し、必要に応じて judge に判定を委譲します
割当と受け入れ判断の記録が必要な場合は、監査可能なルーティングや独立判定を明示的に依頼します。高保証モード(conductor mode)では、操作ごとの割当マニフェストと変更可能範囲の基準線を保存し、必要に応じて judge に独立判定を委譲します

[`scripts/route-policy.mjs`](./scripts/route-policy.mjs) が詳細な振り分けルールの正本です。`route` サブコマンドで操作を判定し、`audit` で割当マニフェストを監査します。詳細は[ルーティング規則](./references/02-decision-matrix.md)と[高保証モードの手順](./references/08-conductor-mode.md)を参照してください。
[`route-policy.mjs`](./scripts/route-policy.mjs) が詳細な分類の正本です。`route` で操作を分類し、`audit` で割当を監査します。条件と手順は [ルーティング規則](./references/02-decision-matrix.md) と [高保証モード](./references/08-conductor-mode.md) を参照してください。

### 警告 hook

Claude Code 向けの hook は、対応する環境変数を設定した場合に有効になります
Claude Code 向けの hook は、対応する設定がある場合に有効になります

| Hook | 有効化条件と動作 |
| Hook | 条件と動作 |
| --- | --- |
| [`route-warn.mjs`](./hooks/route-warn.mjs) | `MODEL_STRATEGY_ROUTE_WARN=1` で、メインが探索担当に相当する操作を直接実行すると委譲検討を促します。状態を保存できる場合、セッション・ツール名ごとに最初の 1 回に抑えます。 |
| [`scope-guard.mjs`](./hooks/scope-guard.mjs) | `MODEL_STRATEGY_MODE=conductor` と基準線ファイルがある場合に、`Edit` / `Write` / `NotebookEdit` の書き込み先が範囲外なら警告します。 |
| [`route-warn.mjs`](./hooks/route-warn.mjs) | `MODEL_STRATEGY_ROUTE_WARN=1` で探索担当に相当する直接操作に委譲検討を促す。状態を保存できる場合はセッション・ツール名ごとに最初の1回 |
| [`scope-guard.mjs`](./hooks/scope-guard.mjs) | `MODEL_STRATEGY_MODE=conductor` と基準線ファイルがある場合、`Edit` / `Write` / `NotebookEdit` の範囲外書き込みに警告 |

警告は操作をブロックしません。`scope-guard` は Bash 経由の書き込みを検出できません。

### 使用状況の表示

[`context-statusline.sh`](./scripts/context-statusline.sh) はメインセッションのコンテキスト使用率を、[`subagent-statusline.sh`](./scripts/subagent-statusline.sh) は委譲先タスクの状態を表示するスクリプトです。設定方法と測定上の限界は[コンテキスト監視の資料](./references/06-context-monitor.md)を参照してください。
[`context-statusline.sh`](./scripts/context-statusline.sh) はメインセッションのコンテキスト使用率を、[`subagent-statusline.sh`](./scripts/subagent-statusline.sh) は委譲先タスクの状態を表示します。設定方法と測定上の限界は [コンテキスト監視](./references/06-context-monitor.md) を参照してください。

## 参照資料

| 資料 | 内容 |
| 資料 | 読む場面 |
| --- | --- |
| [価格](./references/00-pricing.md) | モデル価格、キャッシュ・バッチ価格、確認日と公式リンク |
| [effort](./references/01-effort-levels.md) | 推論労力の選び方とモデル別の対応 |
| [ルーティング規則](./references/02-decision-matrix.md) | 操作の分類、git 操作、委譲時に渡す情報 |
| [利用量を抑える方法](./references/03-cost-levers.md) | キャッシュ、コンテキスト管理、避けたい運用 |
| [大規模コードベース](./references/04-large-codebase.md) | 探索とコンテキスト量の制御 |
| [リポジトリ索引](./references/05-repo-index.md) | 必要な情報を引き出す索引の設計 |
| [コンテキスト監視](./references/06-context-monitor.md) | 状態表示の設定と測定方法 |
| [Codex](./references/07-codex.md) | モデル、reasoning effort、委譲の読み替え |
| [高保証モード](./references/08-conductor-mode.md) | マニフェスト、独立判定、範囲警告、運用上の限界 |
| [価格](./references/00-pricing.md) | モデル・キャッシュ・バッチ処理の料金と適用条件を確認する |
| [effort](./references/01-effort-levels.md) | 推論量とモデルごとの対応を選ぶ |
| [ルーティング規則](./references/02-decision-matrix.md) | 厳密な分類や実装依頼の条件を確認する |
| [コンテキスト・往復・待機](./references/03-cost-levers.md) | 入力の増加、反復呼び出し、計測方法を調べる |
| [大規模コードベース](./references/04-large-codebase.md) | 探索範囲と戻り値を絞る |
| [リポジトリ索引](./references/05-repo-index.md) | 必要な情報を取り出す索引を設計する |
| [コンテキスト監視](./references/06-context-monitor.md) | 状態表示を設定し、計測の限界を確認する |
| [Codex](./references/07-codex.md) | モデルeffort・委譲をCodexで適用する |
| [高保証モード](./references/08-conductor-mode.md) | 割当監査・独立判定・範囲警告を設定する |
Loading
Loading