Codex Token Discipline は何をしますか?
目的
ルートと子の総コストを削減し、タスクの成功、必要なエビデンス、要求された成果物を弱めない。
読み取り、ツール出力、リトライ、委譲を制限する。再利用可能なエビデンスは保持し、未解決部分のみをエスカレーションする。
動作フレーム
動作を変えるものだけを使用する:
- 現在のフェーズを明示する:探索、計画、実装、検証、公開、またはハンドオフ。
- 広く読む前に、次に必要なエビデンスを定義する。
- ノイズの多い可能性のあるツール呼び出しの前に、最小限の有用な戻り値Shapeと出力予算を定義する。
- ノイズの多い副作業は、エビデンスを含む抽出結果を返せる場合にのみ委譲する。
- フェーズ境界では、コンパクトな再開状態を保存し、セッション継続の判断を所有するディレクター(存在する場合)に委ねる。
小さな編集、直接回答、簡単なコマンドではこの儀式をスキップする。
プレフライト出力契約
過剰な出力がメインコンテキストに入る前に防ぐ。後から要約することに頼らない。
- 予測できない、またはバッチ的なコマンドでは、必要な戻り値Shapeを最初に指定する:ステータス、カウント、パス、選択フィールド、または最初のアクション可能な失敗。
- ツール呼び出しに有限の戻り予算を設定する。exec系呼び出しでは、明示的なエビデンスが必要でない限り、デフォルトで2000トークン以下の予算にする。単一の大量出力しきい値を待たない。
- ソースでフィルタリング、集約、選択する。テストとビルドでは、終了ステータス、最初のアクション可能な失敗、コマンドを返し、その後詳細を要求する。
- 完全な出力が後の検査に有用な場合は、タスクローカルまたは一時的なアーティファクトに書き込み、そのパス、サイズ、コンパクトな要約、最初のアクション可能な失敗のみを返す。必要に応じてアーティファクトから制限されたスライスを検査する。
- ソースで削減可能な使い捨て出力のためにアーティファクトを作成しない。
要約ファースト読み取り
狭く始め、次の判断を変える場合にのみ広げる。
- ファイルを開く前に、
rgで検索するかファイルリストを取得する。 - 完全な差分の前に、
git diff --stat、git diff --name-only、対象を絞ったgit diff -- <path>、ターゲットを指定したsed -n範囲を優先する。 - ログとコマンド出力では、完全なトランスクリプトの前に、
tail、head、jq、カウント、フィルター、またはエラー検索を使用する。 - 返されたすべてのツール結果を将来の入力コストとして扱う。完全な出力の前に、カウント、パス、要約、または選択されたエビデンスを優先する。
- 失敗後は、保存されたアーティファクトから範囲を広げるか、最小の失敗範囲のみを再実行する。メインスレッドで完全なトランスクリプトを繰り返さない。
広範な読み取りが必要な場合は、その理由を述べ、最小の有用な範囲に制限する。
長時間実行タスク
フェーズ変更をコンテキストチェックポイントとして扱う。
- 実装やリポジトリ/タスクの切り替えの前に、結論、次の判断、最も近い次のステップ、最小の有用な境界を保存する。
project-contextを使用するリポジトリでは、コンパクトな現在の状態にはBRIEF.mdを、エビデンスにはログを優先する。- ディレクターが長時間実行タスクを調整する場合は、チェックポイントを報告し、ディレクターが続行、ハンドオフ、またはセッションのローテーションを決定するのを待つ。無条件に新しいセッションを指示したり開始したりしない。
- ディレクターがいない場合、保存された表面で続行するのに十分であり、ユーザーまたは所有するワークフローが要求する場合にのみ、新しく開始する。
大量の会話を補うために、トランスクリプト、検証マトリックス、またはファイルインベントリを保存しない。
サブエージェント
委譲は本質的に安くはない。コンパクトで独立して有用なエビデンスまたは出力を返すことができる、境界のある作業には、最も狭い名前付きエージェントを使用する。
1つのエージェントから開始する。独立した、重複しないスコープのみを並列化する。同じ調査を重複させたり、統合後もエージェントを生かし続けたり、まだ有効な検証を繰り返したりしない。
プロンプトには、スコープ、書き込み境界、完了条件、検証、期待されるコンパクトな出力を含める。子エージェントは委譲してはならない。
ブラウザとUIループ
繰り返しのビジュアルまたはブラウザ検証の前に、チェックする状態を書き留める。
- 名前付き状態ごとに1回のスクリーンショットまたはブラウザパスを優先する。
- チェックが失敗した場合、最小の所有者(コンソールエラー、DOM状態、ルートデータ、またはフォーカスされたコンポーネント)を検査する。
- 画像、base64スクリーンショット、完全なボディテキスト、DOMダンプは、その成果物自体が次の判断に影響を与えない限り、メインスレッドから除外する。
- 名前付き状態が検証されるか、具体的なブロッカーが特定されたら停止する。
常時読み取り表面
グローバルまたはリポジトリの指示のすべての行には、繰り返しコストがかかる。
- 耐久性のある動作ルールと安全境界は
AGENTSスタイルのファイルに配置する。 - 繰り返し可能なワークフローはスキルに配置する。
- 現在のタスク状態はリポジトリのタスクドキュメントに配置する。
- 現在の再利用可能なドメイン知識は参照ドキュメントに配置する。
- 古いプロファイル、重複した指示、過去の説明は、それらを回避するために文書化するのではなく、削除する。
常時読み取りファイルを編集するときは、手続きテキストよりも短いルーティングルールを優先する。
使用状況監査
トークンがどこに使われたかを尋ねられた場合、このインストールされたスキルディレクトリからの相対パスで scripts/summarize_codex_usage.py を解決し、--help を付けて実行し、次に明示的な --cwd-prefix で監査する。
このスクリプトは、Codex ロールアウトログをルートスレッドごとにグループ化し、トークン合計、キャッシュ入力率、子セッショントークンシェア、ツール出力量、大量出力イベント、上位出力ツールシグナルを、生のペイロードなしで報告する。
トークン合計は品質ではなくシグナルとして扱う。ホームワイドのテキスト検索は避け、スクリプトを $CODEX_HOME/sessions または別の明示的なセッションルートに向ける。
最終チェック
- メインスレッドは、現在の判断に必要なエビデンスのみを受け取ったか?
- ノイズの多いツール作業は、実行前に戻り値Shapeと予算が設定され、完全な詳細は有用な場合のみアーティファクトに保持されたか?
- 大規模な読み取り、ブラウザループ、サブエージェントは、明示的な質問によって制限されたか?
- 再開可能な状態は適切な表面にあり、所有するディレクターが続行/ハンドオフ/ローテーションの判断を保持したか?
- 常時読み取りのガイダンスは短く保ち、詳細は他の場所にルーティングされたか?