LINEとSlackで承認するブログ自動生成の仕組み——Claude API・GitHub Actions・Supabaseの構成
2026年10月、本サイト(chiapuru.com)のブログ運営向けに、記事のテーマ提案から公開までをチャットで操作できる自動化ワークフローが試験的に構築されました。操作画面はLINEとSlackの2系統で、記事の生成にはAnthropic社のClaude API、実行基盤にはGitHub Actions(GitHubが提供する自動処理の仕組み)が使われています。
本記事では、このワークフローの全体像、各コンポーネントの役割、設計上の工夫、そして実験段階ゆえの制約を整理します。個人開発のブログ運営を自動化したい方が、構成を検討する際の参考になる内容です。
何を自動化しているのか?
自動化の対象は、ブログ運営の中でも「テーマ決め」「執筆」「公開判断」の3工程です。ただし、公開の最終判断は人間に残す設計になっています。
| 工程 | 担当 | 操作方法 |
|---|---|---|
| テーマ候補の生成 | Claude API(毎朝9時にGitHub Actionsが実行) | 自動 |
| テーマの選択 | 人間 | LINEで「1」「2」「3」を返信、またはSlackのボタン、自由テーマの入力 |
| 記事の生成 | Claude API(GitHub Actionsが実行) | 自動 |
| 承認・却下 | 人間 | LINEで返信、またはSlackのボタン |
| 公開 | GitHub Actions + Vercel | 承認後に自動 |
「LLM(大規模言語モデル)に記事を書かせる」部分よりも、「人間が確認してから公開する」導線をチャットで完結させる部分が、この仕組みの中心にあります。
全体の流れはどうなっているのか?
処理は次の4段階で進みます。
[毎朝9時] GitHub Actions
Claude APIがテーマ候補3つを生成 → LINE・Slackに通知
↓
[テーマ選択] LINE / Slack
選択結果をSupabaseに保存 → GitHub Actionsを起動(repository_dispatch)
↓
[記事生成] GitHub Actions(create-article.yml)
Claude APIでアウトライン→本文を生成
hidden: true の下書きとして専用ブランチ(blog-draft/{ID})にpush
→ LINE・Slackに承認依頼を送信
↓
[承認] LINE / Slack
承認 → GitHub Actionsが下書きのhiddenを外してmainへ反映
→ Vercelがmainの変更を検知して自動デプロイ
却下 → ステータスを更新するのみ(記事は公開されない)
repository_dispatch とは、外部のプログラムからGitHub Actionsのワークフローを起動するための仕組みです。LINEのWebhook(外部サービスから送られる通知を受け取る窓口)やSlack用のAPIが、この仕組みで記事生成や公開処理を呼び出します。