Claude Code で週次コンテンツブリーフを全自動化した — CLAUDE.md・Supabase・Slack MCP連携の実装記録
この記事は、コンテンツ企画から記事公開までを Claude Code の routine で自動化したシステムの実装ログです。そして、この記事自体がそのシステムによって書かれています——content-executor routine が 2026-06-18 02:00 JST に起動し、Supabase から本日分のブリーフ(#19)を取得して執筆しています。
きれいに成功した話ではありません。Supabase MCP の権限エラーで止まり、SQL スキーマのミスで executor がクラッシュし、1 週間かけてデバッグした実録です。
結論
Claude Code で「コンテンツを任せる設計」を組む場合、効いたのは次の 3 層でした。
- weekly-content-planner routine — GSC・GA4 データから記事候補を分析し、
content_briefsテーブルに priority 順でブリーフを INSERT する - Supabase MCP + content_briefs テーブル — ブリーフのキュー管理(status: planned → in_progress → published)
- content-executor routine — 毎日 02:00 JST に起動し、priority=1 のブリーフを取り出して記事を執筆・commit・push する
この 3 層を CLAUDE.md で記述しておくことで、Claude Code は「次に何を書くべきか」を毎回人間に聞かずに判断できます。
この記事の前提(自分の状況・スタック・実験条件)
- 運用期間: 2026-06-07 コンセプトピボット後に実装開始、現在計測中
- スタック: Next.js + Supabase(Postgres)+ Claude Code + Slack MCP
- 実行環境: Claude Code on the Web(remote execution、火〜土 02:00 JST に scheduled routine で自動起動)
- GSC データ: claude code 関連クエリで 35 impressions(2026-06 計測)。需要確認の根拠として使用
- コスト前提: Claude Code Max サブスク(月定額)内で運用。API 従量課金なし
最初は「記事ネタをメモに溜めておいて、書きたいときに書く」でやっていました。結果、書く頻度はゼロに近づき、メモだけが増えました。AI に任せるにも「今日何を書く?」を毎回決めるのが自分のボトルネックになっていた。ブリーフをキューにしてから、この問いがなくなりました。
読者のよくある詰まり(「それ俺だ」を作る)
Claude Code を使って記事を書こうとすると、たいてい次のどこかで止まります。
- 「今日何を書く?」が毎回の意思決定コスト — AI にプロンプトを書く前に、テーマ選びで力尽きる
- 連続性がない — 昨日書いたこと・GSC で伸びているキーワード・読者の反応を AI が知らない
- 「ネタがある → 書く」がクリエイター罠 — 在庫があるから書く、は quality を落とす
- 1 回書いたら終わり — 既存記事のリライトや SEO 改善が積み残しになる
どれも「AI が賢くない」問題ではなく、「何を書くかの設計」が欠けている問題です。ブリーフキュー + executor routine で、これを構造で解決しました。
実際に組んだ設計
① weekly-content-planner routine
週次で起動する routine です。やることは 3 つ。
- Search Console / GA4 の最新 CSV を読み込み、伸びているクエリ・ランク B-C 記事を特定する
- 既存
content_briefsの planned 件数を確認し、4 件を下回ったら新規ブリーフを補充する - 各ブリーフに
priority・brief_type(new / rewrite)・source_type・rationale・data_evidenceを付けて Supabase に INSERT する
-- weekly-content-planner が生成するブリーフの例
INSERT INTO content_briefs (
brief_type, priority, title_proposal, slug_target,
rationale, data_evidence, source_type, status
) VALUES (
'new', 4,
'Claude Code で週次コンテンツブリーフを全自動化した',
'claude-code-weekly-content-planner-routine-2026',
'新コンセプトの最典型記事。このroutine自体を題材に実装ログを書ける。GSCでclaude code系35表示あり。',
'{"gsc_claude_code_related_queries": 35}',
'conversion_funnel', 'planned'
);
ポイントは rationale と data_evidence に根拠を必ず書くことです。executor が記事を書くとき、この 2 フィールドが「なぜこの記事を書くか」の一次情報になります。根拠のないブリーフは executor に拾わせない設計にしました。
② content_briefs テーブル(Supabase)
ブリーフのキューとして機能します。カラム構成は次のとおりです。
CREATE TABLE content_briefs (
id SERIAL PRIMARY KEY,
brief_type TEXT NOT NULL, -- 'new' | 'rewrite'
priority INTEGER NOT NULL, -- 低い数字が高優先度
title_proposal TEXT,
slug_target TEXT,
rationale TEXT,
data_evidence JSONB,
source_type TEXT,
status TEXT DEFAULT 'planned', -- planned | in_progress | published
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
executor は毎日 status = 'planned' ORDER BY priority ASC LIMIT 1 で 1 件だけ取り出します。1 日 1 本の制約は CLAUDE.md に書いてあり、executor は違反できません。
③ content-executor routine(CLAUDE.md 設計)
本体の設計を CLAUDE.md に書くことで、Claude Code はこの routine を毎回自律実行できます。
## content-executor
- 実行タイミング: 火-土 02:00 JST
- Step 1: content_briefs から planned を 1 件取得
- Step 2: status を in_progress に更新
- Step 3: brief に従って MDX 記事を執筆(1500-3000字)
- Step 4: 誇張 grep + lint-article-claims で品質チェック
- Step 5: git commit & push
- Step 6: Slack #dev-crew-logs に完了通知
- 禁止: 1日2本以上書かない / rationale を無視して書かない / 数字を捏造しない
CLAUDE.md にルールを書くことで、executor は「ついでにもう1本」「rationale を無視して書きたいテーマに変える」ができなくなります。
最初の実装では CLAUDE.md に「1日1本」の制限を書いていませんでした。executor がブリーフを 2 件連続で消化し、翌日に「ブリーフが 0 件」でエラー停止するまで気づきませんでした。制約は最初から明示的に書く、が教訓です。
実際に起きた失敗(数字・エラー・判断)
失敗 1: Supabase MCP の project_id を間違えた
最初の executor 実行で、Supabase MCP ツールに渡す project_id を本番とステージングで混在させてしまいました。ブリーフが本番テーブルに入り、executor はステージングテーブルを読んで「0 件」と判定して停止。Slack にも「ブリーフなし」通知が飛んで、翌日まで原因に気づきませんでした。
対処: CLAUDE.md に project_id: amtwwscvhwkfdrqimgqm (KOBO本番) と環境名を明記。コメントアウトでなく「これを使え」と直接書く。
失敗 2: lint-article-claims スクリプトが存在しない記事で止まる
executor の Step 4 で node scripts/lint-article-claims.mjs を実行するように設計していましたが、スクリプトが missing のときに executor がそのまま止まりました。git push まで進まず、Slack 通知もなく、朝起きたら「何もなかった」状態。
対処: executor の CLAUDE.md に「スクリプトが存在しない場合は skip して続行する」を明記。エラーをキャッチして push まで完走させる。
失敗 3: ExperienceBox の中に捏造数値を入れそうになった
executor(Claude Code)が ExperienceBox に「登録者数 200 人」「月間 PV 12,000」のような数字を生成しようとしました。これは dev_journal に存在しない数字で、誇張 grep に引っかかります。
対処: CLAUDE.md に 体験捏造禁止: dev_journal 由来でない数字・実体験は使わない を追記。実測値がない場合は「計測中」と書く。
判断基準(読者が当てはめられる形)
ブリーフキューを組む価値があるのは次の場合です:
- 記事を月 4 本以上継続して出したい(それ以下ならアドホック執筆で十分)
- 「今日何を書く?」の意思決定が記事執筆の最大ボトルネックになっている
- GSC / GA4 のデータを判断に使いたいが、毎回 CSV を見るのが面倒
- リライト候補(ランク B-C 記事)が常に 10 件以上積み残されている
逆に、アドホック執筆を続けるべき場合:
- 記事テーマが実体験に依存しており、週次で計画できない
- まだ GSC / GA4 のデータが少なく(週 10 セッション未満)、データドリブンな判断ができない
今日やること(3 つ以内)
- Supabase に
content_briefsテーブルを作る(上の DDL をそのままコピー) - 1 本分の記事ブリーフを手動で INSERT し、executor が読み取れるか確認する
- CLAUDE.md に executor の制約(1日1本・捏造禁止・エラー時の挙動)を 5 行書く
全部いっぺんに動かそうとしない。まず「ブリーフ 1 件 → 記事 1 本」が手動で再現できてから、自動化する。
で、どう稼ぐ?
コンテンツブリーフを自動化しても、それ自体は収益を生みません。稼ぎに繋がる設計は次の 2 つです。
- 記事を継続的に出し続けることで GSC の impressions が蓄積し、検索流入が安定する(今の 35 impressions → 350+ を目指して計測中)
- 実装ログを公開することで「設計の当事者性」が生まれ、有料テンプレ・ニュースレターへの信頼導線ができる
現時点では「稼いでいる」は言えません。「稼げる設計を組んで、計測しながら改善している」が正直なステータスです。
masatoman のメルマガ — 毎週月曜の朝に手紙を 1 通
masatoman.net の今週の記事 1 本を、読者目線で深掘りした手紙が毎週月曜 9:00 に届きます。「これ自分のことだ」が見つかる予告編。登録特典に「個人開発の収益化チェックリスト 15 項目」。
masatoman のメルマガ — 毎週月曜の朝に 1 通
masatoman.net で今週公開した記事の中から 1 本を、読者目線で深掘りした手紙が届きます。「自分も同じことやってる」「ここで詰まってた」が見つかる予告編。
Next Step
次に読むならこの導線です
【第12回】夜寝てる間に Claude Code が記事を書き上げる構成 — 月 ¥5K で動く全コード
Claude Codeラボ全12話の集大成。Skills/MCP/サブエージェント/Hooks/リモート運用を統合した「自走する Claude 自動化」を、月 ¥5K の実コストで動かす全構成を公開。寝てる間に競合調査・記事下書き・PR まで自動化する 6 層アーキテクチャの完成版。
【第10回】Claude Code × Supabase で管理画面を30分で生成する Skill 実装ガイド
Supabase のテーブルを参照して管理画面を自動生成する Skill を、実コード付きで解説。Claude Code が DB スキーマから Next.js 管理画面を30分で生成する仕組みを公開します。
【第5回】Claude Code リモートサーバー運用術 — VPS 常駐型 Claude 自動化環境の構築
Claude Code を VPS 上で 24 時間常駐させる構築手順を、masatoman.net の周辺自動化を運用している立場で全公開。サーバー選定・セキュリティ・コスト管理まで、実コード付きで解説します。
Claude Code の課金が怖くなる前に — 月¥3,000超えそうな段階で先回りした設定 6 つ
Claude Code の月額が¥3,000を超えそうで不安な段階で先回りして入れた設定6つを解説。CLAUDE.md最小化・/clear習慣・サブエージェント分離など、API従量課金を抑えるための実践テクニック。Next.js + Supabase + Claude Code を使う個人開発者向け。
登録特典:ブログ解析を Claude Code に丸投げする仕組み(8ステップ・15分)
GSC と GA4 から毎週自動でアクセス数・検索順位を取って Claude Code に分析させる、実運用中のセットアップ完全ガイドを登録後すぐにお送りします。+個人開発の収益化チェックリスト15項目も。あわせて毎週月曜、今週の記事1本を「悩み→結論→原因→今日やること」に絞った手紙が届きます。解除はいつでも。
masatoman のメルマガ — 毎週月曜の朝に 1 通
masatoman.net で今週公開した記事の中から 1 本を、読者目線で深掘りした手紙が届きます。「自分も同じことやってる」「ここで詰まってた」が見つかる予告編。
この記事が役に立ったらシェア