Context Weight
起動時に読み込まれるものはすべて、セッション内のすべてのリクエストで再送信されます。 150kトークンのCLAUDE.mdは、作業が始まる前に、リクエストごとに150kトークンを消費します。このスキルはその負荷を測定し、削減し、削減を数値で証明します。
スクリプトはこのスキルのディレクトリ内の scripts/cw.py です。このファイルの場所から絶対パスを解決してください。Python 3.8以上が必要で、他に依存関係はありません。ユーザーのファイルを変更することは決してなく、数値(トランスクリプトの内容は含みません)を出力し、--svg または --open で指定された1つの画像ファイルを書き込むのみです。
実行中のメーター? 「今のコンテキストの使用率」を知りたい場合は、各プラットフォームのコマンド(Claude Code: /context、Codex: /status)を使用してください。このスキルはリポジトリと履歴に関するものです。
1. 計量(読み取り専用)
python3 <skill-dir>/scripts/cw.py report <repo> --days 30 --svg
--svg はレポートを1枚の画像としてシステムの一時フォルダに描画し、そのパスを最終行に出力します(Picture: ...)。ユーザーにそのパスを伝えれば、数値を一目で確認できます。ユーザーが画像の表示を希望した場合は --open も追加して開いてあげてください。--svg FILE で保存場所を指定できますが、ユーザーが明示的に要求しない限り、リポジトリ内のパスは使用しないでください。
テキスト出力は4つの部分で構成されます。
- 各プラットフォームが起動時に読み込む指示ファイル(推定トークン数)
- 各プラットフォームの予算に対するスキル一覧
- このリポジトリの測定されたセッション数値
- ランク付けされた所見
絞り込み表示:files <repo>、skills <repo>、sessions --top 20、sessions --project <name> --compare-at YYYY-MM-DD。任意のコマンドに --json を追加できます。
ユーザーに報告する際は、以下を提示してください。
- プラットフォームごとの起動時トークン数
start(セッションの最初のリクエストにおけるコンテキストサイズの中央値)start%(全入力に占める、その起動時負荷が再送信される割合)>threshold tokの割合- 所見
どの数値が推定値(files、skills)で、どの数値が実測値(sessions)かを明記してください。Claude Codeのスキル予算はモデルのコンテキストウィンドウに依存し、ログには記録されません。cw.py は200kを前提としており、その旨を表示します。ユーザーが1Mコンテキストのモデルを使用している場合は、--window 1000000 を指定して再実行してください。
2. 数値が示すレバーを選ぶ
| シグナル | レバー |
|---|---|
リポジトリの指示が約5kトークンを超え、start% が高い | 指示ファイルをスリム化(ステップ3) |
>threshold tok が50%超 | セッション衛生(ステップ4) |
| 「プラットフォームごとに異なるルールに従っている」 | 1つの正規のAGENTS.mdを作成(ステップ3) |
| Codexが「認識できない」警告を出す | スリム化するか、一部をネストしたAGENTS.mdファイルに移動 |
| スキル一覧が予算超過 | 未使用のスキルやプラグインをアンインストール。まずは確認すること:それはユーザーの設定です |
最も大きな数値から始めてください。数値が示していないものはそのままにしておいてください。
3. 指示ファイルをスリム化する
完全な手順は references/slimming.md にあります。編集する前に読んでください。簡易版:
- ファイルをバックアップし、
cw.py files <repo>を記録します。 - すべてのセクションを5つの種類のいずれかに分類します:ルール(保持、簡潔に)、ポインター、リファレンス、ログ、または重複。
- リファレンスとログを
docs/agent-notes/に移動します。プレーンなパスを1行のポインターとして残します。@は使用しないでください。Claude Codeは起動時に@importsを展開し、Codexは無視します。 - コア部分を200行未満、約5kトークンに抑え、Codexの32 KiBチェーン制限内に収めます。
- AGENTS.md を唯一の正規ファイルにします。CLAUDE.md には
@AGENTS.mdとClaude固有の行のみを記述します。 - 証明します:
verify-splitが終了コード0で終了すること、filesで削減が確認できること、--max-tokensゲートを通過すること。
テキストの移動は安全です。知識の削除はユーザーの判断に委ねられています:重複が証明されていない行を削除する前に、ユーザーに確認してください。
4. セッション衛生
ほとんどの入力トークンは、長いセッションの後半のリクエストから発生します。各リクエストは、それ以前のすべての情報を再送信します。
- 1セッションに1つのタスク。
- コンテキストがウィンドウの約半分を超えたとき、またはタスクが変更されたときに、短い引き継ぎメモ(目標、状態、次のステップ、触れたファイル)を書き、新しいセッションを開始します。Claude Codeでは
/clear、Codexでは/newです。繰り返しのコンパクションよりもこれを優先してください。 - 大きなツールの出力をコンテキストに入れないでください:フィルタリングする、先頭部分だけを取得する、またはファイルに書き出して必要な部分だけを読み込んでください。
5. 証明する
- すぐに:
cw.py files <repo>を変更前後で比較し、verify-splitが終了コード0で終了することを確認します。 - 再肥大化を防ぐ:
python3 <skill-dir>/scripts/cw.py files . --max-tokens 6000をCIまたはpre-commitに追加します。リポジトリの指示が制限を超えて増加した場合、またはCodexがそれらのいずれかを切り捨てる場合に終了コード1で終了し、パスが間違っている場合は終了コード2で終了するため、タイプミスが通過することはありません。 - 実際に数日使用した後:
cw.py sessions --project <name> --compare-at <変更日>を実行し、startとstart%を変更前後で報告します。
最後のコマンドが変更後のセッションで実行されるまでは、実現された削減を主張しないでください。
終了コード
0 正常、1 チェック失敗(--max-tokens、verify-split)、2 不正な入力(パス欠落、ファイル読み取り不可、不正な日付)。エラーはstderrに出力されます。
参考資料
references/harnesses.md:各プラットフォームが何をいつ読み込むか、サイズ制限、スキルフォルダ、出典付き。references/slimming.md:スリム化手順と検証。