ocra

审查规则

用 AGENTS.md 和按路径生效的规则,把项目约定教给审查员。

审查员会结合三层指引。

内置规则

每次审查都包含通用正确性规则:逻辑错误、调用双方不一致的契约、被掩盖的失败、资源与并发问题、数据完整性,以及改动中可见的安全缺陷。此外,会根据分组里的文件加入对应的语言规则:

语言扩展名
TypeScript / JavaScript.ts .tsx .mts .cts .js .jsx .mjs .cjs
Python.py .pyi
Go.go
Java.java

每个审查员的提示词里还列出了不该报的内容:代码风格和格式、拿不出可触发输入的推测、缺少测试或文档、重构建议,以及本次改动没有涉及的代码里的问题。

AGENTS.md

如果仓库根目录有 AGENTS.md,ocra 会把它作为仓库规范交给审查员。它读取的是被审查的那个版本,超过 20,000 个字符的部分会被截断。适合写审查员应当执行的约定,例如架构边界、错误处理规范、禁用的 API。

.ocra/rules.json

按路径生效的规则,只有分组里包含匹配的文件时才会生效:

{
  "rules": [
    {
      "path": "services/billing/**",
      "rule": "Every write must carry an idempotency key. Flag handlers that retry without one."
    },
    {
      "path": ["**/*.sql", "db/migrations/**"],
      "rule": "Migrations must be backward compatible with the previous release."
    }
  ]
}
  • path:一个 glob,或一组 glob。
  • rule:交给审查员的规则文本。

rules.json 格式不合法时,审查会停止并给出明确的错误,而不是悄悄忽略。

来自插件的规则

插件也可以提供规则,比如公司统一的规则包。详见插件。

在 GitHub 上编辑

本页目录