Hurlがバイブコーディングのドリフトを止める

3ヶ月の壁


バイブコーディングで作ったアプリが3ヶ月で崩壊したなら、AIが既存ロジックを上書きするドリフトに悩んでいるなら、APIコントラクトをコード変更から守りたいなら――Hurlとラチェットがその解法だ。

バイブコーディングでSaaSを作る。最初は速い。「ログインを作って」――30秒。「決済をつけて」――2分。3週間でMVPが出る。

3ヶ月経つと、おかしなことが起きる。AIが決済ロジックを「整理」しながら割引計算をひっそり変える。新しいエンドポイントを追加したら既存の認証が壊れる。リファクタリングを頼んだら公開APIのフィールド名が変わって全クライアントが死ぬ。

これをロジックドリフトと呼ぶ――AIが既存のビジネスロジックを意図せず変更する現象。回帰バグは従来の開発にもある。しかしロジックドリフトは違う。開発者が意図しない変更が、開発者が認識しないうちに、コード全体にわたって起きる。毎回のプロンプトが新しいコンテキストウィンドウで始まるからだ。


数字で見るドリフト

これは感想ではない。データがある。

速度の代償は複雑性。 Carnegie Mellon研究チームがCursor導入前後の807のGitHubリポジトリを比較した(MSR 2026)。導入初月にコード追加量が3-5倍に増加。2ヶ月後に速度の利点は消滅。残ったのは静的解析警告30%増加、コード複雑性41%の恒久的増加。Liu et al.(2026)が6,299リポジトリで302,600件のAIコミットを分析し、未解決の技術的負債が2025年初の数百件から2026年2月に11万件以上に急増していることを発見。

速くなったのではなく遅くなった。 METR(2025)が16人の熟練OSS開発者でRCTを実施。自分がよく知るプロジェクトでAIツールを使ったグループは完了まで19%長くかかった。しかし開発者自身は20%速くなったと認識。認識と現実の差39pp。

規模が大きくなると安定性が崩れる。 Google DORAレポート(2025)によると、AI導入が25%増えるごとにソフトウェアデリバリー安定性が7.2%低下。

実際に崩れた。 Amazonは2025年に全社でAIコーディングツール使用を義務化し、21,000のAIエージェントを配備。同期間に約3万人が解雇されレビュー要員が激減。結果:90日間にSev-1事故4件。2026年3月5日、6時間の障害で推定630万件の注文損失。


「TDDをやれ」は答えではない

TDAD研究(arxiv 2026)がこれを正確に実験。Qwen3-Coder 30Bに100のSWE-bench Verifiedインスタンスを解かせた。

条件回帰率
ベースライン(テスト指示なし)6.08%
「TDDをやれ」の手続き的指示9.94%(悪化)
影響を受けるテストファイルをコンテキストに提供1.82%(70%削減)

「どうテストするか」の指示ではなく、「何が通らなければならないか」のコントラクト。


Hurl:plain textでコントラクトを

HurlはMeyer(1992)のDesign by Contract原則をHTTP境界に適用する。HTTP要求と期待されるレスポンスをplain textで宣言するテストツール。Orangeが保守、Rustバイナリでランタイム依存ゼロ、GitHub 18.7k スター。

# ログイン成功
POST http://localhost:8080/api/auth/login
{
  "email": "test@example.com",
  "password": "secret123"
}
HTTP 200
[Asserts]
jsonpath "$.token" exists
jsonpath "$.user.email" == "test@example.com"

# 認証なしアクセスは401
GET http://localhost:8080/api/pages
HTTP 401

2つのコントラクト。ログインは200とトークンを返す。認証なしアクセスは401。


なぜHurlか

ユニットテストは内部関数を検証する――実装に構造的に結合。Hurlは HTTP境界にいる。要求とレスポンスだけを宣言する。実装から自然に独立している。

ユニットテストHurl
検証対象関数内部HTTPコントラクト
AIリファクタリング時一緒に変わる不変
ドリフト検知条件付き自然

Hurlが検証するのはコードではなく振る舞いだ。


ラチェットロック

Hurlテストが通過したらロックする。これがラチェットだ。ロックされたHurlテストはratchet code——通過したAPIコントラクトを不可逆にする決定論的コードだ。エージェントは既存の全振る舞いを保持しながらリファクタリングしなければならない。


レガシーにも適用可能

ステップ1: 現在の振る舞いをHurlでキャプチャ。ステップ2: CIに組み込む。ステップ3: もう安全だ。

基礎工事ではなく耐震補強。営業中の店を閉めずにビルを補強する。


バイブコーディングの終わりではなく進化

Karpathyは2026年2月に宣言した:「バイブコーディングの時代は終わった。」新パラダイムはエージェンティック・エンジニアリング。Storey(2026)は認知的負債意図負債を理論化した。Hurlファイルはまさに意図の外部化だ。

1つのHurlファイルが1つのコントラクト。 モデルを変えるな。コントラクトを足せ。


関連記事


出典

変更履歴

  • 2026-05-22: 初版