finance — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited finance (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.
This skill drives the local finance MCP server (financial-agent). It owns the source-of-truth reads, deterministic projections, provenance, and guarded actions. Your job is to call the right tools in the right order and report what they return — never to guess a number.
Every financial claim (a balance, an amount due, a date, a projection) MUST be backed by a finance MCP tool result in the same turn. If you do not have a tool result for it, say so and call the tool. Do not estimate, recall, or extrapolate dollar figures.
run_background_sync with options={"sync": true}(pulls SimpleFIN, then scans/reconciles/detects drift and surfaces due items in one audited run). For a quick manual refresh use sync_simplefin (incremental=true).
get_daily_digest (working cash, 7/14/30/60d projection,upcoming obligations, drift, matches to confirm, guardrail status). This is the morning summary. Lead your answer with its status_color and working cash.
list_reconciliation_review_items shows matchesawaiting confirmation. For each one the user confirms, call confirm_reconciliation_match(instance_id). Use unconfirm_reconciliation_match to reverse. Never confirm without the user.
list_charge_onboarding_queue /get_next_charge_onboarding_candidate; record a decision with record_charge_onboarding_decision; preview then apply with preview_charge_onboarding_apply and apply_charge_onboarding_candidate.
get_finance_status or get_daily_digest;report working cash (operating account), not the debt-mixed total.
list_obligations for the full set.
reconcile_obligation_instances thenlist_matched_obligation_instances / list_unmatched_obligation_instances.
detect_drift and list_drift_findings.evaluate_guardrails / list_guardrail_findings.
While migrating off the legacy just daily ritual: compare_to_legacy diffs a fresh legacy cash-flow.md against the new digest and reports where they disagree (missing / extra / changed obligations + working-cash delta). Use it to decide when the new system is trustworthy enough to rely on alone.
completions of tasks it pushed; it is not a source of obligations.
surface_due_items_to_todoist pushes the day's due items idempotently via theemissions ledger; reconcile_todoist_completions absorbs user completions of those tasks; create_todoist_task makes a one-off reminder.
execute_action_outbox only sends when live Todoist integration is turned on. Do not enable or send without explicit user instruction.
Tool outputs carry the source and, where relevant, a confidence and a needs_review state. Surface those. When an amount is an estimate (e.g. a statement payment before the statement closes), say it is an estimate and show the basis. When something needs the user's input, say so plainly rather than inventing a value.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.