audit-changes
Audit only the git diff vs main (or specified base). Optimized for PR review.
Symbolic execution via Halmos. For paths that fuzzing cannot reach.
> /plugin marketplace add omermaksutii/RugProof > /plugin install rugproof@rugproof
How it fires
How this command gets triggered: by you, by Claude, or both.
/symbolicContext preview
What this command does when you run it.
Symbolic execution via Halmos. For paths that fuzzing cannot reach.
description: Symbolic execution via Halmos. For paths that fuzzing cannot reach. argument-hint: "<contract-or-function>" allowed-tools: Read, Write, Bash, Agent, mcp__fuzz-runner__*
Wraps [Halmos](https://github.com/a16z/halmos) — symbolic execution of Foundry tests. Use when fuzzing has plateaued and you need to prove a property. Run it through `mcp__fuzz-runner__halmos` (offline-safe labeled sample if Halmos isn't installed).
Existing fuzz tests with `bound()` and concrete state can be promoted to Halmos by:
For each invariant from `/invariant`, write a `check_*` variant:
function check_ConvertToAssets_NeverExceedsTotalAssets(uint256 shares) public {
vm.assume(shares > 0 && shares <= vault.totalSupply());
uint256 assets = vault.convertToAssets(shares);
assert(assets <= vault.totalAssets());
}halmos --function check_ConvertToAssets_NeverExceedsTotalAssets
Halmos either:
Symbolic verification:
check_ConvertToAssets_NeverExceedsTotalAssets ✓ proved
check_PreviewDeposit_Monotonic ✓ proved
check_VirtualSharesPositive ✗ counter-example
Counter-example for check_VirtualSharesPositive:
state: totalSupply = 0, totalAssets = 1e30
input: deposit(1)
expected: shares > 0
actual: shares = 0 (rounded to zero by virtual-share dilution)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.