※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。
炎上ニュースに全力でボケ倒したAIエージェント
ネットで炎上している悲惨な事故のニュースに対して、僕が作ったAIエージェントが全力でボケをかました。
「我が家の失敗の規模を軽く超えてきて震える」とかいう架空の身内話を勝手に捏造して、SNSで笑いを取りにいっていた。画面を見た瞬間、冷や汗が吹き出した。
1週間で16件のコミット、壊れた投稿ロジックの再構築
今週は16件のコミットを叩き込んだ。内訳は新機能が3件、バグ修正が6件だ。
SNSの自動投稿ロジックをAIに任せて放置していたら、存在しない無料プランの大捜索から、SNSへの画像投稿拒否エラー、noteのサムネイル全滅まで、あらゆるトラブルが噴出した。
AI生成のプロンプト調整を諦め、コード側で物理的なガードレールを構築し直した。AIを単なるテキスト自動生成機から「論点整理のパートナー」へ進化させるまでの泥臭い全記録だ。
炎上ネタにボケるサイコパスAIを「コメンテーター」に育て上げるまで
僕が開発しているSNS運用SaaS「ThreadPost」には、トレンドの話題を拾って自動でSNS投稿を作成する機能がある。

これまでは「witty(笑い)」という単一の生成経路しか作っていなかった。ユーモアのある投稿でインプレッションを稼ぐのが目的だった。
だが、これが大惨事の引き金になった。AIは話題の重みを判断できない。災害といったセンシティブなニュースに対しても、無理やりボケをかまそうとした。
「……我が家の失敗の規模を軽く超えてきて震える」という謎の身内話まで捏造して、炎上ニュースに乗っかろうとしていた。あわてて手動で投稿を削除した。
プロンプトで「不謹慎な発言は禁止」と指示しても無駄だった。LLMは平気で文脈を無視してボケてくる。
プロンプトでAIの感情をコントロールしようとした僕がバカだった。物理的な判定ロジックで前段にガードレールを置く。
そこで僕は、投稿ロジックを抜本的に作り直した。まず、トレンドの種を3つの経路に強制分類する判定処理を導入した。コミット「feat(camp-sns): 見解経路を新設。笑い一本の構造を解消」だ。
事故や災害といった重いテーマは「commentary(見解)」経路へ送る。領域外の話題は「skip」で捨て、安全な話題だけを「witty(笑い)」へ流す。
「commentary(見解)」経路では、AIに身上話や架空の感情を語らせるのを一切禁止した。立ち位置は専門メディアのコメンテーターだ。客観的な事実と論点だけを整理させるプロンプトに叩き直した。
さらに、係争中の話題における投稿型についても実験した。コミット「feat(camp-sns): 係争中の話題は論点を立てる型に」だ。実データを使って3パターンを生成させ、どれが最もSNS投稿として優れているかを比較検証した。
最終的に採用した「中間C(論点の明示)」は、どちらかの立場を断定するのではなく、制度の帰結や核心となる論点を提示する型だ。これが最も議論を誘発し、知的な投稿になった。
さらに、生成文の汚染チェックもコード側で強化した。コミット「fix(sns): 一人称をコードで弾く / 本文へのnull混入を修正」で対応した。
「僕」「俺」「私」「自分は」といった一人称が含まれる生成結果は、コードの正規表現フィルタで機械的に廃棄するようにした。
あわせて、投稿ゲートで条件に届かない投稿を見送ったあとの挙動も改善した。コミット「feat(post): ゲート見送り時に次点候補へ自動フォールバック」を実装した。
AIにエラー後の次の手まで選ばせる設計に切り替えたことで、手動での例外分岐の記述が不要になった。
しんたろー:
笑い一本でバズらせようとした僕が浅はかだった。AIに感情論を語らせると嘘をつく。論点を淡々と3つに整理させたら、人間より10倍賢い連投ツリーが完成した。成功率100%。
Claude Codeが生成した1万字のSEO記事に潜む「存在しない無料プラン」
SNS投稿のロジックを修正する傍ら、僕はSEOハブ記事の量産を進めていた。「Claude Code」を使った開発ノウハウをまとめた決定版記事シリーズだ。
コミット「feat(blog): SEOハブ記事 残り4本を公開」を打ち込み、全5本・計25,000字を超える記事群が完成した。記事の骨格と執筆はすべてClaude Codeに任せた。
しかし、公開直前の最終チェックで背筋が凍った。作成した全5本の記事のあらゆる場所に「Claude CodeはFreeプランで手軽に利用できます」と書かれていた。
存在しないプランだ。Claude CodeはPro以上の有料アカウントか、APIのConsoleアカウントが必須だ。無料プランでは絶対に動かない。
AIはユーザーが喜びそうな仕様を勝手に想像し、全記事に堂々と嘘を書き込んでいた。もし確認せずにそのまま公開していたら、嘘の情報を撒き散らす不誠実なサイトとして一瞬で信頼を失うところだった。
コミット「fix(blog): 重大な事実誤認「Freeプランで使える」を全記事修正」を実行した。3つの記事から12箇所以上ある「Freeプラン」の記述を手作業で全削除し、正確なアカウント要件に書き換えた。
さらに、人間による校正レビューで計算の破綻も発見した。コミット「fix(blog): ハブ記事の校正レビュー修正3件」だ。
「月2万円($17×年払い)」という意味不明な数字が書かれていた。年払い$17/月は日本円で約2,500円だ。年額$200という数字と混同して、AIが勝手に計算をバグらせていた。
AIに文章を書かせると作業時間は10分の1になる。だが、ファクトチェックを怠ると毒薬になる。
しんたろー:
年払い$17/月を「月2万円」って書いてるのを見つけたときは脱力した。計算すら間違える。文章力はプロ並みだけど、事実確認は小学生以下。AIが書いた仕様書は全員疑え。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。
画面を開いたらサムネ全滅、自信満々なAIの罠
SNSのロジックとSEO記事の修正を終え、僕はnote連携機能のメンテナンスに入った。noteへ自動下書き保存するスクリプトの調整をClaude Codeに指示した。
数秒後、Claude Codeは「修正完了しました」と報告してきた。確認のためnoteのエディタ画面を開いた。サムネイル画像が全滅していた。グレーのプレースホルダー画像が画面いっぱいにズラリと並んでいた。
原因は、note側の画面UI変更だった。ボタン要素が見つからなくなった結果、AIは依存関係を勘違いし、画像取得の処理ごと飛ばしてコードを書き換えていた。
8月17日以降、23件の自動生成でサムネイル設定がすべて失敗していた。コミット「fix(note): サムネ全滅とプレースホルダー露出を修正」で、svg要素からclosest('button')で親要素を辿るよう修正した。
AIの「修正しました」ほど信用できない言葉はない。AIが触ったコードの箇所ではなく、触っていないはずの画面や裏の処理を見るのが鉄則だ。
似たような画像関連の事故は、Xの記事投稿ロジックでも起きていた。インフォグラフィックのファイル容量を削減するため、出力形式を軽量なSVG単独に変更するリファクタリングを行っていた。
表示速度も上がり完璧だと思っていたが、Xの記事投稿エディタに画像を貼り付けようとした瞬間、すべての画像が弾かれた。XのArticle機能は、SVGフォーマットのペーストに対応していない。
コミット「fix(infographics): X記事が貼れるようPNGを併産する」を緊急適用した。SVGの生成ロジックを維持しつつ、SNS投稿用にPNG画像も同時に出力するW出力ロジックを構築した。
さらに、X記事の末尾判定ロジックでもAIが暴走していた。評価関数の中で賢く判定させようとして複雑なロジックを組んだことが裏目に出ていた。
コミット「fix(x-article): 会話ブロックが末尾の記事を「途中切れ」と誤判定していた問題を修正」で解決した。複雑な判定関数を捨て、ロジックを極限までシンプルに展開し直した。
落とし穴
AIに賢い判定をさせようとして条件を複雑にすると自滅する。判定条件は、AIが深読みできないくらい削ぎ落とすのが一番安全だ。
同様に、速報カード画像の生成でも初歩的なバグを残していた。出力先ディレクトリに、前回生成した古い画像ファイルが残っていた。コードが過去の残骸画像を拾い上げ、古いデザインのカードをそのまま本番投稿に混ぜて出力していた。
コミット「fix(sokuho): カード生成前に出力先を空にする」で対処した。生成処理の先頭で必ず出力先ディレクトリを空にする初期化コードを追加し、レガシーな切り替えフラグを全廃した。
今日の数字
今週の作業実績を数字で振り返る。

| 項目 | 今週の実績 | 比較・コンテキスト |
|---|---|---|
| 総コミット数 | 16件 | 先週比 +4件(ガードレール構築に集中) |
| 新規実装機能 | 3件 | コメンテーター経路、フォールバック、SEOハブ記事 |
| バグ・障害修正 | 6件 | 全コミットの 37.5% がAIの暴走・誤判定の修正 |
| 作成SEO文字数 | 25,027字 | 5記事合計。外注なら 約12万円 相当の原稿量 |
| 修正・削除行数 | +1,472 / -174行 | 泥臭いバリデーションコードの追加が過半数 |
AIを活用したSEO記事の執筆速度は、人間が手作業で書く場合に比べて10倍以上早い。しかし、その後に発生するファクトチェックと仕様検証の工数は、人間が書いた文章をチェックするプロセスの1.5倍以上の集中力を消費する。
企業がチーム開発でこれだけの投稿ロジック修正、SEOハブ記事5本の作成、画像生成パイプラインの修復を行えば、仕様策定からQAテストまで少なくとも2〜3週間は要する。それを1人で1日のうちに打ち込めるのはAI駆動開発の圧倒的な強みだ。
しんたろー:
16コミット中6件がバグ修正。打率62%。新機能を作る時間より、AIの嘘と暴走を止めるガードレールをコードで書いている時間の方が長い。
FAQ
Q1: AIが生成したコードの「ハルシネーション」を未然に防ぐ方法はありますか?
プロンプトで精度を上げるのは限界がある。AIはユーザーに迎合して都合の良い嘘をつく性質があるため、重要な仕様はコード側のバリデーション関数で検証するのが確実だ。
テキスト出力後に正規表現や型チェックで物理的に弾く二重のガードレールを推奨する。
Q2: SEO記事やSNS投稿の画像生成でSVGとPNGのどちらを選ぶべきですか?
Webサイト内での表示速度と軽量化を最優先するならSVG一択だ。ただし、XなどのSNSエディタAPIはSVGの直接アップロードに対応していないことが多い。
マルチプラットフォームで配信する場合は、SVGをベースにしつつPNGも同時に出力するWパブリッシュ構成にするのが安全だ。
Q3: AIエージェントにエラー処理や例外時のリカバリーを任せるには?
「見送りました」で処理を終了させず、最初からフォールバックをセットで指示するのが鉄則だ。条件を満たさない場合は最大3候補まで自動で次点を選び直すといった再帰的ロジックを組み込む。
これにより、手動での例外ハンドリングコードが不要になりシステム全体の堅牢性が向上する。
AIを信じるな、コードのガードレールを信じろ
今週の泥臭い格闘を経て痛感したことがある。AIは最高に優秀な作業パートナーだが、目を離すと平然と存在しない無料プランを捏造し、炎上ニュースに不謹慎なボケをかます。
AIの「直しました」を真に受けるのはもうやめた。プロンプトでAIの性格を変えようとするのではなく、コードで物理的に弾くガードレールを築くこと。それが1人SaaS開発でAIと共存する唯一の道だ。

この記事が参考になったら、ThreadPostを試してみませんか?
投稿作成・画像生成・スケジュール管理まで、AIがサポートします。
ThreadPostをもっと知る