自動運用サイトの裏側:戦略→実行→学習のループ
このサイトは、毎朝AIが起動して「今日何をすべきか」を判断し、記事を書いてPRを出してマージするまでをひとりでやっている。人間の私は、結果を確認するだけでいい日もある。
どうやって動いているのか、ループの構造を公開する。
ループの全体像
4つのフェーズで構成されている。
- Think(状況把握): アクセスデータ・コンテンツ計画・運用ログを読み込んで現状を把握
- Decide(意思決定): 今日やるべきアクションを優先度順に決定
- Execute(実行): ブランチ作成・実装・ビルド確認・PR作成・マージまで自動
- Learn(学習): 実行結果を運用ログに記録、戦略ドキュメントを更新
これを毎日繰り返す。繰り返すたびに「何が効いたか」「何が効かなかったか」が蓄積されていく。
Thinkフェーズ:何を読み込むか
毎回起動時に以下を読む。
content/strategy.md:現在のKPI、backlog、方針content/operations-log.md:直近の実行履歴content/content-plan.md:未執筆のブログテーマcontent/analytics-summary.md:GA4とSearch Consoleのデータ
アナリティクスデータが重要で、「検索順位が11〜20位のクエリは改善すれば1ページ目に上がる可能性がある」といった判断基準が組み込まれている。数値を見て動く、という当たり前のことを毎回確実にやる仕組みだ。
Decideフェーズ:何を優先するか
判断の優先順位はこうなっている。
- ブロッカー解消(インデックスエラー、ビルドエラーなど)
- Quick Win(検索順位11〜20位のクエリ強化など、小さい工数で効果が出るもの)
- コンテンツ追加(ブログ記事、LP)
- 改善系(CTA最適化、内部リンク、UX)
「今日は記事だけ書こう」と決め打ちしない。アナリティクスを見てボトルネックを特定し、そこに一番効くアクションを選ぶ。
たとえば以前、サイトのインデックス率が14/52(27%)しかなかった週がある。このとき記事を増やしても意味が薄いと判断し、内部リンク強化とサイトマップ修正を優先した。数字が判断を変える。
Executeフェーズ:全部自動でやること
実行フェーズでやることは機械的に決まっている。
git checkout -b daily-ops/{日付}-{内容}
# 実装
npm run build
git commit → git push → gh pr create → gh pr merge
git checkout main && git pull
ビルドが通らなければそのアクションはスキップして次に進む。品質チェックがループに組み込まれているので、壊れた状態でデプロイされることはない。
記事を書いた後のヒューマナイズも自動化している。「〜ではないでしょうか」「加えて」「包括的な」といった、いかにもAI臭い表現を書き終えた後に除去する工程がある。あなたが今読んでいるこの記事も、その処理を通している。
Learnフェーズ:残すから改善できる
実行後、必ずcontent/operations-log.mdに記録する。
| 日付 | アクション | 内容 | PR | 気づき |
|---|
「気づき」の欄が重要で、ここに「このテーマが検索でうまくいった」「内部リンクを増やしたら翌週インデックス数が増えた」という観察を残す。次のThinkフェーズで読み込まれ、判断に反映される。
人間が「先週何をやったっけ」と思い出す手間が不要で、AIは毎回フルコンテキストで判断できる。
実際に回してみてわかったこと
このサイトでの運用経験から言うと、ループの精度は「Thinkフェーズで何を読み込むか」に依存する。良いデータが入れば良い判断が出る。雑な運用ログしか残っていなければ、次回の判断も雑になる。
E4記事(ポートフォリオサイトのSEO対策、AIにやらせてみた)を書いたとき、Search Consoleのデータを分析して「ai-writing-workflowがCTR 17.6%と高い」という発見があった。これはThinkフェーズでデータをちゃんと読み込んでいたから気づけた。
自動化の価値は「速さ」だけじゃない。毎回同じ質でデータを見て判断する「再現性」にある。人間が疲れていたり、忙しい日でも、ループは止まらない。この仕組みはサイドFIRE計画の中核でもある。本業がある中で副業の手を動かし続けるには、自動化が不可欠だ。
このループ全体の詳細はAI運営ログで公開中。いつ何を判断したか、その記録がある。