跳到主要内容

展示 · 6 条规则

真正的规则 difflore 从流行的 OSS 评论中学到。

下面的每张卡片都是从真实的 PR 线程中提取的评论笔记。当 AI 代理编辑存储库中的匹配文件时,difflore 会将规则发送到其上下文中,因此相同的注释永远不必写入两次。

语言GoRustTypeScriptPython
来源:CorrectnessAsync runtimePlugin APIRoutingSecretsTesting
GoCorrectness

绑定处理程序必须在响应之前检查返回的错误

← 学习自 gin-gonic/gin

仓库
gin-gonic/gin
个已接受修复
4

gin 上的审阅者不断标记调用 ctx.ShouldBindJSON 的处理程序而不检查错误,这会在格式错误的输入上静默 200 秒。每当代理编写涉及请求主体的新处理程序时,就会触发该规则,因此在打开 PR 之前会捕获错误。

Go
RustAsync runtime

使用 tokio::spawn 生成长期任务,而不是异步 fns 内的 block_on

← 学习自 tokio-rs/tokio

仓库
tokio-rs/tokio
个已接受修复
3

tokio 中反复出现的评论注释:从异步上下文内部调用 block_on 会导致负载下的运行时死锁。 DiffLore 从三个独立的 PR 线程中学习了该模式,现在通过链接回原始评论的一行基本原理将代理推向spawn或spawn_blocking。

Rust
TypeScriptPlugin API

Vite插件在重写导入时应该声明enforce: pre

← 学习自 vitejs/vite

仓库
vitejs/vite
个已接受修复
5

插件作者通常会发布与 esbuild 的默认顺序竞争的转换,仅在冷启动时产生丢失导入错误。该规则对维护者多年问题分类的指导进行编码,以便编写新插件的代理在第一次提交时获得正确的排序。

TypeScript
TypeScriptRouting

路由加载器必须返回可序列化的数据,而不是类实例

← 学习自 tanstack/router

仓库
tanstack/router
个已接受修复
6

TanStack Router 跨 SSR 边界序列化加载器输出,因此返回日期、地图或类实例会以微妙的方式破坏补水。审阅者每隔几周就会要求进行相同的修复;往返并指向规范问题线程的规则快捷方式。

TypeScript
TypeScriptSecrets

接触 headers() 的服务器操作必须标记为动态

← 学习自 vercel/next.js

仓库
vercel/next.js
个已接受修复
7

App Router 中的缓存惊喜几乎完全来自读取 cookie 或标头而不选择退出静态渲染的操作。 Next.js 评论语料库中充满了这种精确的修正; difflore 在代理编辑服务器操作文件时引发它。

TypeScript
PythonTesting

依赖注入会话属于 Depends,而不是全局

← 学习自 fastapi/fastapi

仓库
fastapi/fastapi
个已接受修复
3

FastAPI 维护者一贯引导贡献者从模块级数据库会话转向 Depends 范围的工厂,以便测试保持隔离。该规则捕获了审阅者引用的文档部分的指导和链接,因此代理无需来回就可以采用它。

Python

30 秒内安装 difflore

将其指向存储库,当您的代理打开匹配文件时,第一个基于审核的规则就会显示。

npm install -g @difflore/cli