
MergeAtlas 推出新工具:把代码 PR 变成可交互卡片地图
来源标题:MergeAtlas: Turn PRs into a Map of Cards
MergeAtlas 发布 agent skill,可将 GitHub 拉取请求转化为 localhost 上的交互式卡片地图,以 excalidraw/excalidraw#8613(为编辑器添加图片裁剪)为示例。地图按变更原因分组展示改动文件,并用箭头标出因果关系,包括 PR 未触及的间接影响文件。每条结论都链接到对应代码行,工具只帮助理解,不负责找 bug 或代为批准。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
MergeAtlas 正在映射 excalidraw/excalidraw#8613,这个 PR 为编辑器添加了图片裁剪功能。
一个 pull request 到来时,往往是一整片一模一样的绿色线条。MergeAtlas 是一个 agent skill,它能把 PR 变成 localhost 上的交互式地图,让你先了解这次改动是为了什么、影响到了哪些地方,然后再去读代码。
它适用于那些影响范围超出 diff 本身的改动,即使是你熟悉的代码也一样:涉及多个文件,其中一些只是被间接影响。
上下文放在最前面:项目这一部分目前如何运作、问题是什么、这个 pull request 做了什么。变更的文件按「因同一原因而改动」分组,箭头从每个原因指向它的结果,包括指向 pull request 从未触及的文件。
当代码由 agent 编写时,大改动中的很大一部分只是接线。你可以直接跳到那些改变行为方式的代码行,其余内容需要时再看。
它与 diff 并行,而不是取代 diff:每一条论断都链接到它来源的代码行。而且它止步于理解。它不会帮你找 bug 或替你批准;判断权始终在你手中。
地图视图:一块无限画布,上面是卡片和因果箭头,可以平移、缩放和重新排列。
分组:卡片按意图放在各自的框架中——即它们所服务的结果——按箭头从左到右的顺序排列。箭头在卡片之间走直线,悬停卡片会高亮它自己的箭头。
Atlas 缩放:缩小后卡片变为紧凑模式,再缩小则每个分组变成一个区块,显示标题和进度。
紧凑与详细:在单行摘要和完整改动故事之间切换卡片。
树视图:同一批卡片及其受影响文件的可折叠大纲,支持键盘导航。
故事:背景、问题和 pull request 做了什么,用平实的语言描述,并链接到完成各部分工作的卡片。
变更:卡片逐条展示它的变更,每条包含问题、改了什么、关键代码行以及为什么这样能修复。
受影响文件:因该 pull request 而行为不同的未变更文件,堆叠在触及它们的卡片旁边。
测试与无行为变更文件:测试堆叠在它们所验证的卡片旁边,空白、格式化、重命名和生成文件则分开堆叠,各自附上原因,让你的注意力集中在重要的事情上。
代码链接:论断链接到对应的代码行,位于 pull request 的 Files changed 标签页或 head commit 中。
审阅标记:将文件标记为已审阅,然后直接跳到下一个。进度条统计重要文件的数量,Previous 和 Next 按阅读顺序切换。
跳转到文件:按 ⌘K 或 Ctrl K,按名称查找文件。
边检查边阅读:地图一写好你就会收到链接。它以草稿形式打开,后续每个版本会自动纳入,同时你的 agent 会检查卡片是否有遗漏,并标记文字有变化的卡片。
你的地图:http://127.0.0.1:8765 按仓库列出你机器上的所有地图,以及每张地图的审阅进度。
是否仍然最新?地图会显示它所描述的 commit,当 pull request 之后有更新时会提示。
跟随 pull request:有新 commit 后,再次映射该 pull request 只会重写它们触及的部分,并标记发生变化的卡片。
分享:将地图下载为单个 HTML 文件,可在任何浏览器中打开,无需 MergeAtlas 或任何安装。
浅色与深色主题:查看器跟随系统设置。
工单
链接到 pull request 的 GitHub issue 开箱即用。对于其他跟踪器,MergeAtlas 会从 pull request 的标题、描述或分支名中识别工单,你的 agent 通过它已有的连接(例如 MCP server)读取它。MergeAtlas 自身不存储任何跟踪器凭据。
它能识别来自 Jira、Linear、Trello、Asana、Shortcut、ClickUp 和 Azure Boards 的链接,以及像 ENG-123 这样的裸键。如果你的 agent 无法访问跟踪器,它会告诉你哪个工单读取失败,并仅根据 pull request 构建地图。
将此仓库添加为插件市场,然后安装插件: /plugin marketplace add ismayilkarimli/MergeAtlas /plugin install mergeatlas@mergeatlas
插件 skill 带有插件名,所以命令是 /mergeatlas:mergeatlas。直接让你的 agent 映射一个 pull request 也可以。插件会停留在某个发布版本,直到下一个版本发布;要引入新版本,运行 /plugin marketplace update mergeatlas。CHANGELOG.md 列出了每个版本的变化。
使用 skills.sh 安装 skill。它会找到你的 agent,并把 skill 放到各自查找的位置: npx skills add ismayilkarimli/MergeAtlas
添加 -a codex 仅安装到 Codex,添加 -g 安装到所有项目而非当前项目。
克隆仓库并将 skill 链接到你的 skills 文件夹: git clone https://github.com/ismayilkarimli/MergeAtlas.git ln -s "$PWD/MergeAtlas/skills/mergeatlas" ~/.claude/skills/mergeatlas
这样设置后,/mergeatlas 无需插件前缀即可使用。
在 pull request 所在的仓库中,让你的 agent 映射它。地图一写好它就会给你链接,并在你阅读时继续检查地图。你创建的所有地图都列在 http://127.0.0.1:8765。有新 commit 后,让它再次映射该 pull request:它会更新你已有的地图。要重新开始,让它从头映射该 pull request。
发布之前,你的 agent 会把每张卡片交给一个从未见过该项目的新 subagent,找出卡片未解释清楚的地方。该 subagent 的默认配置为:Claude Code 中使用 Sonnet 5.5 中等强度,Codex 中使用 Sol 6.1 中等强度,其他环境使用你 agent 自身的模型。
首次运行时,你的 agent 会询问使用哪个模型,默认项已选中,按 Enter 即可保留。你的选择会保存到 ~/.config/mergeatlas/config.json(或 $XDG_CONFIG_HOME 下)。如需单次运行使用其他模型,在请求时说明即可,例如「用 Haiku 5.5 high 映射这个 PR」;已保存的选择保持不变。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。