Inspiration

After copying photos, videos or documents to a NAS, did everything arrive correctly? A completed transfer message does not show which files were verified. Verify My Copy gives home NAS owners and small creators a clear, file-by-file answer.

What it does

Give Uliya the original and copied folders. The Skill asks only for missing scope, then automatically inventories files, compares content at matching relative paths and reports Verified, Missing, Different or Could not check. Destination extras stay separate and require complete source coverage. It preserves both folders and shows the result in the conversation. An optional saved NAS receipt requires the user's chosen location and platform approval.

A separate browser companion starts checking after two local or mounted NAS folders are selected. Supporting browsers remember read-only folder handles and reuse existing grants; renewed permission needs a user gesture. It hashes files in the browser without uploading their contents. The companion is outside the submitted Skill ZIP.

How we built it

The submitted Skill contains newly authored Markdown and two linked Markdown references. It delegates inventory, metadata and SHA-256 checks to UGREEN's registered file expert through ug-filesystem. Optional receipt saving uses the knowledge expert's ug-knowledge save-text, with approval and readback.

The browser companion uses HTML, CSS, JavaScript, worker-based streaming hashes and IndexedDB for supported directory handles. Results put issues first, with paths, hash evidence and coverage available on demand.

Challenges we ran into

A failed lookup must not become a missing-file claim. The native Skill requires complete-inventory evidence; browser absence is limited to selected File snapshots. Ambiguous spellings, changing files and interrupted work remain explicit. Review found a folder-identity issue; the browser now rejects identical and overlapping directory handles.

Accomplishments that we're proud of

The final Node suite passes all 22 tests. The current browser smoke check passes the automatic generated example, issue ordering, hash details and report download with JSON readback. An earlier browser revision passed 18 scenarios with zero recorded JavaScript errors. A 128 MiB browser-worker hash matched Node crypto. The source and rebuilt ZIP pass the official static checker with zero errors or warnings. The separate PDF has 366 substantive words and two visually reviewed pages. Actual NAS execution remains untested.

What we learned

Matching hashes establish equality of the accessible bytes checked. They cannot establish backup-job health, archive restoration, photo decoding or off-site protection. Clear scope and uncertainty belong in the result.

What's next for Verify My Copy

If selected, validate the Skill on the assigned UGREEN NAS using known matching, missing and different files, empty files and destination extras. Exercise partial access, interruption and changing sources. Confirm actual expert coverage, same-delegation resume behavior and optional approved receipt save/readback.

AI and third-party disclosure

Codex researched, implemented, reviewed and packaged the new work. Claude Fable 5.1 supplied a design advisory. A later Claude source-review request was blocked by input screening and did not run. Independent Codex source review identified the folder-identity issue that was fixed. Demonstrations and tests use generated fixtures rather than personal photographs or documents. No prior Skill or submission material is reused.

The official UGREEN Skill Kit 0.7.7 and capability catalog 2.2.0 were technical references. The kit, catalog and checker are not redistributed in the Skill ZIP; no broader license is asserted for them. The separate browser companion uses @noble/hashes 2.4.0 under the MIT license, with package integrity verified and the original license retained. That library and all browser code remain outside the Skill ZIP. Python, Node and ReportLab are preparation tools.

The submitted Skill adds no external AI service or upload integration. Native execution uses the UGREEN platform and its registered experts under the platform's inference and permission policies. This is distinct from the browser companion's local file reading and hashing.

Built With

Share this project:

Updates

Submission history