ライブ診断 (LSP)
もっともきついフィードバックループは、コードを実行するのを待たない。タイプした瞬間に間違いを捕まえる。それを提供するのが Language Server Protocol () だ。エディタの背後にあるライブな「賢さ」であり、リアルタイムのエラー、型情報、定義への移動、そしてオートコンプリートを含む。言語サーバーは変化していくコードを読み、何かが実行される前に問題を報告する。
vibe codingにとってのレバレッジは、それらの診断をAIに戻してやることだ。それがないとループは遅い。AIがコードを書き、あなたが実行し、タイプミスや型エラーでクラッシュし、あなたがそのメッセージを手で貼り戻す。診断を繋ぎ込めば、エージェントは行を書いたその瞬間に、あなたと同じ赤い波線を見る。そして型エラーやlintエラーをその場で、コードが実行されるより前に直す。
エージェントにこの視力を与える方法はいくつかある。
- 自分のスタックの言語サーバー(tsserver、rust-analyzer、pyrightなど)を動かす。AIネイティブなエディタの多くはこれを代わりにやってくれる。
- エージェントに型チェックやlintコマンドを実行させて出力を読ませる、あるいはサーバー経由で診断を公開する。
- クリーンな診断レポートを後付けではなく「完了」の一部として扱う。
こう配線すれば、エージェントは自力で自己修正サイクルを回す——編集し、実行し、失敗を読み、修正し、診断がクリーンに返ってくるまでまた実行する。
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ EDIT │ ───▶ │ RUN │ ───▶ │ 失敗を読む │
└──────────┘ └──────────┘ └──────┬───────┘
▲ │
│ ▼
│ ┌──────────┐ ┌──────────┐
│ │ 合格 │ ◀──── │ 修正 │
│ │ (完了) │ いいえ└──────────┘
│ └────┬─────┘
└─────────────────┘
まだ失敗中
これはまた、型のある言語がvibe codingにとって静かな超能力になりうる理由でもある。すべての型注釈は、AIの間違いが実行されるより前に捕まえる、小さく、機械が検査する仕様なのだ。実行・クラッシュ・貼り付けのサイクルが、静かで自己修正的なものになる。AIは無駄に粘る回数が減り、より速く収束する。