name: code-review description: Use when code has been written and needs validation before committing, or when the user asks for a code review or security check. context: fork
Review code for security, correctness, and quality. Runs in isolated code-reviewer context with pre-loaded standards.
Announce at start: "I'm using the code-review skill to validate [files/feature]."
Load standards BEFORE invoking review:
Read: .opencode/context/core/standards/code-quality.md
Read: .opencode/context/core/standards/security-patterns.md
/code-review path/to/file.ts
/code-review src/auth/*.ts
/code-review $(git diff --name-only HEAD~1)
Code-reviewer returns structured findings:
## Code Review: Auth Service
### 🔴 CRITICAL (Must Fix)
1. **SQL Injection Risk** — src/db/query.ts:42
- Problem: Unparameterized query with user input
- Risk: Database compromise
- Fix:
```diff
- db.query(`SELECT * FROM users WHERE id = ${userId}`)
+ db.query('SELECT * FROM users WHERE id = ?', [userId])
```
### 🟠 HIGH (Correctness)
2. **Missing Error Handling** — src/auth/service.ts:28
- Problem: Async function without try/catch
- Risk: Unhandled promise rejection
- Fix: Wrap in try/catch with proper logging
### 🟡 MEDIUM (Style)
3. **Naming Convention** — src/auth/middleware.ts:15
- Problem: snake_case instead of camelCase
- Fix: Rename verify_token → verifyToken
### Summary
Total Issues: 3 (1 Critical, 1 High, 1 Medium)
Recommendation: REQUEST CHANGES
If CRITICAL or HIGH issues:
/code-review to verifyIf only MEDIUM or LOW issues:
If no issues:
🔴 CRITICAL (Security):
🟠 HIGH (Correctness):
🟡 MEDIUM (Maintainability):
🟢 LOW (Suggestions):
Review fails:
Too many findings:
Unclear findings:
If you think any of these, STOP and re-read this skill:
| Excuse | Reality |
|---|---|
| "I just wrote it so I know it's right" | The author is the worst reviewer. Fresh eyes catch what familiarity hides. |
| "It's a small change" | Security vulnerabilities are almost always in small, "obvious" changes. |
| "We can review after merging" | Post-merge review finds bugs in production. Pre-merge review finds them for free. |
| "There's no user input so no injection risk" | Internal data becomes user input when requirements change. Review now. |
Task: Review the following files: $ARGUMENTS
Instructions for code-reviewer subagent: