关于 Rigour
Rigour 是面向编码 Agent 工作流的代码审查与质量门禁工具,在本机检查修改,并按团队规则提供简报、验证和审查。它从有依据的审查结果中积累经验,适用于希望将团队规范应用到不同 Agent 的开发团队。
主要功能
- 01每次编辑及推送前运行检查
- 02按文件提供团队规范简报
- 03依据仓库规则审查变更
- 04从已确认的审查结果提炼经验
- 05跟踪任务中的检查与审查
- 06本机执行检查并保留成本记录
适用场景
- 01在编码 Agent 修改文件时及时发现问题
- 02推送前运行格式、类型和相关测试检查
- 03让新任务参考团队既有审查经验
- 04追踪任务中各 Agent 与检查的处理过程
MCP 相关
Rigour 提供 `rigour_brief`,供 MCP Agent 获取文件相关的团队规则、经验和已定事项。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
24收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwd | string | 是 | 项目根目录的绝对路径。 |
| files | array | 否 | 可选的文件路径(相对于 cwd),用于限定确定性检查和深度检查的扫描范围。 |
| deep | enum | 否 | 深度模式:'off'(默认值)、'quick'(启用深度检查并使用轻量模型)、'full'(启用深度检查;与 pro=true 结合使用可运行完整深度模型)。off | quick | full |
| pro | boolean | 否 | 深度检查启用时,使用完整深度模型(Qwen2.5-Coder-1.5B)代替轻量模型(Qwen2.5-Coder-0.5B)。 |
| apiKey | string | 否 | 用于深度分析的可选云 API 密钥。 |
| provider | string | 否 | 用于深度分析的云服务提供商(claude、openai、gemini、groq、mistral、together、deepseek、ollama 等)。 |
| apiBaseUrl | string | 否 | 用于自托管/代理深度分析端点的自定义 API 基础 URL。 |
| modelName | string | 否 | 覆盖用于深度分析的云模型名称。 |
详细介绍
Rigour
无论哪个 Agent 编写代码,它都是了解你们团队工作方式的审查者。
无论工程师使用哪个 Agent,它提交的工作都会遵循你们团队的软件构建方式,并且每周都更贴近你们的标准。
过去,团队依靠成员传递判断:开始工作前为你介绍情况的资深工程师、发现你遗漏之处的审查者、记得上次尝试为何失败的工程师。编码 Agent 编写代码的速度,快于任何人介绍、审查或记忆的速度。知识仍在你们团队之中;Rigour 能让每个 Agent 都以其工作速度获取这些知识。
支持 Claude Code、Cursor、Codex、Cline 和 Windsurf。免费、开源,并在你的机器上运行。
它如何实现
- 编写前先介绍。 在 Agent 编辑文件之前,它会获知团队对该文件的要求:仓库为其制定的规则、团队从中吸取的经验,以及团队已经确定的要点。每个文件最多三项,且每项都注明出处。通过
rigour setup安装(使用--no-brief可不安装),也可以使用rigour_brief为任何支持 MCP 的 Agent 提供介绍。参见介绍。 - 编写时和推送前验证。 团队的检查和规则会把关任何 Agent 的工作:每次编辑时、Agent 宣布“完成”之前,以及执行
git push之前;此时还会运行格式化工具、代码检查工具、类型检查和涉及该变更的测试。启用后,还会根据拉取请求声明的目标检查变更:是否修改了范围外的文件,以及是否遗漏了“完成条件”中的事项。参见目标检查。 - 结合团队上下文,按照团队的严重程度审查。 审查者会读取上次人工审查的每一条意见,检查变更涉及的仓库规则,并优先采用你们审查者自己的“阻止合并 / 应当修复 / 小问题”判断,而不是自己的解读。团队会阻止什么、放过什么,由仓库的设置决定,而非采用统一的全局判断。参见审查者。
- 从结果中学习。 只有有证据时,审查意见才会变成经验:有人修正了 Agent 的工作、团队成员作出了决定,或同一问题在不同作者的工作中反复出现。合并后的情况(之后修复了相关代码行、撤销了变更)会交由人工判断,绝不会自动晋升为经验;如果团队的工作持续干净地通过合并审查,相关经验就会被撤回。学到的内容会用于下一次介绍和审查。
无论 Agent 和人员如何参与,一项工作就是一个任务;rigour thread 会展示与之相关的所有情况:编写代码时发现并在推送前修复的问题、阻止合并的事项,以及每次审查发现的问题。参见任务线程。
它是什么,以及它不是什么
- 它只从证据中学习:你的规则文件、已采纳的审查意见、他人的纠正,以及合并后的结果。猜测永远不会变成规则。
- 它会塑造并检查 Agent,但绝不会改变模型。 不训练、不微调。适用于任何 Agent、任何模型。
- 它能很好地捕捉具体的代码偏好(“在两端限定窗口范围”“修改架构后重新运行代码生成器”)。设计偏好由团队成员决定:任何 Rigour 无法通过代码证明的内容,最多只能作为建议修复项,绝不会阻止操作。
- 一台机器,服务多家公司,信息互不相通。 配置档案会按当前所在的代码仓库区分各雇主或客户的记忆、经验教训和团队。请参阅配置档案。
- 它从你已记录的内容开始。 从第一天起,简报和审查器就会采用你自己的代码仓库规则(AGENTS.md、CLAUDE.md、Cursor 规则、Copilot 指令)。随着审查为经验教训提供证据,这些经验教训也会逐步加入。因此,审查历史较少的团队,简报内容也较少;只有在你启用后,简报才会生效。
默认运行的功能及其成本
| 默认状态 | 成本 | |
|---|---|---|
| 每次编辑、标记“完成”前、推送前运行检查 | 执行 rigour setup 后启用 | 本地运行;编辑后检查每次编辑都会启动一次 CLI |
| 推送前运行团队工具 | 启用 | 使用你自己的格式化工具、代码检查工具、类型检查和测试 |
| 审查器 | 在 Studio 或 rigour.yml 中启用前保持关闭 | 使用 Agent 自身的模型和登录凭据;每次审查进行一次长篇读取;每次审查的记录都会显示其成本 |
| 多位评审者组成的评审小组 | 默认关闭;使用 mode: full 或 panel: on 启用 | 每位评审者的费用,另加对意见分歧内容进行一次简短交叉审查的费用 |
| 通过任何 OpenAI 兼容 API 运行的评审者 | 默认关闭;使用 reviewers: [api] 启用 | 服务提供商对你的密钥收取的费用 |
| 简报 | 执行 rigour setup 后启用(使用 --no-brief、brief.enabled: false 或 RIGOUR_BRIEF=0 可关闭) | 不使用模型;启用凭据扫描后,每次编辑增加 22 ms,每个文件首次编辑增加 121 ms(在 Rigour 自身的代码仓库中测得) |
| 任务线程 | 在钩子运行的所有位置启用 | 在你的 git 文件夹中,每个事件记录一行 |
工作原理
| 时机 | Rigour 的操作 | 出现问题时 |
|---|---|---|
| 每次编辑 | 对文件运行快速检查:密钥、不存在的导入、已证实的错误 | Agent 会立即看到结果 |
| 标记“完成”前 | 检查整个分支与 main 的差异:需要修复的问题、未使用的代码、风险模式、合并冲突 | Agent 会继续处理(最多三次) |
执行 git push 前 | 执行相同检查,另外运行你的格式化工具、代码检查工具、类型检查和相关测试,以及会记住经验的审查器 | 推送会被阻止,每个问题占一行 |
| 在拉取请求上 | 安静的安全网:最多两条评论,且只针对尚未检查过的问题 | — |
启用简报后,在上述所有检查之前都会先显示一行内容:每个文件首次编辑前,展示团队对该文件的要求。
开始使用
先看看它发现了什么,不做任何更改(在已有工作的分支上):
npx @rigour-labs/cli review --base origin/main
觉得值得?那就设置一下:
brew install rigour-labs/tap/rigour # or: npm install -g @rigour-labs/cli
rigour setup # in your repository
rigour setup 会将 Rigour 连接到你的 Agent,安装三个时机,并检查一切是否正常。默认情况下,它是个人使用:不会改动工作树中的任何内容。Agent 钩子只会在每台机器上安装一次,在你尚未启用的任何仓库中都保持静默;启用此仓库时,也只会在 .git/ 中写入内容。如果团队希望每个克隆仓库的人都能使用,可以改用 rigour setup --team,将其提交到仓库中。无论哪种方式,它都会合并到现有的 Agent 配置中,而不是替换它们。改变主意了?rigour uninstall 会准确移除它添加的内容。开始使用介绍了具体步骤。
Rigour 每个版本约占用 70 MB。语义搜索(Linux 上约 250 MB,macOS 上约 280 MB)由 rigour setup 在每台机器上安装一次,所有版本共用;可使用 --no-semantic 跳过。
使用 Claude Code?插件可以搞定所有这些:
/plugin marketplace add rigour-labs/rigour-plugin
/plugin install rigour@rigour-labs
还想要审查器?默认情况下它处于关闭状态,需有人手动启用。你可以选择启用范围:在 Studio 的 Setup 页面为自己启用,或在 rigour.yml 中为整个团队启用:
review:
reviewer:
enabled: true
mode: full # one judge per vendor, up to `judges`; single (the default) is one judge
panel: on # only what most judges confirm blocks; required: no one may turn it off
judges: 3 # 2 or 3, one per vendor installed
escalate: risk # add judges only for risky changes; measure it with rigour backtest first
检查通过后,推送会立即完成;随后,审查器会在后台读取已推送的提交(仅当存在未关闭且非草稿状态的拉取请求时才会运行,因此只有在有人会查看这次推送时才需要支付大模型费用)。rigour review --status 会显示其结论和运行情况;在请人审查之前,rigour review --reviewer --full 会进行最终拦截。对于你自己的运行,你的选择优先,除非团队设定了最低要求;Rigour 始终会说明实际运行了哪些检查器,以及原因。
然后打开 Studio,查看它的运行情况:
rigour studio
你会用到的命令
| 命令 | 功能 |
|---|---|
rigour setup | 为仓库做好准备,并检查一切是否正常 |
rigour brief | 团队在此任务开始前会告诉 Agent 的内容:规则、经验和已确定的事项,并逐条注明出处 |
rigour thread | 查看任务进展,包括不同 Agent、检查、推送和审查的情况 |
rigour review | 审查当前更改,或在创建 PR 前审查分支(--reviewer 会添加记忆型审查器;--scope 会列出某轮修复所更改、但审查从未要求更改的内容) |
rigour studio | 查看 Rigour 拦截了什么、学到了什么,以及提供给 Agent 的内容 |
rigour doctor | 告诉你哪些功能正常、哪些不正常,以及如何修复 |
rigour uninstall | 准确移除 Rigour 添加的内容;你自己的设置和编辑过的文件会保留 |
其他所有内容请参阅 rigour help --all。
旨在建立信任
- 只会在能够证明时阻止你。 确定性检查只有在对真实的已合并拉取请求运行过后才会阻止你。模型审查者的发现只有在指出错误结果或成本时才会阻止你;使用评审团时,只有多数评审者达成一致才会阻止你。对风格或规模的猜测绝不会阻止你,也不会出现在 PR 上。
- 只需说一次“不是 bug”。 该发现不会再出现,而团队反复推翻的检查也会自动保持静默。
- 无法检查时会明确说明。 没有审查者回复、没有内容可审查、未安装某个工具:这些情况都会如实报告,绝不会显示为检查通过。
- 代码始终留在你的机器上。 检查在本地运行。代码只会发送给你选择的模型:审查者会使用 Agent 自带的 CLI;使用你的密钥运行模型审查时,代码才会发送给提供商。团队同步只会发送从团队自有仓库中获得的经验。Rigour 可能发出的每一项网络请求,以及如何逐项关闭,请参阅安全性。
- 费用一目了然。 使用模型时,Rigour 会记录每次运行的实际费用。
- 每位评审者掌握的信息一目了然。 评审者会读取你的仓库以及 Rigour 提供给它的信息。Claude 评审者不会加载任何人的个人指令;对于无法阻止其读取个人配置的评审者(Codex、Cursor),审查记录会说明它还读取了哪些内容。
- 公开衡量。 关于 Rigour 能发现哪些问题的说法,会在公开的 driftbench arena 中通过真实拉取请求进行测试。
- 与自己的审查者进行比较。
rigour backtest会在团队审查过的提交上重放审查过程,并在隐藏原审查内容的情况下进行评分:它能率先发现审查者提出的哪些问题,以及是否会阻止任何被审查者判定为良好的内容。请参阅回测。 - 阻止操作遵循同一条规则。 审查、停止钩子和推送门禁依据同一条规则作出判断,因此绝不会对某项发现产生分歧。
费用
Rigour 免费。搭配 Agent 使用时,你无需其他东西:检查在本地运行,审查者和对高风险更改的审查会使用 Agent 自带的模型和登录信息。模型密钥仅用于审查不由 Agent 编写的代码,以及拉取请求机器人。
面向团队
拉取请求。 添加一个工作流文件,Rigour 就会静默审查每个 PR。将其设为必需检查后,PR 就不能忽略自身的发现,也不能放宽自身的设置。请参阅拉取请求和 CI。
所有人使用同一套设置。 rigour setup --team 会提交配置,每位队友克隆后只需运行一次 rigour setup。请参阅团队设置。
共享知识。 将 Rigour 指向 PostgreSQL 数据库,就能在有人批准后,让某个人的 Agent 学到的经验与整个团队共享。发送的内容始终仅限于团队自有仓库中的经验。请参阅团队数据库。
要加入已在共享经验的团队? 请先向团队的 Rigour 管理员申请自己的登录信息:按照设计,任何人都不能自行添加自己。之后,每台机器只需运行一条命令,每个克隆只需运行三条命令。请参阅加入现有团队。
让每个人都能受益。 一条审查评论,从资深成员写下它的拉取请求,一路传到每位队友的 Agent,再用于下一次更改:团队知识如何从一次审查传递给每个 Agent。
同时为多家公司工作? 配置文件会按当前所在的仓库区分各公司的记忆、经验和团队。请参阅配置文件。
了解更多
| 如果你想…… | 阅读 |
|---|---|
| 逐步安装并运行 Rigour | 快速入门 |
| 查看此版本的变更内容以及升级方法 | 发布说明 |
| 了解在工作过程中发现问题后该怎么做 | 开发期间 |
| 为整个团队进行设置 | 团队设置 |
| 在 CI 中审查每个拉取请求 | 拉取请求与 CI |
| 查看它支持哪些 Agent,以及它的 MCP 工具 | 编码 Agent 与 MCP |
| 运行审查器,从单个评审者到评审小组 | 审查器 |
| 使用自己的模型密钥或本地模型 | 模型审查 |
| 调整 Rigour 的检查内容 | 配置 · 所有设置 |
| 查看所有检查,以及如何确保准确性经得起检验 | Rigour 检查内容 |
| 为你的组织审批此工具 | 安全与网络使用 · 遥测:自愿启用、匿名,绝不收集代码 |
| 在一台机器上跨多个公司工作 | 配置档案 |
| 查看全部内容 | 文档索引 |
从源代码构建
pnpm install
pnpm build
pnpm test
请参阅贡献指南。
MIT © Rigour Labs · 由 Ashutosh 构建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
