◉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-25上級

Claude Code と GitHub Actions で 4 サイトの自動投稿パイプラインを 7 ヶ月運用して見えてきた品質ゲート設計

Claude Code とスケジュールタスクで Lab 4 サイトに毎日 16 本の記事を自動投稿してきた中で、Helpful Content System のインデックス崩壊を経験してから設計し直した品質ゲート、トークン管理、ロールバック手順を実装サンプル込みでまとめます。

claude-code132github-actions4自動化87ci-cd8ブログ運営品質ゲート7個人開発130

✦ プレミアム記事

7 ヶ月前、運営している Claude Lab のインデックス済みページが 1 週間で 3,500 → 95 まで吹き飛びました。原因は単純で、Claude Code に毎日記事を書かせ続けていたら、Google の Helpful Content System に「テンプレで生成された薄い記事の量産」と判定された、というよくある話です。

廣川政樹です。2014 年から個人開発で iOS/Android アプリ事業を続けていて、累計 5,000 万 DL ほど、現在は Lab 4 サイト(Claude/Gemini/Antigravity/Rork)と Blog 2 サイト(Lacrima/Mystery)を一人で並行運営しています。Claude Code とスケジュールタスクで毎日 16 本の自動投稿を回しながら、上のインデックス崩壊を経験して、品質ゲートを Python で実装し直しました。今は同じ崩壊を二度と起こさない構造に落ち着いています。

このノートでは、月 480 本を回しても運営者が寝ている間に勝手に止まる品質ゲート設計と、GitHub Actions・GitHub PAT・ディスク管理の運用知見を、現役で動いているコードと一緒にまとめます。「個人で複数サイトを並行運営したいけれど、AI 生成の質と量のバランスで悩んでいる」方向けです。

なぜ品質ゲートを後付けで実装する羽目になったか

最初の数ヶ月は、Claude Code に「毎日 4 本記事を生成して push してください」というスケジュールタスクを 4 サイト分組んで終わり、という単純な構成でした。各タスクの中身は、トピックを Claude が自律選定して、MDX を書いて、git push するだけ。当時の自分は「Claude は十分に賢いから、品質の自動検査は要らない」と思っていました。

3 ヶ月ほど回したあと、Google Search Console を開いて凍りました。Claude Lab の登録済みページが 1 週間で 3,500 → 95 まで落ちていました。クリックは月 2,500 → 200 まで急減、表示回数は 16 万 → 4.8 万。手動ペナルティの通知は来ていなかったので、Helpful Content System のアルゴリズム判定だと判断しました。

慌てて記事を読み返すと、確かに「この記事では〜について解説します」「いかがでしたか」「〜の決定版」のようなテンプレ表現が大量に混入していました。1 本ずつ見れば悪くないのですが、3 ヶ月分積み上がるとサイト全体が AI 生成テンプレ集に見えてしまう。Google の品質システムから見ても同じ印象だったのだと思います。

このときの教訓が今のパイプラインに通底しています。Claude が書いた記事を、Claude が判定して、Claude が push する という閉ループは、人間が後から見直さない限り徐々に品質が劣化します。間にもう一つ、機械的で逃げ場のないゲートを挟まないと崩れます。

全体構造 — 4 サイト × 1 日 4 本を寝ている間に回す

現在の構成はこんな形です。

┌─────────────────────────────────────────────────┐
│ Cowork スケジュールタスク (16 タスク, JST 02-17) │
│   - claudelab-premium-thu     02:00              │
│   - gemilab-premium-thu       02:45              │
│   - antigravitylab-premium    04:00              │
│   - rorklab-premium           04:45              │
│   ... (各サイト 4 本/日 = 16 本)                  │
└──────────────────┬──────────────────────────────┘
                   │ 各タスクが個別に Claude Code を起動
                   ▼
┌─────────────────────────────────────────────────┐
│ Claude Code (per task)                           │
│  1. SKILL.md 読込                                │
│  2. SEO データ + 既存記事から重複なしトピック選定 │
│  3. MDX (JA+EN) 生成                             │
│  4. article_gate.py に通す  ← 機械ゲート          │
│  5. 違反検出時は記事を捨てて再生成 (最大 3 回)    │
│  6. ja/en 件数一致を確認                          │
│  7. git push (永続リポジトリ /tmp/repos/{site}/)  │
└──────────────────┬──────────────────────────────┘
                   │ push をトリガー
                   ▼
┌─────────────────────────────────────────────────┐
│ Cloudflare Pages CI                              │
│  - prebuild: node generate-content.mjs            │
│    (MDX→JSON + 整合性チェック + 内部リンク検証) │
│  - build: next build                              │
│  - deploy: Cloudflare Workers                     │
└─────────────────────────────────────────────────┘

ポイントは 3 つです。(1) Claude Code は記事を作るだけでなく、自分が作った記事を捨てる判断もすること。(2) 品質ゲートは Python の独立スクリプト(article_gate.py)に切り出し、Claude のコンテキストとは別プロセスで判定すること。(3) 生成された記事の整合性検証は Cloudflare Pages の prebuild フックで generate-content.mjs がもう一度走ることで、push 後にもう一段ふるいにかけています。

「Claude が自分の出力を Claude に評価させる」のはバイアスがかかります。Python の re モジュールで黙々と検出するだけのスクリプトを間に置くと、Claude が良いと思って書いた記事でも違反になれば容赦なく弾かれます。この「逃げ場のなさ」が崩壊後のパイプラインを支えています。

✦

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

この記事の続きを読む

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

この記事で得られること
✦Claude Code と GitHub Actions だけで 4 サイト × 1 日 4 本の自動投稿パイプラインを個人運営する全体構造と、月 480 本投稿しても破綻しないロール設計が分かります
✦Helpful Content System で実際にインデックスが 3,500 → 95 まで崩壊した経験から逆算した、push 直前で違反を弾く Python 製品質ゲートの完全コードを取得できます
✦GitHub PAT のローテーション、ディスク不足時の自動退避、エラー時の自律リカバリまで含めた、夜間自動実行で人が寝ている間に動かしてもサイトを壊さない運用パターンを習得できます
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⟐ Claude Code2026-08-28
検証スクリプトの出力を、そのまま hook から返してはいけません
hook に足した検査は正しく動いていたのに、会話のほうが先に容量を使い果たしていました。833ファイルで58バイトの検査と42KBの検査を実測で並べ、出力が会話に届く経路と、予算を機械的に守らせるラッパーの書き方をまとめます。
⟐ Claude Code2026-08-25
空白ひとつで、80件の検査が0件になる — 一括処理を任せる前に置くガード
空白を含むフォルダ名の下で走らせた検査ループが、80件のうち1件も開いていませんでした。断片が実在パスに化ける仕組みを実測で切り分け、削除を伴うバッチに置く件数アサーションまで書き残します。
⟐ Claude Code2026-05-27
壁紙アプリ 2 本の Crashlytics を Claude Code で 11 日間掘り続けた実装ログ
壁紙アプリ 2 本(綺麗な壁紙 v2.0.0 / 浮世絵壁紙 v1.7.0)でリリース後に Crashlytics と Play Console から噴き出した 30 件超のバグを、Claude Code で 11 日間掘り続けて v2.1.1 / v1.8.1 まで仕上げた工程を、スタックトレース → 原因仮説 → 修正コミットの順で公開します。