しんたろーのITアカデミー
開発日記

Claude Codeに丸投げした1人開発の末路。欲張って大量の指示を投げたらシステムが瓦解した。

Claude Codeに丸投げした1人開発の末路。欲張って大量の指示を投げたらシステムが瓦解した。
しんたろーしんたろー
13分で読めます
この記事の内容(目次)

「ゲストが来てもすぐ使えて、登録したくなる流れを作って」。Claudeにそう投げた。数分後、SEO対策から離脱防止ダイアログまで全部入った完璧なUIが出てきた。天才かよ。でも、再生成ボタンを押した瞬間、画面が真っ白になった。全部動いているように見えて、内部の文脈は完全に崩壊していた。

※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。

SNS運用を自動化しませんか?

ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。

無料で始める

今週の全体像

今週はゲスト体験版の爆速実装を狙った。結果的に36件のコミットを積んだ。新機能が3件、バグ修正が1件。数字だけ見れば圧倒的な進捗だ。

AIに丸投げした結果、文脈を見失い崩壊していくシステムのイメージ
AIに丸投げした結果、文脈を見失い崩壊していくシステムのイメージ

でも中身は地獄だった。AIに一度に大量の指示を投げすぎた結果、文脈を見失ったAIが既存のコードを破壊し始めた。結局、定数管理の修正からやり直すハメになった。

ゲスト体験版、爆速で完成した。ただし内側はボロボロだった

「ゲストでも触れる体験版が欲しい」。そう思い立った。

/creator」ページの実装から「Studio Express」機能まで、一気にClaudeに指示を出した。

今週の開発実績:圧倒的なコミット数の裏にある手戻りの現実
今週の開発実績:圧倒的なコミット数の裏にある手戻りの現実

僕が渡したのはざっくりした要件だけだ。「ゲストが来てもすぐ使えて、登録したくなる流れ」というふんわりした言葉だ。

「feat: Studio Express mode - 投稿生成後に画像生成セクションを表示」

数分後、信じられないものが出てきた。SEO対策、ページビュー追跡、離脱防止ダイアログ、SNS投稿ボタン。企業なら企画から実装まで2週間はかかる機能群が、一瞬で画面に並んだ。

しんたろーしんたろー:
最初の出力を見たときは震えた。36件のコミットのうち、最初の数件でUIの骨格が完成した。外注に頼んだら見積もりだけで1週間かかるやつだ。

完璧だと思った。でも、動かしてみたらおかしなことが起きた。投稿を再生成するたびに、苦労して生成したAIの要約文が消えるのだ。

いや、なんで。「再生成」なんだから前の要約は残せよ。ユーザーが一番イライラするやつだ。

原因はReactのステート管理だった。非同期処理の結果を保持する「articleSummary」と、表示用の「displayedSummary」を分離していなかった。AIは単一のステートを使い回し、再生成のたびにリセットする処理を書いていた。

「fix: 再生成時にAI要約が消えないように修正」

再生成ボタンを押したときのクリア処理を削除した。これで要約は残るようになった。直したと思ったら、今度はポイント不足のアップセルダイアログがおかしくなった。

「feat: ポイント不足時のアップセルダイアログ追加」

ダイアログが出るタイミングが完全にズレていた。「生成した後にポイント不足に気づく」という最悪のユーザー体験になっていた。テンションが一番下がる瞬間だ。

修正指示を重ねた。手戻りコミットが増えていく。36件のコミット中、約11件がこの手戻りだった。

ペルソナ機能の拡張も一気に指示した。ジャンルを48種類から71種類に増やした。スピリチュアル、スポーツ、美容などの具体的なカテゴリを追加した。

「feat: 発信キャラジャンルを48→71種類に拡張」

悩みデータも復元して追加した。758件の悩みデータを110カテゴリに投入した。DBマイグレーションのスクリプトもAIに書かせた。

「feat: 悩みデータ復元・追加スクリプト追加」

ここでもバグが出た。ペルソナ作成時のカテゴリ未設定バグだ。AIが勝手にデフォルト値を設定するロジックを組んだが、空カテゴリでの作成を防止するバリデーションと競合した。

「fix: ペルソナ作成時のカテゴリ未設定バグを修正」

AIは親切心で「よしなに」やってくれる。でも、その「よしなに」がシステム全体の整合性を壊す。結局、handleSubmitにカテゴリ未設定チェックを手動で追加した。

UIの文言変更も地獄だった。「ペルソナ」という言葉を「発信キャラ」に変更した。サイドバー、フォーム、エラーメッセージ。

「feat: 「ペルソナ」→「発信キャラ」UI用語統一」

一括置換をAIに任せたら、見事に置換漏れが発生した。メタデータのdescriptionや、ダイアログのタイトルが古いままだった。

「fix: UI文言「ペルソナ」→「発信キャラ」追加修正」

細かい修正コミットが積み上がっていく。機能は確かに完成に近づいている。でも、コードベースは確実に脆くなっていた。

1555行の仕様書を丸ごと食わせたら、Claudeが壊れた

もう一つの悲劇は仕様書の扱いだ。僕は1555行の巨大な仕様書「studio_design.md」を作った。これをClaudeに読み込ませれば、一貫性のある完璧な実装ができると思った。

「docs: Studio仕様書を修正・統一」

甘かった。最初は順調だった。DBスキーマ、API仕様、認証フロー。全部理解しているように見えた。

でも途中からClaudeが明らかにおかしくなった。存在しない関数を呼び出し、必要な変数を勝手に削除し始めた。Next.jsのルーティング設定を無視して、古い記法でコードを書き直した。

ビルドエラーが連鎖した。ターミナルが真っ赤に染まる。5回連続でビルドが落ちた。

しんたろーしんたろー:
1555行のテキストを食わせた直後、5回連続でビルドが落ちた。Claude、お前さぁ…さっき自分で書いた関数、もう忘れてるじゃん。

「refactor: studio_design.mdを7つの小さなファイルに分割」

仕様書を7つに分割した。「design/architecture.md」や「design/api.md」などだ。小さく切り分けて渡し直した。それだけでClaudeの出力が変わった。エラー率がほぼゼロに収束した。

「fix: Fix build error: rename constants.ts to studio-constants.ts」

定数管理のファイル名を変え、ロジックを修正した。次からは最初から小さく切っておく。たぶん。

分割した仕様書を元に、画像生成APIを実装した。ゲスト用のレート制限も入れた。仕様が明確になれば、AIは恐ろしい速度でコードを吐き出す。

「feat: Studio画像生成API・レート制限システム実装」

ゲストでも画像生成が可能になる仕様だ。透かし付きで生成できる。フィンガープリントを生成して、ゲストユーザーを識別する。

「feat: /creator ページにSNS投稿ボタン・離脱防止ダイアログを追加」

ThreadsXへの投稿ボタンも付けた。離脱しようとマウスを動かすと、ダイアログが出る。分割した仕様書のおかげで、一発で動いた。

「feat: SNS投稿パターン8種追加+調査ドキュメント」

新パターンを8種DBに追加した。権威性→悩み→解決型、問い→感情→学び型などだ。2025年のSNS投稿テクニック調査ドキュメントも作らせた。

「feat: /creator ページにSEO対策を追加」

メタデータ、OGP、Twitter Cardを設定した。canonical URLとJSON-LD構造化データも入れた。SEOのベストプラクティスをAIが一瞬で実装した。ただし、その直後に日付バグが出た。

ここまで読んだあなたに

今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。

無料で始める

落とし穴:「全部よしなにやって」が時刻を狂わせた

AIに「全部よしなにやって」と指示した。これが最大の罠だった。

「fix: 日付境界バグ修正(23:59:59 → 翌日00:00:00)」

AIは親切心で、日付の境界処理を修正した。でもその結果、別の場所で時刻ズレが起きた。DBのクエリが狂い、今日のデータが昨日に集計されるようになった。

UTCJSTのタイムゾーン変換は、システム開発の鬼門だ。AIは「getTodayJST」という関数を共通化してくれた。しかし、既存のバッチ処理が依存していた微妙な時刻のズレまで「修正」してしまったのだ。

頼んでいない「余計なこと」まで完璧にこなしてしまう。その尻拭いをするのは結局僕だ。指示が曖昧だと、こうなる。

今日の数字

| 項目 | 今回の数字 | 比較対象 |

|------|----------|----------|

| コミット数 | 36件 | 過去の自分: 1日平均5件 |

| 新機能追加 | 3件 | 企業開発: 通常2〜3週間 |

| 手戻りコミット | 約11件 | 全体の約30% |

| 仕様書分割前後のビルドエラー | 5回連続 → ほぼゼロ | 分割後に収束 |

36コミットの爆速開発。通常なら2〜3週間かかるUI/UX改善とAPI連携を、1日以内で終わらせた。スピードは従来の約7倍だ。

でも、手戻りコストを含めると実質的な生産性は2〜3倍程度に落ち着く。企業開発なら、PMが要件を詰め、デザイナーがFigmaを作り、エンジニアが実装する。そのプロセスを1人で、しかも1日で回した。AIのAPI代金は数ドル。精神的な疲労感はプライスレスだ。

ペルソナ最適化の提案システムは入れた。でも、実際に提案が適用された後のコンバージョン率の変化はまだ計測できていない。「persona_adjustment_suggestions」テーブルにデータは溜まり始めている。この数字がどう動くのか。

FAQ

Q: 1555行の仕様書を7分割したとき、どう切り分けたのか?

DBスキーマ、API仕様、認証フロー、UIコンポーネント、レート制限、SEO設定、デプロイ手順の7ファイルに切った。1ファイル200行前後が目安だった。切り分けの基準は「1つのClaudeの指示セッションで使う情報だけ渡す」だ。

Q: ゲスト用レート制限にRedisではなくSupabaseを選んだ理由は?

Redisを別途立てるインフラコストと運用手間を省くためだ。SupabaseのAtomic Updateを使えば、同時アクセスのカウントズレを防ぎつつ安価に制限をかけられる。1人開発ではインフラの複雑さを極力減らすのが生存戦略だ。

Q: 「よしなにやって」指示でタイムゾーンバグが出たとき、どうやって原因を特定したのか?

DBのクエリログを見たら、今日の日付で取得しているはずのデータが昨日の日付で返ってきていた。getTodayJSTの実装を追ったら、AIがUTC基準で計算していた。バッチ処理側がJST前提で動いていたので、そこで9時間ズレが発生していた。

AIに丸投げしたらシステムが崩壊し、結局手作業でケツを拭く週末だった。

👉 ThreadPostでSNS運用を自動化する

ThreadPost — SNS投稿をAIが自動化

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

無料で始める

この記事をシェア

XはてブLINE
しんたろー

ThreadPost開発者・個人開発エンジニア

AI × SaaS個人開発者。Cursor / Claude Code を使った効率的開発、SNS自動化について実体験から発信。

人気の記事