動画記事 · AI Engineer
スロップでスロップと戦う — Vaibhav Gupta氏、Boundary
動画の文字起こしと公開情報をもとにAIで要約・構成しています。 正確な発言は元動画と時間位置で確認してください。
まず要点
Vaibhav Gupta は、コードレビューや標準化を廃し、AI エージェントによる自動検証と「スロップ(不要なコード)でスロップと戦う」アプローチを用いて、安定したプログラミング言語を開発する手法を提案している。
動画をもとにした日本語記事
スロップと戦うにはスロップを駆使せよ:AI エージェント時代の新・エンジニアリング戦略
従来のコードレビューや厳格な標準化に頼らず、AI エージェントが生成する「スロップ(人間が読まないコード)」自体を検出・修正する仕組みで対抗する新しいアプローチ。Vaibhav Gupta 氏は、Boundary 社におけるこの実験的な実践から、開発速度と安定性を両立させるための具体的な戦略を提示します。
「スロップ」という敵との戦い方
Gupta 氏が定義する「スロップ」とは、「人間が読まないコード」のことです。彼らはこれを敵とみなし、従来のように人がレビューして排除しようとするのではなく、AI エージェントという「スロップ」を使ってスロップを倒す戦略を採用しています。
「スロップに勝つためには、我々もまたスロップにならなければならない。」
このチームではコードレビューを行いません。エンジニアは並列で作業し、AI の使い方も標準化されていません。なぜなら、優秀なエンジニアほど各自のツール(Claude や Codex など)を選びたがるからです。その代わりに彼らが導入したのは、「不変のアーキテクチャ定義」です。
不変の基準:architecture.md の活用
開発者のツールの選択に依存せず、すべての AI モデルが理解できる小さなファイルで設計の基準を固定化します。Gupta 氏はこれを architecture.md と名付けました。
- 小さく、不変であること: このファイルは数ヶ月から数年変わらない要素(コンパイラのレイヤー構造など)のみを含みます。
- モデルに依存しない:
Claude.mdのような特定のモデル向けではなく、あらゆる AI モデルが理解できる形式で記述されます。
これにより、「誰が何を使おうと、アーキテクチャの根幹は守られる」という標準化を実現しています。
設計ドキュメントの自動化と可視化
「コードはスロップでもよいが、文章(ドキュメント)は完璧でなければならない」というルールを設けた Gupta 氏ですが、人間が手書きでは AI を使わず、AI に書かせると品質が低下するというジレンマに直面しました。そこで彼らが構築したのは、Notion や GitHub の代替となる自動化された設計ドキュメントツールです。
- バージョン管理とコメント機能: Notion と GitHub の良いとこ取りをした専用ツールを構築。
- Slack 連携による可視化: ドキュメントが更新されると Slack に通知が飛び、深夜でもチームメンバーが即座に閲覧する文化が生まれました。
- 人間による検証の強制: 「ドキュメントを書くなら、必ず人が読む」というルールを設けることで、AI が生成したドキュメントの質と可読性が担保されました。
エージェントによる自動検証と依存関係管理
アーキテクチャの整合性を維持するため、チームは依存関係グラフの可視化ツールを導入しています。このツールは内部パッケージや外部依存関係を監視し、AI が誤って依存関係を追加したり、アーキテクチャの境界を破ったりした瞬間を検知します。
- CI/CD と Git コミット履歴の活用: AI が生成したコードがルール違反をした場合、自動的に CI/CD で検知されたり、Git の履歴から問題箇所が特定されます。
- 不変性の確保: これらの仕組みにより、過去 3〜4 ヶ月間アーキテクチャに変更を加えることなく、安定した開発を続けています。
根本解決:ML 機能を組み込んだ新言語「BAML」の探求
既存のプログラミング言語(TypeScript や Python など)は、人間の生産性を優先して設計された結果、「スロップ」が埋め込まれたままです。例えば、TypeScript のソート処理における文字列への変換などは、AI がコードを書く世界では不要な非効率さです。
Gupta 氏は、既存言語のパッチ適用ではなく、ML 機能を直接組み込んだ新しい基盤層(BAML)の構築を目指しています。
- データ駆動型の改善: AI エージェントが生成したプログラムを自動実行し、そのプロセス(ツール呼び出しの数やエラー発生率)を分析します。
- AB テストによる最適化: どの言語機能がより少ないツール呼び出しで、より正確な結果を生むかを AB テストで検証し、データに基づいて言語機能を改善します。
- 実行トレースの可視化: コードそのものを読むのではなく、プログラムがどのように動作したかの「実行トレース」を AI がナビゲートすることで、バグや非効率箇所を特定・修正します。
まとめ
Vaibhav Gupta 氏の提唱する「スロップと戦うにはスロップで戦え」という哲学は、AI エージェントが生成するコード量の爆発的増加に対する組織的な対応策として示唆に富んでいます。しかし、これは特定の企業文化や技術スタック(BAML など)に依存する実験的な試みであり、即座に業界全体で採用できる普遍的な解ではない点には注意が必要です。
「我々はまだこの戦争に勝つことはできないかもしれない。なぜなら、私たちが使っている基盤そのものが壊れているからだ。」
それでも、AI エージェントが生成するスロップを監視・修正し、人間が読むべきコードの範囲を最小限に抑える「エージェントファースト」の品質保証モデルは、開発速度と安定性の両立を可能にする新たな基準となり得るでしょう。
Original Source
元動画で発言を確認
プレイヤーは必要になるまで読み込みません。YouTubeのCookieと通信も再生を選ぶまで開始しません。
時間位置から根拠を確認
章や引用を選ぶと、元動画をその位置から再生します。