◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-05-29上級

完了条件を1行で渡してClaude Codeを自走させる — 4サイト記事生成パイプラインの設計と実装

Lab 4サイトで稼働している記事生成パイプラインの内部設計を、E2E駆動の完了条件と5回ループ上限を軸に整理しました。article_gate.py の合否を Done-when として渡すことで、Claude Code を毎日16本の記事生成で安定運用しています。

Claude Code265E2E自律エージェント4スラッシュコマンド品質ゲート7パイプライン3個人開発130

✦ プレミアム記事

2014年に個人開発でアプリ公開を始めて12年、累計5,000万ダウンロードを超えた壁紙・浮世絵アプリの運営と並行して、4つの AI 技術ブログ(Claude Lab・Gemini Lab・Antigravity Lab・Rork Lab)を運営しています。記事は1日合計16本を Claude Code の自律実行で公開しており、停止せず3週間以上動かし続けた経験から、E2E 駆動で AI に作業を任せる設計を書き残します。

なぜ「実装した」と「動いた」を分けるのか

最初の2ヶ月は、スケジュールタスクのプロンプトに「記事を1本書いて push してください」とだけ書いていました。これで動くには動くのですが、3つの問題が起きました。

ひとつめは、Claude Code が「書きました、push しました」と返してくる一方で、サイトの記事一覧に新しい記事が表示されないケースが月に2、3回ありました。原因はビルド時の generate-content.mjs が新規 MDX を拾えていないことでした。push までは確かに完了しているのですが、デプロイ後の挙動を確認しない限り「動いた」とは言えない、という Slack Bot の検証と同じ構造です。

ふたつめは、文体やテンプレ表現が時間とともに少しずつ崩れていく現象でした。最初は廣川本人の声に近かった文章が、半年経つと「いかがでしょう」というテンプレ調の締めや、まどろっこしい AI 解説調の冒頭に戻っていきました。これは Claude Code の問題ではなく、私が完了条件を曖昧に書いていたためです。「良い記事を書いてください」では、何をもって良いかが決まらないため、Claude Code は無難なテンプレへ収束していきます。

みっつめは、Helpful Content System の動向を機械検証なしで追えなかったことでした。後述する article_gate.py を入れる前は、YMYL に踏み込んだ表現が混入したり、AdMob の収益数値を誤って書いてしまったり、そういう問題を人間が後から検出するしかありませんでした。

これらは別々の問題に見えますが、根っこはひとつで「完了条件を機械的に判定できる形で渡していなかった」ということでした。

完了条件を1行に圧縮する

Codex の /goal コマンドは、目的とともに verifiable end state(検証可能な完了状態)を渡すことで、AI が自分で完了判定できるようにする発想です。Zenn のカンリーテックブログさんが書かれていた /e2e-dev も、<発話> → <期待応答> という1行で機械判定可能な完了条件を AI に渡す設計でした。

私は Lab パイプラインの完了条件を、以下の1行に圧縮しています。

article_gate.py が exit 0 を返し、JA/EN の MDX 件数が一致し、premium 記事は highlights ≥ 3 と実用性シグナル ≥ 3 を満たす

これだけだと抽象的なので、article_gate.py 側で具体化しました。article_gate.py は Python 製の単体スクリプトで、JA/EN の MDX ファイルパスを引数に取り、以下のチェックを機械的に走らせます。

  • テンプレ導入文(この記事では 等17パターン)を検出したら違反
  • テンプレ締め(いかがでしたか 等7パターン)を検出したら違反
  • AI 解説調マーカー(することができます 等9パターン)が3回以上で違反
  • 常体(である だった 等)を1回でも検出したら違反
  • 裸URL(コードブロック外)を1つでも検出したら違反
  • premium 記事は本文 2,000字以上(サニティフロア)
  • premium 記事は実用性シグナル(動くコードブロック・具体金額・番号付き手順・ハマりどころ・推奨判断・ドメインメトリクス)のうち3種類以上
  • premium 記事は frontmatter に highlights が3項目以上
  • パーソナライズ証拠(廣川 2014年 5,000万 17冠 AdMob 等)を本文に2回以上

スケジュールタスクのプロンプトには、article_gate.py の合否を「push 前の必須ゲート」として明記しています。これで Claude Code は「書いた」で止まらず、「ゲートを通った」までを完了とみなすようになりました。

✦

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

この記事の続きを読む

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

この記事で得られること
✦article_gate.py の合否を Done-when として Claude Code に渡し、4サイト × 1日4本 = 16本の記事生成を毎日無人で回す具体実装
✦5回ループ上限と『ベースライン確認 → ギャップ分析 → 再生成』の制御フロー、再生成1回あたりの平均約7分というメトリクス
✦Codex /goal の Goal / Context / Constraints / Done-when 構造を Claude Code のスケジュールタスクに落とし込む書き換えテンプレート
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⟐ Claude Code2026-10-12
SPM に移したら、起動した瞬間にアプリが落ちるようになりました — dyld の一行を Claude Code と読み解いた記録
CocoaPods から Swift Package Manager へ移した直後、ビルドは通るのに起動した瞬間に落ちました。dyld の一行から原因を切り分け、直し方と確認コマンドまでをまとめます。
⟐ Claude Code2026-09-20
Pro を払っているのに Console に請求が立っていたとき、私が最初に見た一行
サブスクリプションと API の従量は別会計で、Claude Code はそのどちらでも動きます。どちらが選ばれているかを決めるのは優先順位で、ログインはその最下段です。status の読み方と、無人実行だけが別の答えを返す理由を書き残します。
⟐ Claude Code2026-09-10
plugin.json を1枚置くと、スキルの棚がまとめて外せる単位になります
スキルを用途ごとに色分けしたら、毎日使う一群は全体の5パーセントしかありませんでした。.claude-plugin/plugin.json を1枚置いてフォルダをプラグインに変え、その日に使わない棚をグループごと外せるようにするまでの手順と、途中で二度つまずいた読み込みの規則を書き残します。