We almost forgot about the UGREEN hackathon. We shipped anyway. A team of developers submitted "Photo Backstory," a SKILL.md-based agent skill for UGREEN's AI NAS hackathon that reads handwritten notes on the backs of scanned photos by delegating to the NAS's built-in photo agent. The submission passed UGREEN's checker with zero errors and warnings despite never having run on real NAS hardware, and the team reported that AI deep-research tools produced uniformly high scores, duplicate ideas and unverified competitive claims that they discarded in favor of manually reading the platform's capability catalog. So we found the UGREEN Hackathon 2026 on AI NAS, said "yeah we join this," started some research... and then kinda forgot about it, twice. A few days before the deadline it came back to haunt us. This is the story of how we still got Photo Backstory in, a Skill that reads the handwriting on the back of old scanned photos, and what we'd tell anyone especially our own teammates who are new to this about doing hackathons with AI agents. Spoiler: it passes UGREEN's checker with 0 errors and 0 warnings. It has also never touched a real NAS yet. Both of those are true at the same time. Not a system, not an app, a Markdown file. That's it. You write SKILL.md, and it tells the NAS's built-in AI which of its own agents to call, in what order, and what to do when stuff breaks. SKILL.md and some Markdown references. delegate --target photo-agent --instruction '...' . There are six built-in agents: files, photos, documents, knowledge, media and cameras. If you make the top 30, you get one day on a real iDX6011 Pro. So it's less "build a program" and more "write really precise instructions for someone else's robots." Which, honestly, changes everything about how you should work. | Date Manila | What happened | |---|---| | Oct 25 | We found the Hackathon | | Oct 26-31 | silence... part 1 | | Oct 31 | Read the rules, wrote research prompts, felt very productive | | Nov 1–9 | the forgetting era | | Nov 10 | Research reports came back, one per track | | Nov 10 | Finally downloaded UGREEN's kit. Read the real capability list. Picked the idea after gajillion tries | | Nov 12 | First actual team call. Built the Skill, the PDF and the Devpost text the same day | | Nov 13 | Team research doc with 11 more ideas thanks Gemini | | Nov 15 | Fact-checked our own team's research doc, checked who else had built what, locked the idea | | Nov 15 | Second pass, found a real design flaw, fixed it, made gallery images, submitted. Also wrote this thanks claude | If we'd just started research at Oct 25, and downloaded the kit on Oct 31, we'd have saved like a week. Lesson one, and we're not even at the lessons yet. We went with whatever we felt comfortable, then ditched it and used an idea nobody else seemed to have besides Google and Claude ? , not the one the AI scored highest ps. theyh all are ass . Here's why. We ran Gemini Deep Research Extended Thinking, at that prompts per track: real user problems, a scoring matrix, test cases, the works. The reports came back long, very confident and very broken: 1. Every idea scored 21 to 24 out of 25 across three independent runs. When everything's an A, its totally ass. We threw the scores out. 2. The same idea showed up three times. A "B-roll video indexer" kept topping the list. Problem: it needs to search what's inside the video, and the platform can't do that, yet. 3. Nobody checked the competition. Devpost project pages are public before judging. A later report ranked a receipt reconciler and a contract-renewal tracker 1 and 2. A five-minute search found people who'd already built pretty much exactly those. What actually helped: we took UGREEN's own example ideas dedupe your downloads, travel albums, meeting notes, invoices, garage camera summaries and put them on a do-not-build list aka. dumpster. TL:DR; It's easier to prompt away for these use cases than to build one and test it blindingly . Then we looked for something that only makes sense on a NAS full of private family stuff. That's how we landed on photo backs. Old prints have the who, when and where written by hand on the back. Scan them, and the front and back become two random files, and the writing is basically gone forever. We searched the public entries and nobody was doing it. Easy pick. Best thing we did, by far: open UGREEN's kit and read the capability catalog and the checker ourselves. The marketing page and the AI summaries were both wrong in ways that would've cooked us. | What we were told | Who said it | What the kit actually says | |---|---|---| | There are six capability areas | UGREEN's own starter page | 9 tools and 78 actions, including OCR and a vision model you can prompt. Way more than six | | Video search can find shots by what's on screen | Several AI research reports | It browses a movie/TV library by title, actor, genre. No scene search. B-roll idea: dead | | Add a README.md to your ZIP | Starter page and an AI report | The checker fails anything at the root besides SKILL.md and references/ | | Capability lines look like - cli - agent | An AI report | Wrong heading, wrong arrow. The checker wants an exact heading and a real → | | Writes need one approval each | Us, in our first draft | Approvals are per action: one per new tag, one per file for date changes | An AI summary of a platform is a guess about the platform. The catalog file is the platform. When they disagree, the file wins, and you only find out if you open it. You point Photo Backstory at a folder of scans. It reads the backs, shows you what it found, and only writes anything after you say yes. The whole thing is one SKILL.md plus three Markdown references. a / b or just scan order. You confirm. It never deletes, moves, renames or touches the EXIF of your originals, and nothing leaves the NAS. Grandma's photos stay home. Version one passed the checker. It still had a real design flaw. A second pass, this time checking every parameter instead of just every action name, caught it the day before the deadline. temperature setting. Set it to 0 and the same scan gives the same reading every time. Free win, almost missed it. verified flag. Now the index only counts as saved when that flag says so, and if it fails, nothing else gets written. vision-ocr into two words, said 528. Over. We trimmed it to 486 by the strictest count. Passing the checker means your file is well-formed. It doesn't mean your Skill is good. Leave time for a second, slower look. Each AI got one job, and the humans kept the decisions. The thing holding it together was one shared Markdown file. | Who | Job | Watch out for | |---|---|---| | Gemini Deep Research | Big-picture research: user problems, market, idea lists | Very confident numbers with no source. Inventing features the platform doesn't have | | Claude | Reading the kit, building the Skill and PDF, running the checker, fact-checking the research | Saying "done" before anything has actually been checked | | Us | Picking the idea and the track, actually hitting submit | Deciding stuff in a call and never writing it down | The handoff file is one Markdown doc that every AI reads first and updates after every change. One of our teammates brought the template over from another project, and it slaps. It has: This is how research from one AI and a build from another lined up without anyone losing track of what was true. When one AI got something wrong, the fix went into Erroneous Context, so the next AI didn't repeat it. If you remember one thing: get the platform's real files on day one, and make every AI claim prove itself against them. If we make the top 30 announced Nov 21 , we get one day on a real iDX6011 Pro, and the plan is already written: After that, the same trick works on other handwritten stuff: recipe cards, postcards, letters. Wish us luck.