Differential Review Skill

SkillSecurity

Lets your agent review pull requests, commits, and diffs for security problems.

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 Differential Review Skill skill

About this capability

Compare two versions of a codebase to identify security implications of changes. Use when reviewing protocol upgrades, verifying bug fixes, auditing dependency updates, or when only a subset of code has changed since the last audit.

What this skill tells your AI

The instructions your AI receives, as published by 0x-shashi/web3-audit-skills in skills/differential-review/SKILL.md and read by ahel’s review.

Compare two versions of a codebase to identify security implications of changes. Essential for protocol upgrades, bug fix verification, and dependency updates.


Why Differential Review?

A full audit of an already-audited codebase is wasteful if only 5% of the code changed. Differential review focuses effort on:

Change TypeRisk LevelExamples
Logic changesHIGHModified calculation, new branching, changed access control
State variable changesHIGHNew storage, modified types, reordered variables
Dependency updatesMEDIUM-HIGHOpenZeppelin upgrade, Solidity version change
Configuration changesMEDIUMChanged thresholds, updated addresses, new roles
Formatting onlyNONEWhitespace, comments, variable renames
New codeHIGHEntirely new functions/contracts
Removed codeMEDIUMDeleted security checks, removed functionality

Change Classification Matrix

ChangeSecurity Relevant?Needs Review?
Function body modifiedYESALWAYS
New function addedYESFULL AUDIT
Function removedMAYBECheck if security-critical
Access control modifiedYESALWAYS
Storage variable addedYES (upgrade compat)ALWAYS
Storage variable removedYES (dangerous)ALWAYS
Storage variable reorderedYES (proxy breakage)ALWAYS
Import changedMAYBECheck changelog
Compiler version changedMAYBECheck breaking changes
Comment changedNOSkip
Whitespace changedNOSkip
Event added/modifiedLOWQuick review
Error message changedNOSkip
Constant changedMAYBEVerify new value

Differential Review Strategy

Step 1: Generate the Diff

# Between two git tags/commits
git diff v1.0..v2.0 -- '*.sol'
git diff v1.0..v2.0 --stat  # Summary of changed files

# Between two branches
git diff main..feature-branch -- 'contracts/'

# Exclude non-code changes
git diff v1..v2 -- '*.sol' ':!test/' ':!script/'

Step 2: Categorize Changes

Sort the diff output into categories:

  1. Modified contracts → Primary review target
  2. New contracts → Full audit required
  3. Deleted contracts → Check for orphaned references
  4. Modified tests → Understand what changed and why
  5. Config changes → Deployment parameter review

Step 3: Impact Analysis

For each modified function:

  • What did it do before?
  • What does it do now?
  • What invariants could break?
  • Does the change affect other functions?
  • Are existing tests still valid?

Common Upgrade Pitfalls

PitfallExampleImpact
Storage slot collisionAdding variable before existing ones in upgradeable proxyCritical — corrupted state
Initializer re-callableinitialize() without initializer guard after upgradeCritical — protocol takeover
selfdestruct in new implAttacker calls selfdestruct on implementationCritical — proxy bricked
Removed security checkDeleted onlyOwner modifier in upgradeCritical — access control loss
Changed function selectorRenamed function breaks integrationsHigh — broken integrations
Immutable value changedConstructor value differs in new deploymentMedium — unexpected behavior

Resources

Workflows

Signals

GitHub stars
60
Forks
10
Last commit
Feb 2026
Advanced
Catalog kind
skill
Gateway key
differential-review
Source
github.com/0x-shashi/web3-audit-skills