fintech-skills

agent
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 7 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

13 fintech engineering skills for coding agents, with test vectors and published with/without eval results

README.md

fintech-skills

Coding agents get money code wrong: a float for an amount, a new idempotency key on every retry, a
webhook trusted as truth. These 13 skills teach Claude Code, Codex, Cursor and any agent that reads
SKILL.md to write it the way a senior payments engineer does, with the tests in the same change.

On held-out prompts, Opus 5.5 went from 31% to 81% of graded expectations met with the skills
(run). Sonnet 5.5: 24% to 70% (run).

/plugin marketplace add felipealvarenga/fintech-skills
/plugin install fintech-skills@felipealvarenga

Codex, the skills CLI and manual copy: Install.

# split R$ 100,00 three ways                      # retry a charge after a timeout
- shares = [round(total * r, 2) for r in ratios]  - key = uuid4()            # new key per attempt
+ shares = allocate(10_000, [50, 30, 20])          + key = f"{tenant}:charge:{order_id}"
+ # -> [5000, 3000, 2000], sum always preserved    + # same key on every retry; the processor dedupes

The left column loses or invents cents on real ratios; the right column preserves the sum by
construction. The left key charges the customer twice after one timeout; with the right key the
retry is a duplicate the processor dedupes, for as long as the processor keeps the key. The skills
carry the other hundred rules like these, each with a test.

ci
license

Português

Why install this

For the engineer who reviews the money code a coding agent wrote, at a fintech or a SaaS that
moves money. Also for the Brazilian team that needs Pix, boleto, CPF and CNPJ and NF-e right the
first time. Each skill covers one failure (a balance column updated in place, a retry that charges
twice, a reconciliation that hides breaks behind a tolerance) with testable rules, a review
checklist and the tests the change must include.

What you get in the first ten minutes:

  • One prompt, Audit this repository's money code with fintech-skills., and the agent reports what
    to fix with file, line, rule, fix and the test that proves it. On the planted fixture: 12 findings
    in 8 files, 4 critical.
  • Test vectors with a reference implementation for every skill, Python and TypeScript for the main
    ones. Point them at your own money module and run them in CI.
  • Rules the agent follows when it writes, not only when it reviews: tests in the same change, no
    float for amounts, one idempotency key per operation, a webhook verified before it is trusted.
  • Numbers you can check. Every run is published with its transcripts, and the held-out prompts were
    never used to tune the skills.

Not the right tool if you want a vendor's API documented (use the vendor's plugin, see Scope) or a
process framework for all of software development; these skills are domain rules and work beside
such packs.

Results

Measured. The same 91 prompts ran on claude-sonnet-5-5 and claude-opus-5-5 with and without the skills (skills at
fa81209), and claude-sonnet-5-5 graded each transcript against expectations written before
the run. The score is the share of expectations the grader marked passed; the agent's code is read, not
executed. claude-sonnet-5-5: 81% with the skills, 24% without (299 against 87 of 370); claude-opus-5-5: 89% with the skills, 35% without (328 against 130 of 370). Per skill,
method and raw transcripts: evals/results/20261108T180307Z-fa81209, evals/results/20261109T103432Z-fa81209. Those prompts are development prompts: the skills were revised against
earlier runs' failures on them. On the held-out set, prompts in evals/heldout/ that are never read when editing a skill: claude-sonnet-5-5: 70% with, 24% without (73 against 25 of 105, evals/results/20261108T194552Z-fa81209-heldout); claude-opus-5-5: 81% with, 31% without (85 against 33 of 105, evals/results/20261109T110030Z-fa81209-heldout); claude-fable-5-2: 88% with, 35% without (92 against 37 of 105, evals/results/20261110T031626Z-fa81209-heldout).

Install

Claude Code:

/plugin marketplace add felipealvarenga/fintech-skills
/plugin install fintech-skills@felipealvarenga

Codex:

codex plugin marketplace add felipealvarenga/fintech-skills
codex plugin add fintech-skills@felipealvarenga

skills CLI (any agent that reads a skills folder):

npx skills add felipealvarenga/fintech-skills

Manual: copy skills/<name> into your project's .claude/skills/ or .agents/skills/.

The skills are Markdown files under skills/; read one before you install it, since an installed skill
runs with your agent's permissions. The only code in the pack is the vectors you choose to run. To update:
claude plugin update fintech-skills@felipealvarenga, codex plugin marketplace upgrade then the
codex plugin add line again, or npx skills update.

skills.sh shows a Snyk badge per skill. On 2026-11-10 four read MEDIUM: accounting-sync,
brazil-payment-rails, transaction-classification and webhook-handling. Those are capability
labels, "reads third-party content" and "touches payment systems", the same labels Stripe's own
stripe-pay skill carries; no finding names a file. The other nine read "No issues detected".

Skills load when a session starts, so start a new session after installing. Then send
Audit this repository's money code with fintech-skills. on a repo you know: the agent should
load the fintech-audit skill first and report file, line, rule, fix and test. If the transcript
shows no skill read, start a new session. The lint the audit runs needs Python 3.10 or newer.

Skills

Start with the audit. It runs a deterministic lint on your money code, confirms each lead by
reading, applies the checklists below and reports findings with file, line, rule, fix and test:

Audit this repository's money code with fintech-skills.

Sample report on the planted fixture: 12 findings
in 8 files, 4 critical, each with file, line, rule, fix and test. Sonnet 5.5, 7 turns, USD 0.21.

Skill Use when claude-sonnet-5-5 with / without claude-opus-5-5 with / without claude-fable-5-2 with / without, held-out Vectors
fintech-audit† Auditing a repo or a PR that touches money; the entry point 77% / 33% 83% / 40% 100% / 88% py
money-arithmetic Storing, adding, allocating, converting, rounding or formatting amounts 83% / 33% 90% / 47% 100% / 62% py, ts
double-entry-ledger Any table that answers "how much does X hold or owe" 82% / 25% 93% / 39% 100% / 38% py, ts
idempotent-payments Creating, capturing, refunding or paying out money; calling a processor 86% / 21% 100% / 36% 75% / 25% py, ts
webhook-handling Receiving callbacks from processors, banks and PSPs 86% / 7% 86% / 28% 100% / 22% py, ts
reconciliation Comparing ledger, processor and bank records of the same money 72% / 10% 86% / 24% 88% / 25% py
accounting-sync Pushing to or reading from QuickBooks, Xero, NetSuite, Omie, Conta Azul 68% / 21% 86% / 29% 88% / 38% py
transaction-classification Categorizing transactions with rules, ML or an LLM, especially auto-posting 100% / 22% 96% / 26% 100% / 25% py
pii-and-card-data Collecting, logging, displaying or exporting personal, bank or card data 63% / 37% 81% / 44% 75% / 62% py
audit-trail Any mutation of money, limits, permissions or customer data; agent actions 74% / 26% 85% / 33% 88% / 38% py
interest-and-amortization Interest, installments, schedules, accruals, effective rates 71% / 18% 79% / 32% 75% / 38% py
brazil-payment-rails Pix, boleto, card installments, CPF and CNPJ, NF-e in Brazil 90% / 21% 86% / 31% 100% / 0% py, ts
money-tests Writing or reviewing tests for any of the above 97% / 30% 100% / 47% 50% / 0% py

One run per prompt. A cell of about 28 expectations carries up to about ±14 points (95% Wilson interval); the pack-level numbers carry up to about ±4. The claude-fable-5-2 column is its held-out run (two prompts per skill, cells of about 8 expectations, about ±22 points each); read it at the pack level: 88% with, 35% without. † fintech-audit was measured without the lint it runs: the eval sandbox has no shell, so its row and the sample report (produced with a shell) are not the same setup.

Each SKILL.md has the same shape: when to use, numbered rules, how to apply, what to do when the
request pushes back, the tests the change must include, a review checklist, anti-patterns with
fixes, references. The table above is rendered from the skills' frontmatter and the latest run.

Evals

Every skill has evals/evals.json (prompts an agent would receive, and expectations a grader
checks in the transcript) and evals/vectors/ (pytest and vitest files with a reference
implementation, runnable against your own code through an environment variable). A graded run
sends the same prompts with and without the skill, grades both, and lands in its own folder under
evals/results/ with the models, the git sha, every transcript and every file the agent wrote.
Old folders are never edited. Method and flags: evals/README.md.

Run Skills at Prompts Subject With Without Lift (points)
20261108T035910Z-c7e767e c7e767e development claude-sonnet-5-5 62% 25% 36.8
20261108T053526Z-ee4f998 ee4f998 development claude-sonnet-5-5 72% 27% 45.4
20261108T143507Z-ae8adc1 ae8adc1 development claude-sonnet-5-5 78% 26% 52.4
20261108T180307Z-fa81209 fa81209 development claude-sonnet-5-5 81% 24% 57.3
20261108T194552Z-fa81209-heldout fa81209 held-out claude-sonnet-5-5 70% 24% 45.7
20261109T103432Z-fa81209 fa81209 development claude-opus-5-5 89% 35% 53.5
20261109T110030Z-fa81209-heldout fa81209 held-out claude-opus-5-5 81% 31% 49.5
20261110T031626Z-fa81209-heldout fa81209 held-out claude-fable-5-2 88% 35% 52.4

In 2 of the 91 with-skill sessions of the claude-sonnet-5-5 run on fa81209 the agent never opened the skill; those sessions count against the skills. In all 91 with-skill sessions of the claude-opus-5-5 run on fa81209 the agent opened the skill.

python scripts/validate.py   # frontmatter, evals, manifest, generated docs
python -m pytest -q          # vectors against the references, runner tests
npm ci && npm run test:ts    # TypeScript vectors

Scope

These skills are engineering practice. They are not accounting, tax or legal advice; where a
rule depends on a jurisdiction (statutory rounding, tax codes, disclosed rates, retention
periods), the skill says so and keeps the engineering part. Vendor API mechanics (endpoints,
OAuth, SDK calls) are out of scope: use the vendor's own agent plugin for those, such as Stripe's
official plugin or Intuit's intuit-developer and quickbooks-labs. These skills cover what those
plugins do not: the engineering rules for money.

How this was built

Written by Felipe Alvarenga from production work on credit, payments and accounting
integrations in Brazil and the US, drafted and iterated with Claude Code. The vectors run on every
push. The graded evals run before each release and each run's failures change the skills for the
next; the run summaries record what changed and why.

The cut rule stated before the first run: a skill that does not move its own evals by at least 10 points
is folded or removed. In the claude-sonnet-5-5 run on fa81209 the lowest lift was 25.9 points (pii-and-card-data) and the highest 79.3 (webhook-handling); in the claude-opus-5-5 run on fa81209 the lowest lift was 37.0 points (pii-and-card-data) and the highest 70.4 (transaction-classification).
One cell's noise is about ±14 points, so the rule is applied over repeated runs, not one.

Contributing

See CONTRIBUTING.md. One skill per folder, testable rules, at least six evals
with one adversarial, vectors with a reference implementation, no vendor docs, no tax rules.

License

MIT.

Reviews (0)

No results found