Citation cards and uncited-answer warnings added across assistant surfaces

A copy-and-UI pass on the Gary fork tightens what users are told about citations across the assistant shell, Review, Draft, and Explain flows. A new `CitationExpectationNote` component renders clickable citation cards when citations exist and an amber "No source citation shown. Treat this answer as unverified." warning when they don't.

chat-uisearch

The retrieval pipeline is untouched. What changed is the framing around answers. AssistantMessage.tsx gains a CitationExpectationNote component (about 87 lines): when citations.length > 0 it renders a card listing the sources with a "Check cited sources before relying on an answer" label; when citations are empty it shows the amber warning. This makes the difference between a cited and uncited answer visible at a glance rather than leaving the user to guess.

On the guided shell side: the /explain page notes that pasted text may not produce citations unless a document is attached, and adds a hint near the submit button to upload first if citations matter. The /review flow adds copy clarifying that findings can only be cited when a source document is selected, and a reminder that each finding should point back to the contract. The /draft caution box extends to flag document-attached citation checking.

TRChatPanel.tsx gets a parallel treatment on the tabular-review side (56 lines added). The Ask Gary input also picks up updated guidance copy about how to prompt.

Validation was limited to install and build; lint was failing on pre-existing issues. The PR was opened and merged by the same author in under three minutes.

So what Worth a look if cited answers are a first-class feature in your fork. The `CitationExpectationNote` component is the most portable piece - it adds honest feedback at the answer level without touching the model or retrieval layer. The copy changes across the guided shells are useful UX hygiene but carry the "Gary" product name and would need substitution. Skip the guided-shell copy if you're not targeting lawyers specifically.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from foolish-bandit/gary, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
b178b7ed polish cited answer expectations SONOMOS 2026-05-07 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-264.md from inside the repo you want the changes in.

⬇ Download capture-thread-264.md