CLAUDE LABEN
CODE — Claude Codeに大型の品質・信頼性アップデート。/rewindでの巻き戻し、MCPレジリエンス向上、OAuthハンドリングの安定化が入りましたCODE — ストリーミングと長時間セッション中のCPU・メモリ使用量が削減され、長く回す自動運用が安定しますADMIN — 組織向けモデル制限が追加され、管理者が利用可能なモデルを制御できるようになりましたMCP — 構造化出力・リモートMCP・セッション再開(resume)の信頼性が向上しましたMODEL — Claude Fable 5が一般提供。100万トークン文脈・常時アダプティブ思考・128K出力が特徴ですLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますCODE — Claude Codeに大型の品質・信頼性アップデート。/rewindでの巻き戻し、MCPレジリエンス向上、OAuthハンドリングの安定化が入りましたCODE — ストリーミングと長時間セッション中のCPU・メモリ使用量が削減され、長く回す自動運用が安定しますADMIN — 組織向けモデル制限が追加され、管理者が利用可能なモデルを制御できるようになりましたMCP — 構造化出力・リモートMCP・セッション再開(resume)の信頼性が向上しましたMODEL — Claude Fable 5が一般提供。100万トークン文脈・常時アダプティブ思考・128K出力が特徴ですLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられます
記事一覧/Cowork
Cowork/2026-06-27上級

「成功」と記録されたのに成果がゼロだった — Cowork スケジュールタスクの無音失敗を終了前アサーションで止める

Cowork のスケジュールタスクが exit 0 で終わったのに成果物が一つも生まれていない。終了コードだけを信じると見逃すこの無音失敗を、完了条件をアサーションに落として証拠ログとともに赤くする設計をまとめます。

cowork9scheduled-task2automation44reliability8

プレミアム記事

定期実行しているはずの処理が、ログ上はずっと「SUCCESS」なのに、出力フォルダを開くと先週から一つもファイルが増えていない——個人開発で複数の Cowork スケジュールタスクを無人で回していると、この種の事故に必ず一度はぶつかります。私自身、ある朝にまとめてログを見返したとき、三日連続で「成功」と記録された定期処理が、実際には一行も書き込めていなかったことに気づいて背筋が冷えました。

厄介なのは、これがエラーで止まっていないことです。例外は飛んでいない。終了コードは 0。スケジューラの履歴も緑色。それでも成果物はゼロ。ここでは、この「無音失敗(silent success)」を終了コード任せにせず、完了条件そのものをアサーションに落として赤くする設計をまとめます。

終了コードは「成果が出たこと」を保証しない

私たちは無意識に「exit 0 = うまくいった」と読み替えています。けれど終了コードが保証するのは「最後に走ったコマンドが 0 を返した」ことだけで、「本来やるべき仕事が完了した」ことではありません。この二つはまったく別の命題です。

無音失敗が生まれる典型的な経路は、だいたい次の三つに集約されます。

経路何が起きるかなぜ exit 0 のままか
書き込み先のすれ違いファイルを生成したつもりが、古い一時パスや存在しないディレクトリに書いていたcat > file 自体は成功する。中身が意図した場所に無いだけ
前提データの空振り参照すべき入力ファイルのパスを間違え、空文字列を元に処理が進むcat 間違ったパス はエラーにならず空を返す。後続も「空に対する正常処理」
コミットの不成立git の identity 未設定などで commit が無言で成立せず、push は「最新です」で緑になるpush する差分が無いので push 自体は成功扱い

どれも共通しているのは、個々のコマンドは正直に 0 を返しているという点です。嘘をついているコマンドは一つもありません。にもかかわらず全体としては失敗している。だからこそ、終了コードを上から眺めているだけでは永遠に気づけないのです。

私が最初にこれを踏んだのは、git の identity を設定し忘れたクローン直後のリポジトリでした。git commit は警告だけ出して実質何もせず、git push は「Everything up-to-date」と返してくる。スケジューラの履歴は三日間きれいな緑のまま、リモートには一行も増えていませんでした。

完了条件を言葉で書き出す

無音失敗を潰す第一歩は、コードを書くことではありません。「この処理が成功したと言える状態」を具体的な観測可能事実として言語化することです。ここが曖昧なままだと、何をアサートすればいいのかも決まりません。

たとえば「生成物をリポジトリに反映する」定期処理なら、完了条件は次のように分解できます。

  1. 出力ファイルが実際に存在し、サイズが下限を超えていること
  2. 期待する件数と実ファイル数が一致していること(日英セットなら左右が揃っている)
  3. ローカルのコミット SHA が、push 前の値から変化していること
  4. リモートの SHA とローカルの SHA が一致していること

ポイントは、どれも「やったつもり」ではなく外から確かめられる事実だということです。「commit した」ではなく「SHA が変わった」。「ファイルを書いた」ではなく「そのパスに下限サイズ以上のファイルがある」。この言い換えができれば、アサーションは自然と書けます。

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

この記事の続きを読む

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

この記事で得られること
exit 0 を信じて放置していた定期処理が、実は何も生み出していなかった——その無音失敗を機械的に検知できるようになる
完了条件(Definition of Done)を終了前アサーションに落とし、失敗時は証拠ログを残して非ゼロ終了する再利用可能なハーネスを手に入れられる
二重生成・部分成功・空振り成功という三つの厄介な状態を、冪等キーと事後検証で切り分けて運用に組み込める
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Cowork2026-05-04
Cowork スケジュールタスクが黙って止まる理由と、自動で立ち直る仕組みの作り方
Coworkのスケジュールタスクが途中で止まる原因を体系的に整理し、許可ダイアログ問題・ファイルツール制限・ディスク不足など実運用で頻発する障害パターンとその復旧方法を解説します。
Cowork2026-04-29
Cowork mode の Artifacts で「毎朝開く1ページ」を設計する — MCP連携で生きたダッシュボードを作る方法
Cowork mode のArtifactsは、再現可能な情報源を持つ「生きたページ」を生み出します。MCP連携で毎朝の確認業務を1クリックに集約する設計手順と落とし穴を、実例付きで解説します。
Cowork2026-03-27
Cowork スキル×スケジュール活用: 業務自動化の設計パターンと実践テクニック
Coworkのスキル機能とスケジュール実行を組み合わせた高度な業務自動化パターンを解説。営業レポート・日報集約・KPI追跡など複数のユースケースを設計パターンとして体系化し、MCPコネクタの効果的な活用法も紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →