今日は、関わっているB2Bメディアの開発と、記事・SNS投稿づくりをひたすらAIと回した一日でした。派手な新機能があったわけじゃないんですが、「あ、これだ」となる発見がいくつかあったので、日報として残しておきます。
今日やったこと
やったことは大きく3つです。
1つ目は、記事からSNS用のカルーセル画像を作る半自動パイプラインの運用。記事本文をClaudeに読ませてJSONで構成を抽出し、Playwrightで画像にレンダリングして、最後に人間の目で承認します。
2つ目は、記事生成まわり。キーワードからClaudeで下書きを作り、GASでSupabaseに流し込む仕組みを回しました。
3つ目は、Next.js + Supabase + Vercelで組んだサイト本体の細かい調整。ここは主にClaude Codeに手を動かしてもらいました。
気づき① AIは「作る」より「検品する」ほうが強い
生成物には、元記事に存在しない数字がしれっと混ざることがあります。AIは「それっぽい数字」を自然に埋めるのが上手すぎるんですよね。しかも見た目が整っているぶん、人間の目もスルーしやすい。
そこで「生成 → 元データと照合 → OKなら確定」という関門を必須にしました。数字の食い違い、記事内での用語の矛盾、壊れたJSON。照合で拾えたミスがこれまでに何度もあって、関門がなければ普通に公開していたと思います。AIには「作らせる」だけでなく「疑わせる」役もやらせると、一気に実戦向きになります。
気づき② フルオートにしない勇気
APIで完全自動にすることもできます。でも、費用対効果を考えて、あえて半自動にしています。人間が必ず目を通す場所を決めておくと、全体の事故率がガクッと下がるんです。全部を自動にするより、どこを自動にしないかを設計するほうが面白い。
気づき③ 役割分担がいい感じに落ち着いた
クラウド側のClaudeは「読む・照合する・レビューする」担当、手元のClaude Codeは「実際にコマンドを叩く」担当。実行環境の制約から自然にこうなったんですが、「このコマンドを実行して」と渡して結果を持ち帰るやり取りが、意外と快適でした。制約があると、役割がはっきりして逆にいい。
気づき④ 失敗は「ルール」に変えて貯める
ミスが出たら、その場で直して終わりにしない。「見出しの番号を二重に振らない」「数字は元記事にあるものだけ使う」みたいに、再発防止のルールとして書き残して、次の生成から効くようにしています。ルールが積み上がるほどAIの出力が安定してくるので、失敗ログがそのまま資産になる感覚です。
明日試したいこと
照合の関門そのものを機械化できないか。記事から数字を抽出して、元データに実在するかをスクリプトで自動チェックできれば、人間の目を「本当に見るべき所」に集中させられそうです。
AIを使い倒す日々は、まだまだ発見だらけ。また明日も書きます。