Inspiration

I'm a first-year Software Engineering student at UKM. After every club event, someone has to write the Laporan Program, the report student affairs require before any claim is paid. The evidence is always spread across one messy folder: hundreds of photos, speech recordings, a scanned attendance sheet, photographed receipts and the approved budget. It takes evenings to write, and one missing receipt gets it rejected.

Then I realised it isn't just students. The same compliance test applies wherever money is spent on an event and someone else signs off:

  • NGOs reporting to international grant bodies must show that every disbursement matches an approved budget line and a receipt
  • SMEs documenting Corporate Social Responsibility (CSR) programmes must back every claimed activity and amount with evidence for their auditors
  • Schools and community groups must justify sponsor money and claims to their committees

In each case, auditors and grant officers expect every figure to trace back to a source document. A generic AI summary can't show where a number came from, so it adds work instead of removing it. EventProof cites the file path for every photo, quote and amount, and flags what is missing before an auditor finds it.

What it does

*EventProof doesn't summarise. It audits. *

  • Picks 8 to 12 sharp, captioned highlight photos covering every session, with duplicates removed
  • Reads receipts and attendance sheets straight from photos with on-device OCR
  • Summarises speech recordings in English or Bahasa Melayu
  • Builds a budget vs actual statement only from receipts that really exist
  • Flags every gap: missing receipts, overspent budget lines, unreadable totals
  • Cites the real file path for every photo, quote and amount
  • Quick mode for photos + receipts + budget only
  • Optional, after approval: a highlights album and a copied receipts archive

Sample output

The third gallery image is a sample EventProof report built from my synthetic test event (6 budget lines, 7 receipts, 1 attendance sheet). It catches all four planted problems: a missing RM450 canopy receipt, an unbudgeted RM30 phone reload paid by DuitNow, a blurry receipt it refuses to guess, and food spending RM42.50 over budget. The same test folder is ready for the finalist NAS testing day.

How I built it

EventProof is a parent orchestration Skill built with the official UGOS Skill Creation Tool. It runs nine ordered steps (13 delegations) across four NAS experts, designed for small on-device models:

Step Expert Capabilities
Inventory file-agent find, mediainfo, scan-dedupe
Highlights (batches of 10) photo-agent search-picture, meta, vision-vlm
Paper photos (batches of 5) photo-agent vision-ocr
Sessions (one recording per call) knowledge-agent audio-transcription
Budget, receipts, matching document-agent extract, reconcile
Narrative text (no amounts) document-agent writing
Save / album / archive knowledge, photo, file agents save-text, create-album, mkdir, cpmv (copy)
  • *Deterministic Parsing Framework: * every expert answer in pipe-free PREFIX key=value records ending in an END lines=N sentinel. A missing sentinel, a count mismatch or an unknown path exposes truncation or model drift immediately, triggering one half-batch retry, then a logged gap
  • *Numbers never pass through generation: * totals come only from lines labelled TOTAL or JUMLAH (never TUNAI, BAKI, SUBTOTAL or SST), are validated against strict amount rules, and are printed by the Skill itself with visible addends
  • *Confidence gate: * every receipt-to-budget match is scored HIGH or LOW; LOW and unbudgeted items never enter totals and surface as gaps
  • All five delegation states are handled, every write waits for approval, and the package passes the official static checker with 0 errors and 0 warnings

I also built a local benchmark (synthetic receipts, a Bahasa Rojak transcript, a kertas kerja budget and five deliberately broken model outputs) with a validator that catches each failure.

Why AI NAS

The proof of an event (faces, attendance lists, finances) is private, and the photo and audio files are heavy. On the NAS, every model (vision, OCR, transcription, writing) runs locally, and nothing leaves the device.

Challenges

  • Designing the flow so the AI never invents an amount: unreadable or unmatched receipts become flagged gaps
  • Passing results between four experts using only real, verified outputs
  • Keeping originals safe: receipts are copied, never moved, overwritten or deleted

What I learned

Good agent design is mostly about the unhappy paths: approvals, partial results, empty folders and failures.

What's next

On the finalist NAS: tune prompts on real expert outputs, test OCR on Malaysian receipts and transcription on mixed Malay and English speech and run the full test plan included in the package.

Built With

  • agent-orchestration
  • ai-agents
  • document-ai
  • markdown
  • ocr
  • skill-md
  • speech-to-text
  • ugos
  • ugreen-ai-nas
  • uliya-skill-kit
  • vision-language-model
Share this project:

Updates

Submission history