--- 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=" ``` 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