AI が書いた関数はもっともらしく見えても、代替値を返す条件や失敗時の動作まで説明できるとは限りません。Yenpo でコードを選択し、自分のモデルに質問して、回答の各判断をソースと照らし合わせます。

Yenpo、ローカルプロジェクト、対応 API のモデルサービスを用意します。コードを書いたものとは別のモデルを使っても構いません。

1. 自分のモデルを接続する

設定の「モデル」でプラスボタンを押してプロバイダーを追加し、「現在のプロバイダー」に選びます。API の種類、「ベース URL」、「サインイン方法」、利用できる正確なモデル ID を入力します。

API の種類は「OpenAI Compatible」(OpenAI Chat Completions)、「OpenAI Responses」、「Anthropic Messages」の 3 つです。モデル名だけで判断せず、サービスのプロトコルに合わせます。「一覧を取得」は任意です。一覧を提供しないサービスでは ID を直接入力できます。

API キーは設定にだけ入力してください。まずはそのプロバイダーに送ってよいコードで試します。選択範囲以外で AI Reader が見つけた関連コードも送信される場合があります。データと権限、URL の構成やエラーについてはモデル接続ガイドを確認してください。

2. 解説してほしいコードを添付する

ファイルを開いて関数や短いブロックを選択し、新しい AI Reader の会話で「選択範囲を解説」を選びます。添付のファイル名と行範囲を確認し、質問の下書きを編集して送ります。読む間は「編集を許可」をオフにします。

次のように質問できます。

選択したコードを実行順に説明してください。各分岐に到達する入力や状態、戻り値、副作用を示し、判断ごとに正確なソース行を引用してください。必要なら呼び出し元やテストも読み、コードから分かる事実と実行時入力への仮定を区別してください。編集はしないでください。

選択範囲は出発点です。古い変更を理解したい場合は、その Git 比較を開いて質問します。現在のファイルが旧バージョンと同じとは限りません。

3. ソース参照を一つずつ確認する

回答の参照をクリックすると「クイックルック」に該当行が表示されます。周囲の条件や呼び出し元が必要なら「ファイルを開く」を使います。

  1. パス、行範囲、バージョンを確かめます。
  2. 引用された処理の前にある条件を読みます。
  3. 画面上の結果についての説明なら、値が呼び出し元にどう渡るかを追います。
  4. コードや実行情報が足りない判断は未確認として残します。

「必ずこの結果が残る」と言うには、参照された代入に到達する経路と、その後の書き込みを調べます。

4. 小さな例を行ごとに読む

AI が教材用のプロジェクトで次の JavaScript を書いたとします。

function displayName(user) {
  if (!user) return 'Guest';
  const name = user.name?.trim();
  return name || 'Guest';
}

ここではコードの先頭を一行目とします。自分のプロジェクトでは実際のファイルの行番号を使ってください。

確認する説明 行 コードが示すこと
ユーザーがなければ代替値を返す 2 null や undefined などの偽値なら名前を読む前に "Guest" を返す
空白だけの名前は代替値になる 3–4 trim の結果が "" になり、代替値を返す
どんな不正入力でも安全 3 名前が 42 など文字列以外なら、trim がなく TypeError になる

最後の説明は修正が必要です。ここでのオプショナルチェーンは名前の null と undefined を扱いますが、全種類の入力を検証しません。呼び出し元や入力検証を読んで、数値が到達するか確認します。

5. 説明を問い直してテストする

過大な説明には次のように追問します。

「どんな不正入力でも安全」という説明を再確認してください。名前が数値ならどうなりますか。失敗する処理を引用し、その入力を呼び出し元や検証処理が防いでいるか調べてください。確認できなければ未解決として残してください。

ユーザーなし、空白だけ、前後に空白のある通常の名前、数値の名前を確認します。プロジェクトのテストランナーで最小限の関連テストを実行し、結果を読みます。

参照を確かめる間はファイルを変更しないようにします。更新された場合は選び直して質問し、古い説明を新しい行番号に当てはめないようにします。

6. 理解できた内容を記録する

入力の前提、分岐の動作、確認したソース位置、実行したテストを短くまとめます。入力検証の場所など未解決の疑問も残すと、次のレビューで役立ちます。

Claude Code の変更や Codex のブランチを読むときにも、詳しく調べたいブロックに同じ手順を使えます。