clear-context について
clear-contextは、コンテキスト使用量が増えたときにClaude Codeのタスクを継続するスキルです。タスク状態と実行モードを記録し、既存のタスクIDと具体的な残作業を新しいサブエージェントに引き継ぎます。
主な機能
- 01セッション状態をチェックポイントファイルに保存
- 02タスク状態を整理しタスクIDを保持
- 03継続前に引き継ぎ内容の明確さを確認
- 04新しいサブエージェントに作業を委任
- 05環境変数でコンテキスト閾値を設定
活用シーン
- 01コンテキスト使用量が多い状態で作業を継続
- 02複数課題の一括処理を重複タスクなしで引き継ぐ
- 03長時間のワークフローで進捗を保持
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill clear-contextインストール後、Claude Code で/clear-contextを入力して読み込まれたか確認します。
同梱ファイルmodules/session-state-schema.mdmodules/session-state.md
詳細
Clear Context スキル
クイックスタート
コンテキストの圧迫が危険なレベル(80% 以上)に達したら、このスキルを呼び出して以下を行います。
- 現在のセッション状態を保存します
- 新しいサブエージェントに作業の継続を委任します
- 手動で介入することなく作業を続行します
Skill(conserve:clear-context)
使用するタイミング
- 事前に:複数の連鎖した大規模タスクを始める前
- 事後に:コンテキストの警告で使用率が 80% 以上と示されたとき
- 自動的に:長時間実行するワークフローに統合されている場合
使用しないタイミング
- コンテキストの使用率が 50% 未満の場合:通常どおり作業を続けます
- 引き継ぎによって状態が失われる可能性のある、重大な操作の途中
- まず「ここから要約」を検討してください(Claude Code 2.1.32 以降):自動クリアをすべて実行する前に、 メッセージセレクターを使用した部分的な要約を試してください。これにより最近の作業を保持しながら古いコンテキストを圧縮できるため、 多くの場合、引き継ぎをすべて実行しなくてもコンテキストの圧迫を緩和できます。
自動クリアのパターン
/clear にはユーザーの操作が必要なため、サブエージェントへの委任によって、中断せずにコンテキストを自動的にクリアします。
Main Agent (high context)
↓
Saves state to .claude/session-state.md
↓
Spawns continuation subagent (fresh context)
↓
Subagent reads state, continues work
しきい値
| レベル | しきい値 | アクション |
|---|---|---|
| WARNING | 40% | 監視し、最適化を計画します |
| CRITICAL | 50% | 引き継ぎの準備をします |
| EMERGENCY | 80% | 今すぐ自動クリアを実行します |
設定(環境変数):
CONSERVE_EMERGENCY_THRESHOLD:既定値の 80% を上書きします(例:0.75で 75%)CONSERVE_SESSION_STATE_PATH:既定値の.claude/session-state.mdを上書きします
自動クリアのワークフロー
ステップ 1:現在の状態を評価する
自動クリアを開始する前に、以下を収集します。
- 現在のタスク/目標の説明
- これまでの進捗
- 重要な決定事項とその根拠
- 現在作業中のファイル
- 未完了の TodoWrite 項目
ステップ 1.5:引き継ぎ前にタスクリストを確定する
重要:状態を保存したり、継続エージェントを起動したりする前に、タスクリストを整理してください。
TaskListを使ってすべてのタスクを確認しますTaskUpdateを使って完了したタスクをcompletedにします。完了した作業をin_progressのままにしないでください- 既存のタスク ID を記録します:保留中および進行中のすべてのタスク ID を収集し、セッション状態に渡します。これにより、継続エージェントは重複したタスクを作成せず、既存のタスクを参照できます
- ステップ 2 に従い、
existing_task_idsフィールドにタスク ID を含めてセッション状態に記録します
これにより、継続エージェントが重複したタスクを作成するのを防ぎます。
ステップ 2:セッション状態を保存する
重要:.claude/session-state.md がすでに存在する場合は、書き込む前に必ず読み取ってください(Claude Code では、既存のファイルを上書きする前に読み取る必要があります)。.claude/ ディレクトリが存在しない場合は作成します。
.claude/session-state.md(または $CONSERVE_SESSION_STATE_PATH)に書き込みます。
# Session State Checkpoint
state_version: 1
Generated: [timestamp]
Reason: Context threshold exceeded (80%+)
## Execution Mode
**Mode**: [unattended | interactive | dangerous]
**Auto-Continue**: [true | false]
**Source Command**: [do-issue | execute-plan | etc.]
**Remaining Tasks**: [list of pending items]
> **Important**: If `auto_continue: true` or mode is `dangerous`/`unattended`,
> the continuation agent should not pause for user confirmation.
> Continue executing all remaining tasks until completion.
## Current Task
[What we're trying to accomplish]
## Progress Summary
[What's been done so far]
## Key Decisions
- Decision 1: [rationale]
- Decision 2: [rationale]
## Active Files
- path/to/file1.py - [status]
- path/to/file2.md - [status]
## Pending TodoWrite Items
- [ ] Item 1
- [ ] Item 2
## Existing Task IDs
[List task IDs from TaskList so the continuation agent can reference them
instead of creating duplicates. Example:]
- Task #1: "Implement feature X" (in_progress)
- Task #2: "Write tests for feature X" (pending)
## Continuation Instructions
[Specific next steps for the continuation agent]
実行モードの検出:
状態を書き込む前に、実行モードを検出します。
# Detect execution mode from environment/context
execution_mode = {
"mode": "interactive", # default
"auto_continue": False,
"source_command": None,
"remaining_tasks": [],
"dangerous_mode": False,
}
# Check for dangerous/unattended mode indicators
if os.environ.get("CLAUDE_DANGEROUS_MODE") == "1":
execution_mode["mode"] = "dangerous"
execution_mode["auto_continue"] = True
execution_mode["dangerous_mode"] = True
elif os.environ.get("CLAUDE_UNATTENDED") == "1":
execution_mode["mode"] = "unattended"
execution_mode["auto_continue"] = True
# Inherit from parent session state if exists
if parent_state and parent_state.get("execution_mode"):
execution_mode = parent_state["execution_mode"]
ステップ 2.5:引き継ぎ前にセッション状態の明確さを確認する
継続エージェントが引き継ぐのは、session-state.md に記載された内容だけです。下書きが曖昧だと、新しいエージェントはタスク状態が壊れた状態から作業を開始することになります。エージェントを起動する前に、下書きに対して 2 つの確認質問を行う明確性チェック(Skill(conserve:context-optimization) の belief-clarity モジュール)を通過条件にします。
- 進捗確認:現在のタスクの進捗はどの段階ですか。何が完了し、タスクは現在どの状態ですか?
- 不足情報の確認:完了するために、まだどの情報が必要ですか。一般的なカテゴリではなく、範囲を限定した具体的な未完了項目のリストを示します。
判定ロジック:
- 両方の回答が具体的で、範囲が限定されている:保存してステップ 3 に進みます。
- 不足情報の確認が自由回答形式、または進捗確認の回答が曖昧:不合格となった確認質問への回答を、明示的な
Current state:とStill needed:の箇条書きとしてsession-state.mdに追記し、再評価します。再評価は最大 2 回までです。3 回目も不合格となった下書きは、引き継がず、両方の確認質問への回答とともにユーザーに渡します。ここでは状態ファイルの作成者が評価者も兼ねており、自己評価のループで収束するのは明確さではなく確信だからです。 - 進捗確認の回答が曖昧、または空:引き継がないでください。状態を記述して再試行する前に、ユーザー(または無人モードでは
imbue:proof-of-work)に現在の状態を確認します。
memory-palace:memory-clarity-probe がインストールされている場合は、二重確認の評価を委任し、その「Proceed」統合結果を通過条件として使用します。この確認は定性的なものであり、ずれや抜け漏れは検出しますが、確信をもって誤っている状態は検出しません。そのため、重要度の高い引き継ぎではタスク状態の検証と組み合わせてください。
ステップ 3:継続エージェントを起動する
Task ツールを使って委任します。重要:タスクプロンプトには実行モードを含めてください。
Task: Continue the work from session checkpoint
Instructions:
1. Read .claude/session-state.md for full context
2. Check the "Execution Mode" section FIRST
3. If `auto_continue: true` or mode is `dangerous`/`unattended`:
- DO NOT pause for user confirmation
- Continue executing ALL remaining tasks until completion
- Only stop on actual errors or when all work is done
4. **TASK LIST**: Do NOT create new tasks via TaskCreate. The parent agent
already created the task list. Use TaskList to see existing tasks, and
TaskUpdate to mark them in_progress/completed. Check the "Existing Task IDs"
section in the session state for the authoritative list.
5. Verify understanding of current task and progress
6. Continue from where the previous agent left off
7. If you also approach 80% context, repeat this handoff process
- PRESERVE the execution mode when creating your own checkpoint
- Increment `handoff_depth` in `session-state.md`. At depth 3,
stop and report to the user instead of spawning again: three
continuations without finishing is a task that needs splitting,
and each handoff loses state the probes cannot see
The session state file contains all necessary context to continue without interruption.
**Execution mode inheritance**: Always inherit and propagate the execution
mode from the session state. If the parent was in dangerous/unattended mode,
you are also in that mode. Do not ask the user for confirmation.
**Task deduplication**: Do not create duplicate tasks. The parent has already
populated the task list. Use TaskUpdate on existing task IDs only.
バッチ/複数課題のワークフローの場合(例:/do-issue 42 43 44):
Task: Continue batch processing from session checkpoint
Instructions:
1. Read .claude/session-state.md for full context
2. EXECUTION MODE: This is a batch operation with auto_continue=true
3. Process ALL remaining tasks in the queue:
- Remaining: [issue #43, issue #44]
4. DO NOT stop between tasks - continue until all are complete
5. If you hit 80% context, hand off with the same execution mode
6. Only pause for:
- Actual errors requiring human judgment
- Completion of ALL tasks
This is an unattended batch operation. Continue without user prompts.
Task ツールの詳細:
- 新しい 1M コンテキストウィンドウでサブエージェントを起動します
- 最大 10 個のエージェントを並列で実行できます
- サブエージェントごとに約 20k トークンのオーバーヘッドが発生します
ステップ 3 の代替手順:円滑に作業を終了する
Task ツールを利用できない場合(権限やコンテキストの制限など):
- 現在進行中の作業を完了する(編集とコミットを完了します)
- 残りのタスクを応答にまとめます
- 継続は自動コンパクトに任せます — Claude Code がコンテキストを自動的に圧縮します
- 手動で継続する方法:
claude --continueでセッションを再開します- 新しいセッションを開始し、
/catchupで変更内容を把握します .claude/session-state.mdを読んで保存されたコンテキストを確認します
2.1.63 で修正:
/clearがキャッシュされたスキルを正しくリセットするようになりました。以前は、古いスキルの内容が新しい会話に残ることがありました。/clearと/catchupのパターンは、現在完全に信頼できます。
2.1.72 で修正:
/clearはフォアグラウンドのタスクのみをクリアするようになりました。バックグラウンドのエージェントと bash タスクは実行を継続します。以前は、/clearがバックグラウンドのものも含めてすべてのタスクを終了していたため、コンテキストのリセット後も実行を続ける必要がある長時間稼働のバックグラウンドエージェントに問題がありました。
既存のフックとの統合
このスキルは context_warning.py フックと連携します。
- フックが PreToolUse で実行されます
- しきい値が 80% 以上になると、フックが緊急ガイダンスを挿入します
- ガイダンスがこのスキルの呼び出しを推奨します
- スキルが自動クリアのワークフローを実行します
モジュールの読み込み
セッション状態の形式と例の詳細については、以下を参照してください。
- チェックポイントの形式と引き継ぎのパターンについては、
modules/session-state.mdを参照してください - バージョン管理されたスキーマと移行ロジックについては、
modules/session-state-schema.mdを参照してください
自己監視パターン
コンテキストの上限を超える可能性があるワークフローでは、定期的な確認を追加します。
# Pseudocode for context-aware workflow
def long_running_task():
for step in task_steps:
execute_step(step)
# Check context after each major step
if estimate_context_usage() > 0.80:
invoke_skill("conserve:clear-context")
return # Continuation agent takes over
コンテキストの測定方法
高精度(ヘッドレス/バッチ)
自動化で正確なトークン内訳を取得するには:
claude -p "/context" --verbose --output-format json
ヘッドレスでの詳しい説明については、/conserve:optimize-context を参照してください。
高速な推定(リアルタイムフック)
速度が重要なフックでは、ヒューリスティックを使用します。
- JSONL ファイルサイズ:約 800KB ≈ コンテキストの 100%(context_warning フックで使用)
- ターン数:複雑なターン 1 回あたり約 5~10K トークン
- ツールの呼び出し:ツールを多用すると、増加が速くなります
例:自動クリアでブレインストーミング
## Brainstorm Session with Context Management
1. Before starting, note current context level
2. Set checkpoint after each brainstorm phase:
- Problem definition checkpoint
- Constraints checkpoint
- Approaches checkpoint
- Selection checkpoint
3. If context exceeds 80% at any checkpoint:
- Save brainstorm state
- Delegate to continuation agent
- Agent continues from checkpoint
ベストプラクティス
- 頻繁にチェックポイントを作成する:長時間のタスクでは、適切な区切りで状態を保存します
- 明確な指示:継続するエージェントには、具体的で明確な指示が必要です
- 引き継ぎを確認する:サブエージェントを起動する前に、状態ファイルが書き込まれていることを確認します
- 再帰に上限を設ける:継続エージェントも制限に達することがあります。状態ファイルの
handoff_depthによって連鎖の上限は3に設定され、それを超えた場合はユーザーに報告します
トラブルシューティング
継続エージェントにコンテキストがすべて渡されない
- session-state.md が完全であることを確認します
- 関連するファイルパスをすべて含めます
- 暗黙の前提を記録します
サブエージェントが適切に継続できない
- 状態ファイルのパスが正しいことを確認します
- ファイルの権限を確認します
- より具体的な継続指示を追加します
コンテキストのしきい値が検出されない
- CLAUDE_CONTEXT_USAGE が設定されていない可能性があります
context_warningフックは、セッションファイルのサイズから代替推定を行います- 手動での呼び出しは常に機能します
フックとの統合
このスキルは context_warning フック(hooks/context_warning.py)によって自動的にトリガーされます。
- 使用率40%:警告 — 早めにプランを最適化してください
- 使用率50%:重大 — 直ちに最適化が必要です
- 使用率80%:緊急 — このスキルを直ちに呼び出してください
フックは次の方法でコンテキストを監視します。
CLAUDE_CONTEXT_USAGE環境変数(利用可能な場合)- 代替手段:セッション JSONL ファイルのサイズから推定します(約800KB = 100%)
しきい値は環境変数で設定できます。
CONSERVE_EMERGENCY_THRESHOLD:既定値の80%を上書きします(例:「0.75」)CONSERVE_CONTEXT_ESTIMATION:「0」に設定すると代替推定を無効にしますCONSERVE_CONTEXT_WINDOW_BYTES:800000バイトの推定値を上書きします
終了条件
- 状態を書き込む前に、タスクリストの内容を照合する(完了したタスクに印を付け、未完了タスクの IDを記録する)
-
.claude/session-state.mdが存在し、現在のタスク、進捗状況、実行モード、継続指示が記録されている - 引き継ぎの前に、セッション状態の明確さのゲート(ステップ2.5)に合格するか、不合格だった プローブの回答を追記して再評価している
- 実行モードと既存のタスクIDを引き継いで継続エージェントを起動している(タスクを重複して作成しない)
- 進捗プローブが曖昧または空の場合、引き継ぎを拒否する