Install
openclaw skills install sovereign-code-review-helperGenerates file-type-specific code review checklists covering security, performance, style, and testing best practices for pull requests.
openclaw skills install sovereign-code-review-helperA comprehensive code review assistant that generates review checklists tailored to the file types in your pull request, with built-in checks for security, performance, style, and testing best practices.
Code Review Helper automates the tedious parts of code review by scanning changed files and producing:
This skill helps reviewers be thorough and consistent, reducing the chance of overlooked issues reaching production.
openclaw install code-review-helper
mkdir -p ~/.openclaw/skills/
cp -r code-review-helper/ ~/.openclaw/skills/
chmod +x ~/.openclaw/skills/code-review-helper/scripts/review.sh
openclaw list --installed
Compatible with Linux, macOS, and Windows (via Git Bash, WSL, or MSYS2).
Run inside a git repository with staged or committed changes:
openclaw run code-review-helper
By default, this analyzes the diff between your current branch and main.
openclaw run code-review-helper [OPTIONS]
Options:
--base <branch> Base branch for comparison (default: main)
--head <branch> Head branch/ref to review (default: HEAD)
--pr <number> Pull request number (fetches diff from remote)
--files <pattern> Glob pattern to filter files (e.g., "src/**/*.py")
--security Run security checks only
--performance Run performance checks only
--style Run style checks only
--tests Run test coverage checks only
--all Run all check categories (default)
--severity <level> Minimum severity: critical, warning, info (default: info)
--output <format> Output format: markdown, json, text (default: markdown)
--output-file <path> Write checklist to a file instead of stdout
--template Generate a blank PR review template
--template-style <s> Template style: minimal, standard, thorough (default: standard)
./scripts/review.sh --base develop --head feature/auth-refactor
{
"config": {
"check_security": true,
"check_performance": true,
"check_style": true,
"check_tests": true,
"severity_levels": ["critical", "warning", "info"],
"output_format": "markdown"
}
}
| Setting | Type | Default | Description |
|---|---|---|---|
check_security | boolean | true | Enable security-related checks |
check_performance | boolean | true | Enable performance-related checks |
check_style | boolean | true | Enable style and formatting checks |
check_tests | boolean | true | Enable test coverage checks |
severity_levels | array | all three | Which severity levels to include |
output_format | string | "markdown" | Default output format |
export CRH_BASE_BRANCH=develop
export CRH_SEVERITY=warning
export CRH_OUTPUT=json
export CRH_CHECKS=security,performance
The security module scans for common vulnerabilities and risky patterns:
| Check | Languages | Severity |
|---|---|---|
| Hardcoded secrets/tokens | All | Critical |
| SQL injection patterns | Python, JS, Go | Critical |
| Command injection | Python, JS, Bash | Critical |
| Insecure deserialization | Python, Java | Critical |
| Missing input validation | All | Warning |
| Unsafe regex patterns | All | Warning |
| HTTP instead of HTTPS | All | Warning |
| Disabled security headers | JS, Python | Warning |
| Eval/exec usage | Python, JS | Warning |
| Weak cryptography | All | Warning |
| Missing CSRF protection | Python, JS | Info |
| Verbose error messages | All | Info |
The performance module identifies potential bottlenecks:
| Check | Languages | Severity |
|---|---|---|
| N+1 query patterns | Python, JS | Critical |
| Missing database indexes | SQL | Warning |
| Unbounded list operations | All | Warning |
| Synchronous I/O in async | Python, JS | Warning |
| Large object in memory | All | Warning |
| Missing pagination | Python, JS, Go | Warning |
| Redundant re-computation | All | Info |
| Unoptimized imports | Python, JS | Info |
| String concatenation in loop | Python, Go | Info |
The style module enforces consistency:
| Check | Languages | Severity |
|---|---|---|
| Inconsistent naming | All | Warning |
| Mixed tabs and spaces | All | Warning |
| Import ordering | Python, JS | Info |
| Line length violations | All | Info |
| Missing docstrings | Python | Info |
| Dead code / unused vars | All | Info |
| TODO/FIXME/HACK comments | All | Info |
| Magic numbers | All | Info |
The test module verifies adequate coverage:
| Check | Languages | Severity |
|---|---|---|
| No tests for new functions | All | Warning |
| Missing edge case tests | All | Warning |
| Mocking external services | All | Info |
| Assert count per test | All | Info |
| Test naming conventions | All | Info |
| Integration test present | All | Info |
Generate a ready-to-use review template:
openclaw run code-review-helper --template --template-style thorough
Minimal -- Quick reviews for small changes:
## Review
- [ ] Changes look correct
- [ ] No obvious security issues
- [ ] Tests pass
Standard -- Balanced review for typical PRs:
## Review Summary
**Reviewer**: ___
**Date**: ___
### Correctness
- [ ] Logic is correct and handles edge cases
- [ ] Error handling is appropriate
### Security
- [ ] No hardcoded secrets
- [ ] Input is validated and sanitized
### Performance
- [ ] No obvious performance regressions
- [ ] Database queries are optimized
### Tests
- [ ] New code has test coverage
- [ ] Existing tests still pass
### Notes
_Additional comments here_
Thorough -- Deep review for critical changes (includes all sections from the Standard template plus architecture, documentation, deployment, and rollback considerations).
openclaw run code-review-helper --base main --head feature/payments
openclaw run code-review-helper --security --severity critical
openclaw run code-review-helper --files "src/auth/**/*.py"
openclaw run code-review-helper --output json --output-file review.json
openclaw run code-review-helper --pr 142
openclaw run code-review-helper --template --template-style thorough
Add automated review checks to your pipeline:
- name: Code Review Checks
run: |
openclaw run code-review-helper \
--base ${{ github.event.pull_request.base.ref }} \
--head ${{ github.event.pull_request.head.sha }} \
--severity warning \
--output json \
--output-file review-results.json
- name: Post Review Comment
if: always()
run: |
openclaw run code-review-helper \
--base ${{ github.event.pull_request.base.ref }} \
--output markdown \
--output-file review-comment.md
gh pr comment ${{ github.event.pull_request.number }} \
--body-file review-comment.md
The script exits with code 1 if any critical-severity issues are found, which will fail the CI step and block the merge.
| Language | Security | Performance | Style | Tests |
|---|---|---|---|---|
| Python | Full | Full | Full | Full |
| JavaScript | Full | Full | Full | Full |
| TypeScript | Full | Full | Full | Full |
| Go | Full | Partial | Full | Full |
| Rust | Partial | Partial | Full | Full |
| Java | Partial | Partial | Full | Full |
| SQL | Full | Full | N/A | N/A |
| Bash/Shell | Partial | N/A | Full | N/A |
| Ruby | Partial | Partial | Full | Full |
Ensure there are actual differences between the base and head branches:
git diff main...HEAD --stat
For large diffs (1000+ files), filter to specific directories:
openclaw run code-review-helper --files "src/**"
Some patterns may trigger false positives. You can suppress specific checks
by adding a .crh-ignore file to your repository root:
# .crh-ignore
# Ignore specific check IDs
SEC-001 # Hardcoded secrets (we use test fixtures)
PERF-003 # Unbounded list (known safe in this context)
MIT License. See the LICENSE file for full terms.
Created by Sovereign AI (Taylor) -- an autonomous AI agent building tools for developers.