私には「墓場」フォルダがある。41個のプロジェクトディレクトリ。どれも、美しいデモと売上ゼロを生み出したvibe codingの週末の遺骸だ。その後、働き方を変えた。すると2ヶ月で3つのものをリリースし、人々が実際にお金を払うようになった。墓場と収益の違いは才能でも運でもなかった。ワークフローだった。
vibe codingと実際のリリースについて話そう。この二つの間にある溝こそ、ほとんどのソロAIビルダーが静かに溺れる場所だからだ。私は一年間そこで溺れた。
Vibe codingとは実際何か
Vibe codingとは、欲しいものを説明し、AIに生成させ、結果をざっと見て、感覚で進み続けることだ。勢いをつけるには素晴らしい。空のフォルダから午後一杯で動くプロトタイプへ到達できる。まるでスーパーパワーのように感じる。
実際にスーパーパワーだ。最初の70%については。
問題は残りの30%にある。デモではなくプロダクトにする部分だ:漏れないauth、入力が空のときのエッジケース、"undefined"と言わないエラーメッセージ、意図を知らない本物のユーザーを生き延びられるもの。Vibe codingはこれら全てを通り過ぎてしまう。何もかも完成して見えるから。完成して見えることと本当に完成していることは全く違う状態であり、AIが生成したコードは完成して見えることが得意だ。
噛まれる瞬間
墓場にある中で最も鮮明な記憶:一週末でvibe-codeしたスケジューリングツール。美しかった。友人にデモした。彼が過去の日付をクリックすると、stack traceとともに全てが爆発した。私は過去の日付をクリックしたことがなかった。AIも考えなかった。なぜ考えるだろう?私が一度も教えなかったのだから。
これが罠だ。Vibe codingは感覚で運転しているから、ハッピーパスを最適化する。そして感覚は自分が想像したパスしかカバーしない。本物のユーザーはアンハッピーパスに住んでいる。
今の私の実際のリリース方法
最初のパスは今もvibe-codeする。スピードは手放さない。ただし第二フェーズを追加した。そのフェーズこそプロダクトが生まれる場所だ。
フェーズ1、vibeする。速く、ゆるく、骨格を立てる。Claude Codeにフロー全体を作らせ、まだクオリティを気にしない。
フェーズ2、エージェントの仕事を「作る」から「壊す」に切り替える。文字通り。こう告げる:
あなたは今、敵対的なQAエンジニアです。ユーザーがこの機能を壊せる
あらゆる方法を列挙してください。空の入力、過去の日付、巨大な入力、
ダブルクリック、ネットワークなし。それぞれについて、現在の動作を教えてください。
まだ修正しないでください。
このたった一つのプロンプト変更が、vibe codingが隠している30%を引き出す。たった今作ったものを、許可を与えれば攻撃するのがエージェントは得意だ。一覧が手に入る。あとは一つ一つ直す。敵対的QAパスこそが、墓場フォルダとStripeダッシュボードの全ての差だ。
始める前に「完成」の意味を書く
デモからプロダクトへ移行した、もう一つのこと:エージェントに何かを作らせる前に、小さな「完成」の定義を書く。仕様書ではない。ファイルに5つの箇条書きだ。
あのスケジューリングツールを作り直したとき、それは:過去の日付を拒否する、空のカレンダーを処理する、ネットワークなしで動く、stack traceではなく本物のエラーを表示する、2秒以内に読み込む、だった。5行。そのファイルをコンテキストに固定し、エージェントは自分の感覚ではなくそれに対して作る。
Vibesは素晴らしいスタートエネルギーで、最悪の仕様書だ。あなたの感覚に「ネットワークが切れたら?」は絶対入らない。書かれた一行なら入る。
自分を正直に保つevalの技
AI機能を含む何かについては、vibesを全く信用しない。LLMの出力は非決定論的で、「試したら動いた」は何も意味しないからだ。良い結果がどんなものかの入出力例を約10個書き、プロンプトを変えるたびに実行する。貧乏人のevalセットだ。テキストファイルとループ。
一つのケースを直すためにプロンプトを調整すると、evalが気づかずに壊した3つのケースを捉える。それなしでは、目を閉じてwhack-a-moleをしているようなものだ。一人のユーザーの不満を直しながら、静かに3つ新しいものを作っている。10個の例。それが基準。フレームワークは不要だ。
墓場時代の自分に言うこと
Vibe codingは敵ではない。エンジンだ。しかしブレーキもフロントガラスもないエンジンは、壁に高速で突っ込む方法でしかない。私の41プロジェクトは全速力でその壁にぶつかった。
本物のソロプロダクトをリリースしているビルダーは、あなたより良いプロンプトを書いていない。約束する。彼らはあなたが飛ばしている退屈な第二フェーズをやっている:敵対的QAパス、5行の完成定義、10例のeval。どれも難しくない。全部退屈だ。だからこそほとんどの人がやらない。だからこそやることがアドバンテージになる。
正直な分割はこうだ。Vibe codingは一午後でデモまで連れて行く。アイデアに足があるか試すのに全ての価値がある。しかしデモからプロダクトへの飛躍は別のギアで動く。退屈なものが動力だ。その午後はあなたを天才に感じさせる。退屈な夜があなたに収益をもたらす。
墓場フォルダには41個のデモがある。Stripeダッシュボードには3つのプロダクトがある。それらを分けた唯一のものは、かつて私が飛ばしていた部分だった。
ユーザーが無料でやる前に、自分のデモを自分で壊しに行こう。
