compression-strategy について
compression-strategy は、コンテキストの使用状況を分析し、圧縮方法を提案するエージェントスキルです。コンテキストの肥大化やツール出力の蓄積に対応し、作業段階や内容の古さを踏まえて削減量とリスクを見積もります。
主な機能
- 01コンテキスト使用量の分析
- 02ツール出力と古い内容の評価
- 03圧縮方法の提案
- 04削減量とリスクの見積もり
- 05大きな出力の保存と取得方法の提示
活用シーン
- 01作業段階の切り替え前の整理
- 02ツール出力の蓄積による負荷の軽減
- 03上限が近い際の対処方法の選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill compression-strategyインストール後、Claude Code で/compression-strategyを入力して読み込まれたか確認します。
同梱ファイルmodules/log-debugging-hygiene.mdmodules/reversible-compression.md
詳細
圧縮戦略
現在のコンテキスト使用量を分析し、最適な圧縮戦略を提案します。
使用するタイミング
- コンテキストが肥大化している、または動作が遅く感じられる場合
- 大きなタスクフェーズの切り替え前(計画完了、実装開始など)
- トークンの割り当てが予想より速く消費されている場合
- 大量のツール出力が蓄積した後
使用しないタイミング
- コンテキスト最適化スキルがすでにこの状況に対応している場合
- コンテキストが最小限の単純なクエリ
- コンテキストをクリアした直後
必須の TodoWrite 項目
compression-strategy:analyze-contextcompression-strategy:recommend-strategycompression-strategy:estimate-savings
ステップ 1 – コンテキストの分析(analyze-context)
/context を実行して現在の使用量を確認します。次に、以下を見積もります。
- ツール出力の蓄積:コンテキストのうち、ツールの結果と会話がそれぞれ占める割合はどの程度か?
- 古い内容の経過期間:重要な決定が行われてから何ターン経過しているか?
- アクティブなファイル:引き続き関連性のあるファイルと、履歴情報になったファイルはどれか?
ステップ 2 – 戦略の提案(recommend-strategy)
分析に基づき、以下のいずれかを提案します。
オプション A:/clear と /catchup
次の場合に最適です。
- タスクフェーズが完了した(計画が完了し、実装を開始するなど)
- コンテキストが 60% を超えている
- 内容の大部分が古くなっている
手順:
- 重要な状態を
.claude/session-state.mdに保存します /clearを実行します/catchupを実行してアクティブなファイルを再読み込みします
オプション B:継続エージェントの起動
次の場合に最適です。
- コンテキストが 80% を超えている
- 作業中で、中断できない
- 委任可能なタスクが残っている
手順:
Skill(conserve:clear-context)を実行して継続エージェントを起動します- エージェントは保存済みの状態とともに新しいコンテキストを受け取ります
オプション C:アーカイブして要約
次の場合に最適です。
- コンテキストが 40~60% 使用されている
- 古い内容とアクティブな内容が混在している
- すべてをクリアする準備ができていない
手順:
- 古い決定やエラーを
.claude/context-archive/にアーカイブします - 完了した作業をメモリに要約します
- よりコンパクトなコンテキストで続行します
オプション D:サブエージェントに委任
次の場合に最適です。
- 並行して作業できる
- 独立したサブタスクがある
- コンテキストへの負荷が中程度
手順:
- 委任可能なタスクを特定します
Taskツールを使って専門エージェントを起動します- メインのコンテキストをコンパクトに保ちます
ステップ 3 – 削減量の見積もり(estimate-savings)
提案する戦略について、削減量を見積もります。
| 戦略 | 一般的な削減量 | リスク |
|---|---|---|
| /clear と /catchup | 70-90% | 状態を保存すれば低い |
| 継続エージェント | 80-95% | 低い。状態は保持されます |
| アーカイブして要約 | 20-40% | 非常に低い |
| サブエージェントに委任 | 30-50% | 低い。並行作業が可能です |
| 可逆圧縮(CCR) | アーカイブした出力ごとに 47-92% | 低い。元の内容はキャッシュされます |
CCR の行はコンテキスト全体ではなく、サイズの大きいツール出力ごとの削減量です。大きな Bash、Read、または Grep の結果はハンドルにアーカイブされ、後続ターンではダイジェストに置き換えられます。削減量はコンテンツの種類によって異なります(ログは大幅に圧縮されますが、文章はほとんど圧縮されません)。modules/reversible-compression.md を参照してください。
コンテキストアーカイブの場所
保持されたコンテキストは次の場所に保存されます。
.claude/context-archive/pre-compact-YYYYMMDD-HHMMSS-SESSIONID.md
これは、pre_compact_preserve フックによって、あらゆる /compact 操作の前に自動作成されます。
統合ポイント
- PreCompact フック:圧縮前にコンテキストを自動的に保持します
- ツール出力サマライザー:ツール出力が蓄積した際に警告します
- コンテキスト警告フック:40%/50%/80% の 3 段階で通知します
専門モジュール
肥大化の原因が貼り付けられたログ出力(デバッグトレース、CI の失敗、フックのログ、JSONL)の場合は、modules/log-debugging-hygiene.md を読み込んでください。
このモジュールでは、フィルターを優先する3段階のワークフローと、ベンチマーク済みのスニペット、および圧縮が妥当な場合とそうでない場合についての率直な説明をまとめています。コミット済みの intake_queue.jsonl フィクスチャでは、tail -n 100 は可逆圧縮を25パーセントポイント上回ります。このモジュールでは、その非対称性を形式化しています。
肥大化の原因が大きなツール出力(コード検索、ログダンプ、ファイル読み取り)の場合は、modules/reversible-compression.md を読み込んでください。
このモジュールでは、CCR パターンについて説明しています。tool_output_summarizer フックは、サイズが大きすぎる出力を .claude/context-archive/ 配下のコンテンツアドレス指定ハンドルにアーカイブし、context_retrieve.py は必要に応じて元の出力(またはその一部)を取得します。これにより、元の出力を常駐させなくても、/clear の後まで保持できます。
使用例
/compression-strategy
出力:
Context Analysis:
- Current usage: 52%
- Tool output: ~15KB (3 tool results)
- Stale content: ~40% (decisions from 8+ turns ago)
Recommendation: Option C - Archive + Summarize
- Archive old decisions to context-archive
- Keep active files and recent decisions
- Estimated savings: 25-35%
Commands:
1. Read .claude/context-archive/ to see what's preserved
2. Summarize completed work
3. Continue with leaner context
終了条件
- コンテキストを分析し、現在の使用量とツール出力の占める割合を推定している
- 単一の戦略(A~D、または可逆圧縮)を、理由を明示して推奨している
- ステップ3の表にあるリスクを明記して、削減量を推定している
- 大きなツール出力について、CCR ハンドルと
context_retrieve.pyの取得コマンドを提示している(警告だけで終わらせていない) - 肥大化の原因が高密度の文章(圧縮してもほとんど削減できない)の場合、推奨を見送るか、優先度を下げている