| name | strategic-compact |
| description | Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction. |
| origin | ECC |
戦略的コンパクトスキル
任意の自動コンパクションに頼るのではなく、ワークフローの戦略的ポイントで手動 /compact を提案します。
起動条件
- コンテキスト制限に近づく長いセッションの実行(200K+ トークン)
- マルチフェーズタスクの作業(調査 -> 計画 -> 実装 -> テスト)
- 同じセッション内で無関係なタスク間の切り替え
- 主要なマイルストーンを完了して新しい作業を開始する時
- レスポンスが遅くなったり一貫性がなくなった時(コンテキスト圧迫)
なぜ戦略的コンパクションなのか?
自動コンパクションは任意のポイントでトリガーされます:
- しばしばタスクの途中で、重要なコンテキストを失う
- 論理的なタスク境界を認識しない
- 複雑なマルチステップ操作を中断する可能性
論理的な境界での戦略的コンパクション:
- 探索後、実行前 -- 調査コンテキストをコンパクトにし、実装計画は保持
- マイルストーン完了後 -- 次のフェーズのために新鮮なスタート
- 主要なコンテキスト切り替え前 -- 別のタスク前に探索コンテキストをクリア
仕組み
suggest-compact.js スクリプトは PreToolUse(Edit/Write)で実行され:
- ツールコールを追跡 -- セッション内のツール呼び出しをカウント
- 閾値検出 -- 設定可能な閾値で提案(デフォルト: 50 コール)
- 定期的なリマインダー -- 閾値後 25 コールごとにリマインド
フックセットアップ
~/.claude/settings.json に追加:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
},
{
"matcher": "Write",
"hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
}
]
}
}
設定
環境変数:
COMPACT_THRESHOLD -- 最初の提案前のツールコール数(デフォルト: 50)
コンパクション判断ガイド
以下の表を使用してコンパクションするかどうかを判断します:
| フェーズ遷移 | コンパクト? | 理由 |
|---|
| 調査 -> 計画 | はい | 調査コンテキストは膨大;計画が蒸留された出力 |
| 計画 -> 実装 | はい | 計画は TodoWrite またはファイルにある;コード用にコンテキストを解放 |
| 実装 -> テスト | 場合による | テストが最近のコードを参照する場合は保持;フォーカスを切り替える場合はコンパクト |
| デバッグ -> 次の機能 | はい | デバッグトレースが無関係な作業のコンテキストを汚染する |
| 実装中 | いいえ | 変数名、ファイルパス、部分的な状態を失うコストが高い |
| 失敗したアプローチの後 | はい | 新しいアプローチを試す前にデッドエンドの推論をクリア |
コンパクション後に残るもの
何が永続するかを理解すると、自信を持ってコンパクションできます:
| 永続する | 失われる |
|---|
| CLAUDE.md の指示 | 中間的な推論と分析 |
| TodoWrite のタスクリスト | 以前に読んだファイル内容 |
メモリファイル (~/.claude/memory/) | マルチステップの会話コンテキスト |
| Git 状態(コミット、ブランチ) | ツールコール履歴とカウント |
| ディスク上のファイル | 口頭で述べられた微妙なユーザー好み |
ベストプラクティス
- 計画後にコンパクト -- 計画が TodoWrite で確定したら、新鮮なスタートのためにコンパクト
- デバッグ後にコンパクト -- エラー解決コンテキストをクリアしてから継続
- 実装中はコンパクトしない -- 関連する変更のためにコンテキストを保持
- 提案を読む -- フックはいつを教え、あなたがするかどうかを決める
- コンパクト前に書き出す -- コンパクト前に重要なコンテキストをファイルやメモリに保存
- サマリー付きで
/compact を使用 -- カスタムメッセージを追加: /compact Focus on implementing auth middleware next
トークン最適化パターン
トリガーテーブル遅延読み込み
セッション開始時にフルスキル内容を読み込む代わりに、キーワードをスキルパスにマッピングするトリガーテーブルを使用します。スキルはトリガーされた時のみ読み込まれ、ベースラインコンテキストを 50% 以上削減します:
| トリガー | スキル | 読み込みタイミング |
|---|
| "test", "tdd", "coverage" | tdd-workflow | ユーザーがテストに言及した時 |
| "security", "auth", "xss" | security-review | セキュリティ関連の作業時 |
| "deploy", "ci/cd" | deployment-patterns | デプロイメントコンテキスト時 |
コンテキスト構成の意識
コンテキストウィンドウを消費しているものを監視します:
- CLAUDE.md ファイル -- 常に読み込まれるため、簡潔に保つ
- 読み込まれたスキル -- 各スキルは 1-5K トークンを追加
- 会話履歴 -- やり取りごとに増加
- ツール結果 -- ファイル読み取り、検索結果がボリュームを追加
重複指示の検出
コンテキスト重複の一般的な原因:
~/.claude/rules/ とプロジェクト .claude/rules/ の両方に同じルール
- CLAUDE.md の指示を繰り返すスキル
- 重複するドメインをカバーする複数のスキル
コンテキスト最適化ツール
token-optimizer MCP -- コンテンツ重複排除による自動 95%+ トークン削減
context-mode -- コンテキスト仮想化(315KB から 5.4KB への削減実績あり)
関連
- The Longform Guide -- トークン最適化セクション
- メモリ永続化フック -- コンパクションを生き延びる状態用
continuous-learning スキル -- セッション終了前にパターンを抽出