Open Code Review
>
- Skill ID
- alibaba/open-code-review/open-code-review
- Publisher
- alibaba
- Repository
- open-code-review
- Installs
- 138
- Files
- 1
- License
- Apache-2.0
- Requires
- >
- Synced
- Sep 16, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
alibaba/open-code-review/open-code-reviewInstalls these files- SKILL.md
What this skill tells the agent
Open Code Review
This Codex plugin skill intentionally mirrors the canonical skill at skills/open-code-review/SKILL.md. Keep both files synchronized when updating OCR agent instructions; a symlink is avoided because plugin installs may only materialize the plugin subtree.
A skill for invoking open-code-review (ocr) — an open-source AI code review CLI that reads Git diffs and generates structured, line-level review comments.
Workflow
Step 1: Gather Business Context
Analyze the review target (commits, branch, or changes) to extract concise business context. Pass this context via --background to improve review quality.
Step 2: Run Code Review
Run the OCR command with appropriate flags. Always pass business context via `--background` when available:
ocr review --audience agent --background "business context here" [user-args]Argument handling:
- Background context (RECOMMENDED): use
--background "context"or-b "context"to provide business context for better review quality - Default (no user arguments): reviews staged, unstaged, and untracked changes (workspace mode)
- Specific commit: use
--commitor-cto review a single commit against its parent - Branch comparison: use
--from <ref>and--to <ref>to review diff between two refs - Timeout: effective timeout per review group =
--timeout× review rounds. Default--timeout 15with default effortmedium(2 rounds) gives 30 minutes;low/highgive 15/45 minutes. - Concurrency: default concurrency is 8 file workers; reduce with
--concurrency <n>if rate limits are hit - Preview mode: use
--previewor-pto preview which files will be reviewed without running the LLM - Output file: use
--output <path>to write the full result to a file instead of stdout. If the command fails withunknown flag: --output, do not continue the review with plain stdout. Ask the user whether to upgrade (npm i -g @alibaba-group/open-code-review@latest) and wait for the answer before proceeding. After the user confirms and the upgrade succeeds, rerun with--output. - Installation: if
ocrcommand is not found, install it by runningnpm i -g @alibaba-group/open-code-review
Common invocation patterns:
| User says | Command to run |
|---|---|
| "review my changes" / "review the working copy" | ocr review --audience agent -b "context" |
| "review this PR" / "review feature branch" | ocr review --audience agent -b "context" --from main --to <branch> |
| "review commit abc123" | ocr review --audience agent -b "context" --commit abc123 |
| "what would be reviewed?" (dry-run) | ocr review --preview |
Output mode:
- Always use
--audience agentto suppress progress UI and emit only the final summary - Prevent output truncation: For large reviews or restricted tool environments, pass
--output /tmp/ocr_out.txtand inspect the file in full via a file reading tool instead of piping stdout throughtailorhead, which drops earlier review comments.
On failure: If ocr review exits non-zero (e.g. an LLM connection error), do not retry blindly — consult the Troubleshooting section below for the matching fix before re-running.
Step 3: Report
OCR output includes structured severity (critical / high / medium / low) and category (bug / security / performance / maintainability / test / style / documentation / other) on each comment. Present results grouped by severity, discarding low severity items that are likely false positives or nitpicks.
Step 4: Fix
Before applying fixes, check whether the user requested automatic fixes:
- If the user explicitly requested "review and fix" or similar, proceed with automatic fixes
- If the user only requested "review" without fix intent, ask for permission before applying any changes
When fixing issues and suggestions:
- Focus on critical, high, and medium severity items
- Apply fixes directly to the code when safe and well-defined
- For complex fixes requiring manual intervention, clearly describe what needs to be done
- Always verify fixes with the user before committing
Output Format
Each comment in OCR's output contains:
path: File pathcontent: Review comment textstart_line/end_line: Line range (both 0 means positioning failed)category: Issue category (bug, security, performance, maintainability, test, style, documentation, other)severity: Issue severity (critical, high, medium, low)suggestion_code: Optional fix suggestionexisting_code: Optional original code snippetthinking: Optional LLM reasoning process
Present results grouped by severity using this template:
## Code Review Results
**Files reviewed**: N
**Issues found**: X critical, Y high, Z medium
### Critical
- **`path/to/file.java:42`** [bug] — Brief description
> Recommendation: How to fix
### High
- **`path/to/file.java:26`** [bug] — Brief description
> Recommendation: How to fix
### Medium
- **`path/to/file.ts:88`** [performance] — Brief description
> Recommendation: How to fix (if applicable)If no critical, high, or medium severity issues remain after filtering, state: "Review complete — no critical, high, or medium issues found in N files."
Handling mispositioned comments:
When start_line and end_line are both 0, the comment failed to locate the exact position in the file. In such cases:
- Read the comment content to understand the issue
- Examine the target file mentioned in the comment
- Identify the relevant code section based on the comment's context
- Apply the fix or suggestion to the correct location
Custom Review Rules
If the user wants project-specific rules, OCR resolves them in this priority order:
--rule <path>flag (highest)<repo>/.opencodereview/rule.json~/.opencodereview/rule.json- Built-in system defaults (lowest)
By default, the first matching user rule replaces the built-in system rule. Set merge_system_rule: true on a rule entry when the matched system rule and user rule should both be included.
Rule file format:
{
"rules": [
{
"path": "**/*.java",
"rule": "All new methods must validate required parameters for null",
"merge_system_rule": true
},
{
"path": "**/*mapper*.xml",
"rule": "Check SQL for injection risks and missing closing tags"
}
]
}To preview which rule applies to a file before reviewing:
ocr rules check src/main/java/com/example/Foo.javaAdvanced Review Options
Beyond the common flags above, ocr review exposes a few groups of controls. Run ocr review --help for the complete list.
Scoping
--exclude '<patterns>'— comma-separated gitignore-style patterns (for example--exclude '**/generated/*,**/testdata/*'), merged withrule.jsonexcludes.--background-file <path>— read review context from a Markdown file. Takes precedence over--background.
Output
--format text|json|sarif—text(default) for humans;jsonfor machine-readable findings;sariffor code-scanning integrations such as GitHub Code Scanning.
Model
--provider <name>/--model <name>— override the configured provider/model for this run only (for example, to recheck a diff with a different model; the user names the model,ocr llm providerslists the built-ins).
Budget
--max-tokens <n>— per-group prompt ceiling; defaults to the configured value or the template default (200000).--max-tokens-budget <n>— cap total input + output tokens for the run. Once exceeded, dispatch stops, partial results are still published, and skipped files are reported asfailed(budget).--no-filter— keep all review comments and skip the LLM post-filtering call.
