CLAUDE LABEN
PRICING — Claude Sonnet 5 の9月1日の値上げは撤回されました。100万トークンあたり入力2ドル・出力10ドルがそのまま標準価格になります。入力3ドル・出力15ドルを前提に組んだ試算は引き直しが必要ですVERSION — v2.1.241(8月23日)は修正と安定性の改善が中心です。長時間ストリームを一定時間で切るサーバーに対して MCP v2 が subscriptions/listen を延々と開き直す問題が直りましたLINUX — サンドボックスを有効にした Linux で、アイドル状態のセッションが CPU コアを1つ 100% のまま占有し続ける問題が修正されましたSKILLS — 同梱スキルのエイリアス(/checkup や /review)が、-p モードやプラグイン・MCP 読み込み時に「Unknown command」になる問題が直りました。同名のユーザースキルが影を作っていた場合の挙動ですARGS — スキルとコマンドの引数置換で、引数の値がテンプレートマーカーとして再展開されてしまう問題が修正されましたWATERMARK — 8月2日以降にリリースされた Claude 製品は、生成物に機械可読なマーキングを含みます。EU AI Act の透明性要件への対応ですが、適用は欧州に限らず全世界ですPRICING — Claude Sonnet 5 の9月1日の値上げは撤回されました。100万トークンあたり入力2ドル・出力10ドルがそのまま標準価格になります。入力3ドル・出力15ドルを前提に組んだ試算は引き直しが必要ですVERSION — v2.1.241(8月23日)は修正と安定性の改善が中心です。長時間ストリームを一定時間で切るサーバーに対して MCP v2 が subscriptions/listen を延々と開き直す問題が直りましたLINUX — サンドボックスを有効にした Linux で、アイドル状態のセッションが CPU コアを1つ 100% のまま占有し続ける問題が修正されましたSKILLS — 同梱スキルのエイリアス(/checkup や /review)が、-p モードやプラグイン・MCP 読み込み時に「Unknown command」になる問題が直りました。同名のユーザースキルが影を作っていた場合の挙動ですARGS — スキルとコマンドの引数置換で、引数の値がテンプレートマーカーとして再展開されてしまう問題が修正されましたWATERMARK — 8月2日以降にリリースされた Claude 製品は、生成物に機械可読なマーキングを含みます。EU AI Act の透明性要件への対応ですが、適用は欧州に限らず全世界です
記事一覧/Claude Code
Claude Code/2026-07-10上級

PreCompact と SessionEnd で長時間セッションの決定事項を引き継ぐ

自動コンパクションで消えるのは会話ではなく「なぜそう決めたか」です。PreCompact / SessionEnd / SessionStart の3フックで決定ログを外部ファイルへ退避し、次のセッションへ確実に手渡す実装を、動くコードと実測値つきで解説します。

Claude Code232hooks16context6automation55PreCompact

プレミアム記事

深夜 2 時に走らせていた自動処理のセッションが、コンパクションを挟んだ直後に「さっき却下したはずの案」を再提案してきたことがあります。

会話の内容は要約されて残っていました。消えていたのは、なぜその案を却下したのかという一行だけでした。

コンパクションは文字数を削るのであって、重要度で選り分けてくれるわけではありません。要約に残るのは「何をしたか」で、落ちるのは「なぜそうしたか」です。個人開発で複数のサイトを夜間に回している立場からすると、この一行の欠落が翌朝の手戻りに直結します。

そこで私は、コンパクションが走る直前に決定事項だけを外部ファイルへ逃がし、次のセッションの開始時に読み戻す仕組みを入れました。使うのは Claude Code の PreCompactSessionEndSessionStart という 3 つのフックです。

コンパクションで落ちるのは「判断の根拠」

自動コンパクションはコンテキストが上限に近づいたときに発火します。手動の /compact と同じ処理ですが、無人運用では発火のタイミングを選べません。

私の環境で 4 サイト分の記事生成セッションを 6 時間走らせたときのトランスクリプトは 14.2 MB(JSONL・約 3,900 行)でした。コンパクション後にセッションへ残っていた要約は 4,100 文字程度です。圧縮率としては妥当ですが、この 4,100 文字に「Cloudflare Workers の 62 MiB 制限があるので articles.json にはメタデータだけを載せる」という前提は残っていませんでした。

要約が悪いのではありません。要約に何を残すかを指定していないことが問題でした。

ならば、要約に期待するのをやめて、自分で抜き出して外に置けばよい。それがこの記事の設計です。

PreCompact フックが受け取るもの

PreCompact は、自動・手動を問わずコンパクションが実行される直前に発火します。フックスクリプトは標準入力から JSON を1つ受け取ります。

{
  "session_id": "0b8f2c14-...",
  "transcript_path": "/Users/you/.claude/projects/.../0b8f2c14-....jsonl",
  "cwd": "/Users/you/work/claudelab.net",
  "hook_event_name": "PreCompact",
  "trigger": "auto",
  "custom_instructions": ""
}

押さえておきたいのは次の 3 点です。

trigger"auto""manual" のどちらかです。/compact を手で叩いたときだけ "manual" になります。無人運用で拾いたいのはほぼ "auto" の方です。

transcript_path は、そのセッションの全履歴が入った JSONL ファイルの絶対パスです。1 行 1 メッセージで、まだコンパクションの状態が読めます。ここが肝心で、PreCompact を逃すとこの生の履歴には二度とアクセスできません。

custom_instructions は手動コンパクション時に渡した指示が入ります。自動時は空文字です。

フック発火タイミングこの設計での役割
PreCompactコンパクション直前生の履歴から決定事項を抽出して退避
SessionEndセッション終了時最終スナップショットと索引の確定
SessionStartセッション開始・再開時退避した決定事項をコンテキストへ注入

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
長時間セッションでコンパクションのたびに前提が抜け落ちて困っていた方が、PreCompact フックで決定事項だけを外部へ退避できるようになります
transcript_path の JSONL を安全に読む Python 実装と、SessionStart の additionalContext で復元するまでの一連のコードが手に入ります
60 秒タイムアウト・stdout の扱い・trigger 値の取り違えという、実際に踏んだ3つの落とし穴を回避して無人運用に組み込めます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-06-18
SessionEnd フックに後片付けとログ記録を寄せる
自動投稿の後片付けだけが月に数回抜け落ちる——原因は片付けを処理の続きとして書いていたことでした。Claude CodeのSessionEndフックへ一時ファイル削除とログ記録を寄せる方法を、4サイト運用で実際に移した内容、つまずいた点と回避策、発火確認の手順とともにまとめました。
Claude Code2026-08-16
Todo ツールが既定オフになった Claude Code で、多段作業の進捗をどう追うか
Claude Code v2.1.233 以降、新しいモデルでは TodoWrite と Task 系ツールが既定で読み込まれません。環境変数で戻す前に確かめるべき3つの分岐と、チェックリストの代わりに置いた作業台帳の実装、並列実行で台帳が壊れた境界の実測結果をまとめます。
Claude Code2026-07-30
作業ルートを途中で足したとき、無視規則と deny はどこまで届くのか — DirectoryAdded で境界を測り直す
セッション途中で作業ルートを追加すると、無視規則も deny パターンもそのままでは新しいルートに届きません。git check-ignore と照合器の比較で境界を実測し、DirectoryAdded から呼ぶ差分監査スクリプトの実行結果まで記録しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →