Inspiration
Ask anyone what they would do if their home flooded tomorrow and they will talk about family, documents, maybe the car. Ask them what they would tell their insurance company and they go quiet. Insurers want a list of everything you owned, what it cost and some kind of proof. Almost nobody has that list, and trying to write it from memory after a burglary or a fire is the worst possible time to do it.
What struck me is that the proof usually already exists. It is sitting in years of phone backups: a photo of the new TV on the wall, a screenshot of an online order, a PDF invoice somewhere in a downloads folder. A UGREEN AI NAS is often where all of that ends up. So the question became simple. If the NAS already holds the evidence, why can't it build the list for you?
What it does
Homeproof is a Skill for UGREEN AI NAS that turns the photos and receipts already on your NAS into a home contents inventory for insurance.
You ask something like "make a home inventory for my insurance" and Homeproof:
- Finds which valuable item types the photo library recognises, like laptops, TVs, watches, guitars and sofas.
- Finds the photos of those items and describes each one with the vision model, including brand and model when they are readable.
- Looks for receipts and order confirmations in the photo library using OCR text search.
- Searches the receipt folders you point it to and reads every receipt file, PDFs through document extraction and receipt photos through OCR.
- Matches items to receipts and labels each match Exact, Likely or None.
- Shows you a draft table to review. You remove things, fix names, accept suggestions or type in values yourself.
- Saves the final report and, if you want, copies all the photos and receipts into one evidence folder.
It never deletes, moves or renames your files, and nothing leaves the NAS. It also never makes up a price. A value only appears if it came from a receipt or you typed it in, and anything without proof is clearly marked so you know what is missing before you actually need it.
How we built it
Homeproof is an orchestration Skill written for the Uliya Skill standard using the official UGOS Skill Creation Tool. A Skill like this cannot run its own code. It can only hand work to the registered NAS expert agents, so the whole project is really a carefully written set of instructions:
| Agent | CLIs | What Homeproof uses it for |
|---|---|---|
| photo-agent | ug-photo | object categories, photo search, vision descriptions, OCR |
| file-agent | ug-filesystem, file-workflow | finding receipt files, creating the evidence folder, copying |
| document-agent | ug-document | extracting merchant, date, price and warranty from receipts |
| knowledge-agent | ug-knowledge | saving the final report |
I started by reading the capability catalog, which lists 9 CLIs and around 80 actions, and only kept steps that map to a real action. Then I wrote the workflow as eight steps, where every step only uses real results from the step before it, and every write action waits for the user and the NAS approval flow.
The matching logic is deliberately simple so the user can trust it. For an item $i$ with brand $b_i$ and model $m_i$, and a receipt line $r$ dated $d_r$:
$$ \text{match}(i, r) = \begin{cases} \textbf{Exact} & \text{if } b_i \text{ and } m_i \text{ both appear on } r \ \textbf{Likely} & \text{if the type and } b_i \text{ match and } d_r \le \text{first photo date of } i \ \textbf{None} & \text{otherwise} \end{cases} $$
Totals are only ever added within the same currency:
$$ T_c = \sum_{i \,:\, \text{currency}(i) = c} p_i $$
so AED and USD never get mixed into one number.
I used Claude through Claude Code as a coding partner to read the catalog, draft the Skill files and run the official static checker. Every file was reviewed and edited by me.
Challenges we ran into
No NAS to test on. Round 1 does not include hardware, and the kit has no simulator. To get around this I built a fake NAS folder with 9 real photos from Wikimedia Commons, a phone screenshot of an online order, a photographed paper receipt, a PDF invoice, a grocery receipt and a lease. Then I followed the Skill word for word, with Claude standing in for the recognition and OCR models.
The first run was humbling. It correctly matched only 1 of the 4 real receipts. The test exposed seven real bugs:
- Only the "main item" in each photo was described, so an iMac sitting next to a laptop just disappeared.
- A receipt photo named
IMG_1876.jpgwas skipped because its file name did not say "receipt". - Receipt images were sent to the document agent instead of OCR.
- A laptop with no visible logo could never be matched, even with its invoice right there.
- A bicycle photographed on a public street was listed as if it were mine.
- Grocery receipts cluttered the unmatched list.
- Asking only for "jewellery" also pulled in watches.
After fixing all seven, the second run got all 4 receipts right with zero wrong matches.
Strict platform rules. The official checker is picky in good ways. Only SKILL.md and a references/ folder are allowed in the package, every delegation has to be a single quoted instruction to a registered agent, all five delegation states must be handled, and things like hard coded NAS paths fail the check. Even an apostrophe inside an instruction broke the quoting at one point.
Saying no to guessing. The hardest design choice was refusing to let the AI estimate values or force matches. It would make demos look fuller, but an insurance list with invented numbers is worse than no list.
Accomplishments that we're proud of
- The Skill passes the official checker with 0 errors and 0 warnings.
- In the simulated run it found every valuable in the test photos, ignored the park and the cake, matched every real receipt and made no wrong matches.
- Card numbers, addresses and phone numbers on receipts never reach the report.
- It is safe by design. It only reads until you approve, and even then it only adds a report and copies files.
What we learned
Writing a Skill is closer to writing a contract than writing code. You do not control the agent that runs it, so every instruction has to be specific about scope, what to return and what to do when the result is empty. Vague phrases like "the main item" or "files that look like receipts" are where things quietly break.
I also learned how much value comes from honest empty results. "No receipt found" is a useful answer when it is true. And testing with real, messy data found more problems in one afternoon than any amount of rereading did.
What's next for Homeproof
- Run it on a real UGREEN AI NAS iDX6011 Pro and time the vision step on a full photo library.
- Confirm which object categories UGOS recognition supports and tune the item list to match.
- Add an update mode that only adds items photographed since the last report.
- Group items by room based on what the vision model sees, which is how insurers often ask for them.
- Pull warranty periods from receipts into a simple "warranties ending soon" section.
Built With
- node.js
- ugreen-ai-nas