AI CODE READER · AI が書いたコードを読む

AI エージェントが書いた
コードをレビューする

エージェントの作業が終わっても、差分が長すぎて一度には読み切れない。Yenpo でプロジェクトを開き、Local Changes やブランチの差分から、検索・ナビゲーション・AI Reader を使って一つずつ変更を読み解きます。

インストールと最初のプロジェクト

Mac 上のローカルファイル · AI は任意 · ローカル変更と Git 差分v0.1.303 EAP · Apple silicon & Intel · macOS 14+有効期限 (UTC)AI の利用にはモデルプロバイダーの設定が必要で、プロバイダーの利用料金が適用されます。

01 / エージェントの作業が終わったら、読む

受け入れた変更を、自分で説明できるコードにする

Claude Code、Codex、Cursor などに作業を任せた後は、自分で理解したい小さな変更を一つ選びます。このフィルターは何を返すべきか、どの条件で項目を除外するか、その条件を変えると何が変わるか。説明を求める前に予測を書き出します。

入力と条件を並べて読む

データ、フィルター関数、呼び出し元を別々のタブで開きます。ファイル検索とテキスト検索で機能に出てくる名前を探し、呼び出し元が実際に渡す値を確認します。

説明をソースで確かめる

モデルプロバイダーを設定したら、説明できない条件や分岐を質問します。ソースへの参照を開いて周辺の条件も読み、結果を自分の言葉で説明します。

条件を一つ変えて結果を確かめる

手動で行う小さな変更を選びます。変わるケースと変わらないケースを予測し、対応するコマンドやテストをターミナルで実行します。説明は自分のメモに残します。

小さな実行可能なフィルターで学習の流れを試す

演習には架空のデータ、三つの出力予測、1 行の変更と変更後の動作確認が含まれます。モデルのアカウントは不要です。Yenpo でローカルコードを読み、例と確認用コマンドは自分で実行します。

02 / 質問から始める

変更が影響する動作を通してレビューする

AI が実装した動作を一つ追う

エージェントが追加した、まだ説明できない小さな動作を選びます。出力を予測し、それを決める条件を読み、自分で確かめられる変更を一つ加えます。

実行できるフィルタリングの演習で学ぶ

分岐と呼び出し元をつなげる

どの入力が実装を選ぶのか、呼び出し後に何が起こるのか、エラーはどこで処理を止めるのかを質問します。説明対象の関数だけでなく、呼び出し元も読みます。

HTTP リクエストを追う

AI が書いた変更を確かめる

選択したコミットやブランチを、論点を絞って比較します。引用された分岐、変更されていない呼び出し元、テストのアサーションを確認してから説明を受け入れます。

変更されたアサーションをレビューする

Yenpo は、リポジトリを読みながら変更を検討する作業に適しています。コーディングエージェントではなく、ビルド、テスト実行、パッチのマージは行いません。それらは Claude Code、Codex、Cursor やターミナルで行います。

03 / 必要なファイルを見つける

リポジトリ全体を探索する前に、小さな見取り図を作る

この教材では、preview が「Moon Kite · paper」を出力し、list が展示品名を並べます。同じデータを読む二つのコマンドの経路を、下の手書きの読解メモとソースでたどります。

  1. 入口を確認する。README.md と package.json を読みます。preview スクリプトは moon-kite を入力に src/preview.mjs を起動します。list スクリプトは src/list.mjs を起動します。コマンドとソースのバージョンをメモに残します。
  2. 出力を手がかりにする。Moon Kite を検索すると、データを持つ catalog.mjs が見つかります。findExhibit の呼び出し元である build-label.mjs、さらに buildLabel の呼び出し元である preview.mjs を追います。検索結果を入口と判断する前に起動スクリプトを確認します。
  3. 各ファイルの役割を言葉にする。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.mjs

preview は「Moon Kite · paper」、list は「Moon Kite」と「Cloud Loom」を別々の行に出力します。別の展示を選ぶケースや、未知の識別子で出力前に停止するケースを含め、5 件のテストが通ります。アーカイブにはソース位置とファイルのハッシュ一覧も含まれます。

自分のリポジトリでも、起動引数はどこから来るか、どの実装が選ばれるか、データはファイルかサービスか、といった未解決の質問を図の脇に残します。その質問から次に読むファイルを選びます。フォルダーのツリーだけでは実行経路は分かりません。

04 / YENPO で経路を読む

関係するファイルを開いたまま質問する

  1. 出発点を見つける。展開した exhibit-labels フォルダーをローカルプロジェクトとして開きます。Command-P で preview.mjs を開くか、Search All Files で Moon Kite を検索します。入口とカタログを開いたまま import を追います。ファイル、フォルダー、選択範囲を AI Reader の出発点にできます。
  2. 一つの動作について質問する。例:「moon-kite を指定した preview コマンドで、どのファイルがレコードを選び、文字列に整形し、出力しますか。ソース位置を示し、list コマンドは別に扱ってください」。回答の対象をこの経路に絞ります。
  3. ソースへの参照を開く。参照を開くと、引用行が Code Quick Look に表示されます。Open File でタブに開き、周辺のコードも読みます。その行が説明を実際に裏付けるか確認します。
  4. その先の影響を追う。確認したファイル、その役割、次の未解決の質問を自分のメモに残します。動作確認が必要なら、対象を絞ったコマンドやテストを Terminal で実行します。AI Reader が代わりに実行することはありません。
05 / モデル・データ・権限

ローカルに残るものとモデルに送るものを知る

ローカル読解とモデルを使った読解

ローカルファイルの閲覧と検索にモデルのアカウントは不要です。AI Reader に質問するには Settings でプロバイダー、API の種類、エンドポイント、モデルを設定します。OpenAI 互換 Chat Completions、OpenAI Responses、Anthropic Messages に対応しています。利用可能なモデルと料金はプロバイダーのアカウントで決まります。

質問、関連する会話、添付内容、調査中に読んだコードは、設定したエンドポイントに送信されます。AI Reader は添付以外の関連ファイルも読む場合があります。リモートプロバイダーはこれらを Mac の外で処理します。

モデルプロバイダーを設定する
06 / 調査を続ける

まだ分からないことから、次の確認を選ぶ

演習で違う展示が選ばれたなら入力と検索を、レコードは正しくラベルが違うなら整形処理を読みます。大きなプロジェクトでも同様に、質問を一つの調査に絞って追います。

以前の単一ファイルによる分岐演習も、小さく始めたい場合に引き続き利用できます。

Yenpo をインストールして最初のプロジェクトを開く

YENPO EAP を試す

AI が次に加える変更で、
試してみよう。

差分、Local Changes、検索はすぐに使えます。AI Reader に質問したくなったら、モデルプロバイダーを接続してください。

EAP をダウンロード

アプリは英語、簡体字・繁体字中国語、日本語、スペイン語、ブラジルポルトガル語、韓国語、ドイツ語、フランス語、ロシア語に対応しています。

v0.1.303 EAP · Apple silicon & Intel · macOS 14+有効期限 (UTC)