Inspiration
A client asks for product photos using the new white-capped bottles. The photographer gets a great shot of someone holding the product, but it shows the old black-capped bottle. It looks good enough to make the shortlist. It still doesn't fulfill the brief.
That kind of detail is what interested me. Checking a shoot means remembering everything the client asked for, sometimes across a recording, a PDF, and several revisions.
BriefCheck brings those requirements alongside the photos. A NAS also holds earlier shoots, so there may already be an approved image that fills a gap. I wanted the review to help answer what can be delivered, what might be recovered, and what still needs shooting.
What it does
BriefCheck is designed to turn an audio or written brief into a checklist the photographer confirms. A product reference can supply visible packaging details, but the user decides which details are mandatory.
Each candidate image must meet all the conditions for its intended shot. A correct product in one photo and a correct composition in another cannot be combined into a match. Duplicate copies cannot inflate a requested photo count.
The report identifies covered requirements, rejected near-matches, gaps, and uncertainty. If older material is allowed, the user can authorize a specific archive search. A matching archive image only counts toward delivery after its reuse is approved, and the report identifies where it came from.
Remaining gaps become concrete reshoot or review actions. When the brief changes or new photos arrive, a fresh review explains what changed without rewriting the earlier result.
Saving a report and creating a shortlist album require separate approval. Source photos remain untouched.
How I built it
I built BriefCheck as a Uliya orchestration Skill using the official UGREEN starter kit. Its Markdown instructions delegate file discovery, transcription, document extraction, image analysis, scoped archive search, and approved outputs to registered UGREEN agents.
The enhanced package passes the official static checker. I also used AI assistance to manually review synthetic scenarios covering mismatched packaging, duplicate counts, archive decisions, amendments, and partial failures. Those walkthroughs check the written logic; they do not establish NAS runtime behavior or model accuracy.
The selected platform models and their data routing still need verification on the assigned NAS. The Skill has no custom external API integration.
Challenges
Finding a similar image is easier than establishing that it satisfies the request. An unreadable label should remain uncertain, and a failed search shouldn't become a claim that no suitable image exists.
Archive recovery adds another distinction: an image can look suitable without being approved for reuse. I kept search permission, visual acceptance, reuse decisions, and output creation separate.
Rechecks also need to challenge old conclusions. The same filename can contain a changed image, and an unchanged image can stop satisfying an amended brief.
What I learned
Requirement wording matters as much as image analysis. Three bottles in one photograph is different from three photographs. A no-face condition may apply to one shot rather than the whole delivery. Preferences, cancellations, and changes need to stay visible through the review.
What's next for BriefCheck
The staged initial brief and amendment are now synthesized with ElevenLabs, with captions for editing and a separate local speech-recognition check. They are clearly labeled as AI-generated voices. During the actual NAS demonstration, BriefCheck will transcribe the audio through UGREEN's capability rather than using the prepared script.
I still need to prepare the licensed photo fixtures and a genuine archive-recovery example, and validate the workflow on a UGREEN NAS if selected.
Testing will measure incorrect acceptances and missed valid matches separately, alongside extraction errors, inspection completeness, runtime, and actual write behavior. The demo will use staged/public inputs and distinguish real execution from expected outcomes.
AI assistance
I used Devin for research, idea exploration, Skill authoring and review, scenario preparation, and submission drafting. Tavily CLI supported public web research and source extraction. ElevenLabs generated the synthetic brief recordings; OpenAI Whisper through faster-whisper provided a local audio preflight. These are development tools, not part of the Skill's runtime integrations.
Built With
- document-extraction
- photo-visual-analysis/ocr
- ugos-skill-creation-tool
- ugreen-ai-nas-capabilities-(audio-transcription
- uliya-orchestration-skill-(markdown)
Log in or sign up for Devpost to join the conversation.