finance-import
Skill7 starsChanged 19 days agoMITView on GitHub
Parse a finance CSV export into a normalized markdown summary the OS can read later. Say "import this finance export", "parse this finance CSV", or "summarize this finance export". Read-only at the source - it never writes back to your accounting tool. Detects amount, date, account, category, and memo columns and totals by category.
In this repository100 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- notion-package/CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- add-handsSkill
- add-mouthSkill
- add-voiceSkill
- approval-gatesSkill
- auditSkill
- backupSkill
- blind-spot-reviewSkill
- bottleneck-diagnosticSkill
- brain-logSkill
- brain-passSkill
- brain-snapshotSkill
- brand-interviewSkill
- brand-voice-interviewSkill
- business-context-loaderSkill
- campaign-from-themeSkill
- capture-sweepSkill
- catch-upSkill
- client-updateSkill
- connectSkill
- content-repurposerSkill
- content-startSkill
- context-persistenceSkill
- cross-linkSkill
- data-securitySkill
- decision-frameworkSkill
- decisions-startSkill
- delivery-startSkill
- email-drafterSkill
- employee-reviewSkill
- forcing-questionsSkill
- founder-coachingSkill
- founder-next-moveSkill
- founder-os-setupSkill
- founder-reviewSkill
- founder-scope-challengeSkill
- github-opsSkill
- handoff-protocolSkill
- hireSkill
- historySkill
- housekeepingSkill
- ingestSkill
- knowledge-captureSkill
- legal-complianceSkill
- linkedin-brand-directionSkill
- linkedin-network-scanSkill
- linkedin-postSkill
- linkedin-power-auditSkill
- linkedin-startSkill
- linkedin-warm-revivalSkill
- lintSkill
- list-prunerSkill
- log-archiveSkill
- log-replySkill
- meeting-prepSkill
- memory-passSkill
- menuSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
If core/identity.md does not exist, stop with: Founder OS not set up here.
- Very specific: line 33
Write the summary to finance/<period>/summary.md under the OS root (create the folders if they do not exist).
- Distinctive: line 60
Amount column missing: stop and ask the operator to map columns.
- Very specific: line 63
Output path missing or unconfirmed: ask for the path before writing.
- Distinctive: line 129
Add a visual review step before trusting any extracted total.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Finance Import
Runs on: local-writes - creates or edits files in your OS folder; needs an agent with write access.
Convert a finance export into a markdown summary the OS can read later. The skill is read-only at the source boundary: it parses an export you give it and never writes back to your accounting tool or bank.
CSV input is supported. PDF input is a manual path until a per-format parser is tested (see PDF build path below).
Pre-flight
If core/identity.md does not exist, stop with: Founder OS not set up here. Run /founder-os:setup first.
When to invoke
Invoke when you have a finance CSV export and want a clean markdown mirror in the OS for later retrieval, planning, or to feed into unit-economics.
Protocol
- Accept a CSV path and a reporting period (
YYYY-MM). - Parse the header row and all records.
- Detect likely amount, date, account, category, and memo columns.
- Produce a normalized markdown summary with totals by category and warnings for missing fields.
- Write the summary to
finance/<period>/summary.mdunder the OS root (create the folders if they do not exist). Confirm the path with the operator before writing. - Print a one-line
WROTE:confirmation with the path, byte count, and a short description. - Append a one-line trace to
brain/log.mdrecording the period and record count.
<!-- private-tag: not applicable: the brain/log.md write is a computed import trace (period and record count), not user-provided speech, so the private-tag filter does not apply here. -->Output schema
finance_import:
status: ok | blocked
input_type: csv | pdf
source_path: "<path to the export>"
period: "<YYYY-MM>"
records_read: <number>
records_skipped: <number>
totals:
- category: "<category>"
amount: "<decimal string>"
warnings:
- "<warning or none>"
output_path: "<path to summary.md>"Failure modes
- Source type is PDF: return
blocked_pdf_scaffoldand ask for a CSV export instead. - Amount column missing: stop and ask the operator to map columns.
- Date column missing: proceed only if the operator supplies the period.
- Confidential identifiers found (full account numbers, tax IDs): stop and ask the operator to redact before import. Do not echo them.
- Output path missing or unconfirmed: ask for the path before writing. Never overwrite an existing
summary.mdwithout confirmation.
Composes with
unit-economics, which can read the category totals to ground a margin or break-even calculation in real numbers.strategic-analysis, which can cite the mirror when an analysis needs financial context.data-security, which classifies whether a given export is safe to keep in the OS as-is or needs redaction first.
This skill is standalone - it does not depend on any other finance skill. It produces the markdown mirror and stops.
Free-tier path
Free-tier users paste a small CSV sample into chat and copy the markdown summary into finance/<period>/summary.md manually. Large files should be summarized locally before pasting so the raw rows never enter context.
Worked example
Input CSV:
date,account,category,memo,amount
2026-04-01,Operating,Revenue,Example invoice,1200.00
2026-04-02,Operating,Software,Tool subscription,-50.00
2026-04-03,Operating,Revenue,Second invoice,800.00Output:
finance_import:
status: ok
input_type: csv
source_path: "exports/finance-2026-04.csv"
period: "2026-04"
records_read: 3
records_skipped: 0
totals:
- category: Revenue
amount: "2000.00"
- category: Software
amount: "-50.00"
warnings: []
output_path: "finance/2026-04/summary.md"Expected file header:
# Finance Summary - 2026-04
Source: `exports/finance-2026-04.csv`
Records read: 3
Records skipped: 0Output line:
WROTE: finance/2026-04/summary.md | 612 bytes | normalized finance summary for 2026-04PDF build path
PDF parsing is not enabled by default because table extraction from a PDF is fragile and a wrong total is worse than no total. To enable it for your export format:
- Collect three sample PDFs of the same export type with confidential fields redacted.
- Define the page and table patterns for that export type.
- Add a visual review step before trusting any extracted total.
- Compare PDF extraction totals against a CSV export for the same period.
- Promote PDF input only after the totals match across repeated tests.
Cross-reference
skills/unit-economics/SKILL.md- reads the category totals for business math.skills/data-security/SKILL.md- classifies whether the export is safe to keep as-is.
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.

