研发协作
把功能分支推进到「可合并待审」状态:多轴子代理审查…
当用户要求某个功能/修复/分支达到「merge ready」或「准备好供审查」时,用一套并行子代理审查 + 验证 + 修复 + ci:check + 检查点提交 + 更新 PR 的流程把分支推进到只剩维护者最终审查。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
把功能分支推进到「可合并待审」状态:多轴特定
解决思路
- 确定起点:本技能可与功能开发组合使用。若与构建请求一起调用(如「build X, make it merge-ready」),先实现功能/修复并边做边提交,再继续后续步骤;审查阶段覆盖分支相对 origin/main 的「所有」改动,而不只是最后一次编辑。若作用于已有工作(如「make this branch merge-ready」),直接从第 1 步开始,范围是 git diff origin/main...HEAD 加上所有未提交内容。
- 与 main 同步:执行 git fetch origin main;若分支落后,合并 origin/main 并解决冲突(对本分支未有意改动的代码,优先采用 main 的版本)。在开始审查前先提交这次合并作为检查点,使冲突解决与审查修复可分开审计。
- 并行启动多轴子代理审查:每个轴一个独立审查子代理,均授予仓库访问权限并给出完整分支范围——已提交改动 git diff origin/main...HEAD、已暂存改动 git diff --cached、未暂存改动 git diff、未跟踪文件 git status --short 并逐个读取所有范围内的未跟踪文件。不要让未提交或新建文件因为不在 origin/main...HEAD 中而逃过审查。
- 审查轴 1——不必要的复杂度:薄包装、无谓的间接层、一次性抽象、对不可能状态的防御性守卫、死配置。该代码库刻意保持简单。
- 审查轴 2——安全:新端点的授权(org/project 作用域)、SSRF、注入、密钥处理、任何用户输入形状的数据流向 D1/R2/外部 API。
- 审查轴 3——计费与计量:用户可能触发 DataForSEO/供应商花费却未被计量的路径、已扣费但失败的路径、重试/循环放大、单次调用用户成本异常高的端点。积分通过 Autumn 计费;未计量的花费就是收入泄漏。
- 审查轴 4——库与项目惯例:TanStack(Router/Query/Start)是否按惯用法使用;模式是否与代码库其余部分一致(共享的 application/provider 错误边界、db/schema 约定、既有组件模式)。在已有既定模式处标记新造模式。
- 审查轴 5——vibe 编码残留:遗留脚手架、叙述编辑历史的过时注释、console.log、无 owner 的 TODO、复制粘贴的近似重复、无人使用的文件/导出。
- 要求每个审查者返回带 file:line、严重级别(blocker / should-fix / nitpick)和一行理由的发现。明确告知审查者:这是早期产品,不要追逐理论边界情况;任何有争议的都标为 nitpick。
- 验证发现——绝不盲目接受:对每个 blocker 和 should-fix 发现,并行启动验证子代理,对照实际代码对抗性地核查该发现,并给出 APPLY / APPLY-MODIFIED / REJECT 的裁决及理由。丢弃被拒绝的发现。Nitpick 无需验证——它们只被报告,不一定被修复。
- 保留审查学习成果:验证后,在不强迫每次审查都改变策略的前提下沉淀持久经验。若某个 APPLY 或 APPLY-MODIFIED 发现揭示了现有 .greptile/ 上下文和 CI 未捕获的、反复出现或高风险的仓库不变量,使用 maintain-greptile-rules 并按其晋升门槛处理。一次性 bug 保留为代码修复和回归测试;确定性的机械检查放入 CI 或 lint,而非 Greptile。当出现小的工具、文档或工作流痛点时,使用 papercuts 追加到 .agents/PAPERCUTS.md;不要为修复它而中断 merge-ready 工作。
- 修复、检查、循环:应用已验证的 blocker/should-fix 修复。仅当 nitpick 微不足道且明显正确时才应用,否则在 PR 中列出供维护者判断。按逻辑分组提交修复作为检查点(例如每个轴或每个关注点一个提交),使修复历史本身可审查。运行 pnpm ci:check(prettier、knip、tsc、oxlint),修复失败并重跑直至干净。若某修复较重大(非格式化/lint),仅对该改动快速重新审查。循环直到 ci:check 通过且没有未处理的已验证发现。
- 推送并打开/更新 PR:推送分支。若尚无 PR 则对 main 打开一个,否则更新现有 PR 的描述。PR 描述要求:高层概述——改了什么、为什么,面向快速浏览的人,不写文件路径、不写逐文件变更日志;如何审查——简短有序的指南:先看什么、风险/需判断的区域、有意排除在范围外的内容;审查备注——未修复的 nitpick 和值得二次确认的 REJECT 裁决,明确标注为此类。回报:PR 链接、一段话总结,以及仍需维护者判断的事项。不要合并。
- 绝不合并 PR。维护者始终做最后审查。
适用边界 · 注意事项
- 仅需要快速代码审查、不打算推进到可合并状态时
- 没有仓库访问权限或无法运行 pnpm ci:check 等本地检查时
- 维护者明确表示不需要 PR 或不需要更新 PR 描述时