| name | pr-walkthrough-legacy |
| description | 旧版 PR 走读(HTML 输出),已被飞书版 pr-walkthrough 取代。仅在用户明确点名 legacy 版本或明确要求 HTML 报告时使用;常规的 PR / 分支解读请求一律走 pr-walkthrough。产出自包含的 HTML 走读报告——旅程式叙事、真实代码片段逐跳走读、排查路标(只做理解,不做 code review)。 |
PR Walkthrough (Legacy, HTML)
产出物不是 diff 摘要,而是「读者心智模型的增量更新」:读完能在脑中重建逻辑在代码里的流转路径,将来排查问题知道从哪个文件、哪个函数下手。报告自包含、阅后即弃、不维护、不作为真相源。
资源
| 文件 | 用途 | 何时读 |
|---|
references/report-spec.md | 报告骨架、旅程写法、写作硬规则 | 第五步合成报告前必读 |
references/subagent-prompts.md | 子系统精读 / 文档矿工 prompt 模板与编排要点 | 第三步需要分发 subagent 时必读 |
assets/template.html | 界面模板与组件目录(样式真相源) | 第五步写 HTML 时复制使用 |
执行流程
第一步:鉴别输入
- 确定 diff 来源:本地分支用
git diff <base>...HEAD(base 通常是 main/master,留意目标仓库可能是工作区里的独立 git 仓库);远程 PR 用 gh pr view <id> 和 gh pr diff <id>。gh 不可用或无权限时,请用户提供 diff 或 checkout 分支。
- 判型:重构 / 功能 / 修复 / 混合。类型决定旅程的叙事框架(重构讲"同一操作的新旧管线对比",功能讲"新增的旅程",修复讲"原来错在哪")。
- 判来源:自己的 PR 主动搜寻随附文档(技术方案、执行计划、run log、遗留清单),它们是"计划 vs 实现偏差"章节的矿源;别人的 PR 没有这一节。
第二步:称重
git diff <base>...HEAD --numstat | awk '$1!="-" {split($3,p,"/"); k=p[1]"/"p[2]; v[k]+=$1+$2} END {for (i in v) print v[i], i}' | sort -rn
git diff <base>...HEAD --numstat | awk '$1!="-" {if ($3 ~ /\.test\.|\.spec\.|__tests__|\/test\//) t+=$1+$2; else s+=$1+$2} END {print "test:", t, "non-test:", s}'
git diff <base>...HEAD -M --summary | grep rename
git log --format='%s' <base>..HEAD
称重要诚实:结论可以是"几乎全是设计承载代码",不为安抚读者把 PR 说小。机械变更(lockfile、shim、搬运、等价替换、测试缩进重排)识别出来,供报告"可放心略过"列。
第三步:编排(按 diff 量分档)
- < ~1,000 行:不分发,直接逐文件精读全部 diff。
- 1,000–5,000 行:主力自己读,可视子系统边界分 1–3 个 subagent。
- > 5,000 行:按子系统 fan-out 精读 + 文档矿工(如有随附文档)。读
references/subagent-prompts.md,按模板填充后在同一条消息里并行发出全部 agent。
不论哪一档:全量精读,不抽样、不略读;每一行改动必须在某个 agent 的视野之内(杂项 agent 兜底)。
第四步:主力二次精读(硬规则)
subagent 的素材只能当地图——定位哪里重要、结论是什么。报告中出现的每一段代码,必须亲自 Read 过其所在文件后亲手裁剪。 引用二手转述会把报告写成摘要腔,且无法保证代码与叙述对得上。
做法:根据素材确定旅程后,列出旅程途经的核心文件清单(入口、调度器、关键算法等),逐个 Read(大文件可按函数定位后读区段),然后才动笔。
第五步:合成报告
- 读
references/report-spec.md,按骨架与写作硬规则组织内容(骨架按 PR 大小和来源伸缩,规则见 spec)。
- 界面:复制
assets/template.html 的完整 CSS 与页面结构(含左侧导航栏),组件按内容增删实例,CSS 不改;导航条目与实际章节一一对应。
- 输出到工作区的
.ai_docs/pr-reads/<branch-or-pr>.html。
- 完成后用浏览器打开(macOS 用
open),终端里给不超过 10 行的摘要 + 文件路径,重点结论(如合并前必办事项)点出来。
边界
- 只做理解,不做 code review:不挑刺、不评风格、不提改进建议。"重要逻辑没有测试兜底"属于事实陈述,写入报告的风险地图。
- 报告是一次性产物:不主动上传或分享,不写进任何会被维护的文档体系,不跨 PR 累积词表。