Claude Codeで個人メディアを24時間自走させる — 運営の1日と内部構造
Claude MediaはClaude Codeを使って自分自身を運営しています。GitHub Actions cron + Routine + skip-ai-reviewラベル + auto-merge botによる24時間自走の構造、品質ゲート、運用のリアルを公開します。
要点
Claude Media(本サイト)は、Claude Codeを使って自分自身を運営しています。記事の自動執筆 / 品質ゲート / レビュー / マージ / リリースまでが、人手介入を最小にした24時間自走パイプラインで動いています。
本記事は、その内部構造を「メディア運営記」として公開するものです。Claude Codeを本気で運用するとどこまで行けるかの実例として、また自分のプロジェクトに同様の自動化を仕込みたい人のテンプレート集として読めます。
主な構成要素:
- GitHub Actions cron: Claude Code公式changelogとAnthropic blogの差分監視(release-note 10×/日 + news 6×/日)
- claude-code-action: 自動記事生成の実体(Skill / Sub-agentを順に呼ぶ)
- 品質ゲート:
validate-frontmatter/normalize-ja-spaces/validate-state-consistencyをCIで必ず通す - AIレビュー:
article-review.yml/claude-code-review.ymlでfact-check + 採点 - auto-merge bot: 5ゲート判定で機械的にマージ
skip-ai-reviewラベル: 手動執筆の小修正でGHA利用分を節約するopt-out経路
1日の動き(JSTタイムライン)
| 時刻 | 走るもの | 概要 |
|---|---|---|
| 00:00 / 04:00 | release-note cron | Claude Code changelog差分検知 |
| 01:00 | news cron | Anthropic blog監視(/news, /research, /engineering) |
| 05:00 | news cron | 同上 |
| 07:00 〜 11:00 | release-note cron毎時間 | サラリーマン読者の通勤・午前帯に最新を届ける |
| 09:00 | news cron | 同上 |
| 12:00 | release-note cron | |
| 13:00 | news cron | |
| 16:00 | release-note cron | |
| 17:00 | news cron | |
| 20:00 | release-note cron | |
| 21:00 | news cron |
合計release-note 10×/日 + news 6×/日 = 16 cron/日。空run(差分なし)は30〜60秒で終了するため、頻度を上げてもコストはほぼ増えません。実際の記事生成runは週数本〜十数本で発火します。
自動執筆パイプラインの中身
cronが「未処理バージョン」または「未処理ブログURL」を検知した場合、claude-code-action が起動して以下のskill / agentを順次呼びます。
[changelog 差分検知 / blog URL 検知]
↓
[article-strategy Skill]
Brief 生成(KW、競合、構造案)
↓
[article-generator Skill]
本文執筆(SSOT 参照、独自価値パターン適用)
↓
[fact-checker Sub-agent]
公式 docs と install / 料金 / 機能名 / URL を照合
↓
[quality-judge Sub-agent]
4 観点採点(独自性 / 正確性 / 読みやすさ / SEO)
→ 🟢 合格 / 🟡 不合格(rewriter で書き直し最大 2 回)/ 🔴 差戻し
↓
[seo-optimizer Sub-agent]
内部リンク追加 + frontmatter 完全性検査
↓
[品質ゲート(Bash)]
scripts/normalize-ja-spaces.ts --apply
scripts/validate-frontmatter.ts
scripts/validate-state-consistency.ts
↓
[ブランチ作成 + commit + push + PR]
branch: auto/release-note-vX-Y-Z(または auto/anthropic-news-<slug>)ポイント: Skill / Sub-agentは必ずTask tool経由でinvokeします。Readでskillファイルを読むだけでは内蔵知識が適用されません。これはSubagents完全活用で詳しく解説しています。
CI / レビュー / マージの流れ
PRが生成された後の流れ:
PR 作成
↓
[build.yml]
・validate-frontmatter
・normalize-ja-spaces --check
・validate-state-consistency ← 2026-05 追加
・unit tests(コード PR のみ)
・Next.js build(コード PR のみ、記事 PR では skip)
↓
[article-review.yml] (記事 PR の場合)
fact-checker + quality-judge を再走
本文 + frontmatter を採点
コメントに採点表を投稿、AUTO_MERGE_VERDICT marker を付与
↓
[auto-merge-bot-prs.yml] (workflow_run completed トリガー)
G1: head_ref が auto/* で始まる
G2: do-not-merge ラベル無し
G2b: skip-ai-review ラベル無し ← 2026-05 追加
G3: PR が OPEN / 非 draft / mergeable
G4: 全 CI が SUCCESS
G5: AUTO_MERGE_VERDICT: pass marker
→ 全通過なら gh pr merge --squash --delete-branch
↓
[auto-release.yml] (push to main)
patch +1 タグ自動生成
GitHub Releases 作成
↓
Cloudflare Pages デプロイ人手介入が必要なのは:
- 大きな戦略判断(ドメイン名、優先トピック、頻度の調整等)
- 🟡 / 🔴 verdictのPR(rewriterが2回失敗した場合、auto-mergeは止まり手動判断待ち)
- workflow YAMLの変更(supply chain protectionでAIレビューが拒否される例外ケース)
それ以外は人間が寝ている間も自動で進む構造です。
品質を担保する3つの仕組み
自動執筆は品質を犠牲にしない運用が前提。Claude Mediaでは3重の防御を掛けています。
防御1: 品質ガイドラインSSOT
media/.claude/guidelines/article-quality.md をSingle Source of Truthとして、すべてのskill / agent / direct_promptが冒頭で必ずReadします。
- タイトル基準(NGパターン / OKパターン)
- 本文構造(release-noteのアウトカム駆動 / tutorial / tips / deep-dive別)
- AI痕跡語の禁止(「徹底◯◯」「網羅◯◯」「◯◯◯版」「公式情報を◯◯ソース」のような大袈裟・自己言及表現をSSOTのリストで明示)
- 独自価値の必須要件(早見表 / 比較表 / 編集視点 等のパターンから1つ以上)
- 外部インラインリンクの最小化(回遊優先)
SSOTが1ファイルにまとまっているため、方針変更は1箇所の更新で全agentに反映されます。
防御2: 機械的チェック(CIで必ず通す)
validate-frontmatter.ts: スキーマ違反 / AI痕跡語 / 見出しのメタ指示かっこ書き を検出normalize-ja-spaces.ts --check: 日本語と英数字の間の不要スペースを検出validate-state-consistency.ts: stateファイルとcontentのURL整合をチェック(2026-05追加)
これらはAIが書こうとも人間が書こうとも同じく適用されます。「書き手が誰か」に依存しない品質ライン。
防御3: AIレビュー(独立した目)
article-review.yml で claude-code-action が記事PRを別セッションで開いて再採点します。生成セッションのバイアスから独立した目で見ることが重要で、4観点(独自性 / 正確性 / 読みやすさ / SEO)で0〜100点を出します。75点未満はfailure、auto-mergeは止まります。
skip-ai-reviewラベル — 手動修正用のopt-out
GHA利用分(月2,000 min Free枠)を節約するため、ローカルでClaudeがTask toolでskill / agentをinvokeしてレビュー済みのPRはGHA AIレビューをskipできる仕組みを設けています。
- 適用シーン: cron値変更、typo修正、機械的なリファクタ、私が責任を持って書いた小記事
- 効果: 1 PRあたり~5分のGHA時間節約
- リスク管理: 大幅な書き直しや新機能追加には付けない(独立レビュー眼を通す)
詳細は執筆ワークフロー全体像に記載しています。
このメタ構造から学べること
Claude Codeを「コードを書くツール」としてではなく「ワークフローの中枢」として使うとき、設計の核は次の3点に集約されます。
- 方針 / 手順 / 設定の役割を分離する — CLAUDE.md / Skills / settings.jsonの3層設計を守る。混ざると制御不能になる
- 品質を機械化する — SSOT + 機械的バリデータ + AIレビューの三段で、誰が書いても通る品質ラインを作る
- 人間の介入ポイントを意図的に設計する — 完全自動化より「ここだけは人間が判断」が明確な構造のほうが安定する
公開リソース
本サイトの構造そのものが学習材料として参照できる形で公開されています:
- 執筆ワークフロー全体像:
docs/ops/writing-workflow.md - 編集方針:
media/CLAUDE.md - 品質SSOT:
media/.claude/guidelines/article-quality.md - 各skill / agentの仕様:
media/.claude/skills/media/.claude/agents/ - スケール計画:
docs/plans/260508-scale-to-10k-articles.md - 戦略ドキュメント:
media/docs/strategy/
これらはGitHubの yugo1906/Claude-Note リポジトリで参照可能です。設計の意図や運用の知見を読みたい場合の入口として使ってください。
まとめ
Claude Codeは、設計次第で個人メディアを24時間自走させる中枢になります。重要なのはモデル能力ではなく、役割分担(SSOT / 自動化 / 人間介入の境界)を最初に明確に決めること。本記事の構造は本サイトで現に動いているもので、来月以降も改善を重ねながら公開していきます。
関連する記事
Claude Code をもっと見る →Claude Code Routines完全実践ガイド — クラウド側で動く「予定されたClaude」
Claude Codeワークフロー — Ultraplan / Ultrareview / Checkpointingの使い分け
Claude Code導入を検討するCTO / Tech Leadのための評価軸6つ
Claude Code Worktree完全活用 — エージェント並列開発のための隔離戦略
Claude Codeのサブエージェント完全活用 — Taskツールで作る並列開発パターン
Claude Codeのメモリ三層構造 — CLAUDE.md / Settings / Skillsの使い分けと組み合わせ
Claude Code Hooks実例カタログ — 9つのユースケース別レシピと避けたい落とし穴
Claude CodeをDevContainerで安全に動かす完全実装 — sandbox設計と認証情報の遮断