Check whether a document (PDF or image) shows signs of tampering or forgery before you rely on it. Use when the user asks to verify a payslip, invoice, bank statement, ID document, contract, or any document where authenticity matters.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add sickn33/agentic-awesome-skills --skill verify-document --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Verify Document?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sickn33-verify-document)More formats (shields.io, HTML) on the badges page.
---
name: verify-document
description: Check whether a document (PDF or image) shows signs of tampering or forgery before you rely on it. Use when the user asks to verify a payslip, invoice, bank statement, ID document, contract, or any document where authenticity matters.
category: document-verification
risk: critical
source: community
source_repo: Sketchjar/stipple-agent-skills
source_type: community
date_added: "2026-08-31"
author: Sketchjar
tags: [document-verification, fact-checking, stipple, authenticity]
tools: [claude, cursor, gemini, codex]
license: "Apache-2.0"
license_source: "https://github.com/Sketchjar/stipple-agent-skills/blob/main/LICENSE"
---
# Document Verification
Inspect a document for forensic authenticity signals — not a fraud verdict, but a risk band with the evidence behind it. Uses the Stipple API (free anonymous tier, no signup).
## When to use
- Before onboarding a tenant, contractor, or employee from uploaded documents
- Before paying an invoice that arrived by email
- Before relying on a bank statement, payslip, or certificate in any workflow
- Reviewing documents in due diligence, claims processing, or loan applications
## Instructions
1. **Get the document.** URL or local file path (PDF, PNG, JPEG, BMP, TIFF).
2. **Optionally check the cache first.** If the user has the file's SHA-256, check whether it's already been inspected (free):
```bash
curl "https://www.stipple.sh/v1/warrants/check?sha256=<hash>"
```
3. **Run verification.** POST the document:
```bash
curl -X POST https://www.stipple.sh/v1/warrants \
-F "file=@payslip.pdf" \
-H "Authorization: Bearer $STIPPLE_API_KEY"
```
Add `?fresh=true` to force re-inspection of a previously cached document. Add `?deep=true` for deep inspection (more thorough, more credits).
4. **Interpret the response.** Two independent axes — read both:
| Axis | Question it answers |
|---|---|
| `risk_band` | Does anything look tampered? (low / medium / high) |
| `inspection_quality` | Could the engine actually see enough to judge? (thorough / limited / poor) |
A clean phone photo of a real payslip is commonly `low` risk + `limited` quality — **low coverage is not risk**. Per-signal `evidence` includes: amount/words mismatch, font discontinuity in values, date anomalies, document label integrity, identifier checksums (ABN/ACN/TFN), table arithmetic.
5. **Report honestly.** This is a *signal with evidence*, not a verdict:
- "risk_band: LOW — nothing looks tampered"
- "inspection_quality: limited — couldn't inspect everything; low coverage is NOT fraud"
- Show the per-signal evidence for anything flagged
6. **Pair with related checks.** For identity documents, follow with a 100-point identity check (`/v1/identity-check`). For extraction, use `extract-document-data`.
## Output format
```
risk_band: LOW — Nothing looks tampered.
inspection_quality: limited
recommended action: review_before_action
evidence (signals):
[pass] Amount words/figure mismatch: Spelled-out amounts agree with figures.
[pass] Font discontinuity in value: Numeric values share the font of surrounding text.
[skip] Identifier checksum: No checksummable identifier (ABN/ACN/TFN) present.
```
## Limitations and Safety
- This workflow uploads documents to a hosted third party. Obtain explicit approval,
minimize personal, financial, identity, and confidential data, and confirm the
provider's current retention, residency, access, and deletion terms first.
- Forensic signals can miss sophisticated tampering or flag benign editing, scanning,
compression, and template artifacts. A low-risk result is not proof of authenticity,
and a high-risk result is not proof of fraud.
- Preserve the original bytes and use authoritative issuer verification plus a
qualified human reviewer before payment, onboarding, lending, employment,
disciplinary, compliance, or legal action.
## Notes
- Document types the engine recognizes (payslips, invoices, bank statements) get type-specific checks; unrecognized types get generic checks only — say so in your report
- Identical files are cached by content hash — re-checking the same bytes returns instantly and free
- This measures *forensic integrity*, not *authorship style* — for "was this written by AI", use AI-text detection instead
- Anonymous free tier: shared weekly allowance. Free key at https://www.stipple.sh
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!