AI 代码阅读 · 审查 AI 写的代码

审查 AI
为你写的代码

AI 刚做完一项任务,diff 长到你没法逐行细看。用 Yenpo 打开项目,从本地改动或分支 diff 看起,借助搜索、跳转和 AI Reader,一次看清一处改动。

安装并打开第一个项目

Mac 本地文件阅读 · 可选 AI · 本地改动与 Git 对比v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)AI 需要先配置模型服务商,使用费用按服务商规则计算。

01 / AI 改完了,接着读懂它

把 AI 交来的改动,变成自己能解释的代码

用 Claude Code、Codex 或 Cursor 做完一轮后,挑一小处改动真正弄懂。问题要具体:这个筛选器现在应该留下哪些条目?某个条目被哪条规则排除了?改掉这条规则,会影响哪些结果?先写下自己的预测,再请 AI 解释。

把输入和规则放在一起读

把数据、筛选函数和调用方分别打开。用文件搜索、全文搜索找到功能里的名称,读清调用方实际传入了哪些值。

回到源码检查解释

配置模型服务商后,可以围绕看不懂的规则或分支提问。沿源码引用读周边条件,再用自己的话说明结果为什么出现。

手改一条规则,再运行核对

选一处小改动,先预测哪些情况会变、哪些应当保持不变,再由你在终端运行对应命令或测试,把解释记在自己的笔记里。

用一个可运行的小筛选器,走完预测、修改、验证的学习过程

练习提供虚构数据、三个待预测结果、一行修改和修改后的检查命令,不需要模型账号。Yenpo 用来阅读本地代码,示例和检查由你自己运行。

02 / 从一个问题开始

围绕改动影响的行为,一步步看代码

读清 AI 做出的一个功能

挑一个 AI 加进来、你还说不清的小功能。先猜它会输出什么,再读决定结果的规则,最后亲手改一处、运行确认。

用可运行的筛选练习学会一条规则

把分支和调用方连起来

问清哪个输入选择了实现、调用后继续做什么,以及错误会在哪里结束执行。除了被解释的函数,还要读调用方。

沿 HTTP 请求读代码

核对 AI 写的改动

围绕具体疑点比较选定的提交或分支。接受解释前,核对引用中的分支、没改过的调用方和测试断言。

审查改过的断言

Yenpo 适合一边讨论改动、一边继续读仓库。它不是编程 agent,不会构建项目、运行测试或合并补丁;这些步骤留在 Claude Code、Codex、Cursor 或终端里做。

03 / 找到这次要读的文件

先串起一条路径,再展开读整个仓库

这个教学项目有两个命令:preview 输出“Moon Kite · paper”,list 列出展品名称。它们读同一份数据,但执行路径不同。下面用手写阅读笔记把路径画出来,你可以下载源码对照。

  1. 确认入口。先读 README.md 和 package.json。preview 脚本选中 src/preview.mjs,输入是 moon-kite;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,在 Terminal 中用 Node.js 22 或更新版本运行,无需安装依赖或连接模型。

node src/preview.mjs moon-kite
node src/list.mjs
node --test tests/lab.test.mjs

预览输出“Moon Kite · paper”;列表分两行输出“Moon Kite”和“Cloud Loom”。5 项测试全部通过,包括选择另一个展品,以及未知编号在输出前失败。压缩包附有源码位置和文件哈希清单。

换成自己的仓库时,把还没查清的问题放在地图旁:启动参数从哪来,选中了哪个实现,数据来自文件还是服务?从其中一个问题选择下一份源码。只看目录树,还看不出这次运行走哪条路径。

04 / 在 YENPO 中沿路径阅读

边问边读,随时打开相关文件

  1. 先找到起点。把解压后的 exhibit-labels 文件夹作为本地项目打开。用 Command-P 找 preview.mjs,或用全文搜索找 Moon Kite。沿 import 往下读时,让入口和数据文件保持打开;文件、文件夹或选区都可以作为 AI Reader 的起点。
  2. 围绕一个行为提问。例如:“preview 命令输入 moon-kite 时,哪些文件选记录、排版文字、打印结果?请列出源码位置,并区分 list 命令。”让回答围绕这条路径展开。
  3. 打开源码引用。引用会在代码快速预览中打开对应行。用“打开文件”在标签页里查看周边源码,再判断这些代码是否真的支持回答中的说法。
  4. 继续追到结果。在自己的笔记里记下读过的文件、各自负责什么,以及下一个问题。需要确认运行结果时,在 Terminal 中执行针对性的命令或测试;AI Reader 不会代你运行。
05 / 模型、数据与权限

分清本地阅读和模型请求

本地阅读与模型辅助阅读

浏览与搜索本地文件不需要模型账号。使用 AI Reader 提问前,在设置中配置服务商、API 类型、端点和模型。支持 OpenAI-compatible Chat Completions、OpenAI Responses 和 Anthropic Messages;模型访问权限和使用费用由你的服务商账号决定。

问题、相关对话、附件和调查中读取的代码会发到你配置的端点。AI Reader 可能继续读取附件之外的相关文件;远程服务商会在你的 Mac 之外处理这些内容。

配置模型服务商
06 / 继续查证

按还没弄清的问题,选择下一步

在练习里,选错展品就读输入和查找;记录对了但标签文字不对,就读排版函数。面对更大的项目,也按这个办法,从具体疑问进入一条阅读路径。

先前的单文件分支练习仍可下载,适合先练习一个更小的起点。

安装 Yenpo,打开第一个项目

试用 Yenpo EAP

等 AI 下次改完代码,
用它看看。

改动、diff 和搜索打开就能用。想问 AI Reader 时,再连接模型服务商。

下载 EAP

App 界面支持英文、简体中文、繁体中文、日语、西班牙语、巴西葡萄牙语、韩语、德语、法语和俄语。

v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)