◉CLAUDE LABEN
●2.1.285 — Claude Code 2.1.285(9月29日)。CLAUDE_CODE_DISABLE_WEB_FETCH で WebFetch を止め、claude --desktop で今のディレクトリをデスクトップ版で開けます●SONNET5.5 — 2.1.284 で claude-sonnet-5-5 が API の既定 Sonnet に。1M コンテキスト、$2 / $10 per Mtok、キャッシュ読み取り $0.20●10/07 — Claude Desktop / Cowork の管理構成キー旧綴りの受付終了まで残り7日。締切後は fail-closed で読み込まれません●WINDOWS — 「デスクトップ版が再起動に失敗する」「常に最前面に居座る」という Windows の問いが Issue で続いています。設定より先に孤立プロセスを疑う話●NEW — 安定版の Claude Code には、二度の既定モデル交代がまだ届いていません●BING — 28日で bing 経由 1,055 セッション、4週連続増。読まれているのは課金トラブル・Academic プラン・Figma MCP・PowerShell の4系統●2.1.285 — Claude Code 2.1.285(9月29日)。CLAUDE_CODE_DISABLE_WEB_FETCH で WebFetch を止め、claude --desktop で今のディレクトリをデスクトップ版で開けます●SONNET5.5 — 2.1.284 で claude-sonnet-5-5 が API の既定 Sonnet に。1M コンテキスト、$2 / $10 per Mtok、キャッシュ読み取り $0.20●10/07 — Claude Desktop / Cowork の管理構成キー旧綴りの受付終了まで残り7日。締切後は fail-closed で読み込まれません●WINDOWS — 「デスクトップ版が再起動に失敗する」「常に最前面に居座る」という Windows の問いが Issue で続いています。設定より先に孤立プロセスを疑う話●NEW — 安定版の Claude Code には、二度の既定モデル交代がまだ届いていません●BING — 28日で bing 経由 1,055 セッション、4週連続増。読まれているのは課金トラブル・Academic プラン・Figma MCP・PowerShell の4系統
記事一覧/Cowork
◈ Cowork/2026-06-27上級

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

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

cowork15scheduled-task2automation55reliability15

✦ プレミアム記事

定期実行しているはずの処理が、ログ上はずっと「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/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ Cowork2026-08-23
コネクタが使えない朝に、待つのか人に返すのかを分ける三つの状態
無人実行でコネクタに届かないとき、原因は起動途中・未認証・恒久欠落の三つに分かれます。それぞれ正しい対処が正反対になる理由と、待機予算を切り分ける判定器の実装をまとめました。
◈ Cowork2026-07-05
Claudeが安全上の理由で応答を断ったとき、無人パイプラインは何を返すべきか
HTTPは200なのに、本文は「お応えできません」——安全上の理由でモデルが応答を断る第三の結末を、無人パイプラインにどう組み込むかを設計します。拒否とインフラエラーを混同しない判別、自動言い換えで押し通してはいけない理由、レビューキューへの退避までを実務からまとめます。
◈ Cowork2026-05-04
Cowork スケジュールタスクが黙って止まる理由と、自動で立ち直る仕組みの作り方
Coworkのスケジュールタスクが黙って止まる原因を、実測した終了コードとエラー文で切り分けます。safe.directory が失敗を遅らせる仕組み、書ける場所を先に決めるプリフライト、理由コード付きログまで扱います。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます