iktok90-design/ai-smart-contract-auditor/false-positive-feedback-loop
Claude Code and agent skill by iktok90-design/ai-smart-contract-auditor
- community
Checking that the SKILL.md file is still in the repository.
Meta-skill for managing user-dismissed findings. Before reporting any finding, check it against the project's .auditsentry.yml ignore list and inline auditsentry-ignore markers. Activate on every audit command.
Install
npx vskill@latest install iktok90-design/ai-smart-contract-auditor/false-positive-feedback-loopSKILL.md
False-positive feedback loop (meta-skill)
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."
Sources of dismissals
1. .auditsentry.yml ignore: section
2. Inline markers in code
Effective for next ~5 lines.
3. .auditsentryignore (file glob)
Skip these paths entirely.
Procedure (run before reporting findings)
For each candidate finding F:
Step 1 — Fingerprint
Compute sha256(file_path + ":" + line + ":" + vuln_class). This is the unique identifier for "this exact issue at this exact location in this code shape."
Step 2 — Check ignore list
- If F's fingerprint matches any entry in
.auditsentry.yml ignore:→ check freshness. - If the surrounding lines (±3 of
line) have changed sincedismissed_at(use git blame or content hash) → fingerprint invalidates, re-surface F with note "previously dismissed but code has changed". - Otherwise → skip F, do not report.
Step 3 — Check inline markers
Scan within 5 lines above F's location for // auditsentry-ignore: <id>.
- If matches F's ID or vuln class → skip F.
Step 4 — Check path globs
If F's file path matches .auditsentryignore → skip F.
Step 5 — Surface, with metadata
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:
Audit trail
Every dismissed finding is still queryable via /report --include-dismissed. This:
- Lets auditors verify what was suppressed.
- Catches dismissals being abused to hide real bugs.
- Provides accountability.
Force re-surface
/audit --no-ignore ignores the ignore list. Useful for fresh re-audits or external review.
Constraints
- Critical findings can't be silently dismissed.
/dismiss CRITICAL-xxxrequires--forceflag and--reasonof ≥30 chars. - Dismissals expire on code change. Fingerprint binds to code shape.
- Dismissals require a reason. Silent dismissals are not allowed.
Why this matters
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.
Related
- /dismiss (command)
- [[confidence-scoring]] — LOW-confidence findings should default to "soft-dismiss" with auto-recheck
- [[multi-pass-self-critique]] — dismissals from prior runs inform future passes
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/false-positive-feedback-loop/SKILL.md
Popularity
- Repository stars
- 37
- Repository forks
- 5
- 7-day trend score
- 18
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/iktok90-design/ai-smart-contract-auditor/false-positive-feedback-loop)