◉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」の承認が毎回出るのは、設定の抜けではなく仕様でした
記事一覧/Cowork
◈ Cowork/2026-09-08上級

毒入りサンプルを置くまで、無人の検査は一度も落ちていませんでした

無人スケジュールで回している検査が、ログ整形のパイプ一本で終了コードを失っていました。消える経路を手元で測って切り分け、検査自身を検査する小さなハーネスまで組みます。

cowork16無人運用9シェル3品質ゲート7自動化87

✦ プレミアム記事

三週間ぶんの実行記録を、日付順にまとめて読み返しておりました。どの日も緑でした。失敗の行が一つもありません。

喜ばしい並びのはずでした。ところが同じ検査を手元で素のまま呼んでみますと、違反が三件そのまま残っていたのです。手が止まりました。

検査そのものは正しく動いておりました。壊れていたのは、検査を呼び出している行の形のほうでした。ログを読みやすくしようとして足した | head -5 の一本が、失敗を持ち帰らなくしていたのです。

検査は、通ることではなく落ちることを先に確かめてから、無人に任せます。 その日以来、この一文を作業の前に置くようにしております。

緑だったのは、落ちられなくなっていたからでした

無人実行の記録は、たいてい「終了コードが 0 か否か」で色が決まります。ですから検査の中身がどれだけ厳密でも、呼び出し側が 0 を返してしまえば、記録の上では成功として積み上がっていきます。

厄介なのは、この壊れ方が出力を残すことです。ログには違反の行がきちんと書かれておりました。ただ、誰も落ちていないログを開いて読み返さないだけでした。無音で終わる不具合よりも、饒舌なまま気づかれない不具合のほうが、私には見つけにくかったのです。

私は個人開発で四つの技術サイトと二つの WordPress サイトを回しており、毎日の検査は Cowork のスケジュールに任せております。人が見ていない前提で組んだ仕組みだからこそ、「落ちる能力」そのものを疑う視点が抜けておりました。

終了コードが消える三つの経路

手元で一つずつ潰していきますと、消える場所は三つに絞れました。いずれも本番運用のスクリプトで自然に生まれる形で、書いている最中に手が止まる種類の落とし穴ではありません。

経路1 — パイプの右端が結果を上書きします

シェルはパイプラインの終了コードとして、いちばん右のコマンドの結果を返します。head も tee も、左側が何を返そうと自分は 0 で終わります。ログを整形する意図しかない一本が、判定そのものを差し替えてしまうのです。

経路2 — 関数内の local 宣言が代入結果を隠します

local out=$(cmd) と書きますと、$? に入るのは cmd の結果ではなく local 組み込みコマンドの結果になります。宣言は成功しますから、常に 0 です。関数へまとめた瞬間に生まれるので、動作を変えていないつもりの整理が原因になります。

経路3 — フォールバックの || が失敗を終わらせます

cmd || echo "failed" は「失敗したら知らせる」つもりの書き方ですが、echo が成功した時点で行全体は 0 になります。set -e を敷いていても、この行では止まりません。

どれも読みやすさや親切心から足したものでした。壊す意図のない一文字が、検査を無力にしていたのだと気づいたときは、しばらく言葉が出ませんでした。

✦

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

この記事の続きを読む

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

この記事で得られること
✦無人で走らせている検査が本当に落ちられる状態にあるかを、その日のうちに確かめられるようになる
✦パイプ・tee・local・フォールバックのどこで終了コードが消えるかを、自分のスクリプトの中から見つけ出せるようになる
✦違反を見逃したまま緑の記録が何週間も積み上がる事故を、40行ほどのハーネスを常設して未然に止められるようになる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ Cowork2026-10-08
毎回読ませる指示ファイルを半分にした夜、削る前に3つの引き出しへ分けました
指示ファイルが長くなるほど、書いたはずの決まりごとが守られなくなります。毎回読ませる分を半分にするため、残す・移す・捨てるの3つに分けた基準と、見出しごとの大きさを測る小さなスクリプトをまとめます。
◈ Cowork2026-09-18
Cowork と Claude Code のどちらに置くかを、承認の挟まり方で決めています
同じ Claude が動く Cowork と Claude Code を、機能の比較ではなく「途中で人の承認が挟まってよいか」で置き分けている基準と、無人の面に残す書き方を実例つきでお伝えします。
◈ Cowork2026-09-16
定期タスクが動く日と動かない日があったのは、フォルダを1つ指定していたからでした
Cowork の定期タスクは既定でリモート実行ですが、手元のファイルやアプリを必要とした瞬間に端末実行へ切り替わります。作成画面の最後の一項目が実行場所を決めている仕組みと、タスクを作る前に決めておきたい三つの問いを書き残します。