Slop Check 由 Polar 提供,定位是 diff 清理工具:它不找 bug、不做风格指南,只删除可识别为智能体生成、且 Polar 评审者通常会要求移除的代码。官方建议在其它评审视角之前运行,因为它删掉的都是别人不必再读的 diff。适用范围是任意 diff,成本低,没有理由跳过。它主张“能删就提出删除,而不是重写”。
主要检查项:1)复述代码的注释,仓库规则是非必要不加注释、代码应自明,只注释不明显的“为什么”;端点 docstring 不算冗余,但应去除实现细节。2)测试文件中的私有辅助函数,例如 _make_auth_subject() 或模块顶部 _create_order(...),真正的辅助应是 pytest fixture;同时标记同一对象两次 save_fixture、以及重复设置 fixture 已提供的数据。3)近似重复测试,按输入排列但断言同一分支的测试组会被标记,并给出保留哪一个。4)无断言测试,测试体没有 assert/expect 必然通过。5)未被请求的额外内容,如多余索引、类型已强制的校验、只有单个调用者的配置开关、只有单一实现的抽象、框架已处理的 try/except、不改变行为的重载。6)重复既有检查的守卫,包括与上游重复的防御代码、数据模型已保证不可能的分支,以及多余的 session.flush()。7)从添加起就无人调用:未使用参数、未使用导入、无调用者的方法、可用属性访问却用 getattr、只做转发的包装。
不应标记的两类:解释领域原因的注释(例如为何只在 webhook 路径释放锁、某状态为何映射到 Stripe lost),判断标准是句子是否携带代码无法表达的信息;以及真实覆盖,只标记与本 diff 内其它测试重复或完全无断言的测试,为达到“更少测试”目标而削减覆盖是更糟的结果。
输出格式为 ## Slop 分组,包含 🟠 Delete(附文件:行范围与原因)、🟡 Question(附问题,如索引是任务未要求的,什么查询需要它?)和 Verdict(✅ Clean 或 ❌ 需删除 n 行),按文件分组并给出行范围,方便作者无需重读 diff 即可操作。资料未提供安装命令、平台与收费信息。