Code Review

SkillSecurity

Use when reviewing code changes for quality, correctness, and security — runs a structured checklist with severity-rated findings

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Code Review skill

What this skill tells your AI

The instructions your AI receives, as published by drvoss/everything-copilot-cli in skills/development/code-review/SKILL.md and read by ahel’s review.

When to Use

  • Reviewing pull requests before merge
  • Auditing code changes after a feature branch is complete
  • Self-reviewing your own changes before committing
  • Investigating code quality concerns raised by teammates

Prerequisites

  • Changes are committed or staged in git
  • Access to the repository and its test suite
  • Understanding of the project's coding standards

Workflow

1. Understand the Scope

# See what files changed
git --no-pager diff --stat main...HEAD

# Get a summary of the diff
git --no-pager diff main...HEAD --shortstat

For PR reviews, use the code-review agent type which is purpose-built for this:

task agent_type: "code-review"
prompt: "Review the staged changes in this repository"

2. Review Checklist

Evaluate each changed file against these categories:

PriorityCategoryWhat to Check
🔴 CriticalCorrectnessLogic errors, off-by-one, null handling, race conditions
🔴 CriticalSecurityInjection, auth bypass, secret exposure, unsafe deserialization
🟡 ImportantError handlingMissing try/catch, unhandled promise rejections, error propagation
🟡 ImportantEdge casesEmpty inputs, large inputs, unicode, concurrent access
🟢 MinorPerformanceN+1 queries, unnecessary re-renders, missing indexes
🟢 MinorMaintainabilityDead code, unclear naming, missing types

3. Investigate Suspicious Patterns

# Find TODO/FIXME/HACK left in changed files
git --no-pager diff main...HEAD | Select-String "TODO|FIXME|HACK"

# Check for console.log or debug statements
git --no-pager diff main...HEAD | Select-String "console\.log|debugger|print\("

4. Verify Tests

# Ensure tests exist for changed source files
git --no-pager diff --name-only main...HEAD | Select-String "\.(ts|js|py|go)$"

# Run the test suite
npm test 2>&1 | Select-Object -Last 20

5. Severity Levels for Findings

  • 🔴 Blocker — Must fix before merge (bugs, security issues, data loss)
  • 🟡 Warning — Should fix, but not a merge blocker (error handling gaps, missing tests)
  • 🟢 Suggestion — Nice to have (naming, style, minor optimization)
  • 💡 Nitpick — Optional, low priority (formatting, comment wording)

6. Check for Breaking Changes

# Look for changed function signatures or removed exports
git --no-pager diff main...HEAD -- "*.ts" | Select-String "^[-+].*(export|public|function)"

# Check for changed API routes or database schemas
grep -rn "router\.\|app\.\|migration" --include="*.ts" src/

Examples

Quick Self-Review Before Commit

# Stage changes and review
git add -A
git --no-pager diff --cached --stat
git --no-pager diff --cached

PR Review with code-review Agent

The code-review agent provides high signal-to-noise analysis — it only surfaces issues that genuinely matter (bugs, security, logic errors), never style or formatting.

task agent_type: "code-review"
prompt: "Review changes between main and the current branch. Focus on correctness and security."

Common Rationalizations

RationalizationReality
"LGTM, it's a simple change"Simple-looking changes can break implicit dependencies. (Hyrum's Law)
"Tests pass, so it's fine"Tests only verify what's explicitly tested. Reviews catch what tests don't.
"I trust the author"Reviews aren't distrust — they're a second pair of eyes. Authors miss their own bugs.
"It's a big PR, I'll skim it"Large PRs need more thorough review. The size itself is the first piece of feedback.
"Security is for the security team later"Cost to fix in development < cost to fix in production × 100.

Reviewing AI-Generated Code

AI-generated code requires the same review standard as human-written code — often a stricter one.

Core principle: Treat the AI as a junior engineer. The first output is a draft, not a finished product.

Verify, Don't Trust.
Review agent output exactly as you would review a code submission from a new contributor.

LLM-Specific Checklist

RiskWhat to look for
Plausible but wrong logicCode that looks correct but contains subtle semantic errors — AI optimizes for appearance
Hallucinated APIsMethod names, library versions, or options that don't exist
Missing edge casesAI often generates the happy path only; check null, empty, concurrent, and boundary conditions
Scope creepAI may change code beyond what was asked — diff carefully
Test qualityAI-written tests often assert the implementation, not the behavior; verify they would actually catch regressions
Security assumptionsAI may apply patterns from its training data that are outdated or contextually wrong

Quality Gate Before Merging AI Output

  • Linter passes with no suppressions added
  • Type checker passes
  • Tests pass, and at minimum one test was in a failing state before the fix
  • Manual smoke test on the core path
  • Edge cases (null, empty, large input, concurrent access) are handled
  • No new technical debt introduced silently (TODOs, skipped tests, magic values)

Red Flags

  • "LGTM" approval within 2 minutes of a 500-line PR
  • All review comments are style/formatting related (no logic review)
  • No findings on a diff that touches authentication or payment code
  • "I wrote this code, review not needed"
  • Business logic added without corresponding tests

Verification

  • Actually opened every changed file (didn't just read git diff --stat)
  • 🔴 Critical findings are explicitly marked as Blockers
  • Auth/authorization code was reviewed from a security perspective
  • New logic has corresponding tests
  • Reviewed the full git --no-pager diff main...HEAD
  • If any code was AI-generated, the Quality Gate Before Merging AI Output checklist was applied

Tips

  • Review tests first — they document the intended behavior
  • Read the PR description/issue before the code to understand intent
  • Check the boundaries between changed and unchanged code
  • For large PRs, review file-by-file using view tool rather than reading raw diffs
  • Use explore agent to understand unfamiliar code paths before commenting
  • If a change is too large to review effectively, that itself is feedback worth giving

Signals

GitHub stars
46
Forks
11
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
code-review-drvoss
Source
github.com/drvoss/everything-copilot-cli