Inspiration
I make and sell game assets, so I keep thousands of downloaded images in folders, and every pack carries its own licence. "Commercial use allowed" does not mean "may be resold as a file", and one wrong asset can mean a takedown or a refund. Checking by hand takes hours, so I turned the licence ledger I wanted for my own library into a NAS Skill.
What it does
Asset License Shortlist reads the licence and readme documents that sit beside each asset pack, classifies every pack against the use you declare, and shortlists only cleared images that fit your project brief.
- You name a folder, give a brief, and declare one use: personal, inside my product, or resale as an asset.
- Each pack gets a class: A cleared, B cleared with credit, C restricted, U undecided.
- Every A, B or C decision carries a quote of at most 25 words from the licence. No quote means U. Missing, conflicting, link-only or unreadable licences are also U.
- The Skill shows the table and waits for your confirmation before it creates an album, writes tags, or saves the provenance sheet.
- On a repeat run it fingerprints the files and re-reads only the licences that changed, with a change log.
How we built it
The Skill is Markdown only: one SKILL.md plus five reference files. The parent Skill only delegates, to four registered experts:
- File expert: inventory, fingerprints, tags
- Document expert: licence extraction, sheet drafting
- Photo expert: candidate matching, visual inspection of at most 20 images, album
- Knowledge expert: saving the sheet
It uses no credentials and no network access, and it handles all five delegation states (completed, failed, cancelled, waiting for user, waiting for approval). Python was used for packaging the ZIP and generating the test library.
AI tools disclosure: I used Claude Code (Anthropic Claude models) to draft and translate the English documents, to write and revise the Skill and its reference files, and to generate the synthetic test library. I reviewed and approved the result. The organisers confirmed by email that AI assistants are allowed with disclosure.
Challenges we ran into
- The starter kit is strict. Capability lines need a specific format, delegation is the only allowed call, and wording such as "skip approval" fails even inside a negation.
- Licence classification must never invent terms, so a fixed classification table is applied to quoted fields only.
- The test images are labelled rectangles, so visual matching was tested through names and OCR only.
Accomplishments that we're proud of
- The Skill passes the starter kit's static checker with 0 errors and 0 warnings, including on the unzipped submission ZIP.
- A synthetic test library of 5 packs (30 images and 4 licence documents) covers each class, a changed licence, and a pack with two disagreeing documents.
- Every decision in the output is backed by a quote, so a user can check the evidence instead of trusting the answer.
What we learned
A licence tool is only useful if it shows its evidence. Forcing a quote for every decision, and treating "cannot tell" as a first-class result, mattered more than any clever matching.
What's next for Asset License Shortlist
- Run it on a real NAS. So far the package has only been built and checked statically. Two assumptions still need testing: whether the document expert reads
.txtand.mdlicences (fallback: text from the file expert), and whether the photo expert searches ordinary folders (fallback: file listing, then named-file inspection). Both fallbacks are already written into the Skill. - Test the approval prompts and the repeat-run change log on real data.
- The licence reading is the model's classification of quoted text. It is not legal advice.
Log in or sign up for Devpost to join the conversation.