Skip to content

Explainer 02 · 7 scenes · about 5 min

Why Shiva can’t make things up

Prices, phone numbers, times and dates are checked by plain code against the owner’s fact sheet. Get one wrong and Approve stays off until a person fixes it.

Hands on: Change the price in a draft and watch the check catch it, then switch a check off and see Approve lock.

Illustration: a blank notebook, a pencil, a room key with a wooden tag and a tumbler of chai on a table.
Fictional example

Example Homestay · fact sheet · every line confirmed by the owner

  • F1Deluxe room, per night₹3,200
  • F2Family room, per night₹4,500
  • F3Check-in1 pm
  • F4Check-out11 am
  • F5Front desk phone+91 90000 00000
  • F6Breakfasthome-cooked breakfast included
  • F7Parkingspace for a few cars at the gate; the lane beyond it is narrow
  • F8Wi-FiWi-Fi in the rooms; the signal is weak in the garden
  • F9Distance from bus standabout 2 km from the bus stand
  • F10Winter stay offer15% off stays of 3 nights or more

  1. 01 / 07

    One sheet of facts

    When an owner sets up Shiva, they fill in a fact sheet: room prices, check-in and check-out, the phone number, policies, offers. It starts from a pack for their kind of business, and the owner confirms every line.

    This sheet, and the owner’s own notes, are the only places a fact in a reply may come from.

  2. 02 / 07

    A wrong price

    Here a draft says the deluxe room is ₹3,500 a night. The fact sheet says ₹3,200.

    Plain code finds every price, phone number, time, date and percentage in the draft and looks each one up in the fact sheet. ₹3,500 isn’t there, so the line gets a wavy underline and the word [check], and Approve stays off, with the reason written above it.

    The server checks again when Approve is pressed, so the rule holds even if someone gets past the screen.

  3. 03 / 07

    Try it yourself

    Type any price into the draft. The check is not fooled by how a number is written: “₹3,200”, “Rs 3200/-” and “₹३२००” in Devanagari digits are the same price.

    The same check runs again on any edit the owner makes. A hand-typed wrong price is still a wrong price.

  4. 04 / 07

    Not just prices

    Times, distances, phone numbers, dates, e-mails and percentages are checked the same way. So is a sentence like “we have fixed the Wi-Fi”: a promise that something was repaired must come from the owner’s own note.

    Add a line on the stage, then tick the owner’s note and watch the repair claim become allowed.

  5. 05 / 07

    Claims without numbers

    “Every room has a view of the snow peaks” has no number in it. Claims like this go to a separate claim check, a model that sees only the cited sources. A claim no source supports is marked in the letter, in words, for the owner to look at.

    It is never quietly rewritten. The owner sees it and decides: edit, reject, or approve if they know it is true.

  6. 06 / 07

    If a check can’t run, Approve stays off

    A check that didn’t run is not a check that passed. If the claim checker can’t be reached, the card says Not checked and Approve stays off until it runs.

    The old system this replaces passed drafts with made-up fallback scores when a check failed. Shiva never does.

  7. 07 / 07

    Why code, not a model

    A model asked “does this match?” can miss a single digit. Research on automatic checkers found they make errors on fine-grained facts, and that a citation next to a sentence often doesn’t support it. A wrong price is the most expensive mistake a small business can publish.

    So the facts that must be exact are checked by exact rules. Models are used where judgement is needed, and their results are shown to the owner, who decides. Next: how the reply sounds like the owner.

In plain words

The short version

  1. Facts in a reply may come only from the owner’s confirmed fact sheet and the owner’s own notes.

  2. Prices, phones, times, dates, percentages, distances and “we fixed it” claims are matched by plain code. A mismatch keeps Approve off.

  3. The check runs again on the owner’s own edits, and again on the server when Approve is pressed.

  4. Claims without numbers are checked by a separate model and marked in words when unsupported, never silently rewritten.

  5. A check that could not run reads “Not checked”, and Approve stays off.

For the curious: sources and technical terms

Sources

Where this comes from

  1. AttributionBench: How Hard is Automatic Attribution Evaluation?

    Li, Yue, Liao, et al. · 2024 · arXiv 2402.15089

  2. JudgeBench

    Tan, Zhuang, Montgomery, et al., ICLR · 2025 · arXiv 2410.12784; judges are weak on correctness

  3. Evaluating Verifiability in Generative Search Engines

    Liu, Zhang, Liang, Findings of EMNLP · 2023 · only 74.5% of citations supported their sentence

  4. VeriScore

    Song, Kim, Iyyer · 2024 · extract only verifiable claims

  5. MiniCheck

    Tang, Laban, Durrett, EMNLP · 2024 · checking claims against given documents

  6. Enabling Large Language Models to Generate Text with Citations (ALCE)

    Gao, Yen, Yu, Chen, EMNLP · 2023

Fictional example

Example Homestay, its fact sheet and the draft are fictional and written by hand for this page. The fact check, the rule check and the script check run live in your browser: they are Shiva’s own code. The claim check needs a model, so its verdicts on this page are written by hand and say so. Nothing you type is sent anywhere.

Next · Explainer 03Your voice, not a robot’sPick which past replies teach the voice, compare the before and after, and add a word the owner never wants to see.

Shiva is in development. It has no customers yet, so these pages show how it works, not results. The demo shows the real screens, with a made-up business.