CLAUDE LABEN
CLI — Claude Code v2.1.259 が9月2日に出ました。組織運用・無人実行・権限まわりの修正が集中した、今週いちばん実務に効くリリースだと感じていますMCP — 組織が HTTP/SSE の MCP サーバーを全ユーザーへ配布できる managedMcpServers が追加されました。同時に allowedMcpServers の役割が変わり、管理配布のサーバーは許可リストで弾けなくなっていますHEADLESS — --permission-prompts none が加わりました。確認が要る操作は自動的に拒否され、auto モードを含む権限判断はそのまま働きます。無人で走らせる自動化に直接効きますSECURITY — Bash の Read() 拒否ルールに抜けがありました。--ignore-revs-file=.env のようにオプション値で渡したファイルや、cd DIR && cat FILE の複合が対象外だったのです。塞がれていますSLACK — Claude Tag がメッセージ単位の判定をやめ、チャンネル全体の文脈から判断する方式になりました。軽量分類器は撤去され、割り込まない判断が約30%改善していますLEARN — Claude Academy が公開されています。Anthropic が自社の新入社員教育に使う 4D AI Fluency Framework を土台にした無料の学習ハブで、修了状況は Claude のプロフィールに記録されますCLI — Claude Code v2.1.259 が9月2日に出ました。組織運用・無人実行・権限まわりの修正が集中した、今週いちばん実務に効くリリースだと感じていますMCP — 組織が HTTP/SSE の MCP サーバーを全ユーザーへ配布できる managedMcpServers が追加されました。同時に allowedMcpServers の役割が変わり、管理配布のサーバーは許可リストで弾けなくなっていますHEADLESS — --permission-prompts none が加わりました。確認が要る操作は自動的に拒否され、auto モードを含む権限判断はそのまま働きます。無人で走らせる自動化に直接効きますSECURITY — Bash の Read() 拒否ルールに抜けがありました。--ignore-revs-file=.env のようにオプション値で渡したファイルや、cd DIR && cat FILE の複合が対象外だったのです。塞がれていますSLACK — Claude Tag がメッセージ単位の判定をやめ、チャンネル全体の文脈から判断する方式になりました。軽量分類器は撤去され、割り込まない判断が約30%改善していますLEARN — Claude Academy が公開されています。Anthropic が自社の新入社員教育に使う 4D AI Fluency Framework を土台にした無料の学習ハブで、修了状況は Claude のプロフィールに記録されます
記事一覧/Claude Code
Claude Code/2026-07-10上級

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

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

Claude Code248hooks18context6automation55PreCompact

プレミアム記事

深夜 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-09-02
モデル切り替えの記録と歯止めを、フック2本で作る
PreModelSwitch と PostModelSwitch を使い、無人実行中のモデル切り替えを記録するフックと、約束していない切り替えだけを止めるフックをゼロから作ります。実測値つきの手順です。
Claude Code2026-08-28
検証スクリプトの出力を、そのまま hook から返してはいけません
hook に足した検査スクリプトは正しく動いていたのに、会話のほうが先に容量を使い果たしていました。833ファイルを走査して58バイトしか返さない検査と、同じ対象で42KBを返す検査を実測で並べ、hook に出力予算を設ける設計をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →