プロローグ — コードを書かないプログラマー
ある朝のツイート
2025年2月、AI研究者の Andrej Karpathy が X(旧Twitter)にこう投稿した。
INFO
"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists." — Andrej Karpathy, 2025年2月
「バイブコーディング」——コードの存在すら忘れて、ノリ(vibe)でソフトウェアを作る。この一言が、ソフトウェア開発の世界に静かな衝撃を与えた。
Karpathy はテスラの AI ディレクター、OpenAI の創設メンバーという経歴を持つ。その彼が「もうコードを読んでいない。ただ LLM に頼んで、動くものを受け取るだけだ」と語ったのだ。
甘い罠
バイブコーディングは魅力的だった。プロトタイプは30分で完成し、見た目も動作も問題ない。しかし、本番投入した途端に問題が噴出する。
ある開発チームの実話を紹介しよう。
彼らは新しい社内ツールを AI エージェントに作らせた。「ユーザー管理画面を作って」「認証機能を追加して」と指示するだけで、2日で動くプロトタイプが完成した。上層部は喜び、即座にデプロイを許可した。
1週間後、セキュリティチームがコードレビューで発見したもの:
- SQL インジェクションの脆弱性が3箇所
- ハードコードされた API キーが2箇所
- エラーハンドリングが一切なく、スタックトレースがユーザーに丸見え
node_modulesの中身がコミットされている
ハーネスという発想
「ハーネス」は本来、馬を御するための馬具、あるいは高所作業者の安全帯を意味する。
馬を自由に走らせれば速い。しかし方向が定まらない。ハーネスをつけることで、馬の力を活かしつつ、行きたい方向へ導くことができる。
AI コーディングエージェントも同じだ。
WARNING
ハーネスエンジニアリングの核心: AI エージェントの「能力」を制限するのではなく、「方向」を制御する。自由度を保ちながら、品質・安全性・一貫性を確保する設計技法。
Claude Code において、ハーネスは具体的な設定ファイルと仕組みの集合体として実装されている:
この本で学ぶこと
この本は、バイブコーディングの混沌から秩序を生み出す技術——ハーネスエンジニアリング——を体系的に学ぶためのガイドだ。
あるスタートアップの開発者「ユウキ」の視点で物語は進む。彼はバイブコーディングの甘い罠にはまり、そこから這い上がる過程でハーネスエンジニアリングの各要素を一つずつ身につけていく。
各章の「難易度」と「実用度」のバランスを示した。序盤は基礎的だが即実践可能、中盤で技術的に深くなり、終盤で全体を統合する構成になっている。
さあ、ユウキと一緒に、AI時代の新しいエンジニアリングの旅に出よう。