用途
该技能用于在拉取请求(PR)上逐条处理未解决的审查线程,每轮处理一个线程。它采用“gaps”修复配置,只处理真实缺陷和高优先级问题,不处理措辞、文档、风格等非行为性建议。
主要能力
- 对每个线程给出一个明确结论:fixed(实现并提交)、wont_fix(说明理由拒绝)、already_fixed / obsolete(无需处理并说明原因)、escalate(值得做但需人工决定)。
- 判断线程的最新状态,即整个对话,而不仅是第一条评论。
- 遵循“最小且诚实的修复,或诚实的拒绝”原则。
- 在 gaps 配置下,只修复大缺口和高优先级问题:破坏用户路径的真实缺陷、导致数据丢失或损坏、使本应失败的校验通过,或 PR 自身意图所需的缺失功能。
- 将拼写错误、细节、措辞、过时注释或文档、纯风格、无行为变化的微小清理留给作者。
- 对每个处理的线程都给出回复,包括留给作者的线程。
- 支持人工覆盖:线程中人工回复“SAFE TO FIX”可替代价值判断;“E2E REQUIRED”强制升级。
使用方式
该技能作为 PostHog AI 插件的一部分运行,在 PR 审查流程中自动处理未解决的审查线程。具体安装或调用方式暂未提供。
适用场景
- 自动化处理 PR 审查中提出的真实缺陷和高优先级问题。
- 在无人值守的情况下,对可安全修复的缺陷进行修复并提交。
- 对无法安全自动修复的问题,升级给人工决定。
- 对非行为性建议,留给作者处理。
限制
- 只处理 gaps 配置下的问题,不处理措辞、文档、风格等。
- 修复必须可证明:通过阅读代码、lint 和受影响区域的现有测试来验证。仅能实时观察的行为(如 LLM 提示词措辞、外部 API 调用、发布/部署语义、视觉布局)不可证明,需升级。
- 修复必须比例适当:不要求新基础设施,如模式变更或迁移、新抽象或配置开关、依赖变更。
- 修复必须在 PR 原始意图范围内,且触及线程所涉及的代码。
- 修复必须无歧义:如果存在两种合理解读,需升级并询问。
- 对于噪音类请求(过度工程、推测性“如果”、防御性编程偏执、几乎不会发生的边缘情况、纯品味),使用 wont_fix 拒绝。
- 留给作者的线程使用 escalate,不使用 wont_fix,因为 wont_fix 会解决线程并隐藏它。
- 每个线程都必须有回复,不能为空或通用。
- 人工回复“SAFE TO FIX”可替代价值判断,但需验证是否仍适用于当前代码;“E2E REQUIRED”强制升级。
决策流程
- 阅读整个线程,最新回复最后。
- 阅读被标记的代码及足够上下文,追踪调用点和类型。
- 依次应用价值、安全性、修复配置。
- 价值 + 安全 + 在配置内 → 实现最小诚实修复,验证(lint + 受影响区域的测试),提交。
- 价值 + 安全但小 → 升级,留给作者。
- 有价值但不安全 → 升级。
- 无价值 → wont_fix。
回复要求
- 为线程作者撰写回复:做了什么或为什么没做,用平实语言,具体到可操作。
- 拒绝要说明故意理由;留给作者的线程要说明检查了什么以及修复配置将其留给作者;升级要明确说明人工需要决定什么;修复要说明改了什么。
- 将诚实的验证结果(包括失败)放在 verification 中,而不是回复中。