find-receipts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited find-receipts (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Help the user find and attach receipts to their transactions:
search_transactions with no_receipt=true to find recent bookings that still need a documentfind_booking_payments with the payment's id first; a fitting open booking is the first candidate.document_not_required=true with update_transaction; for every future match, offer an automation rule with the mark_document_not_required action.Guide the user to find receipts from various sources:
Norman first:
list_attachments with has_booking=false and search for the supplier lists the uploaded receipts and invoices no booking holds yet.Gmail / Email:
from:{vendor} subject:receipt or from:{vendor} subject:invoicesubject:Rechnung from:{vendor}subject:Bestellbestätigung (order confirmation)has:attachment after:{date} {vendor name}from:aws subject:"invoice available"from:[email protected]from:apple subject:receiptfrom:auto-confirm@amazon subject:BestellungOther sources:
Once the user has the receipt files:
upload_bulk_attachments to upload multiple receipts at oncecreate_attachment for individual receipts with metadata (vendor, date, amount)link_attachment_transaction to connect each receipt to its matching transactionfind_booking_payments with pay_booking (booking id, payment id): the payment takes the booking over, with its document if it has one. A booking made by hand may have none: read back the row pay_booking returns (its publicId: the payment in German companies, the booking in Polish ones, whose payment then retires) and use that id from then on; keep searching while it has no document. A Norman invoice's booking (its invoice field in get_transaction) is paid with link_transaction (that invoice id, the payment id), never with pay_booking.NOT_PAID, source document) on its own date; its bank payment takes the booking over when it arrives. Linking a receipt to a booking made by hand replaces the booking Norman made from it.change_transaction_verification to mark transactions as verifiedTips:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.