CLAUDE LABEN
BUDGET — Claude Managed Agents のセッションに支出の上限を置けるようになりました。上限に達すると新しいモデルリクエストを始めず、budget_reached という stop reason で止まりますRESUME — 予算を変更するか外せばセッションは再開します。デプロイメントにも同じ予算を設定できますが、適用されるのはそこから始まる各セッション単位ですGEO — inference_geo が加わりました。エージェント作成時に model オブジェクトの中で指定するか、単一セッションだけ上書きできます。値は us か global の2つですSKILLS — Managed Agents のセッションが GitHub リポジトリをマウントすると、ルートの .claude/skills にあるスキルが開始時に自動で検出されますTRADEOFF — 便利さと文脈コストは同じ天秤に乗ります。読み込むスキルが増えれば、/skill-doctor が示す毎ターンの消費も増えることになりますCLI — Claude Code は9月6日の v2.1.263 以降、新しい版の確認が取れていません。版番号は飛ぶので公式チェンジログと CHANGELOG.md の両方で突き合わせてくださいBUDGET — Claude Managed Agents のセッションに支出の上限を置けるようになりました。上限に達すると新しいモデルリクエストを始めず、budget_reached という stop reason で止まりますRESUME — 予算を変更するか外せばセッションは再開します。デプロイメントにも同じ予算を設定できますが、適用されるのはそこから始まる各セッション単位ですGEO — inference_geo が加わりました。エージェント作成時に model オブジェクトの中で指定するか、単一セッションだけ上書きできます。値は us か global の2つですSKILLS — Managed Agents のセッションが GitHub リポジトリをマウントすると、ルートの .claude/skills にあるスキルが開始時に自動で検出されますTRADEOFF — 便利さと文脈コストは同じ天秤に乗ります。読み込むスキルが増えれば、/skill-doctor が示す毎ターンの消費も増えることになりますCLI — Claude Code は9月6日の v2.1.263 以降、新しい版の確認が取れていません。版番号は飛ぶので公式チェンジログと CHANGELOG.md の両方で突き合わせてください
記事一覧/Cowork
Cowork/2026-09-08上級

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

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

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

プレミアム記事

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この記事の続きを読む

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

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

この記事を購入する

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

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

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

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

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

関連記事

Cowork2026-04-15
Cowork × Python データ分析自動化:pandas・Matplotlib で週次レポートを自動生成する実践パイプライン
CoworkのスケジュールタスクとPythonを組み合わせて、データ分析レポートを完全自動化する方法を解説します。pandas・Matplotlib・Google Sheets連携まで実務に直結する実装パターンを体系的に解説。
Cowork2026-08-29
連携フォルダに置いたロックが、二度目の無人実行を締め出すまで
クラウド同期の連携フォルダでは作成も改名も通るのに、削除だけが拒まれます。そこへ二重起動防止のロックを置いた結果、二度目以降の無人実行が永久に見送られました。三方式の実測と、ロックの置き場所を分ける実装をまとめます。
Cowork2026-08-23
コネクタが使えない朝に、待つのか人に返すのかを分ける三つの状態
無人実行でコネクタに届かないとき、原因は起動途中・未認証・恒久欠落の三つに分かれます。それぞれ正しい対処が正反対になる理由と、待機予算を切り分ける判定器の実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます