Inspiration
After a loss, an insurer or a manufacturer asks three things: did you own it, what was it worth, and what happened. The answers are usually already on the NAS. They sit in a PDF invoice inside a mail export, a photo of the new laptop on the desk, a manual in a downloads folder, and a doorbell clip from the night it went missing. People gather them under stress, late, or never.
What it does
Proof of Ownership is a Uliya Skill for UGREEN AI NAS with two modes.
- Ledger mode builds one entry per purchased item: merchant, date, price, serial number, warranty end date, up to three ownership photos, the matching manual, and a SHA-256 fingerprint of every evidence file.
- Claim mode starts from one sentence ("my bike was taken from the porch last night", "the TV won't turn on"). It finds the item in the ledger, re-checks the fingerprints so you can show the evidence is unchanged, searches home-camera events in the incident window, quotes the warranty terms from the manual, and drafts a claim letter that uses only verified facts. Anything missing is written as MISSING, never guessed.
Everything stays on the NAS. The Skill reads and links your files; it never moves, renames, edits or deletes the originals. The ledger, the dossier and an optional album are the only writes, and each one waits for approval.
How I built it
The Skill is a single SKILL.md under the Uliya Skill Development Standard, plus four linked references (ledger format, scenarios, test plan, disclosures). The parent Skill only delegates, with self-contained instructions:
| Step | Expert | Capability |
|---|---|---|
| Receipts → purchase records | document-agent | ug-document extract |
| Photographed receipts, ownership photos, serial plates | photo-agent | ug-photo search-picture, vision-ocr, vision-vlm, meta |
| Manuals, fingerprints, integrity re-check | file-agent | ug-filesystem find, stat, sha256sum |
| Camera events in the incident window | security-monitor-agent | ug-surveillance event-timeline, event-evidence |
| Warranty terms, claim letter draft | document-agent | ug-document qa, writing |
| Save ledger and dossier | knowledge-agent | ug-knowledge save-text |
Each step passes only the real result of the step before it. All five delegation states (completed, failed, cancelled, waiting_user, waiting_approval) are handled, and empty results are reported, not filled in. The package passes the kit's static checker with 0 errors and 0 warnings.
Challenges
The kit is strict, which helped: no scripts, no direct cli.invoke, no hard-coded NAS paths. The design problem was linking data across five experts without letting any step invent a value, and keeping the claim useful when a piece is missing (no cameras, no serial number, a changed receipt).
What's next
On the finalist test day: run the synthetic fixture (12 invoices, 3 receipt photos, 20 photos, 4 manuals) through the ledger build, a TV warranty claim, and the tamper edge case, then tune the photo-matching instructions on real output.
Disclosure
AI tools used: Claude Code (Anthropic) helped read the rules and the developer package, draft the Skill text and references, run the static checker, and draft proposal wording. Full disclosure is in the Skill's references/disclosures.md.
Built With
- markdown
- ugos
- ugreen-ai-nas
- uliya