audit-changes
Audit only the git diff vs main (or specified base). Optimized for PR review.
Replay a historical exploit tx (by tx hash) on a fork. Explains step-by-step what the attacker did.
> /plugin marketplace add omermaksutii/RugProof > /plugin install rugproof@rugproof
How it fires
How this command gets triggered: by you, by Claude, or both.
/replay-incidentContext preview
What this command does when you run it.
Replay a historical exploit tx (by tx hash) on a fork. Explains step-by-step what the attacker did.
description: Replay a historical exploit tx (by tx hash) on a fork. Explains step-by-step what the attacker did. argument-hint: "<chain> <tx-hash>" allowed-tools: Read, Bash, Agent, mcp__block-explorer__*, mcp__anvil__*, mcp__forge-runner__*
Pulls a real exploit tx from chain, replays it on a fork, and walks through what happened.
Great teaching tool. Also great content — every replay can become a tweet or blog post.
mcp__block-explorer__get_tx(chain=<chain>, hash=<hash>) mcp__block-explorer__get_trace(chain=<chain>, hash=<hash>)
Pull the calldata, value, from/to, internal calls, state diff, gas, and block.
mcp__anvil__fork(chain=<chain>, block=<tx_block - 1>)
This gives us the pre-attack state.
Pull the verified source of every contract in the trace.
mcp__anvil__send_raw_tx(<original-tx>)
Capture the actual state changes; compare to the live chain post-tx data — should match.
Walk through each internal call:
Block 18,234,567 — Curve Finance exploit (2023-07-30)
External call: 0xattacker → 0xfraxusdc_pool.remove_liquidity_one_coin(...)
│
├─ Internal: pool transfers $1M USDC to attacker
│ Then calls pool.balanceOf(attacker) for reward accounting...
│ │
│ └─ READ-ONLY REENTRANCY: pool state is mid-update during this read
│
└─ attacker contract uses the stale read to mint reward shares
based on the larger-than-real balanceMap the incident to the [[skills]] taxonomy:
Root cause: read-only reentrancy (skills/reentrancy)
Amplifier: reward accounting based on token.balanceOf during mid-update
Lesson: for any oracle/getter call from a reentrant contract, add
ReentrancyGuard or rely on a settled-state snapshot.The full walkthrough + a "what to learn" section + (if `--card` flag) a PNG card for sharing.
Bundle these as `/replay-incident demo-curve` shortcuts.
Rugproof your code before someone else does. 🌐 Live site: omermaksutii.github.io/RugProof 📦 Latest: v1.0.0 — 45 commands · 23 agents · 45 skills · 13 MCP servers · tested, offline-first, with rule packs, a benchmark, non-EVM coverage, and post-deploy
Repo: omermaksutii/RugProof
Audit only the git diff vs main (or specified base). Optimized for PR review.
Deep audit — same as /audit but spawns more parallel subagents, runs multi-pass review, and chases exploit chains across files.
Audit third-party dependencies — resolve installed versions, cross-reference known-vulnerable releases, and flag vendored code that has diverged from upstream.
Diff two Rugproof audit reports (before vs after) to track regressions — what's new, what's fixed, and whether the grade moved.
Pull past public audits (Code4rena, Sherlock, Spearbit, etc.) for a deployed contract or known protocol.
Audit a deployed contract on a live chain. Pulls verified source from the block explorer, optionally forks the chain for live-state simulation.