name: smart-compact description: セッションのコンテキストを分析し、重要な情報を保持するためのプロンプトを生成して /compact コマンドの実行を支援するスキル。コンテキストウィンドウが逼迫してきた時や、セッションを整理したい時に使用。 disable-model-invocation: true
Smart Compact
セッションのコンテキストを分析し、ユーザーの意図に沿った /compact プロンプトを生成する。
実行フロー
Phase 1: セッションコンテキスト分析
会話履歴全体を分析し、以下の要素を抽出する:
- 作業中のタスク: 現在取り組んでいる実装・修正・調査の内容
- 重要な技術的決定: アーキテクチャ選定、ライブラリ選定、設計判断
- 未解決の問題: まだ対応が必要なエラー、バグ、課題
- ファイル変更履歴: セッション中に変更・作成したファイルとその目的
- コンテキスト依存情報: 後続の作業に必要な前提知識や制約
分析結果を簡潔に箇条書きで表示する。
Phase 2: ヒアリング
Phase 1の分析結果に基づき、AskUserQuestionでユーザーにヒアリングする。
質問の生成ルール:
- セッションの内容に応じて 動的に 選択肢を生成する
- 選択肢はそのセッション固有のコンテキスト(タスク名、ファイル名、技術スタック等)を含む具体的なものにする
- multiSelect: true で複数選択可能にする
- 2〜4個の選択肢を用意する
質問テンプレート:
質問: "compactで重点的に保持したい情報はどれですか?"
header: "保持情報"
multiSelect: true
選択肢の例(セッション内容に応じて動的生成):
- "<具体的なタスク名>の実装進捗と残作業"
- "<ファイル名>周辺のエラー調査コンテキスト"
- "<技術名>に関する設計判断と理由"
- "<機能名>のAPI仕様と型定義"
重要: プリセットの汎用的な選択肢ではなく、セッション分析結果から導出した具体的な選択肢を生成すること。
Phase 3: プロンプト生成
ユーザーの回答に基づき、/compact に渡すプロンプトを生成する。
プロンプト生成ガイドライン:
- ユーザーが選択した保持項目を最優先で含める
- 現在のタスクの継続に必要な最小限のコンテキストを含める
- 具体的なファイル名、関数名、エラーメッセージなど固有名詞を含める
- 「何を捨てるか」ではなく「何を保持するか」の指示として記述する
- プロンプトは日本語で生成する
生成フォーマット:
以下の情報を重点的に保持してコンテキストを圧縮してください:
1. [保持項目1の具体的な内容]
2. [保持項目2の具体的な内容]
3. [保持項目3の具体的な内容]
特に以下は正確に保持してください:
- [重要な固有名詞、パス、コマンドなど]
Phase 4: 実行案内
生成したプロンプトをユーザーに提示
以下のコマンドをコピーして実行してください:
/compact <生成したプロンプト>
使用例
> /smart-compact
=== Phase 1: セッションコンテキスト分析 ===
このセッションの主な内容:
- dotfiles CLIのMCPMerger機能の実装
- defu を使ったディープマージのバグ修正
- tests/core/mcp-merger.test.ts のテスト追加
=== Phase 2: ヒアリング ===
[AskUserQuestion]
compactで重点的に保持したい情報はどれですか?
[1] MCPMergerのdefu統合バグの調査経緯と修正内容
[2] mcp-merger.test.ts の追加テストケースと意図
[3] claude.jsonのマージ仕様(キー保持ルール)
[4] Other
> 1, 3 を選択
=== Phase 3: プロンプト生成 ===
生成したプロンプト:
---
以下の情報を重点的に保持してコンテキストを圧縮してください:
1. MCPMergerでdefuを使ったmcpServersマージ時に、既存キーが上書きされるバグの原因と修正内容(src/core/mcp-merger.ts の mergeConfig 関数)
2. claude.jsonのマージ仕様:mcpServersキーのみマージし、apiKey等の他キーはdefu経由で保持する設計判断
特に以下は正確に保持してください:
- src/core/mcp-merger.ts, tests/core/mcp-merger.test.ts のファイルパス
- defu の非破壊マージ挙動(ターゲット側の値が優先される仕様)
---
以下のコマンドをコピーして実行してください:
/compact 以下の情報を重点的に保持してコンテキストを圧縮してください:...
Notes
/compactはClaude Codeの組み込みコマンドのため、スキルから直接実行はできない- 生成されたコマンドはユーザーが手動でコピー&実行する必要がある
- セッションが十分に長い(コンテキストが逼迫している)時に最も効果的