Evidence

Every claim is a pointer to a real source — or an admission there isn't one.

Every other AI tool's failure mode is confident fabrication. In regulated cosmetics that's a liability event, not an inconvenience. Tamats is built so a factual, safety, or regulatory claim either carries a retrievable source or the agent says so and stops — enforced by code that runs on every turn, not a prompt asking the model to behave.

The same question, both outcomes

An illustrative example of the abstain behavior — fixed copy below, not a live query. One case where the corpus has an answer, one where it doesn't yet.

Source retrieved

Does titanium dioxide need special ingredient-list labeling when used as a UV filter in the EU?

Yes — when present as an engineered nanomaterial, EU rules require it to appear in the ingredient list followed by "(nano)" [1].

[1] Regulation (EC) No 1223/2009 (EU Cosmetic Products Regulation) — Article 19(1)(g), nanomaterial labeling

No source retrieved

What is the maximum use level for bakuchiol in a leave-on facial cream sold in Vietnam?

No source retrieved for a Vietnam-specific bakuchiol limit. Nothing asserted — check back once a rulebook covering this ingredient and market is connected.

No citation rendered — nothing to point at.

Enforced in code, not a prompt

Four steps run on every factual turn, in order, before a citation reaches the screen.

  1. 01

    Registry

    Every tool call that returns literature, INCI data, web search, or social results builds a numbered source list for that turn — not from the model's memory, from what was actually retrieved.

  2. 02

    Model sees the numbers

    That numbered list is handed back to the model before it writes a word, so a [n] marker is a pointer to a source it was given, never a guess it made up.

  3. 03

    Dangling guard

    A pure, deterministic resolver checks every [n] the model writes against the registry. A number with no matching source is flagged — the same check runs on the server and in the client, so numbering can never drift between them.

  4. 04

    Verifier badge

    A flagged turn renders a non-destructive "unverified" badge inline. The claim's text is never rewritten, hidden, or regenerated — only marked.

For the RA / QA lead

The receipts exist before the auditor asks.

Abstention is the feature, not a gap: a "no source found" answer is the behavior you can defend to an auditor, and a fabricated confident one is the behavior you can't. Every verified turn stores a compact record — whether it passed, how many markers were flagged, and what kind — alongside the saved message, so a reviewed conversation keeps its badges after the page reloads. Every citation in that record carries the same source, title, and year as the underlying literature or regulatory hit it points to — nothing in the trail is typed in by hand.

Bring your own claims. Watch it cite or stop.