Inspiration

People pass NAS folders on all the time: a phone backup for a parent, trip photos for friends. Photos of an ID card, a bank card or a delivery label often sit among the ordinary pictures, and nobody checks hundreds of images by hand before handing a folder over.

What it does

Handover PII Sweep runs once on one folder or album before you hand it over. It flags images that show IDs, bank cards, boarding passes, addresses, phone numbers or emails, gives each one a reason and a High, Medium or Low tier, and moves nothing until you pick items. Picked items go to a temporary album or a holding folder outside the handed-over scope, with a restore log.

How we built it

It is a Markdown-only Uliya Skill. The parent delegates to the built-in file-agent, photo-agent and knowledge-agent and never calls a CLI itself. The steps: list the scope, query the photo index, run OCR on each image, check card numbers and passport lines with Luhn and check digits, ask the vision model one closed question, then assign a tier. Checksums decide High; a vision-model answer alone cannot. Each write is a separate confirmed command. The official static checker reports 0 errors and 0 warnings.

Testing so far

89 synthetic images drawn by code, with every card marked SAMPLE. After the rules were frozen, one run on 30 held-out images with desktop OCR flagged 20 of 20 personal-data images (Medium or High) and 0 of 10 decoys. A plain regex baseline flagged 16 of 20.

Challenges and limits

The held-out bank cards all stayed Medium: OCR split the card numbers, so Luhn never fired. The report therefore lists cards and IDs separately at any tier. Tilted or covered cards, handwriting and blur are likely misses. By default everything stays on the NAS; if Uliya is set to a cloud model, OCR text and the images sent to the vision model go to that model, and the Skill says so before reading anything. It has not yet run on a NAS.

Disclosure

The package contains only Markdown files. Claude Code helped with research and drafting; design decisions are the author's.

Built With

Share this project:

Updates

Submission history