Inspiration
I run a self-hosted NAS at home: scans, phone photos and documents all end up on it. The hard part was never storage. It was deciding who should see what. A payslip in the family share or a photo with a passport in the background is one drag-and-drop away from the wrong audience. Small offices have the same problem with a shared scanner folder. I wanted the AI to make that decision before a file reaches a shared folder.
What it does
Intake Guard processes NAS intake folders. Each folder states its intended audience. The Skill reads every document and photo locally and files it by audience, category and year. It explains and masks what it found, and it flags act-by-date items (payments, notice periods, expiries) and check-before-trusting items (changed bank details, unsigned or incomplete documents). Every decision is written onto the file as an intake-guard- tag.
The core rule: AI can only narrow, only you can widen.
$$ \text{audience} = \text{narrowest}\big(\text{intake},\ \text{category},\ \text{tag}_1, \dots, \text{tag}_n\big) $$
Uncertain files go to Review, never to a wider folder.
How I built it
The Skill is written entirely in Markdown, following the Uliya Skill standard: a SKILL.md that coordinates the file, document, photo and knowledge agents, plus twelve reference files holding the routing rules, policy templates, tag scheme and output contract. I used Claude Code to draft and cross-check the files, and validated the package with the official skill checker.
Challenges
- No device yet: I couldn't measure what the local vision model detects, so the design fails safe and the validation plan measures detection instead of assuming it.
- Routing logic: HR and Finance are both restricted, but neither is narrower than the other. Without care, every payslip would have landed in Review.
- Approvals: UGREEN's FAQ says approval is per tool call, so I batched all moves and all tags to keep confirmations few.
- Markdown only: no scripts, so every rule had to be precise enough for the model to follow on its own.
What I learned
With Markdown-only Skills, the hard work is the rules, not the code. Clear tiers, fail-closed defaults and a strict masking contract matter more than clever prompts.
What's next for Intake Guard
- Test day on the iDX6011 Pro: run the test cases, measure detection per finding type and speed, and tune the prompts.
- Fewer approvals: count the tag approvals in practice and switch to a reduced tag set if needed.
- Guard check: if tags turn out to be easy to miss in the file manager, add a run that finds tagged files moved to a more open folder.
- Automatic runs once UGOS supports triggers, and a "Relatives" tier for photos that only show family members.