返回 文章 apply CMS 文章

用 details/summary 折叠 AI 生成的冗长 PR 描述

把 AI 写的长篇 PR 描述收进 details/summary,只留一段人写的简短开头。

GitHubPRAI 编码代理Markdown
成长分 / 100 65 综合收获、行动、留存与影响

用 details/summary 折叠 AI 生成的冗长 PR 描述
为什么值得读解决 AI 代理生成的 PR 描述准确但冗长、读者不愿细读的问题。

提供一个零成本、GitHub 原生支持的折叠方案,并附多个真实 PR 示例。

关键洞察
  1. AI 代理写的 PR 描述准确全面,但读起来像 slop,容易让人直接跳过。
  2. 作者希望 PR 开头体现人类编辑判断,帮助读者快速判断是否值得细看。
  3. details/summary 在 GitHub Markdown 中受支持,可直接写进 PR 描述或 issue 评论。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:6022

如今我对项目所做的大部分改动,都是以 Claude Code 或 Codex 为我提交的 PR 形式出现的。PR 是我的工作单元——我用它们把提交打包在一起,反复迭代直到某个功能完成,记录决策,然后合并最终结果。如今的编码智能体非常擅长撰写 PR 描述。

它们太擅长描述工作了

问题在于它们太擅长了。智能体撰写的 PR 描述准确而全面。它会描述问题、详细的解决方案,以及为验证方案所采取的步骤。要吸收的信息太多了。

它未必是垃圾内容,但读起来像垃圾内容!

识别 AI 撰写的 PR 非常容易,而且和其他形式的 AI 写作一样,我的第一反应可以概括为“我才不会把那些全读完”。信息有多准确、多有用都不重要,一想到我读它花的时间会比撰写它的作者写它花的时间还长,我就立刻没了兴致……即使那位撰写它的作者就是我自己!

我想要人类的编辑判断。我希望有人对 PR 思考了足够长的时间,给我一段经人类认可的引言,帮助我从高层次理解这个 PR 是做什么的,以及它是否值得我投入更多注意力。

我想我找到了一种省力又感觉合适的方法。

把大部分内容藏在 details/summary 里

HTML 的 <details><summary> 元素会渲染成一个折叠的标题(即 summary),可以展开以查看更长的文本。代码如下:

<details>
  <summary>Claude Opus 5.5</summary>
  <h2>The hook</h2>
  Plugins implement <code>register_agent_reference_types(datasette)</code>...
</details>

渲染后,它看起来像这样:

GitHub PR 的截图。文本“Claude Opus 5.5”旁边有一个黑色小箭头。点击该文本会在 PR 正文中展开完整描述。

关键在于,<details><summary> 在 GitHub Markdown 中受支持。你可以直接把这些标签放进 issue 评论或 PR 描述中,GitHub 会隐藏 details 内容,只显示 summary 和一个展开箭头。

我已经开始在我由 AI 生成的 pull request 中使用这一做法。

我的 PR 开头段落会经过精心挑选,作为对整体情况的高层次说明——这是人类能读到的最短文本,能帮助他们快速了解情况。

我有时还会附上一张截图,因为图片往往是快速展示新功能的最佳方式。

然后,智能体撰写的完整长文会放在一个 <details><summary> 中。我用模型名称、通常还有 effort 级别作为 summary,以便清楚表明内容是什么——例如“Claude Opus 5.5 Medium”。

我的 PR 现在感觉没那么草率了!信息仍然都在,但读者可以扫一眼,获取由人类精选的顶层信息,而不会因为智能体撰写的多段细节而看得眼神发直。

我并不总是自己写引言——有时智能体已经给了我需要的内容,只是藏在大量其他文本之中。我对读者的承诺是,这段简短的开头将代表我作为人类的判断,说明哪些内容确实值得他们花时间。

以下是我最近使用这一模式的一些例子,包括我使用的开头:

记忆口诀

我以前总是记不住这两个标签的顺序——是 <details><summary> 还是 <summary><details>?

有两个技巧帮到了我。

首先,也最明显的是,<summary> 显然是你概括细节的部分。那是你那段可点击展开的文本所用的标签——<details> 元素则必须包裹其他所有内容。

一个更好的技巧是始终把这两个标签称为“details-summary”。

“details-summary”是两个音节后接三个音节。它比“summary-details”的三二组合更顺口。

把“details-summary”大声念几遍,你就再也不会忘记这两个标签的顺序了。

(我仍然希望 GitHub 能在他们的 Markdown 编辑器中为此添加一个按钮——部分是为了省去我在手机键盘上费力输入,部分是为了帮助向更多 GitHub 用户传播这个功能的存在。)