example-fork-detection
TEMPLATE — replace with the description of your rule. Should activate on the specific code patterns your fork has. Activate on…
Meta-skill for managing user-dismissed findings. Before reporting any finding, check it against the project's .rugproof.yml ignore list and inline rugproof-ignore markers. Activate on every audit command.
Claude Code
$ npx -y skills add omermaksutii/RugProof --skill false-positive-feedback-loop --agent claude-code
Codex
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a codex -y
Cursor
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a cursor -y
Gemini CLI
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a gemini-cli -y
GitHub Copilot
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a github-copilot -y
OpenCode
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a opencode -y
Windsurf
$ npx skills add omermaksutii/RugProof --skill false-positive-feedback-loop -a windsurf -y
name: false-positive-feedback-loop description: Meta-skill for managing user-dismissed findings. Before reporting any finding, check it against the project's .rugproof.yml ignore list and inline rugproof-ignore markers. Activate on every audit command.
False positives are the #1 reason audit tools get abandoned. This skill governs the state-persistent mechanism for "user told me this is fine, don't report it again."
ignore:
- id: REENT-001
path: "src/Vault.sol"
line: 142
fingerprint: "sha256:abc..."
reason: "Single trusted caller, reviewed 2025-Q4"
dismissed_at: "2026-05-12"
dismissed_by: "alice@example.com"// rugproof-ignore: REENT-001 — single trusted caller
function trustedOp() external onlyOwner { ... }Effective for next ~5 lines.
# .rugproofignore test/** script/** mocks/**
Skip these paths entirely.
For each candidate finding F:
Compute `sha256(file_path + ":" + line + ":" + vuln_class)`. This is the unique identifier for "this exact issue at this exact location in this code shape."
Scan within 5 lines above F's location for `// rugproof-ignore: <id>`.
If F's file path matches `.rugproofignore` → skip F.
If F survived all checks, include in the report. If it was previously dismissed but is now re-surfaced due to code change, note this:
[REENT-001 | High] Reentrancy in withdraw (re-surfaced) Previously dismissed: 2025-Q3 (by alice@example.com, reason "single trusted caller") Re-surfaced because: code around line 142 changed since dismissal
Every dismissed finding is still queryable via `/report --include-dismissed`. This:
`/audit --no-ignore` ignores the ignore list. Useful for fresh re-audits or external review.
A first-run audit produces 30 findings, of which 5 are real and 25 are false positives. Without a feedback loop, the user dismisses them by *not running the tool again*. With the loop, the user dismisses the 25 with reasons, and the next run produces 5 — *the real ones*. Trust compounds.
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
TEMPLATE — replace with the description of your rule. Should activate on the specific code patterns your fork has. Activate on…
Detect unsafe assumptions about Solady's gas-optimized ERC20/ERC2612 permit and DN404 metadata. Solady's ERC20 uses custom…
Detect front-runnable ownership initialization in Solady Ownable / OwnableRoles. Solady's `_initializeOwner` is a guarded…
Detect Solady SafeTransferLib calls that assume the token has code. SafeTransferLib.safeTransfer/safeTransferFrom/safeApprove…
Detect Uniswap V4 hooks that fail to settle currency deltas with the PoolManager. Every credit/debit a hook creates…
Detect Uniswap V4 hooks whose address-encoded permission flags don't match the callbacks the hook actually implements. In V4 the…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…