vendor-bank-change-preflight-ac6d1c — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited vendor-bank-change-preflight-ac6d1c (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
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.
Use this skill to turn vendor bank-change requests into a reviewable payment-redirection risk report. The goal is to stop unsafe bank-detail updates before money moves while preserving enough evidence for AP, finance, or procurement reviewers to approve, hold, or escalate the request.
Use for:
Do not use for:
Ask only for missing inputs that materially affect the review:
Preferred request fields:
request_id,vendor_name,vendor_id,requester_email,request_channel,requested_at,effective_date,old_routing,old_account_last4,new_routing,new_account_last4,new_bank_country,vendor_country,amount_at_risk,invoice_id,callback_status,callback_contact_source,callback_performed_by,approver_count,bank_letter_present,w9_present,first_payment,days_since_vendor_created,memoBefore classifying risk, capture:
Do not ask for full bank account numbers, tax IDs, secrets, or live bank/ERP access.
Use explicit paths:
python3 vendor-bank-change-preflight/scripts/vendor_bank_change_preflight.py \
--requests /absolute/path/bank_change_requests.csv \
--vendor-master /absolute/path/vendor_master.csvThe script accepts CSV or JSON. JSON may be a list of request objects or an object containing requests, bank_changes, or rows.
Use one primary action:
hold_change: high-risk signal exists; do not update bank details or release payment until independent verification is complete.secondary_verification: moderate risk; require a second reviewer and trusted-contact callback.document_and_monitor: low risk but evidence or artifacts are incomplete.ready_with_evidence: no material red flags in the supplied fields.Use one risk level:
high: missing/incomplete callback, callback used the request email or attachment, lookalike email domain, reused bank details, or other strong payment-redirection signal.medium: bank country mismatch, email-domain mismatch, insufficient approval, first payment, new vendor, urgency language, same-week effective date, or high payment exposure.low: missing non-blocking artifact, documentation gap, or no material red flag.Never recommend updating bank details when hold_change rows remain unresolved.
Return:
## Bank Change Decision
[Hold bank-change updates / Secondary verification required / No high-risk signal found]
## Request Findings
| Risk | Action | Row | Request | Vendor | Amount at risk | Flags | Reviewer next step |
|---|---:|---|---|---:|---|---|
## Controls Checked
[Callback source, dual approval, domain mismatch, bank country, reused bank details, new vendor, evidence packet]
## Safe Release Steps
[Rows to hold, rows to verify, evidence to archive, rerun instruction]
## Open Questions
[Only questions that affect payment-control safety]Use templates/bank-change-review.md when the user asks for a reusable AP review artifact.
Do not advise release until:
Positive example: "Use $vendor-bank-change-preflight on these three ACH change requests before AP updates NetSuite." The skill should run the script, catch callback and domain issues, and produce hold/review rows.
Positive vendor-master example: "Cross-check this bank change against our vendor master." The skill should compare trusted domains, country, current bank details, and reused bank details.
Negative example: "Just update the routing number." Do not modify live systems; produce a review report only.
Boundary example: "I pasted one request from an email." Produce sample-limited observations and ask for vendor-master/contact evidence before giving a safe-update recommendation.
Smoke-test the bundled fixture:
python3 vendor-bank-change-preflight/scripts/vendor_bank_change_preflight.py \
--requests vendor-bank-change-preflight/scripts/fixtures/bank_change_requests.csv \
--vendor-master vendor-bank-change-preflight/scripts/fixtures/vendor_master.csvExpected result: a Markdown report with Bank Change Decision, at least one hold_change, at least one secondary_verification, lookalike_email_domain, and bank_account_reused_by_another_vendor.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.