Inspiration
I work in finance, and month-end reconciliation is the same chore everywhere: match every card charge to a receipt. Receipts end up scattered across folders, email attachments and phone photos of paper slips. Cloud expense apps fix this by making you upload private financial documents. A NAS already holds those files at home, so the matching should happen there.
What it does
For one statement period it finds the statement, finds receipt documents in your folders, and finds phone photos of receipts in the photo library by their recognised text. It extracts date, merchant, amount and currency, matches each charge to at most one receipt, and saves a report: matched charges, charges with no receipt, receipts with no charge, mismatches and unreadable files. Every row cites its source file.
How I built it
Built with UGREEN's UGOS Skill Creation Tool (uliya-skill-kit 0.7.3) and an AI coding assistant. The Skill only orchestrates; each step is delegated to a registered expert:
- file-agent:
ug-filesystem find,ug-filemgr scan-dedupe - photo-agent:
ug-photo search-picture(OCR text + date window),vision-ocr - document-agent:
ug-document extract,reconcile - knowledge-agent:
ug-knowledge save-text
A charge $s$ and receipt $r$ are a confirmed match when $a_r = a_s$, $c_r = c_s$ and $-7 \le d_r - d_s \le 3$ days, with a shared merchant word. Weaker evidence becomes likely, amount differs, different currency or no receipt. It passes the official kit checker with 0 errors and 0 warnings.
Challenges
- Receipts and statement dates differ, so receipts are searched in a window of ±7 days around the period.
- Paper receipts live in the photo library, so photo OCR search was essential.
- There's no exchange-rate capability, so it never converts currencies; it shows both amounts.
- If a step fails, the report says which sections can't be trusted.
What I learned
Pass only real upstream results between steps, read first and write last (save needs approval, nothing is moved or deleted), and use explicit rules rather than black-box answers when money is involved.
Built With
- claude
- hermes