CLAUDE LABEN
VERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になりますVERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になります
記事一覧/Claude Code
Claude Code/2026-06-19上級

スケジュール生成が無音で不発に終わったことを、外側から気づく仕組み

exit 0 で終わったのに成果物がゼロだった——そんな無音の不発を、ジョブ自身のログではなく外部のハートビート台帳と地の事実から検知する設計を、個人開発で複数サイトを自動運用している立場からまとめました。

Claude Code217automation54scheduled tasksobservability15reliability14

プレミアム記事

ある朝、いつものように更新ログを開いたら、前夜に走るはずだった生成ジョブの行が一つだけ抜けていました。エラーログには何も残っていません。終了コードを確認しても 0 です。つまり「成功した」ことになっているのに、記事は一本も増えていない。git の履歴にも、その時刻のコミットがありません。

この「成功したのに何も生まれていない」状態が、いちばん厄介でした。落ちてくれたほうがまだ気づけます。静かに不発に終わり、しかも本人は成功したつもりでいる。個人開発で複数のサイトを夜間に順番に処理していると、こうした無音の不発がたまに混ざります。今日は、それを外側から気づくための仕組みを書いておきます。

「成功」と「成果」は別物だという前提に立つ

私たちはつい、終了コードを成果の証明だと思ってしまいます。けれど exit 0 が保証するのは「最後のコマンドがエラーを返さなかった」ことだけです。途中で生成対象が見つからず、何も作らずに正常終了する経路は、いくらでもあります。

私の場合、原因はだいたい次のどれかでした。参照データの cat が誤ったパスを叩いて空を返し、題材が決まらないまま静かに抜けたこと。ディスクが詰まっていて clone が途中で諦め、それでも後続が形だけ走ったこと。モデルの一時停止で生成が空振りし、push する中身が無かったこと。どれも個別のバグではなく、「不発でも成功扱いになる」という同じ構造を共有しています。

ですから監視の目標は「ジョブが落ちたか」ではありません。「期待した成果物が、本当に生まれたか」です。この一点に絞ると、設計はずいぶん素直になります。

なぜジョブ自身のログを信用できないのか

最初に手を出したくなるのは、ジョブの最後に「完了しました」とログを書くことです。私もそうしました。けれど、これは効きません。

無音の不発が起きるのは、たいてい本流から外れた経路を通ったときです。そして「完了ログを書く」処理は、本流の末尾に置かれています。つまり、ログを取りこぼす状況と、成果物を取りこぼす状況は、同じ根を持っています。失敗したときに限って、失敗を知らせる行も書かれない。自己申告は、いちばん必要な瞬間に黙るのです。

この気づきが設計の出発点になりました。観測する主体を、ジョブの外に出す。ジョブが自分について語る言葉ではなく、ジョブとは独立した第三者が見える事実だけを根拠にする。そう決めると、何を記録すべきかが見えてきます。

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

この記事の続きを読む

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

この記事で得られること
exit 0 でも成果がゼロになる無音の不発を、git show で打刻する JSONL ハートビート台帳で記録する方法
「不在こそが信号」というデッドマンズスイッチの考え方と、期待集合 ⊆ 観測集合を曜日別に照合する Python コード
TZ=Asia/Tokyo で揃える運用と、3週間で無音不発2件・空打ち1件を平均15分で原因特定した実測
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-07-14
push先がいつの間にか一つ増えていた — /commit-push-pr が origin 以外のリモートへも押し始めた変更に、許可リストで蓋をする
7月14日の更新で /commit-push-pr が origin に加えて設定済みの push リモートへも自動で押すようになりました。便利な一方、ミラーやバックアップ用の第二リモートを持つ環境では、意図しない push が静かに増えます。どのリモートへ押し得るかを棚卸しし、許可リスト外の push を pre-push フックで止め、無人実行でも安全に回す設計を実装込みで整理しました。
Claude Code2026-07-10
PreCompact と SessionEnd で長時間セッションの決定事項を引き継ぐ
自動コンパクションで消えるのは会話ではなく「なぜそう決めたか」です。PreCompact / SessionEnd / SessionStart の3フックで決定ログを外部ファイルへ退避し、次のセッションへ確実に手渡す実装を、動くコードと実測値つきで解説します。
Claude Code2026-07-07
検知はできても、鳴りすぎて気づけなくなった — 個人運用のアラートを一通の『起こす価値のある報せ』に絞るまで
無音の不発を検知できるようにした途端、今度は通知が鳴りすぎて麻痺しました。事象ではなく行動を単位にアラートを畳み、ヒステリシスと静音時間、段階的エスカレーションで『起こす価値のある報せ』だけを残すまでの設計メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →