Open Code Review 项目解析知识图谱 / 分组目录 / 命令行工具 / ocr review

ocr review

命令行基础工具G-C · 命令行工具

What · 是什么

基于 git diff 的审查主命令:workspace/range/commit 三模式,--format text|json|sarif,--resume 断点续审
ocr review 是工具的主命令,基于 git 变更执行 AI 代码审查,是日常使用频率最高的入口
支持三种审查模式:裸运行 ocr review 审查 workspace(暂存 + 未暂存 + 未跟踪的改动);--from/--to 指定合并基准(如 --from main --to feature-branch)做分支对比;--commit <hash> 针对单个 commit 审查
输出格式可选 text(默认,人类可读)、json(结构化,供脚本消费)、sarif(供 CI/静态分析工具集成)
受众维度通过 --audience 控制:human 面向人类阅读、agent 面向 AI Agent 消费,输出详略与措辞不同
资源控制参数齐全:--concurrency(默认 8)控制并行度、--timeout(默认 10 分钟)控制单次审查超时、--max-tokens / --max-tokens-budget / --max-tools / --max-git-procs 约束 token 预算、工具调用数与 git 子进程数
支持 --resume 断点续审(配合 session)、--background(-b)/--background-file(-B) 后台执行、--preview(-p) 预演不实际调用 LLM、--provider/--model 指定模型、--no-filter 关闭结果过滤、--rule/--exclude 控制规则与排除路径

Why · 为什么

原理 · Principle

三种模式精确对应日常开发流程:提交前看工作区改动、合并前看分支差异、复盘时看单次提交,无需切换工具

json/sarif 输出使审查结果可被 CI 流水线、缺陷管理平台与其他工具链消费,而不只是给人看的文本

并发、超时、token 预算等参数让大仓库审查可控可预期,避免长时间无响应或预算超支

How · 怎么做

审查当前工作区全部改动:ocr review
分支合并前对比审查:ocr review --from main --to feature-branch
审查单个提交:ocr review --commit abc123
结构化输出:ocr review --format json 或 ocr review --format sarif(CI 集成)
面向 Agent 消费:ocr review --audience agent
精细控制范围:ocr review --rule <rule-id> --exclude '<glob>' 指定规则并排除路径
控制资源:ocr review --concurrency 8 --timeout 30m --max-tokens-budget 200000 --max-git-procs 4
指定模型与预演:ocr review --provider openai --model gpt-4o;ocr review --preview 查看将审查的变更而不调用 LLM
后台执行:ocr review --background --background-file review.jsonl,之后用 ocr session 查看进度与结果
中断后续审:ocr review --resume <session-id> 从断点继续

案例 · Cases

代表性案例
提交前自查:改完代码直接 ocr review,快速获得 AI 对暂存与未暂存改动的审查意见,修复后再提交
PR 合并前把关:在 feature 分支上执行 ocr review --from main --to feature-branch,聚焦本次合并将引入的全部差异
CI 集成:流水线中执行 ocr review --format sarif --audience agent,将 SARIF 上报给代码平台或缺陷系统
大仓库长时间审查:开启 ocr review --background --background-file out.jsonl 后台跑,配合 --concurrency/--timeout 调整,随后用 session 查看并 --resume 续审

反模式 · Anti-patterns

正反实例论证 · Evidence

正例 · Pro
分支合并前对比审查
ocr review --from main --to feature-branch
以 main 为基准对比 feature-branch 的全部差异,聚焦本次合并将引入的改动,是 PR 合并前把关的标准用法。
反例 · Con
不指定基准导致审查范围错误
ocr review # 仅审 workspace,漏掉分支上已提交的改动git status # 输出空,误以为没有变更
裸 ocr review 只覆盖暂存+未暂存+未跟踪改动,分支间已提交的差异不会进入审查,合并前必须用 --from/--to 显式指定基准。
正例 · Pro
超时与并发参数保障大仓库审查
ocr review --from main --to feature-branch --timeout 30m --concurrency 8 --max-git-procs 4
显式放宽超时(默认 10 分钟)并保守设置并发与 git 子进程数,避免大变更中途超时或 git 进程冲突。
反例 · Con
大仓库不调超时直接跑,超时后未续审
ocr review --from main --to feature-branch # 10 分钟后超时中断ocr review --from main --to feature-branch # 从头重跑,token 双倍浪费
默认 10 分钟超时对大型变更不够,中断后不查 ocr session list 并 --resume 续审,导致已消耗 token 与时间全部浪费。
正例 · Pro
后台审查 + 会话续审
ocr review --background --background-file review.jsonlocr session listocr review --resume <session-id>
后台执行把进度与结果落在会话中,中断后用 ocr review --resume <session-id> 从断点继续,长任务可中断恢复。
反例 · Con
并发拉满触发限流与进程冲突
ocr review --concurrency 32 --max-git-procs 32ERROR: rate limit exceeded / git: unable to start 32 processes
并发与 git 子进程数过高导致 LLM API 限流报错或 git 进程冲突、diff 计算互相干扰,应按仓库规模与限流阈值保守设置。

实践资产 · Assets

工具 schema
6 个审查专用工具 schema 权威源(plan_task/main_task 相位旗标)
internal/config/toolsconfig/tools.json · 10082 B
源码节选
行号解析五级回退链节选:ResolveComment / matchConsecutive
internal/diff/resolver.go · 2009 B
源码节选
Run Manifest 覆盖度契约节选:RegisterSelected / FailureClass
internal/session/manifest.go · 2464 B

相关边