AI エージェントが書いた
コードをレビューする
エージェントの作業が終わっても、差分が長すぎて一度には読み切れない。Yenpo でプロジェクトを開き、Local Changes やブランチの差分から、検索・ナビゲーション・AI Reader を使って一つずつ変更を読み解きます。
Mac 上のローカルファイル · AI は任意 · ローカル変更と Git 差分v0.1.303 EAP · Apple silicon & Intel · macOS 14+有効期限 (UTC)AI の利用にはモデルプロバイダーの設定が必要で、プロバイダーの利用料金が適用されます。
受け入れた変更を、自分で説明できるコードにする
Claude Code、Codex、Cursor などに作業を任せた後は、自分で理解したい小さな変更を一つ選びます。このフィルターは何を返すべきか、どの条件で項目を除外するか、その条件を変えると何が変わるか。説明を求める前に予測を書き出します。
入力と条件を並べて読む
データ、フィルター関数、呼び出し元を別々のタブで開きます。ファイル検索とテキスト検索で機能に出てくる名前を探し、呼び出し元が実際に渡す値を確認します。
説明をソースで確かめる
モデルプロバイダーを設定したら、説明できない条件や分岐を質問します。ソースへの参照を開いて周辺の条件も読み、結果を自分の言葉で説明します。
条件を一つ変えて結果を確かめる
手動で行う小さな変更を選びます。変わるケースと変わらないケースを予測し、対応するコマンドやテストをターミナルで実行します。説明は自分のメモに残します。
演習には架空のデータ、三つの出力予測、1 行の変更と変更後の動作確認が含まれます。モデルのアカウントは不要です。Yenpo でローカルコードを読み、例と確認用コマンドは自分で実行します。
変更が影響する動作を通してレビューする
AI が実装した動作を一つ追う
エージェントが追加した、まだ説明できない小さな動作を選びます。出力を予測し、それを決める条件を読み、自分で確かめられる変更を一つ加えます。
実行できるフィルタリングの演習で学ぶAI が書いた変更を確かめる
選択したコミットやブランチを、論点を絞って比較します。引用された分岐、変更されていない呼び出し元、テストのアサーションを確認してから説明を受け入れます。
変更されたアサーションをレビューするYenpo は、リポジトリを読みながら変更を検討する作業に適しています。コーディングエージェントではなく、ビルド、テスト実行、パッチのマージは行いません。それらは Claude Code、Codex、Cursor やターミナルで行います。
リポジトリ全体を探索する前に、小さな見取り図を作る
この教材では、preview が「Moon Kite · paper」を出力し、list が展示品名を並べます。同じデータを読む二つのコマンドの経路を、下の手書きの読解メモとソースでたどります。
- 入口を確認する。README.md と package.json を読みます。preview スクリプトは moon-kite を入力に src/preview.mjs を起動します。list スクリプトは src/list.mjs を起動します。コマンドとソースのバージョンをメモに残します。
- 出力を手がかりにする。Moon Kite を検索すると、データを持つ catalog.mjs が見つかります。findExhibit の呼び出し元である build-label.mjs、さらに buildLabel の呼び出し元である preview.mjs を追います。検索結果を入口と判断する前に起動スクリプトを確認します。
- 各ファイルの役割を言葉にする。preview.mjs は識別子を受け取り、結果を出力します。build-label.mjs は検索と整形をまとめ、catalog.mjs はレコードを探し、format-label.mjs はそれを文字列にします。この質問には、この四つの役割で十分です。
プロジェクト、完成した見取り図、空のメモテンプレートをダウンロード。展開して exhibit-labels に移動し、Node.js 22 以降を使って Terminal で以下を実行します。依存パッケージやモデル接続は不要です。
node src/preview.mjs moon-kite
node src/list.mjs
node --test tests/lab.test.mjspreview は「Moon Kite · paper」、list は「Moon Kite」と「Cloud Loom」を別々の行に出力します。別の展示を選ぶケースや、未知の識別子で出力前に停止するケースを含め、5 件のテストが通ります。アーカイブにはソース位置とファイルのハッシュ一覧も含まれます。
自分のリポジトリでも、起動引数はどこから来るか、どの実装が選ばれるか、データはファイルかサービスか、といった未解決の質問を図の脇に残します。その質問から次に読むファイルを選びます。フォルダーのツリーだけでは実行経路は分かりません。
関係するファイルを開いたまま質問する
- 出発点を見つける。展開した exhibit-labels フォルダーをローカルプロジェクトとして開きます。Command-P で preview.mjs を開くか、Search All Files で Moon Kite を検索します。入口とカタログを開いたまま import を追います。ファイル、フォルダー、選択範囲を AI Reader の出発点にできます。
- 一つの動作について質問する。例:「moon-kite を指定した preview コマンドで、どのファイルがレコードを選び、文字列に整形し、出力しますか。ソース位置を示し、list コマンドは別に扱ってください」。回答の対象をこの経路に絞ります。
- ソースへの参照を開く。参照を開くと、引用行が Code Quick Look に表示されます。Open File でタブに開き、周辺のコードも読みます。その行が説明を実際に裏付けるか確認します。
- その先の影響を追う。確認したファイル、その役割、次の未解決の質問を自分のメモに残します。動作確認が必要なら、対象を絞ったコマンドやテストを Terminal で実行します。AI Reader が代わりに実行することはありません。
ローカルに残るものとモデルに送るものを知る
ローカル読解とモデルを使った読解
ローカルファイルの閲覧と検索にモデルのアカウントは不要です。AI Reader に質問するには Settings でプロバイダー、API の種類、エンドポイント、モデルを設定します。OpenAI 互換 Chat Completions、OpenAI Responses、Anthropic Messages に対応しています。利用可能なモデルと料金はプロバイダーのアカウントで決まります。
質問、関連する会話、添付内容、調査中に読んだコードは、設定したエンドポイントに送信されます。AI Reader は添付以外の関連ファイルも読む場合があります。リモートプロバイダーはこれらを Mac の外で処理します。
モデルプロバイダーを設定するまだ分からないことから、次の確認を選ぶ
演習で違う展示が選ばれたなら入力と検索を、レコードは正しくラベルが違うなら整形処理を読みます。大きなプロジェクトでも同様に、質問を一つの調査に絞って追います。
- どの設定が優先されたか。値を入力から出力まで追う。
- 再現できる引き継ぎ記録を残す
- AI の説明は正しいか。主張を一つずつ確かめる。
- 実行はどこで失敗したか。エラーを発生元まで追う。
- 変更は何に影響するか。利用側と期待する動作を調べる。
以前の単一ファイルによる分岐演習も、小さく始めたい場合に引き続き利用できます。
AI が次に加える変更で、
試してみよう。
差分、Local Changes、検索はすぐに使えます。AI Reader に質問したくなったら、モデルプロバイダーを接続してください。
EAP をダウンロードアプリは英語、簡体字・繁体字中国語、日本語、スペイン語、ブラジルポルトガル語、韓国語、ドイツ語、フランス語、ロシア語に対応しています。
v0.1.303 EAP · Apple silicon & Intel · macOS 14+有効期限 (UTC)