Inspiration

Design studios live and die by their asset libraries. A studio with 10 designers working across 50 client accounts over 5 years accumulates hundreds of thousands of files on shared NAS storage. The problem compounds at every scale:

  • A junior designer can't find the logo variant they need because the original was exported as Vector 14.svg by a senior who left six months ago.
  • A creative director wastes 40 minutes before a client call hunting for the original badge artwork used in a campaign two years back — the file exists, it just has no searchable name.
  • An entire studio loses billable hours every week to this. Not because the files are gone — they are on the NAS — but because there is no way to find them without knowing exactly what they were named when they were saved.

Standard NAS search is filename-only. Cloud AI tools require uploading confidential client artwork to external servers, which violates NDAs immediately. Neither understands what something looks like.

I wanted to build something that searches the way a designer thinks — by describing what something looks like, not what it was named. And I wanted it to run entirely on-device, so client artwork never leaves the studio's own hardware.


What it does

design-element-locator is a Uliya Skill for UGREEN AI NAS that finds original standalone design assets — icons, vector marks, badges, and human subject portraits — using either:

  • A layout image + region hint: Upload a banner and say "Find the quill icon in the top-left corner"
  • A natural language description: "Find the frosted-glass rounded badge with gold text"

The skill runs a 4-stage pipeline entirely on-device:

Stage 1 — Visual Grounding ug-photo vision-vlm deconstructs the target element into a structured attribute tuple: geometry, dominant color palette, interior motifs, and any embedded text characters via OCR. If the target is ambiguous — overlapping elements in the same region, or a plain generic shape like a solid circle — the skill pauses and asks the user to clarify before continuing.

Stage 2 — Zero-Compute Funnel ug-filesystem filters the entire NAS directory by format (.svg, .png, .jpg, .webp), then narrows by creation timestamp within a 14-day active sprint window, then by aspect ratio alignment. For hash-named files like 8f7b2c.png or Frame 402.svg, timestamp proximity is the primary sieve — lexical matching is useless when filenames carry no meaning. A hard cap of 15 candidates passes through to the AI stage.

Stage 3 — Pairwise Visual Verification ug-photo vision-vlm compares each candidate against the attribute tuple, scoring geometry, iconography motifs, and chromatic alignment for every file individually.

Stage 4 — Tiered Delivery Results are delivered in three confidence tiers:

  • Tier 1 (≥85%) — Exact source match: geometry, motifs, and typography all correspond
  • Tier 2 (50–84%) — Component variant: same underlying shape under a different colorway, frosted glass effect, blur, or grunge texture overlay
  • Tier 3 (30–49%) — Related asset: same design family, typeface, or thematic context

If zero candidates are found after a full archive search, the skill reports honestly what was checked and offers concrete expansion options — broadening the folder scope, relaxing the date window, or searching by alternate geometric aliases such as squircle vs. rounded rectangle.


How we built it

The skill is built entirely within the Uliya Skill Standard — pure markdown orchestration with zero external dependencies or custom scripts. Every capability is routed through officially registered native UGOS agents declared in the # Generation-time capability evidence block:

  • ug-photo → photo-agent (visual grounding, OCR, face recognition, pairwise verification)
  • ug-filesystem → file-agent (directory discovery, format filtering, metadata inspection)
  • file-workflow → file-agent (state coordination across pipeline stages)

Each stage is a self-contained delegation request — the receiving agent gets everything it needs in a single instruction without retaining memory from earlier stages, which is a hard requirement of the Uliya execution model.

The official check-skill.mjs validator was run after every edit to catch security violations before they could accumulate. The final submission passes with static-pass, 0 errors and 0 warnings.


Challenges we ran into

Shape ambiguity and squircles A squircle (continuous superellipse) looks nearly identical to a rounded rectangle in a thumbnail. If the system searched for the wrong shape, it would return hundreds of irrelevant UI boxes. The solution was a clarification gate: when the target is a generic geometric primitive with no distinct branding marks, the workflow pauses and prompts the user to provide distinguishing details before any file scanning begins.

Hash filenames Files named Frame 402.svg, IMG_9043.jpg, or e29b109c.png carry zero semantic meaning. Lexical filename matching is completely useless for a large portion of real studio exports. The solution was to demote name matching to a supplementary signal and elevate creation timestamp proximity as the primary filter — assets from the same project sprint are temporally clustered regardless of what they were named.

Photoshop effects on top of source geometry Frosted glass, grunge overlays, and motion blur all lower AI confidence scores even when the underlying silhouette is geometrically identical to the target. Rather than discarding those files as misses, Tier 2 explicitly catches stylized variants so the user can inspect them and make the call themselves.

Security compliance during development The official Uliya validator caught three security violations during development: hardcoded NAS path strings, undeclared direct file access patterns, and example paths that triggered the SECURITY_DIRECT_FILE_ACCESS rule. Each required redesigning the affected section to route through registered agents instead of referencing paths directly.


Accomplishments that we're proud of

  • A clean 4-stage retrieval pipeline that uses zero AI compute in Stages 1 and 2, preserving NAS hardware resources for the verification step where it actually matters.
  • The clarification gate that correctly handles squircles, overlapping elements, and generic primitives — edge cases that would silently produce wrong results in any system that skips disambiguation.
  • Honest failure behavior throughout: the skill never invents file paths, never guesses when it cannot distinguish, and always tells the user exactly what was searched and what to try next when nothing is found.
  • Passing check-skill.mjs with static-pass, 0 errors and 0 warnings on the final submission — a hard requirement for Round 2 eligibility.
  • A fully on-device, zero-telemetry architecture that design studios can deploy under client NDA without any risk of confidential artwork leaving the building.

What we learned

The most important insight from this project: the most valuable work in a retrieval system is not the AI step — it is everything that runs before the AI.

A well-designed zero-compute funnel that eliminates irrelevant candidates using format, timestamp, and aspect ratio before vision-vlm ever runs is what makes this viable on NAS hardware that is not a data center. Sending 500 files to a vision model on a consumer NAS would be unusable. Sending 15 pre-filtered, temporally-clustered candidates produces a result in seconds.

We also learned that strict platform compliance is not a constraint to work around — it is a design forcing function. The Uliya Skill Standard's requirement that all work route through registered agents and produce no side effects made the architecture cleaner and more auditable than a free-form script would have been.


What's next for design-element-locator

Round 2 hardware validation on the UGREEN AI NAS iDX6011 Pro:

  • Benchmarking speed and accuracy across 5,000+ mixed vector and image files
  • Measuring clarification prompt accuracy on multi-element layouts and squircle edge cases
  • Testing semantic recovery of assets behind frosted glass, blur, and grunge textures
  • Verifying precision on hash-named and generic export files at scale

Longer term possibilities:

  • Multi-asset batch search: find all instances of a full design system (logo, wordmark, icon set, badge variants) in a single query across the entire NAS
  • Reverse provenance: given a finished exported file, trace which original source assets were used to compose it
  • Studio-wide asset health reports: surface duplicate, orphaned, or unreferenced source files that are accumulating silently across project folders

Built With

  • ai
  • figure-albums
  • file-workflow
  • ug-filesystem
  • ug-photo
  • ugos
  • ugreen
  • uliya
  • vision-ocr
  • vision-vlm
Share this project:

Updates

Submission history