◉CLAUDE LABEN
●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした
記事一覧/Claude Code
⟐ Claude Code/2026-07-06上級

夜間ジョブのコミットが追えなくなった — Claude Code の可読なセッション名で無人実行に相関キーを通す

複数リポジトリで夜間ジョブを無人実行していると、翌朝のコミットがどの実行から生まれたのか分からなくなります。Claude Code の可読なセッション名を相関キーとして設計し、コミット・ログ・セッションを一本の糸でつなぐ実装を、実測値とともに共有します。

Claude Code262セッション管理7無人運用9個人開発130トレーサビリティ

✦ プレミアム記事

先週の朝、いつものように git のログを眺めていて、手が止まりました。ある壁紙アプリのリポジトリに、前夜のジョブが書いたはずの変更履歴が入っていて、そこに古いバージョン番号が紛れ込んでいたのです。

問題そのものは小さなものです。厄介だったのは「どの実行がこれを書いたのか」がまるで分からなかったことでした。私自身、いくつかの個人開発アプリのリポジトリに対して、依存更新・変更履歴の下書き・Crashlytics のクラッシュ要約・AdMob メディエーション設定の点検といった細かな作業を、深夜に Claude Code のヘッドレス実行でまとめて走らせています。多い夜は12セッション。セッションを識別する手がかりは不透明な UUID だけで、コミットメッセージにも実行の身元は残っていませんでした。

結局、ログのタイムスタンプとコミットの時刻を突き合わせて犯人の実行を特定するのに、15分ほどかかりました。原因の修正よりも、原因の実行を探すほうが長かったのです。

Claude Code に読みやすいセッション名が入ったことで、この状況は設計しなおせます。鍵は「名前を、意味を持った一本の糸にする」ことでした。

名前を相関キーにするという考え方

セッション名を単なる表示上の飾りとして扱うと、翌朝には何の助けにもなりません。私が変えたのは、名前を 相関キー(correlation key) として設計したことです。相関キーとは、あとから別々の記録同士を突き合わせるための、共通の見出しのことです。

私が採用したキーの形はこうです。

要素例役割
アプリ名wallpaper-zenどのリポジトリの作業か
タスク種別changelog-draft何をする実行か
JST 日付20260706いつの夜間バッチか
短いランダム値a1b2c3d4同分実行の衝突回避

つなぐと wallpaper-zen-changelog-draft-20260706-a1b2c3d4 になります。この一本の文字列を、セッション名・コミット・ログファイルの三か所すべてに同じ形で刻む。それだけで、どこか一点から残り二点へ辿れるようになります。追跡が考古学ではなく grep になる、という設計です。

実行ラッパーで相関キーを組み立てる

まず、夜間ジョブを1本起動するたびに相関キーを生成し、セッション名として渡すラッパーを用意します。

#!/usr/bin/env bash
# run-nightly.sh — 1つの夜間ジョブを可読な相関キー付きで実行する
set -euo pipefail
 
APP="$1"        # 例: wallpaper-zen
TASK="$2"       # 例: changelog-draft
 
# 相関キー = アプリ-タスク-JST日付-短いランダム値
# タイムゾーンは必ず明示する。素の date は UTC 基準で、深夜の実行だと前日にずれる
DATE_JST="$(TZ=Asia/Tokyo date +%Y%m%d)"
SHORT="$(head -c4 /dev/urandom | od -An -tx1 | tr -d ' \n')"
export CC_SESSION_NAME="${APP}-${TASK}-${DATE_JST}-${SHORT}"
 
LOG_DIR="$HOME/nightly-logs/${DATE_JST}"
mkdir -p "$LOG_DIR"
LOG="${LOG_DIR}/${CC_SESSION_NAME}.log"
 
echo "[$(TZ=Asia/Tokyo date +%H:%M:%S)] start ${CC_SESSION_NAME}" | tee -a "$LOG"
 
# Claude Code をヘッドレスで実行し、可読なセッション名としてこのキーを渡す。
# セッション名を指定できるオプションに CC_SESSION_NAME を渡すのが要点です。
# もしお使いのバージョンでセッション名を直接指定できなくても、
# 後述のコミットトレーラーとログ側にキーを刻めば相関は完成します。
claude -p "$(cat "prompts/${TASK}.md")" \
  --session-name "$CC_SESSION_NAME" \
  2>&1 | tee -a "$LOG"
 
echo "[$(TZ=Asia/Tokyo date +%H:%M:%S)] done ${CC_SESSION_NAME}" | tee -a "$LOG"

ここでの肝は二つあります。ひとつは、ログのファイル名そのものを相関キーにしていること。もうひとつは、CC_SESSION_NAME を環境変数として渡していることです。この環境変数が、次のコミットフックへの橋渡しになります。

✦

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

この記事の続きを読む

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

この記事で得られること
✦アプリ名・タスク・JST日付・短いランダム値からなる相関キーの設計と、素の date が引き起こす日付ずれの回避策
✦prepare-commit-msg フックでコミットにセッション名を刻み、コミットからログまで grep 1回で辿る trace スクリプト
✦追跡時間が約15分から20秒台へ短縮した実測と、キー衝突・タイムゾーンでつまずいた具体的な対処
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⟐ Claude Code2026-10-12
SPM に移したら、起動した瞬間にアプリが落ちるようになりました — dyld の一行を Claude Code と読み解いた記録
CocoaPods から Swift Package Manager へ移した直後、ビルドは通るのに起動した瞬間に落ちました。dyld の一行から原因を切り分け、直し方と確認コマンドまでをまとめます。
⟐ Claude Code2026-09-20
Pro を払っているのに Console に請求が立っていたとき、私が最初に見た一行
サブスクリプションと API の従量は別会計で、Claude Code はそのどちらでも動きます。どちらが選ばれているかを決めるのは優先順位で、ログインはその最下段です。status の読み方と、無人実行だけが別の答えを返す理由を書き残します。
⟐ Claude Code2026-09-10
plugin.json を1枚置くと、スキルの棚がまとめて外せる単位になります
スキルを用途ごとに色分けしたら、毎日使う一群は全体の5パーセントしかありませんでした。.claude-plugin/plugin.json を1枚置いてフォルダをプラグインに変え、その日に使わない棚をグループごと外せるようにするまでの手順と、途中で二度つまずいた読み込みの規則を書き残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます