Inspiration
I chose this idea for people who keep event, session or photo walk shoots on a UGREEN AI NAS. Picking keepers by hand takes time, and the right frame depends on what it is for: four good photos can still miss the one image a layout needs.
What it does
A selection can contain good photographs and still miss the image you need.
Photo Shoot Culling Assistant checks one NAS shoot against your brief and optional delivery requirements: for example, one image with headline space, two detail images and one context image. It proposes selections with criterion evidence, shows which photos cover each requirement, and keeps uncertainty and missing coverage visible.
Remove the only qualifying headline image and that requirement reopens. Approve an exception and it remains labelled as an exception. After confirmation, the Skill creates the Selects album and checks its actual members against the approved selection and delivery requirements.
The difference is assignment-level coverage: each deliverable is counted against the distinct photos that are actually in the NAS album, not against the proposal. A photo counts at most once within a deliverable and, by default, serves only one deliverable; with your permission it can serve different deliverables, never two slots of the same one. A target too small for the deliverables is flagged before any photo is checked.
When a deliverable stays unfilled, the Skill helps you decide where to look. It asks up to three questions at a time about uncertain photos whose answer could fill it, and shows what yes and no would each change. For known failures, if you marked a global requirement negotiable, it shows what relaxing that one requirement to a preference would admit and which gaps would remain. Your answers are stored beside the model's observations and apply only to the photo, criterion wording and intended use you inspected; if one of those changes, the old answer is kept as history and stops counting. An accepted change becomes a new brief revision, and the album is checked against it. The Skill never changes the brief by itself.
You choose one shoot of up to 300 photos and up to eight criteria, each required or preferred. Before any photo is checked, you choose how images may be processed: a Uliya-supported cloud AI service if the platform routes the check there, the NAS local AI model only, or no check. There is no fit score: picks rank by the preferred criteria they meet, then capture time. If you change only which criteria are required or preferred, the Skill reuses the stored observations without new vision calls and names the cause of every changed selection. It never deletes, moves, renames or edits photos.
The current submission is a Markdown workflow specification using UGREEN's registered experts. The worked examples describe expected behavior. NAS execution, selection quality and time savings remain to be validated.
How we built it
It was built with AI assistance under my direction. The Skill is Markdown only, with no scripts, and only delegates to the NAS's registered experts: photo-agent (manifest, vision, album and paginated album-membership search), file-agent (folder fallback, duplicates and tags) and knowledge-agent (optional review note). Versions 2 to 7 follow six ChatGPT reviews and an ideas round, which I asked for. Both decision features reuse stored observations and call no new catalog action.
Challenges we ran into
The catalog has no action that reports which model ran a vision check, so the Skill cannot verify where images go; the user decides before any check runs. Album creation can partly fail, so the Skill reads back every page of the album's members and recomputes coverage from what is actually there.
Accomplishments that we're proud of
SKILL.md and five reference files pass the kit 0.7.3 checker with zero errors, warnings or notices.
What we learned
The checker is a static format check only. It does not show whether verdicts are good or whether tagging and albums work on a NAS. So the targets below are goals, not results.
What's next
No NAS testing yet, and no user testing. I will use two matched 40-photo sets the tester has not culled before, labelled separately for two briefs, and compare manual and assisted selection with the order and set counterbalanced across sessions. Targets: keep every must-keep photo, resolve 80% of photos, and cut active review time by 25%. I will also answer one coverage question, decline and then accept one rule change, remove the sole headline frame, decline a stale tag removal and leave one Details photo out of the album, and test a run where image processing is refused, which should send and write nothing.
AI tools disclosure
This project was built with AI assistance under my direction. Grok Bot researched the rules and starter kit, proposed the candidate ideas and names, wrote the Skill package, merged and edited the answer drafts, ran the kit checker and drafted this project text. OpenAI GPT (gpt-6-astra) and Google Gemini (gemini-3.8-flash-n), through an API gateway, scored the ideas, reviewed the draft Skill and drafted the Round 1 answers; GPT also checked the version 4 and version 6 answers for accuracy. ChatGPT polished some first-version wording, and ChatGPT (web, Pro plan) reviewed versions 1 to 6, proposed the changes in versions 2 to 7, including the two decision features and the Q5 answer text, and wrote this tagline and the opening of "What it does"; Grok Bot checked each suggestion against the rules and catalog and applied the accepted ones. Anthropic Claude (claude-opus-4-6-thinking) reviewed the answers. I chose the core idea, accepted the name from the AI-proposed options, directed the work, and reviewed and approved this final version.
Built With
- file-agent
- knowledge-agent
- markdown
- photo-agent
- ugreen-ai-nas
- uliya-skill-kit
Log in or sign up for Devpost to join the conversation.