Back to Security & Vulnerability Analysis

differential-review

securitycode reviewvulnerability scanpull requestgit diffstatic analysisrisk assessmentcoding assistant
⭐ 5.7kπŸ“„ CC-BY-SA-4.0πŸ•’ 2026-06-15Source β†—

Install this skill

npx skills add trailofbits/skills

Works across Claude Code, Cursor, Codex, Copilot & Antigravity

Differential-review is a security-focused audit framework that structures code analysis based on risk rather than PR size. It mandates evidence-based findings tied to specific Git history and line-level changes. By categorizing codebase size into tactical tiersβ€”Small, Medium, and Largeβ€”it directs focus toward high-impact areas like authentication, value transfer, and external service calls. It rejects assumptions that code familiarity or small diffs exempt a change from scrutiny. Instead, it enforces a systematic workflow that progresses from initial triage to adversarial modeling and final artifact generation. The skill prevents common reviewer biases by requiring documented blast radius calculations and explicit analysis of removed security controls. It produces detailed, actionable reports, ensuring that every identified security regression is traceable to a specific commit, thereby minimizing the chance of missed vulnerabilities in critical paths.

When to Use This Skill

  • β€’Auditing PRs that modify authentication or authorization logic
  • β€’Reviewing refactored code for potential logic regressions
  • β€’Evaluating external library integration for supply-chain risks
  • β€’Assessing security impacts of state-changing operations

How to Invoke This Skill

Example prompts that trigger this skill in Claude Code, Cursor, or Antigravity:

  • β€œPerform a differential review on this pull request
  • β€œAudit these code changes for security vulnerabilities
  • β€œAssess the blast radius of this commit
  • β€œRun a high-risk security scan on this feature branch
  • β€œIdentify security regressions in this refactor

Pro Tips

  • πŸ’‘Ensure your prompt includes comprehensive context, such as prior git history or baseline code, for the most accurate differential analysis.
  • πŸ’‘Combine this skill with broader SAST tools to catch both granular diff-based issues and wider architectural vulnerabilities.
  • πŸ’‘Even for seemingly minor changes, leverage this skill to identify subtle security implications, as it's designed to classify by risk, not just code size.

What this skill does

  • β€’Categorizes audit scope by codebase scale and risk level
  • β€’Links security regressions directly to Git blame history
  • β€’Generates structured audit reports with threat models
  • β€’Calculates blast radius for high-risk component modifications
  • β€’Automates triage of complex diffs into actionable review queues

When not to use it

  • βœ•Formatting, whitespace, or linting-only changes
  • βœ•Purely documentation updates without functional code
  • βœ•Greenfield projects lacking established security baselines

Example workflow

  1. Triage PR files based on risk categories
  2. Apply git-blame on deleted security-sensitive code
  3. Calculate the blast radius for critical path changes
  4. Perform adversarial modeling for high-risk triggers
  5. Generate final markdown report with documented findings

Prerequisites

  • –Read access to the git repository
  • –Context regarding the application's authentication flow

Pitfalls & limitations

  • !Over-reliance on automated triage without manual verification
  • !Assuming small diffs are inherently low-risk
  • !Failing to account for transitive dependency callers

FAQ

Why is the review based on risk rather than lines of code?
Critical vulnerabilities like Heartbleed are often extremely small, meaning line count is a poor indicator of risk exposure.
What happens if I skip the report generation phase?
Findings without formal documentation are frequently lost, making it impossible to audit the auditor or verify remediation.
How does this handle large codebases?
It utilizes a surgical approach, focusing specifically on critical paths and high-risk modules rather than attempting to scan the entire tree.

How it compares

Unlike generic manual reviews, this skill mandates an evidence-based, artifact-driven methodology that enforces tracking vulnerabilities back to specific commits.

Source & trust

⭐ 5.7k starsπŸ“„ CC-BY-SA-4.0πŸ•’ Updated 2026-06-15
πŸ“„ Full skill instructions β€” original source: trailofbits/skills
# Differential Security Review

Security-focused code review for PRs, commits, and diffs.

## Core Principles

1. **Risk-First**: Focus on auth, crypto, value transfer, external calls
2. **Evidence-Based**: Every finding backed by git history, line numbers, attack scenarios
3. **Adaptive**: Scale to codebase size (SMALL/MEDIUM/LARGE)
4. **Honest**: Explicitly state coverage limits and confidence level
5. **Output-Driven**: Always generate comprehensive markdown report file

---

## Rationalizations (Do Not Skip)

| Rationalization | Why It's Wrong | Required Action |
|-----------------|----------------|-----------------|
| "Small PR, quick review" | Heartbleed was 2 lines | Classify by RISK, not size |
| "I know this codebase" | Familiarity breeds blind spots | Build explicit baseline context |
| "Git history takes too long" | History reveals regressions | Never skip Phase 1 |
| "Blast radius is obvious" | You'll miss transitive callers | Calculate quantitatively |
| "No tests = not my problem" | Missing tests = elevated risk rating | Flag in report, elevate severity |
| "Just a refactor, no security impact" | Refactors break invariants | Analyze as HIGH until proven LOW |
| "I'll explain verbally" | No artifact = findings lost | Always write report |

---

## Quick Reference

### Codebase Size Strategy

| Codebase Size | Strategy | Approach |
|---------------|----------|----------|
| SMALL (<20 files) | DEEP | Read all deps, full git blame |
| MEDIUM (20-200) | FOCUSED | 1-hop deps, priority files |
| LARGE (200+) | SURGICAL | Critical paths only |

### Risk Level Triggers

| Risk Level | Triggers |
|------------|----------|
| HIGH | Auth, crypto, external calls, value transfer, validation removal |
| MEDIUM | Business logic, state changes, new public APIs |
| LOW | Comments, tests, UI, logging |

---

## Workflow Overview

Pre-Analysis β†’ Phase 0: Triage β†’ Phase 1: Code Analysis β†’ Phase 2: Test Coverage
↓ ↓ ↓ ↓
Phase 3: Blast Radius β†’ Phase 4: Deep Context β†’ Phase 5: Adversarial β†’ Phase 6: Report


---

## Decision Tree

**Starting a review?**

β”œβ”€ Need detailed phase-by-phase methodology?
β”‚ └─ Read: methodology.md
β”‚ (Pre-Analysis + Phases 0-4: triage, code analysis, test coverage, blast radius)
β”‚
β”œβ”€ Analyzing HIGH RISK change?
β”‚ └─ Read: adversarial.md
β”‚ (Phase 5: Attacker modeling, exploit scenarios, exploitability rating)
β”‚
β”œβ”€ Writing the final report?
β”‚ └─ Read: reporting.md
β”‚ (Phase 6: Report structure, templates, formatting guidelines)
β”‚
β”œβ”€ Looking for specific vulnerability patterns?
β”‚ └─ Read: patterns.md
β”‚ (Regressions, reentrancy, access control, overflow, etc.)
β”‚
└─ Quick triage only?
└─ Use Quick Reference above, skip detailed docs


---

## Quality Checklist

Before delivering:

- [ ] All changed files analyzed
- [ ] Git blame on removed security code
- [ ] Blast radius calculated for HIGH risk
- [ ] Attack scenarios are concrete (not generic)
- [ ] Findings reference specific line numbers + commits
- [ ] Report file generated
- [ ] User notified with summary

---

## Integration

**audit-context-building skill:**
- Pre-Analysis: Build baseline context
- Phase 4: Deep context on HIGH RISK changes

**issue-writer skill:**
- Transform findings into formal audit reports
- Command: issue-writer --input DIFFERENTIAL_REVIEW_REPORT.md --format audit-report

---

## Example Usage

### Quick Triage (Small PR)
Input: 5 file PR, 2 HIGH RISK files
Strategy: Use Quick Reference
1. Classify risk level per file (2 HIGH, 3 LOW)
2. Focus on 2 HIGH files only
3. Git blame removed code
4. Generate minimal report
Time: ~30 minutes


### Standard Review (Medium Codebase)
Input: 80 files, 12 HIGH RISK changes
Strategy: FOCUSED (see methodology.md)
1. Full workflow on HIGH RISK files
2. Surface scan on MEDIUM
3. Skip LOW risk files
4. Complete report with all sections
Time: ~3-4 hours


### Deep Audit (Large, Critical Change)
Input: 450 files, auth system rewrite
Strategy: SURGICAL + audit-context-building
1. Baseline context with audit-context-building
2. Deep analysis on auth changes only
3. Blast radius analysis
4. Adversarial modeling
5. Comprehensive report
Time: ~6-8 hours


---

## When NOT to Use This Skill

- **Greenfield code** (no baseline to compare)
- **Documentation-only changes** (no security impact)
- **Formatting/linting** (cosmetic changes)
- **User explicitly requests quick summary only** (they accept risk)

For these cases, use standard code review instead.

---

## Red Flags (Stop and Investigate)

**Immediate escalation triggers:**
- Removed code from "security", "CVE", or "fix" commits
- Access control modifiers removed (onlyOwner, internal β†’ external)
- Validation removed without replacement
- External calls added without checks
- High blast radius (50+ callers) + HIGH risk change

These patterns require adversarial analysis even in quick triage.

---

## Tips for Best Results

**Do:**
- Start with git blame for removed code
- Calculate blast radius early to prioritize
- Generate concrete attack scenarios
- Reference specific line numbers and commits
- Be honest about coverage limitations
- Always generate the output file

**Don't:**
- Skip git history analysis
- Make generic findings without evidence
- Claim full analysis when time-limited
- Forget to check test coverage
- Miss high blast radius changes
- Output report only to chat (file required)

---

## Supporting Documentation

- **[methodology.md](methodology.md)** - Detailed phase-by-phase workflow (Phases 0-4)
- **[adversarial.md](adversarial.md)** - Attacker modeling and exploit scenarios (Phase 5)
- **[reporting.md](reporting.md)** - Report structure and formatting (Phase 6)
- **[patterns.md](patterns.md)** - Common vulnerability patterns reference

---

**For first-time users:** Start with [methodology.md](methodology.md) to understand the complete workflow.

**For experienced users:** Use this page's Quick Reference and Decision Tree to navigate directly to needed content.

How to Use This Skill Unit

Option A: Project-Specific (Recommended)

  1. Click "Download" above
  2. In your project, create the directory: .agent/skills/differential-review/
  3. Save the file as SKILL.md
  4. The agent will automatically discover the skill based on its description.

Option B: Global Installation (All Agents)

Save the file to these locations to make it available across all projects:

  • Claude Code: ~/.claude/skills/trailofbits/skills/differential-review/SKILL.md
  • Cursor: ~/.cursor/skills/trailofbits/skills/differential-review/SKILL.md
  • Antigravity: ~/.gemini/antigravity/skills/trailofbits/skills/differential-review/SKILL.md

πŸš€ Install with CLI:
npx skills add trailofbits/skills

Read the Master Guide: Mastering Agent Skills β†’

Recommended Rules

View more rules β†’

Recommended Workflows

View more workflows β†’

Recommended MCP Servers

View more MCP servers β†’

Take It Further

Maximize your productivity with these powerful resources

πŸ“‹

Define Your Standards

Set up coding standards to ensure this workflow produces consistent, high-quality results.

Browse Rules Library
πŸ“–

Master Workflows

Learn how to create custom workflows, use Turbo Mode, and build your automation library.

Complete Guide

How to use this Skill in Claude Code & Cursor

For Claude Code (CLI)

To use this skill in Claude Code, copy the rule content into your project's custom instructions or follow our Add-Skill CLI guide. This ensures Claude follows your standards during every code generation.

For Cursor & Windsurf

For Cursor or Windsurf, individual skills are best used in the "Rules for AI" section. This specific unit helps the agent avoid security & vulnerability analysis issues, leading to cleaner, more efficient code.

Why the skill format matters: the standardized Agent Skills format lets your AI agent load detailed instructions only when they are relevant, keeping your prompt clean while improving results.

Source & attribution

This skill is categorized under Security & Vulnerability Analysis and is published by Trail of Bits, maintained in trailofbits/skills.

← Browse All Agent Skills
Sponsored AI assistant. Recommendations may be paid.