~/openarch/work/prism-// case study

The intelligence layer inside Marquise, a jewellery manufacturing ERP. Prism answers questions about job sheets, weights, rates and compliance - in the language the floor actually speaks, and never with a number it cannot cite.

Shreekunj AAI Limited·jewellery ERP · AI layer·2026·in development
openarch.in/work/prism
Prism interface
//the brief

What we built.

Marquise holds the records; Prism makes them answerable. Office staff reach it through a keyboard-first command bar, merchandisers through the job sheet they already have open, and karigars through a hands-free voice mode in Hindi, Gujarati or Marathi. Every answer is grounded in a record and links back to it - an assistant that refuses to guess is the only kind that belongs near a weight ledger.

// The floor speaks. Prism answers.

domainjewellery manufacturing
shapeembedded assistant
statusin development
surface6 entry points
stack
typescriptpostgresdecimal arithmeticspeech · asr/ttsrapaport feed
//what we shipped
01

Command bar

A keyboard-first Cmd+K entry point - the primary surface for office admins and merchandisers who live at a desk.

02

Context-aware invoke

Opened from a job sheet, Prism already knows the record. No re-stating which order you mean before you can ask about it.

03

Scan-to-Prism

A barcode or QR scan loads that entity straight into the assistant - built for hands that are already holding the piece.

04

Multilingual voice mode

Hands-free Hindi, Gujarati and Marathi for the factory floor, tuned for noise and capped at short spoken answers.

05

Proactive surfaces

Dismissible insight chips on dashboards and a morning brief of what needs attention - pulled forward rather than searched for.

06

Grounded answers

Weights, rates, purities and GST figures come from the database or the Rapaport feed. Missing data returns a stated gap, not an estimate.

//data model
schema.sql5 tables
table job_sheets
design_ref, stage, karigar_id, status, due_date
table weight_handovers
job_sheet_id, karigar_id, issued_gm, returned_gm, loss_gm
table rapaport_rates
shape, clarity, colour, carat_band, rate, published_at
table prism_queries
user_id, surface, entity_type, entity_id, locale, answered_at
table compliance_flags
job_sheet_id, kind, huid, gst_ref, signed_off_by
// answer pipeline
  1. 01invoke
  2. 02resolve entity
  3. 03query record
  4. 04ground
  5. 05cite
  6. 06log
//business logic
grounding.tsRefuse to guess
function answer(q, rows) {
if (rows.length === 0) {
return gap(q) // state the gap - never estimate
}
return {
text: compose(q, rows),
cites: rows.map(r => r.href), // every figure links to its record
}
}
voice-budget.tsVoice budget
const VOICE_WORD_CAP = 30
function route(answer, surface) {
if (surface !== 'voice') return toScreen(answer)
return words(answer) <= VOICE_WORD_CAP
? toVoice(answer)
: toScreen(summarise(answer)) // long answers are read, not spoken
}
//on the roadmap

Honest edges.

  • →Widening voice coverage beyond Hindi, Gujarati and Marathi
  • →Offline-tolerant scan flow for weak-signal areas of the floor
  • →Sign-off trail on compliance output before filing or hallmarking
//result
6
domain modules covered
3
floor languages, hands-free
0
figures without a cited record

Prism scopes strictly to six manufacturing modules - job sheets, karigar allotment, diamond pricing, gold custody, compliance and dispatch - and treats anything outside them as a redirect rather than an answer. Compliance output is always marked advisory, pending human sign-off.