When a system generates decision-influencing text in a clinical-adjacent space, the line between research-use-only and not is the most consequential single sentence in the product. Up until this week the line existed in CLAUDE.md and in the landing-page footer, but it wasn't visibly attached to every report. As of today, it is.
What landed
- A single source of truth at lib/disclaimer.ts: short (banner-fit) and long (paragraph) versions, plus a version tag (ruo/2026-06-29) so consumers can pin to specific text.
- A <ResearchUseOnlyBanner /> component with two variants: a yellow callout strip at the top of the report and a faded one-line note at the bottom. Both link to the FAQ entry explaining what research-use-only actually means.
- Banner + footer added to the Overview tab of every workspace report.
- The full long-form text embedded in three JSON export envelopes (per-run /runs/[id]/export, all-runs /runs/export, and the GDPR account export /me/export) under a typed `disclaimer` field with the version tag.
Why bother now
The business audit two weeks ago flagged this as a P1 task: a system that ships hypotheses about cancer biology to working scientists has to be unambiguous about what those hypotheses are for. Three concrete consequences of getting it right:
- A grant officer auditing a researcher's Onkydra-derived figure sees the disclaimer in the JSON export envelope, not buried in a marketing page.
- A reviewer downloading a customer's exported run for journal-club discussion has the line attached to the exact artefact.
- If a customer ever forwards a report to a colleague at a hospital who reads it the wrong way, the line is in the header on the first scroll.
What's still on the legal queue
The disclaimer is necessary but not sufficient. The full legal layer (Terms of Service, Privacy Policy, AUP, the DPA template for Biotech-team customers, the EU VAT setup) is still drafting (P38 on the task board; Termly templates teed up, requires Faith for the business-entity fields). Those land before the Stripe live-mode flip-to-live (P41). The RUO banner is the most visible of those pieces; the rest are doing the same work in the legal envelope.
Code-wise: lib/disclaimer.ts, components/workspace/research-use-only-banner.tsx, and the three export route files. Three small files, big posture change.