- Home
- Skills
- Testing & Debugging
- False Negative Guard: Prove 'Not Found' Before You Say It
Works with the AI Agents you already use
False Negative Guard: Prove 'Not Found' Before You Say It
Three scripts that refuse a clean verdict from a partial read: complete sweeps with N of N, PDF page coverage, and a lint for unbacked "there is no X" claims.
$9
False Negative Guard: Prove 'Not Found' Before You Say It
Example session with this skill installed
Check whether any of our repositories has a pending collaborator invitation, and tell me if the answer is "none".
- Read your context and instructions
- Compiled the false negative guard
Summary
The guard swept every repository instead of the first page of results, and found one pending invitation. So the honest answer is not "none".
! delta -> invitee: client-x, expires 2026-10-19
pending invitations: examined 5 of 5 item(s): 1 hit(s), 4 clean, 0 UNKNOWN
FOUND. The items above are the evidence.
Answer: one invitation is pending on delta, to client-x, expiring 2026-10-19.
The same guard, run on a draft reply before sending it
negative-claim lint: 2 negative claim(s) carry no evidence in their paragraph:
- There is no pending invitation on any repository, so nothing blocks the handover.
- The tender documentation is incomplete: the technical specification is not in the document.
Each needs one of: 'examined N of N', 'COMPLETE SWEEP', 'READ COMPLETE', or '[verified: <surface>, N of N]' in the same paragraph, or a stated scope ('in the 12 files I read').
On a real 29-page procurement PDF whose first 12 pages were scans
An agent once told a public authority its specification was missing. It was on the scanned pages.
page 1: 0 chars <- IMAGE-ONLY (needs OCR)
page 2: 0 chars <- IMAGE-ONLY (needs OCR)
page 12: 0 chars <- IMAGE-ONLY (needs OCR)
...
page 13: 456 chars
page 14: 2969 chars
page 29: 882 chars
coverage: 17 of 29 page(s) have a text layer (58%)
NOT READ: 12 page(s) are image-only: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. OCR them before saying anything is absent from this document.
--grep 'specifica': 2 match(es) over 17 readable page(s) of 29.
Next steps
- Run each script's --selftest once (21 cases) to see the exit codes on your machine.
- Put sweep.py in front of any "none / nothing / all clear" answer your agent gives.
- Run negative_claim_lint.py on the agent's final reply before you trust it.
Connects securely to your tools. The creator never sees your data.
About this skill
The most expensive sentence an AI agent produces is a confident negative. "There is no token on the server." "No invitation is pending." "The figure is not in the document." "All 33 prices match." A positive finding carries its own evidence. A negative carries none: it is only as good as the completeness of the read behind it, and a partial read looks exactly like a complete one in the transcript.
This skill makes that difference visible, with exit codes rather than advice.
The protocol: three states, never two. FOUND (show it). NOT FOUND, COMPLETE (the whole set was examined, say "examined N of N"). COULD NOT VERIFY (a failed listing, a timeout, image-only pages, an API error object, a truncated output, a surface behind someone else's login). The agent answers three questions before any negative: how many items has the set and how many did I examine; did the read succeed; did I search by the property or by a name I invented. Then a list of the decoys that produce false negatives in practice: pipes through head, the exit code of a pipeline, scanned PDF pages with no text layer, JavaScript shells that return 200 for every path, capped result totals, grep -r skipping symlinks, an invented field that comes back missing, an event mistaken for a current state.
The scripts (Python 3, standard library):
-
sweep.py: runs one command per item of a set and prints "examined N of N". Hits are listed with their evidence, items that could not be checked are listed as UNKNOWN, never as clean. Exit 0 only for a complete sweep with zero hits ("a negative based on this run IS valid"). A --limit poisons the verdict (exit 2). A failed or empty listing exits 2, not zero results.
-
pdf_coverage.py: extractable characters per page, image-only pages named for OCR, coverage "N of N pages". With --grep it searches the complete text with page numbers, and calls "0 matches" a true negative only when every page had text. Needs poppler's pdftotext or the pypdf module; with neither it says so instead of pretending.
-
negative_claim_lint.py: reads your draft answer and lists every absence or totality claim that has no "examined N of N", "COMPLETE SWEEP", "READ COMPLETE" or "[verified: ...]" in its paragraph. Hedged findings that state their scope pass. Run it on your own reply before sending it.
Every script has a --selftest (21 cases in total) that proves its exit codes on your machine.
Who it is for: anyone who lets an AI coding agent audit a codebase, an inbox, a data room, a server or a stack of PDFs and then has to trust the sentence "there is none".
What it does not do: it does not OCR (it names the pages that need it), it does not know your systems (the list and per-item commands are yours), and it does not turn a partial lister into a complete one. It stops a partial read of the right surface from being reported as a complete one.
Permissions: runs shell commands only the ones you pass in --list and --each (sweep.py). Reads the files you name. Writes one file only when you pass --text-out (pdf_coverage.py). No network access of its own. No telemetry.
Original work, listed by its author. Devaland Marketing S.R.L., Romania. Python and AI engineering: https://devaland.com/ai-development
How to use
Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 4 days ago
- Passed all security checks, Safe to install