※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。
画面が激しく点滅した。ブラウザが固まり、ファンが悲鳴を上げる。Claude Codeに「ログイン後のリダイレクトを直して」と頼んだ直後のことだ。AIは「修正した。スムーズに戻る」と断言した。だが、システムはログイン画面の間で無限ループを繰り返した。これがAIと二人三脚で挑む1人SaaS開発の現実だ。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。
AIが「バグなし」と断言した後の静寂
今週はAIによる高速開発の光と影を真正面から食らった。新機能の追加はスムーズだった。だが裏側では無限ポーリングやデータ消失といった致命的なバグが多発した。AIは「ロジックは完璧だ」と繰り返す。だが画面は動かない。結局、僕がやったのは泥臭いログ監視と、AIの嘘を暴く作業だった。
今週のサマリー:
- 総コミット数: 24件
- 新機能: 2件(Threads引用投稿の汎用化、AIリプライの精度向上)
- バグ修正: 12件(無限ループ、N+1クエリ、データ取得漏れ)
- 壊れた回数: 3回(システム全停止を含む)
AIにコードを書かせるスピードは速い。だがその速度でゴミを生成されたら、1人開発者は一瞬で死ぬ。今週、僕はAIをコード生成器ではなく思想の翻訳機として再定義した。
しんたろー:
12件中8件が一発OK。残り4件は指示が雑だった。成功率67%。AIを賢くするより、自分の思想を言語化する方が速い。
「炎上を弾け」という指示に、AIが小学生レベルの回答を出した日
Threadsの引用投稿を自動で集める機能を汎用化していた時のことだ。SNS運用ツールとして、炎上トレンドへの関与は避けたい。僕はClaude Codeに「Xのトレンドから、炎上や揉め事、誹謗中傷系をいい感じに弾いて」と指示した。返ってきたコードを見て溜息をついた。
そこには「不倫」「炎上」「逮捕」といったNGワードを羅列しただけの、小学生のようなフィルタリングロジックが並んでいた。僕は画面越しに「お前、プロだろ」とツッコんだ。LLMは指示が具体的すぎると、かえって視野が狭くなる。単語の有無だけで判断させれば、文脈を無視した誤検知が多発する。
実際、Geminiで直近299件の投稿を分析したところ、17%が軸外の雑談だった。大学受験や通販は炎上ではないが、AI開発者のアカウントとしてはノイズだ。単語フィルターではこの空気感は読めない。そこで僕は指示の出し方を根本から変えた。
「SNSで10年生き残るための、精神衛生を保つフィルタリングロジックを作って」
技術的な指示を捨て、僕の思想をぶつけた。するとClaude Codeの挙動が変わった。主観的な批判を含む名詞の検出や、対立を煽る構図の判定といった、感情分析に近い多層フィルターを書き始めたのだ。「fix(x-trends): 炎上・揉め事・誹謗中傷系トレンドを除外」。このコミットで、システムは特定個人の晒しや嘲笑への加勢を自動で回避できるようになった。
「バグはありません」とドヤ顔するAI、保有ポイント0の管理画面
「保有ポイント:0」。管理画面を開いた瞬間、背筋が凍った。全ユーザーのポイントが虚無に消えていた。慌ててClaude Codeに調査を投げた。AIの回答は驚くべきものだった。「データ取得の関数は正常。クエリも最適。バグはない」。いや、画面に0が並んでいるのがバグじゃなかったら何なんだ。
原因は管理画面用のAPIだけが古いテーブルを参照していたことだった。「adminGetUsers」の中で、414名分のデータを取得する際、スキーマ変更に取り残されたカラムを叩いていた。AIは目の前のコードの整合性は完璧にチェックする。だが、システム全体でスキーマがズレているというコードの外側の事実には驚くほど無頓着だ。
「fix(admin): ユーザー一覧の保有ポイントが 0 表示になるバグを修正」。この修正を終えた後、僕はAIへの接し方を変えた。AIが問題ないと言った時ほど、まずログを疑う。事実、プリセット選択が動かない不具合の時も、AIはロジックは完璧と言い張った。だが、泥臭くログを仕込むと、フロントとバックエンドでデータの型が1文字だけズレていた。
しんたろー:
AIに「バグない」と言われてからが本当のデバッグ。結局、画面を触って違和感に気づけるのは僕しかいない。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。
落とし穴
パフォーマンス改善の代償として、N+1問題を解消しようとクエリを最適化した。指示を出して3秒。AIは「完璧にリファクタリングした」と豪語した。期待してリロードすると画面が真っ白になった。AIはクエリを綺麗にすることに夢中で、取得したデータとUIコンポーネントの紐付けを忘れていた。
さらに追い打ちをかけたのがポーリングの暴走だ。画像生成待ちのUXを改善しようとUIを修正させたところ、裏側でサーバーを2秒おきに叩き続ける無限ループが発生した。完了後も277回リクエストを投げ続けていたログを見た時は、サーバー代の請求が頭をよぎった。親コンポーネントが再レンダリングされるたびに、ポーリング用の「useEffect」が再起動していたのが原因だ。
しんたろー:
3秒で実装、3秒で破壊。1人でやってるからいいけど、チームだったら毎日誰かに殴られてる。
今日の数字
| 項目 | 実績値 | 比較対象・コンテキスト |
|------|------------|----------------|
| 総コミット数 | 24件 | 先週比 +20% |
| バグ修正比率 | 50% | 24件中12件がバグ対応 |
| 仕様変更コスト | 3秒 | 大企業なら会議と承認で2週間 |
| API費用(AI代) | $12程度 | 外注エンジニアなら数十万円分 |
| 最大リクエスト数 | 277回 | ポーリング暴走による1セッションの異常値 |
特に仕様変更の速度は個人開発の武器だ。Xのアルゴリズム変更に伴い、投稿頻度を半分にするコードを書かせた。「fix(x-engagement): shintaro_campon のメイン投稿を半減」。大企業が会議室で要因分析をしている間に、僕は1行のコードで対策を完了させた。この「3秒 vs 2週間」の差こそが、AIを武器にした個人開発者が生き残る道だ。
FAQ
Q: AIにコードを任せると、なぜ「動かない」バグが頻発するのか?
AIはコードの論理的な整合性はチェックしますが、実行環境のデータ状態や非同期のタイミングまではシミュレーションしきれません。特にReactの「useEffect」の依存配列や、DBのスキーマ不整合など、コードの外側にある要因でバグが発生します。AIは静的な正しさを追求し、人間は動的な事実を監視するという役割分担が不可欠です。
Q: 個人開発でAIを使い倒すための「最強の守り」は何ですか?
泥臭いログ出力と生データの解析です。AIに「バグを直せ」と投げる前に、まずAPIのレスポンスJSONをそのままAIに食わせ、怪しいキーを特定させる作業が最も効率的です。AIの推論能力を最大化させるには、人間が「事実(ログ)」という材料を正確に提供し続ける必要があります。
Q: AIに「炎上を避ける」といった抽象的な指示を成功させるコツは?
NGワードを並べるのではなく、そのシステムの思想やペルソナを定義して伝えることです。LLMは具体的な禁止事項よりも、行動指針やコンテキストを与えられた方が、文脈を汲み取った高度な判断を下せます。プロンプトをコードの指示書ではなく思想の翻訳機として使うのがコツです。
まとめ
AI開発は魔法ではない。3秒で新機能ができる裏には、30分かけてログを読み漁る泥臭い時間が必ず存在する。AIに「バグなし」と言われた時、それを疑えるのは画面を触っている僕だけだ。ThreadPostは、こうしてAIの爆速と人間の執念が混ざり合いながら、少しずつ形になっていく。

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