# Kaagaz

- **Event:** [Meta Global AI Developer Hackathon](https://cerebralvalley.ai/e/meta-ai-developer-hackathon)
- **When:** Oct 26, 12:00 PM – Nov 4, 9:00 PM (EST)
- **Where:** Online
- **Team:** [Sainath Gaikwad](https://cerebralvalley.ai/u/imsaigaikwad)
- **GitHub:** https://github.com/SainathGaikwad/kaagaz
- **Demo video:** https://www.youtube.com/watch?v=VD3PIouK6MM
- **Gallery:** https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/151

Kaagaz turns a photograph of an Indian prison register into a verified list of who is already entitled to release under Section 479 of the Bharatiya Nagarik Suraksha Sanhita, 2023.

The problem: three in four of India's ~5.3 lakh prisoners are undertrials, and Section 479 says many must be released once they have served a fraction of their maximum sentence. The check is simple arithmetic, but it is done by hand from paper registers, jail by jail — so between July 2024 and April 2025 only 334 undertrials were released under it nationwide. The bottleneck is labour, not law.

What it does: you give Kaagaz a photo or scan of a register page or an Undertrial Review Committee list — English, Hindi or Marathi, printed or handwritten — and for every prisoner it returns whether they are eligible, the exact date the threshold is crossed, the controlling section and its maximum sentence, and a ready draft of the Section 479 application. Muse Spark Open reads the whole table into a strict, name-free structure; a second independent read must agree before a row is accepted; every charge is looked up in an 800-section law table; and only then does a deterministic engine apply Section 479. A person reviews and signs off.

Safety by construction: the model only reads — deterministic code decides eligibility; two independent reads must agree or the row is held for a human; the schema has no field for a person's name; and when anything is unclear (a smudged date, an unknown section) it refuses rather than guesses. Across every test page it made zero false 'eligible' calls.

## More from Meta Global AI Developer Hackathon

- [CurrentSky](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/148)
- [oqed](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/149)
- [Team GC](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/150)
- [PASADHI](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/152)
- [KOWSHIK T](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/153)
- [HungLeAI](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/154)

---

Markdown version of https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/151. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
