CLAUDE LABEN
DESIGN — Claude Designが大型更新。デザインシステムの取り込み、キャンバスの直接編集、エクスポート形式の追加が入りましたCODE — Claude Designがローカルのコードベースを起点に動作し、生成した画面をClaude Codeへ受け渡して実装まで繋げられますFABLE — Mythosクラスの最新モデルFable 5が一般利用向けに調整され、Claude Code v2.1.170から使えるようになりましたFIX — ストリーム途中で接続が切れても部分応答を保持する改善が入り、長時間の自動処理でも応答が残りますSCROLL — フルスクリーン時のマウスホイール加速を無効化するwheelScrollAccelerationEnabled設定が追加されましたTIER — Claude DesignベータはPro・Max・Team・Enterpriseで利用できますDESIGN — Claude Designが大型更新。デザインシステムの取り込み、キャンバスの直接編集、エクスポート形式の追加が入りましたCODE — Claude Designがローカルのコードベースを起点に動作し、生成した画面をClaude Codeへ受け渡して実装まで繋げられますFABLE — Mythosクラスの最新モデルFable 5が一般利用向けに調整され、Claude Code v2.1.170から使えるようになりましたFIX — ストリーム途中で接続が切れても部分応答を保持する改善が入り、長時間の自動処理でも応答が残りますSCROLL — フルスクリーン時のマウスホイール加速を無効化するwheelScrollAccelerationEnabled設定が追加されましたTIER — Claude DesignベータはPro・Max・Team・Enterpriseで利用できます
記事一覧/Claude Code
Claude Code/2026-06-19上級

弾いたはずの記事が公開された — 品質ゲートと git push を同じ呼び出しにまとめた代償

無人運用の投稿パイプラインで、品質ゲートで弾いたはずの記事がそのまま公開されました。原因はゲートと git push を一つのシェル呼び出しに連結したことでした。終了コードが握りつぶされる仕組みと、公開マーカー方式で「通過を確認してからしか push しない」二段構えの実装を記録します。

Claude Code158自動化56運用設計4シェル2個人開発84

プレミアム記事

ある朝、ログを見返していて血の気が引きました。前夜に品質ゲートが「違反あり」で止めたはずの記事が、本番に公開されていたのです。ゲートのログには確かに 🛑 違反検出 と出ている。なのに同じ実行の最後で git push が走り、記事はサイトに並んでいました。

原因はゲートそのものではありませんでした。私自身が、検証と公開を一つのシェル呼び出しにまとめて書いていたことでした。個人開発で複数サイトの投稿を無人化していると、こうした「シェルの終了コードの解釈」がそのまま事故になります。同じ轍を踏まないために、何が起きていたのか、どう組み直したのかを残します。

同じ呼び出しにまとめた瞬間に何が起きたか

問題のタスク本体は、おおよそこう書かれていました。

python3 article_gate.py "$JA" "$EN"; git push origin main

一見、上から順に「ゲート → push」で安全に見えます。けれど ; は前のコマンドの成否を一切見ません。ゲートが終了コード 1 で落ちても、シェルは何事もなかったかのように次の git push を実行します。つまりこの一行は、最初から「ゲートの結果に関わらず必ず push する」という意味だったのです。

無人実行では人間が途中のログを見て止める瞬間がありません。; で繋いだ時点で、検証は「実行されるだけで、何も守っていない飾り」になっていました。

;&& の違いと、最終終了コードしか残らないこと

まず ;&& に替えるだけで、この事故の大半は防げます。

# 危険: ゲートが落ちても push する
python3 article_gate.py "$JA" "$EN"; git push origin main
 
# まし: ゲートが成功した時だけ push する
python3 article_gate.py "$JA" "$EN" && git push origin main

&& は左側が終了コード 0(成功)のときだけ右側を実行します。ここまでは多くの方がご存じだと思います。

落とし穴は、エージェントやスケジューラがこの一行を「ひとつのコマンド」として扱い、最後の終了コードしか手元に残らないことです。a && ba が失敗すれば全体は失敗扱いになりますが、a && ba が成功して b(push)が失敗したときと、そもそも a で止まったときを、ログを読まずに区別できません。「成功/失敗」の一値しか観測できない実行系では、検証の判断を外側が受け取れないまま不可逆操作まで一息で進んでしまいます。だからこそ私は、&& で繋ぐだけでは足りないと考えています。

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

この記事の続きを読む

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

この記事で得られること
検証コマンドと不可逆操作を同じ呼び出しに連結すると失敗が握りつぶされる仕組み(;・パイプ・コマンド置換・set -e の素通り)を、再現コードで切り分ける
set -euo pipefail と公開マーカー方式で「全ゲート通過を確認してからしか push しない」二段構えを組む実装
無人エージェント運用で『証拠を見てから不可逆操作』を強制する、検証と公開を別呼び出しに割る設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-06-17
予告された課金変更が直前で撤回されたとき、設定を一行も書き換えずに済ませる
発効するはずだった課金変更が当日に撤回されました。予告・発効・撤回のどの段階でもコードを触らずに済ませるため、プラットフォームの挙動を一箇所のフラグに集約し、実測から月額差分を出す設計を記録します。
Claude Code2026-06-17
課金変更が直前で撤回された日 — 慌てて組み替えないための可逆なパイプライン設計
6月15日に発効するはずだった課金変更が、直前に撤回されました。前日まで「本日発効」とログに書いていた立場から、headless 工程を慌てて組み替えずに済んだ理由と、撤回・延期に耐える可逆なパイプライン設計を、動くコードとともに記録します。
Claude Code2026-06-17
予告された課金変更が直前で保留された——切り替えを急がない自動運用の設計
6/15に発効するはずだった課金変更が当日に保留されました。告知日を信じてパイプラインを切り替えると、撤回時に二重で壊れます。実行時シグナルでカットオーバーを判断する設計を、実装コードとともに残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →