--- name: code-review description: "[OMX] Run a comprehensive code review" --- # Code Review Skill Conduct a thorough code review for quality, security, and maintainability with severity-rated feedback. ## When to Use This skill activates when: - User requests "review this code", "code review" - Before merging a pull request - After implementing a major feature - User wants quality assessment ## GPT-5.4 Guidance Alignment - Default to concise, evidence-dense progress and completion reporting unless the user or risk level requires more detail. - Treat newer user task updates as local overrides for the active workflow branch while preserving earlier non-conflicting constraints. - If correctness depends on additional inspection, retrieval, execution, or verification, keep using the relevant tools until the review is grounded. - Continue through clear, low-risk, reversible next steps automatically; ask only when the next step is materially branching, destructive, or preference-dependent. Delegates to the `code-reviewer` and `architect` agents in parallel for a two-lane review: 1. **Identify Changes** - Run `git diff` to find changed files - Determine scope of review (specific files or entire PR) 2. **Launch Parallel Review Lanes** - **`code-reviewer` lane** - owns spec compliance, security, code quality, performance, and maintainability findings - **`architect` lane** - owns the devil's-advocate / design-tradeoff perspective - Both lanes run in parallel and produce distinct outputs before final synthesis 3. **Review Categories** - **Security** - Hardcoded secrets, injection risks, XSS, CSRF - **Code Quality** - Function size, complexity, nesting depth - **Performance** - Algorithm efficiency, N+1 queries, caching - **Best Practices** - Naming, documentation, error handling - **Maintainability** - Duplication, coupling, testability 4. **Severity Rating** - **CRITICAL** - Security vulnerability (must fix before merge) - **HIGH** - Bug or major code smell (should fix before merge) - **MEDIUM** - Minor issue (fix when possible) - **LOW** - Style/suggestion (consider fixing) 5. **Architectural Status Contract** - **CLEAR** - No unresolved architectural blocker was found - **WATCH** - Non-blocking design/tradeoff concern that must appear in the final synthesis - **BLOCK** - Unresolved design concern that prevents a merge-ready verdict 6. **Specific Recommendations** - File:line locations for each issue - Concrete fix suggestions - Code examples where applicable 7. **Final Synthesis** - Combine the `code-reviewer` recommendation and the architect status into one final verdict - Deterministic merge gating rules: - If architect status is **BLOCK**, final recommendation is **REQUEST CHANGES** - Else if `code-reviewer` recommendation is **REQUEST CHANGES**, final recommendation is **REQUEST CHANGES** - Else if architect status is **WATCH**, final recommendation is **COMMENT** - Else final recommendation follows the `code-reviewer` lane - The final report must make architect blockers impossible to miss ## Agent Delegation ``` delegate( role="code-reviewer", tier="THOROUGH", prompt="CODE REVIEW TASK Review code changes for quality, security, and maintainability. This is the code/spec/security lane. Do not absorb architectural ownership. Scope: [git diff or specific files] Review Checklist: - Security vulnerabilities (OWASP Top 10) - Code quality (complexity, duplication) - Performance issues (N+1, inefficient algorithms) - Best practices (naming, documentation, error handling) - Maintainability (coupling, testability) Output: Code review report with: - Files reviewed count - Issues by severity (CRITICAL, HIGH, MEDIUM, LOW) - Specific file:line locations - Fix recommendations - Approval recommendation (APPROVE / REQUEST CHANGES / COMMENT)" ) delegate( role="architect", tier="THOROUGH", prompt="ARCHITECTURE / DEVIL'S-ADVOCATE REVIEW TASK Review the same code changes from the architecture/tradeoff perspective. Scope: [git diff or specific files] Focus: - System boundaries and interfaces - Hidden coupling or long-term maintainability risks - Tradeoff tension the main reviewer might miss - Strongest counterargument against approving as-is Output: - Architectural Status: CLEAR / WATCH / BLOCK - File:line evidence for each concern - Concrete tradeoff or design recommendation" ) Run both lanes in parallel, then synthesize them with the deterministic rules above. ``` ## External Model Consultation (Preferred) The code-reviewer agent SHOULD consult Codex for cross-validation. ### Protocol 1. **Form your OWN review FIRST** - Complete the review independently 2. **Consult for validation** - Cross-check findings with Codex 3. **Critically evaluate** - Never blindly adopt external findings 4. **Graceful fallback** - Never block if tools unavailable ### When to Consult - Security-sensitive code changes - Complex architectural patterns - Unfamiliar codebases or languages - High-stakes production code ### When to Skip - Simple refactoring - Well-understood patterns - Time-critical reviews - Small, isolated changes ### Tool Usage Before first MCP tool use, call `ToolSearch("mcp")` to discover deferred MCP tools. Use `mcp__x__ask_codex` with `agent_role: "code-reviewer"`. If ToolSearch finds no MCP tools, fall back to the `code-reviewer` agent. **Note:** Codex calls can take up to 1 hour. Consider the review timeline before consulting. ## Output Format ``` CODE REVIEW REPORT ================== Files Reviewed: 8 Total Issues: 12 Architectural Status: WATCH CRITICAL (0) ----------- (none) HIGH (0) -------- (none) MEDIUM (7) ---------- 1. src/api/auth.ts:42 Issue: Email normalization logic is duplicated instead of reusing the shared helper Risk: Validation rules can drift between authentication paths Fix: Route both paths through the shared normalization helper 2. src/components/UserProfile.tsx:89 Issue: Derived permissions are recalculated on every render Risk: Avoidable work during profile refreshes Fix: Memoize the derived permissions list or compute it upstream 3. src/utils/validation.ts:15 Issue: Form-layer and server-layer validation messages are defined separately Risk: User-facing validation guidance can become inconsistent Fix: Share one validation message helper across both call sites LOW (5) ------- ... ARCHITECTURE WATCHLIST ---------------------- - src/review/orchestrator.ts:88 Concern: Review result synthesis relies on implicit ordering rather than an explicit blocker contract Status: WATCH Recommendation: Define deterministic merge gating before expanding reviewers SYNTHESIS --------- - code-reviewer recommendation: COMMENT - architect status: WATCH - final recommendation: COMMENT RECOMMENDATION: COMMENT Address any WATCH concerns before treating the change as merge-ready. ``` ## Review Checklist The `code-reviewer` lane checks: ### Security - [ ] No hardcoded secrets (API keys, passwords, tokens) - [ ] All user inputs sanitized - [ ] SQL/NoSQL injection prevention - [ ] XSS prevention (escaped outputs) - [ ] CSRF protection on state-changing operations - [ ] Authentication/authorization properly enforced ### Code Quality - [ ] Functions < 50 lines (guideline) - [ ] Cyclomatic complexity < 10 - [ ] No deeply nested code (> 4 levels) - [ ] No duplicate logic (DRY principle) - [ ] Clear, descriptive naming ### Performance - [ ] No N+1 query patterns - [ ] Appropriate caching where applicable - [ ] Efficient algorithms (avoid O(n²) when O(n) possible) - [ ] No unnecessary re-renders (React/Vue) ### Best Practices - [ ] Error handling present and appropriate - [ ] Logging at appropriate levels - [ ] Documentation for public APIs - [ ] Tests for critical paths - [ ] No commented-out code ## Architect Lane Checklist The `architect` lane checks: - [ ] Boundary or interface changes are explicit - [ ] New coupling/tradeoff risks are surfaced - [ ] Long-horizon maintainability concerns are evidence-backed - [ ] Architectural status is one of `CLEAR`, `WATCH`, or `BLOCK` - [ ] Any `BLOCK` concern cites the reason merge-ready status should be withheld ## Approval Criteria **APPROVE** - `code-reviewer` returns APPROVE and architect status is `CLEAR` **REQUEST CHANGES** - `code-reviewer` returns REQUEST CHANGES or architect status is `BLOCK` **COMMENT** - `code-reviewer` returns COMMENT with architect status `CLEAR`, architect status is `WATCH`, or only LOW/MEDIUM improvements remain ## Scenario Examples **Good:** The user says `continue` after the workflow already has a clear next step. Continue the current branch of work instead of restarting or re-asking the same question. **Good:** The user changes only the output shape or downstream delivery step (for example `make a PR`). Preserve earlier non-conflicting workflow constraints and apply the update locally. **Bad:** The user says `continue`, and the workflow restarts discovery or stops before the missing verification/evidence is gathered. ## Use with Other Skills **With Team:** ``` /team "review recent auth changes and report findings" ``` Includes coordinated review execution across specialized agents. **With Ralph:** ``` /ralph code-review then fix all issues ``` On the explicit Ralph path, review findings should flow into automatic fix follow-up without another permission prompt. Plain `code-review` itself remains read-only and does **not** promise auto-fix. **With Ultrawork:** ``` /ultrawork review all files in src/ ``` Parallel code review across multiple files. ## Best Practices - **Review early** - Catch issues before they compound - **Review often** - Small, frequent reviews better than huge ones - **Address CRITICAL/HIGH first** - Fix security and bugs immediately - **Consider context** - Some "issues" may be intentional trade-offs - **Learn from reviews** - Use feedback to improve coding practices