# Unsupported claims

An unsupported claim is an answer a model produced with nothing behind it. It is not a bug that can be patched out, because generating fluent text is the same operation whether or not the content is grounded. What a business system can do is reduce the opportunity, make the remainder detectable, and keep the expensive categories behind a person.

- **Status:** Reference
- **Audience:** both
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/technology/hallucination/

## Why the business cost is asymmetric

A slow answer annoys one customer for one afternoon. A wrong answer given confidently is repeated, forwarded, acted on and occasionally honoured. The cost does not scale with how wrong it was — it scales with how far it travelled before anyone checked.

| Invented | Reads as | Cost when acted on |
|---|---|---|
| A price or a discount | An offer | A commitment somebody has to honour or withdraw |
| A delivery or lead time | A promise | A missed date the customer planned around |
| A policy or a guarantee | Terms | A dispute where the business is holding a position it never took |
| A person, a reference or an availability | A fact | A meeting nobody agreed to, or a claim about a third party |

None of those are edge cases; they are the four questions customers ask most. Which is why an agent's *refusal* behaviour matters more than its best answer, and why the pricing capability is one of the two things the [Connect Assistant](/docs/assistant/) is not permitted to touch at all.

## Controls that actually reduce it

1. **Ground before drafting.** Retrieve first, then write. A draft written and checked afterwards has already chosen its claims — see [grounding](/docs/technology/grounding/).
2. **Make 'not covered' a correct outcome.** A model with no acceptable way to decline will produce something. This is the single highest-value control and the most often omitted.
3. **Take the expensive categories away entirely.** Capabilities, not instructions: a tool that does not exist cannot be misused, and an instruction not to quote prices is a request.
4. **Hold the irreversible.** Anything that leaves the building can require a human yes, per channel or narrower, under [autonomy](/docs/autonomy/).
5. **Keep the source with the answer.** Not to decorate it — so that a wrong one can be traced to the material that caused it and fixed once.
6. **Read the declines.** They are your knowledge gaps, delivered as a list.

> **Note** Prompt instructions belong at the bottom of that list, not the top. 'Do not invent prices' is advice to a system that has no idea whether it is inventing. Removing the capability, requiring a source, or requiring an approval are mechanisms; the sentence is a preference.

## Does Connect use these controls?

**Used** — the controls above are the design, not an aspiration bolted on. Grounding runs before drafting in the engine's loop. Knowledge and Facts are workspace-owned records an answer is built from. Autonomy holds outbound work at whatever scope a workspace chooses, and held work waits in **Needs You** where a person sees the draft next to the message it answers. Prospecting will not guess an email address from a pattern. The Assistant cannot set pricing or clear a do-not-contact entry, whoever is asking.

What Connect does **not** claim is elimination. No control here detects a plausible statement that happens to be false and is not contradicted by the supplied material; partial grounding — three sourced sentences and a fourth that is filler — survives all of it. That is why the approval path exists for the categories where being wrong is expensive, and why the honest posture is 'reduced, bounded and checkable' rather than 'solved'.

## Spotting one in the wild

- **Specificity without a source.** A number, a date or a name that no supplied material contains is the highest-yield thing to look for.
- **A confident answer to a question you know is not covered.** Test with something absent from your Knowledge on purpose; a decline is the pass.
- **Detail that grew.** A summary richer than the thread it summarises has added something.
- **Consistency under rephrasing.** Ask the same question three ways. Grounded answers agree; invented ones drift.

## Questions

### Can a better model remove the problem?

It moves the rate, not the category. Better models invent less often and more convincingly, which shifts the cost from frequency to detectability. The controls that matter — grounding, a permitted decline, withheld capabilities, approval on the irreversible — are architecture and apply to any model.

### Is it better for the agent to say it does not know?

Almost always, in a business setting. An unanswered question is information you can act on, and the customer experience of 'let me confirm that' is far cheaper than the experience of a confident answer that was wrong. [Why uncertainty is a valid answer](/research/uncertainty-is-an-answer/) makes the case.

### How do we test for this before switching a channel on?

Ask the questions you know are not covered and check that each produces a decline rather than an answer, then ask your top questions three ways each and compare. That takes an afternoon and finds more than reading the drafts, which are well-written whether or not they are true.

## Related

- [Grounding](https://connectbyjbrh.com/docs/technology/grounding/)
- [Why uncertainty is a valid answer from a business agent](https://connectbyjbrh.com/research/uncertainty-is-an-answer/)
- [Evidence in an agent system](https://connectbyjbrh.com/docs/technology/evidence/)
- [Retrieval-augmented generation](https://connectbyjbrh.com/docs/technology/rag/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)

## What this page is based on

- Connect capability registry (docs-source/facts.py) — FORBIDDEN_CLAIMS, autonomy_modes, no_guessed_email, assistant_tools
- Connect architecture source pack — docs-source/sources/GENERAL.md §5 and §8, autonomy and the Assistant's narrower rights
- `backend/app/autonomy.py`, `agent.py` — the ground-then-draft order and the hold
