CLAUDE LABEN
APPLY — ant CLI v1.30.0 に ant apply が入りました。エージェント・環境・スキル・メモリストア・デプロイメントを、リポジトリのファイルから作成・更新できますLOCKFILE — 書き出される claude-lock.json は必ずコミットしてください。忘れると、実行のたびに同じリソースが新しく作られていきますPLAN — ant apply は適用の前に計画を表示し、承認を挟みます。CI で無人実行するなら、この承認をどう扱うかを先に決めておくことですPRICING — Claude Sonnet 5 の 3 ドル / 15 ドルへの値上げは実施されていません。導入価格の 2 ドル / 10 ドルがそのまま標準価格になりましたSOURCE — 価格と版番号は二次ニュースに誤りが混じります。platform.claude.com のリリースノートで裏を取ってから書くようにしていますBETA — Agent Skills と Skills API はベータを抜け、skills-2025-10-02 ヘッダが不要になりました。Files API はヘッダの有無でレスポンス形式が変わる点に注意ですAPPLY — ant CLI v1.30.0 に ant apply が入りました。エージェント・環境・スキル・メモリストア・デプロイメントを、リポジトリのファイルから作成・更新できますLOCKFILE — 書き出される claude-lock.json は必ずコミットしてください。忘れると、実行のたびに同じリソースが新しく作られていきますPLAN — ant apply は適用の前に計画を表示し、承認を挟みます。CI で無人実行するなら、この承認をどう扱うかを先に決めておくことですPRICING — Claude Sonnet 5 の 3 ドル / 15 ドルへの値上げは実施されていません。導入価格の 2 ドル / 10 ドルがそのまま標準価格になりましたSOURCE — 価格と版番号は二次ニュースに誤りが混じります。platform.claude.com のリリースノートで裏を取ってから書くようにしていますBETA — Agent Skills と Skills API はベータを抜け、skills-2025-10-02 ヘッダが不要になりました。Files API はヘッダの有無でレスポンス形式が変わる点に注意です
記事一覧/Claude Code
Claude Code/2026-06-18上級

SessionEnd フックに後片付けとログ記録を寄せる

自動投稿の後片付けだけが月に数回抜け落ちる——原因は片付けを処理の続きとして書いていたことでした。Claude CodeのSessionEndフックへ一時ファイル削除とログ記録を寄せる方法を、4サイト運用で実際に移した内容、つまずいた点と回避策、発火確認の手順とともにまとめました。

Claude Code250hooks18SessionEndautomation55CI/CD19

プレミアム記事

毎晩動かしている自動投稿の処理が、記事を push したあとに .next の削除とログの追記をやり残したまま終わることが、月に数回ありました。生成と push までは確実に走るのに、最後の後片付けだけが抜け落ちる。原因はいつも同じで、後片付けを「本文の処理の続き」として書いていたために、途中で別の分岐に入ると最後まで到達しないことがあったのです。

2026年6月18日の更新で Claude Code にポストセッションフック(SessionEnd)が加わりました。セッションが終わったあとに必ず走るフックです。これは、まさに私が「本文の最後に置いていたから取りこぼしていた処理」を、構造として終了時に保証してくれる仕組みでした。個人開発で複数のサイトを順番に処理している立場から、実際に何を移し、どこでつまずいたかを書いておきます。

後片付けを「処理の続き」に書くと、なぜ取りこぼすのか

セッション本体の処理は、エラーや早期 return、条件分岐で経路が枝分かれします。後片付けをその末尾に置くと、本流を通ったときしか実行されません。シェルスクリプトの trap や、プログラミング言語の finally で守る発想と同じことを、Claude Code のセッションに対してやりたい——それが SessionEnd フックの位置づけです。

私の場合、取りこぼしていたのは次の3つでした。一時ビルド成果物(.next)の削除、その日の更新ログの追記、そして次回のためのディスク空き容量の確認です。どれも記事の品質には関係しませんが、放っておくとディスクが詰まり、翌日のセッションが起動すらしなくなります。

SessionEnd フックの基本形

フックは settings.jsonhooks に、イベント名をキーとして登録します。SessionEnd はセッションが閉じる直前に発火します。

{
  "hooks": {
    "SessionEnd": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/on-session-end.sh"
          }
        ]
      }
    ]
  }
}

ここで一つ覚えておきたいのは、SessionEnd フックの終了コードや標準出力は、すでに終わろうとしているセッションの結論を変えないという点です。Stop フックのように処理をブロックして続行させる用途ではなく、あくまで「終わったあとの確実な一仕事」に向いています。私は最初これを Stop フックと混同して、後片付けスクリプトの中で次の処理を呼び戻そうとして失敗しました。SessionEnd は引き返せない場所だと割り切るのが正解です。

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

この記事の続きを読む

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

この記事で得られること
settings.json への SessionEnd フック登録例と、終了コードが後続処理を変えない理由
.next 削除・ログ追記・空き容量チェックをフックへ移す bash の具体例
set -e で後片付けが途中終了した実例と、set -uo pipefail での回避策
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-07-10
PreCompact と SessionEnd で長時間セッションの決定事項を引き継ぐ
自動コンパクションで消えるのは会話ではなく「なぜそう決めたか」です。PreCompact / SessionEnd / SessionStart の3フックで決定ログを外部ファイルへ退避し、次のセッションへ確実に手渡す実装を、動くコードと実測値つきで解説します。
Claude Code2026-09-02
モデル切り替えの記録と歯止めを、フック2本で作る
PreModelSwitch と PostModelSwitch を使い、無人実行中のモデル切り替えを記録するフックと、約束していない切り替えだけを止めるフックをゼロから作ります。実測値つきの手順です。
Claude Code2026-08-28
検証スクリプトの出力を、そのまま hook から返してはいけません
hook に足した検査は正しく動いていたのに、会話のほうが先に容量を使い果たしていました。833ファイルで58バイトの検査と42KBの検査を実測で並べ、出力が会話に届く経路と、予算を機械的に守らせるラッパーの書き方をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます