AIToday

Vestige、AI生成コード差分を可視化

Hacker News14時間前
Vestige、AI生成コード差分を可視化

要点

VestigeはVS Code拡張機能で、開発者が大規模なAI生成コード変更をレビュー可能なチャンクに分割し、ガイド付き読み順序、ブラスト半径分析、コンテキストを備えたものに変換します。すべてマシン上でローカルに計算され、コード構造をLLMに送信しません。解析したコールグラフと依存グラフを使用して、推測ではなく確定的に影響を判定し、3つの重要な質問(変更をどこから開始するか、何が破損する可能性があるか、コードが以前何をしていたか)に答えます。

こういう要約が、毎朝あなたのメールに届きます。

無料で登録 →

3つのポイント

  • 何が起きたか

    VS Code拡張機能のVestigeは、開発者が大規模なAI生成コード変更をレビューする際、それを順序立てたチャンクに分割し、エントリーポイント、ブラスト半径(破損の可能性がある箇所)、コンテキストを表示します。LLMの呼び出しなしで、ローカル解析によるコールグラフとファイル依存グラフから影響分析を実行します。

  • なぜ重要か

    LLMが一度に多くの行を変更する場合、開発者はマージ前に何が変更され、何が失敗する可能性があるかを理解する必要があります。Vestigeはローカルで影響を計算することで(推測ではなく確定的に)、説明やサマリーをリクエストする場合のみコードスニペットをバックエンドに送信するため、これらの質問に素早く答えます。大部分の分析をマシン上でプライベートに保ちます。

  • 注目点

    拡張機能は初公開(v0.1.0)で、TypeScript/JavaScript、Python、Go、Javaに対応しており、単一ルートワークスペースのみのサポートとなります。ファイル変更時の再解析はまだインクリメンタルではないため、大規模モノレポは遅く感じるかもしれません。動的ディスパッチとリフレクションは静的コールグラフのブラスト半径検出から逃げることができます。

詳細

VestigeはVS Code拡張機能で、AI差分レビューを開発者の既存ワークフローに統合します。AIエージェント、gitプル、またはバルク編集がコードを変更すると、Vestigeはそれを検出し、Splash Zone(変更を順序立てたレビューカードに分割したパネル)を開くことを提案します。各カードには、ブラスト半径(変更が到達または破損する可能性のあるもの)、インラインまたは分割差分、LLM生成の1行サマリー、より深い文脈のための説明アクション、受け入れ/取り消しコントロールが表示されます。

拡張機能は、LLM呼び出しなしにフォルダをローカルでスキャンして解析し、コールグラフ(コードベース内の関数呼び出しを追跡)とファイル依存グラフ(ファイルがどのファイルに依存しているかを追跡)を構築することで機能します。Vestigeアイコンをクリックするか「Vestige: グラフを開く」を実行すると、2つのタブが表示されます:リポジトリグラフ(関数呼び出しを表示)と機能(機能クラスタを表示)。任意のノードをクリックして関連コードにジャンプできます。コールグラフと依存グラフは確定的で、ローカルで計算され、キャッシュされるため、既に実行された作業は再実行されたり再課金されたりしません。

言語対応については、TypeScript/JavaScript、Python、Go、Javaがすぐに対応しており、パーサーはtree-sitterをWebAssemblyにコンパイルして付属しているため、別途インストールは不要です。その他のファイルタイプは依存グラフの単純なノードとして扱われます。ツールは5段階のウォークスルー(「Vestige: はじめに」)を提供し、プロジェクトをマッピング、グラフを読み取り、変更をレビュー、ブラスト半径を判定、説明と判定を行うプロセスをガイドします。

プライバシーとデータに関しては、Vestigeはコード構造を完全にローカルに保ちます。コールグラフ、依存グラフ、ブラスト半径分析はマシン上で100%実行され、コード構造に関する何もバックエンドに送信されません。ただし、2つの機能はVestigeバックエンド(AWS上でホストされ、OpenAIを呼び出す)にコードスニペットを送信します:「選択範囲を説明」(選択したコードスニペットを送信)と変更レビューサマリー(Splash Zoneの各チャンクで変更されたコードスニペットを送信)。機能クラスタ分析は事前計算されたサマリーを送信し、生のソースではありません。これらの機能のいずれかを積極的に使用しない限り、何も送信されず、テレメトリやアナリティクスはありません。初回リリース(v0.1.0)は既知の制限があります:単一ルートワークスペースのみ、ファイル変更時の再解析はまだインクリメンタルではない(小~中規模リポジトリでは問題ありませんが、大規模モノレポは遅い)、そしてブラスト半径は静的コールグラフと同等の精度のみ。動的ディスパッチとリフレクションはそれから逃げられます。

背景と解説

Vestigeは現代の開発における実際の課題に対処しています。AIエージェントとLLMは1回の操作で大量のコードを変更できますが、何が変更され、何が失敗する可能性があるかを表示するツールがないと、これらの変更をレビューするのは困難です。拡張機能の中核的な革新は、静的分析(LLMを関与させずにローカルでコールグラフと依存グラフを構築)をLLM生成コンテキスト(サマリー、説明、機能クラスタ名)から分離することです。この分離により、影響分析は確定的でキャッシュされるため、ブラスト半径検出はLLMの幻覚に依存せず、繰り返されるバックエンド費用も発生しません。

プライバシーモデルは明確です。コード構造はマシンから離れることはなく、説明やサマリーを明示的にリクエストしたコードスニペットのみがバックエンド(OpenAIを呼び出します)に送信されます。このデザインは、AI変更を慎重にレビューしたいが、生のコード構造をクラウドサービスに送信するリスクを負えない開発者にアピールします。初回リリースの制限(言語対応、単一ルートワークスペース、非インクリメンタル再解析、および動的ディスパッチが静的グラフから逃げられるという注意事項)は透明で合理的なv0.1.0リリースですが、大規模モノレポとポリグロットプロジェクトでの採用を制限しています。

よくある質問

Vestigeはどの言語に対応していますか?
TypeScript/JavaScript、Python、Go、Javaに対応しています。パーサーはtree-sitterをWebAssemblyにコンパイルして拡張機能に含まれているため、インストールは不要です。その他のファイルタイプは依存グラフの単純なノードとして扱われます。
Vestigeはコードをクラウドに送信しますか?
コールグラフ、依存グラフ、ブラスト半径分析はマシン上で100%ローカルに実行されます。コードをバックエンドに送信するのは2つの機能のみです:「説明を選択」(選択したコードスニペットを送信)と変更レビューサマリー(各チャンクの変更コードスニペットを送信)。機能クラスタ分析は事前計算されたサマリーを送信し、生のソースではありません。これらの機能のいずれかを使用しない限り、何も送信されません。
現在の制限事項は何ですか?
単一ルートワークスペースのみ。ファイル変更時の再解析はまだインクリメンタルではなく、小~中規模のリポジトリでは問題ありませんが、大規模モノレポは遅く感じるかもしれません。ブラスト半径は静的コールグラフと同等の精度のため、動的ディスパッチとリフレクションは検出から逃げられます。

こうしたAIニュースを、毎朝7時にお届けします

AIが要約して、あなたの選んだトピックだけを1日1通。LINE・Email・Slackで届きます。

登録無料・30秒で完了・いつでも解除できます

ディスカッション

この記事のディスカッションはまだありません

AIニュースを毎日お届け

200以上のソースから厳選したAIニュースを毎日無料でお届けします。

無料で始める

登録無料・30秒で完了・いつでも解除できます

毎朝1分、AIの要点だけ。

200媒体以上・Email/LINE/Slack 対応

無料で受け取る →