
Claude Code の作業を終わるたびに Notion へ記録させたら、二重登録・取りこぼし・自己増殖の穴が1日で3つ見つかった
Claude Code で作業を終えるたびに、何をしたかを Notion の業務ログに1件ずつ自動で書かせている。翌朝、その業務ログから日報を作る。
2026-08-21 の1日で、3つの穴が見つかった。同じ作業が2件登録されうる経路と、認証が切れている間の作業が二度と拾われなくなる経路は、別の担当の検収で指摘された。記録のために呼んだ Claude の会話が次の記録の対象になって増えていく件は、実際に19件たまっていた。5日後には、記録係として呼んだ Claude が、自分宛ての決まりを読んで登録を断り、8件が漏れた。この記事では、4つの経緯と直し方を書く。
Claude Code の hook から、もう1つ Claude を呼んで後処理をさせている人向け。

仕組み:hook は情報を置いてすぐ終わり、本処理を裏で回す
会話が終わると、SessionEnd の hook が呼ばれる。hook の中では時間のかかることをしない。本体の Claude Code が先に終わると、hook も途中で打ち切られるためで、hook(発火役)の仕事は3つだけにした。
二重に起動していないかを確かめる
受け取った情報(作業フォルダ、会話の記録ファイルの場所)を一時ファイルに置く
本処理を裏に切り離して起動し、すぐ終わる
本処理は、会話の記録を読み、claude -p に「記録係として業務ログに1件登録する」指示と会話の中身を渡す。使える道具は Notion の連携だけに絞っている。
CMD=(claude -p "$(cat "$PROMPT_FILE")" --allowedTools "$NOTION_TOOLS" ...)
WORKLOG_RUNNING=1 "${CMD[@]}" > "$OUT_FILE" 2> "$ERR_FILE"一時ファイルを作るところにも、1つ穴があった。macOS の mktemp は末尾の X しか置き換えないので、worklog-XXXXXX.json のように拡張子を付けると名前が固定になり、2つの会話が同時に終わると後の方が失敗する形だった。いまは拡張子を付けずに作っている。
特定商取引法に基づく表記:https://note.com/claire_ai/n/n265463552ed6