finance
Skill0 starsChanged 29 days agoMITView on GitHub
Log a transaction into finances/ledger.csv from a verbal note, a receipt image or a bank statement; dedups, confirms, commits. Use when the user says: log this expense, record this payment, here's a receipt, here's my statement, we spent X on Y, we got paid X.
21 other projects use a version of this.
Adopted by
Most recently taken up by
- rezkam/boring-but-goodtheir own version, first seen Nov 1, 2026
- HKTITAN/isb-skillstheir own version, first seen Nov 1, 2026
- chellehoniker/claude-code-storytellerostheir own version, first seen Oct 20, 2026
- Tgoldi/claude-skillstheir own version, first seen Oct 13, 2026
- pantalytics/odoo-mcp-protheir own version, first seen Oct 12, 2026
- jjyaoao/HelloAgentstheir own version, first seen Oct 6, 2026
Used with
Projects with it also use gift-evaluator, Podcast Generate and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
dav-niu474Skillgift-evaluator
The PRIMARY tool for Spring Festival gift analysis and social interaction generation. Use this skill when users upload photos of gifts (alcohol, tea, supplements, etc.) to inquire about their value, authenticity, or how to respond socially. Integrates visual perception, market valuation, and HTML card generation.
Also in 5 projects that use this
dav-niu474SkillPodcast Generate
Generate podcast episodes from user-provided content or by searching the web for specified topics. If user uploads a text file/article, creates a dual-host dialogue podcast (or single-host upon request). If no content is provided, searches the web for information about the user-specified topic and generates a podcast. Duration scales with content size (3-20 minutes, ~240 chars/min). Uses z-ai-web-dev-sdk for LLM script generation and TTS audio synthesis. Outputs both a podcast script (Markdown) and a complete audio file (WAV).
Also in 5 projects that use this
huang-x-hSkillVideo Generation
Implement AI-powered video generation capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to generate videos from text prompts or images, create video content programmatically, or build applications that produce video outputs. Supports asynchronous task management with status polling and result retrieval.
Also in 5 projects that use this
- +9 more from dav-niu474
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- jjyaoao/HelloAgents★ 3.2ksame name
- travisjneuman/.claude★ 106same name
- pantalytics/odoo-mcp-pro★ 91same name
- zubair-trabzada/ai-finance-claude★ 62same name
- jxpeng98/qiongli★ 26same name
- choupiyang/ZAI_SKILLS★ 13same name
- HKTITAN/isb-skills★ 4same name
- br3eze-code/br3eze-code★ 3same name
- edorabma9304/Claude-Skill-by-Ozolab-Indonesia★ 2same name
- Rayan55050/progressive-agent★ 2same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- add-entrySkill
- add-todoSkill
- complete-todoSkill
- deadlinesSkill
- financial-summarySkill
- kb-add-folderSkill
- kb-archiveSkill
- kb-auditSkill
- kb-promoteSkill
- kbSkill
- kb-synthesizeSkill
- meetingSkill
- studySkill
- study-statusSkill
- study-unstudiedSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Acquire
runs/.lock: If present, abort ("another agent is writing, retry later").
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/finance
Ingests transactions into finances/ledger.csv. One in-session skill — no deferral. Finances want completeness now, and every write is confirmed with the user.
Read first (T2): finances/README.md — the schema, controlled category vocab, merchant→category map, dedup rules, and redaction rules. This skill enforces that contract; it does not restate it.
Procedure
- Acquire
runs/.lock. If present, abort ("another agent is writing, retry later"). - Read
finances/README.mdfor the column schema, category vocab, merchant map, and dedup/redaction rules. - Detect input mode:
- Verbal — free text from the user.
- Receipt — an image path / attachment.
- Statement — a local file path the user points you at (PDF/CSV/image). NEVER ingest a raw statement from any committed location; if the user put one there, move/copy it out first and ensure the raw is not committed.
- Parse → normalized records (columns per the README schema):
- Verbal: extract
date(default today),amount,direction(infer; ask if ambiguous),counterparty,account(ask if unknown),note. Noext_id.status: pending. Setownerfrom the account→owner map; if the account isn't mapped, ask whose it is and append the mapping. - Receipt: vision-read merchant, date, total, currency, the card last-4, and any invoice/order number (
ext_id). Copy the original image tofinances/receipts/<id>-<slug>.<ext>; setsource: receipt:<filename>. Setstatus: pending— a receipt is our capture, not statement-confirmed; rule 4 flips it toclearedwhen the bank line lands. Setownerfrom the account→owner map (card last-4 → owner); if unmapped, ask and append the mapping. (If the image exposes a full card number, do NOT store it — keep the row only, note redaction.) - Statement: parse all rows. For a large statement, dispatch a subagent to parse → return structured rows (keeps main context clean). Redact in memory: strip full account/routing/card numbers (keep last-4), drop addresses/other PII. Write the redacted snapshot to
finances/statements/<YYYY-MM>-<account-nick>.csv. Capture each row's bank reference asext_id; setsource: statement:<snapshot-filename>.owner= the statement account's owner (per the map — a snapshot is single-account).
- Verbal: extract
- Categorize each record via the merchant→category map in the README. If the counterparty is unknown, propose a category and ask; record the new mapping in the README's merchant-map table.
- Dedup + reconcile each record against
finances/ledger.csvper the README rules:(account, ext_id)already in ledger → skip (report "already recorded, ref X"). Scope by account — bank refs are only unique within an account.ext_iddiffers but fields look identical → separate transaction → keep.- no
ext_id+ fingerprint(date, amount, counterparty, account)matches → suspected duplicate: show the existing row and ask same-or-separate. If separate, prompt for a distinguishingnote. - statement row matches an existing
pendingentry by(amount, counterparty, date ±2d)→ enrich that row (attachext_id,status: cleared) instead of appending. - For statements, also flag in-ledger-but-not-in-statement rows for the period back to the user.
- CONFIRM EVERYTHING. Present the proposed change as a table — new rows, enrichments, skipped duplicates, and any flags. Get explicit user OK before writing. (Current policy: confirm even single clean entries.)
- Assign
id=<date>-<NN>, NN = next sequential index for that date already in the ledger. - Write: append new rows / edit enriched rows in
finances/ledger.csv. Store receipt images and the redacted statement snapshot. Update the README merchant-map table if new mappings were learned. - Regenerate + lint:
python3 scripts/rebuild-indexes.py finances/thenpython3 scripts/kb-lint.py finances/README.md. - Commit + push. Prefix
finance:— e.g.finance: log 2026-05-30 Example SaaS $40 (saas)orfinance: reconcile statement 2026-05 (+3 new, 5 confirmed). Push immediately. - Release the lock.
Notes
- Never store full account/routing/card numbers anywhere (ledger, statements, notes) — last-4 or nickname only.
- Never commit a raw bank statement. Redact in memory; write only the snapshot CSV.
amountis always positive;directioncarries the sign.transferrows are net-zero and excluded from spend/income totals.- One logical commit per ingest event (one verbal entry, one receipt, or one statement reconciliation).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

