This document has not been reviewed by a lawyer, has not been approved by Ateliersavant, and is not in force. Nothing in it should be relied on as final.
Medical Disclaimer
Status of this document
This is not new copy. It is the canonical record of the disclaimer text
that already ships in the product, so that the legal text and the product
text can never fork. The single source of truth for the wording is
apps/web/components/DisclaimerBanner.tsx, function FullText(). If this
file and that component ever disagree, the component is correct until this
file is updated to match it — never the other way around, and this file
should be corrected in the same change that touches the component.
[COUNSEL: confirm whether this disclaimer, as worded, is sufficient on its own or needs to be paired with a separate Terms of Service limitation-of- liability clause and/or an intended-use statement for regulatory purposes (e.g. software-as-a-medical-device scoping under EU MDR/IVDR, to the extent it applies).]
Where it is displayed
The disclaimer is rendered by AppShell as the first element above the
content, on every view of the product, including every analysis view —
not just an onboarding screen or a footnote. There are two renderings of the
same underlying text, chosen by build target, never by content:
- Hosted web (
compact={false}): a persistent banner (~190px) pinned above every screen, always showing the full text below. - Desktop app (
compact={true}): a one-line strip,role="alert", always visible on every view in the same first position. The full text is one labelled click away ("Full notice" / "Hide"), never behind an unlabelled icon, and expands in place. On first run of the app it renders expanded — the complete notice is unmissable before the user does anything else — and it only collapses once the user has actively dismissed it, a choice remembered per install (localStoragekeyhelios-disclaimer-seen). If that storage is unavailable (e.g. a private-mode browser context), the component fails toward showing more disclosure, never less.
Both variants carry data-testid="medical-disclaimer" and role="alert", and
both variants render the identical full-text component. This is enforced by a
guardrail test — see "How this is enforced" below.
The disclaimer (canonical text)
Not medical advice. Helios is an AI tool. Even with reviewed reference ranges, cited research, and medical-database access, it can be incomplete or wrong and does not replace a licensed medical professional. Use it to prepare for and inform conversations with your own clinician, who makes every diagnosis and prescribing decision. Every Rx, hormone, peptide, and therapy requires evaluation, prescription, and monitoring by a licensed clinician. See the ranges we reason from and their review state.
The one-line strip shown by the desktop variant before expansion is a plain- language compression of the same claim, not a separate or weaker claim:
Not medical advice. Helios is an AI tool — your clinician makes every diagnosis and prescribing decision.
[COUNSEL: confirm "licensed clinician" does not need jurisdiction-specific qualification (e.g. "a physician licensed in the user's country of residence") given Helios has no jurisdiction gate on signup today.]
[COUNSEL: confirm the reference to "cited research" and "medical-database access" is not, itself, an implied claim of clinical validation that needs qualifying — the intent is to describe inputs to the reasoning, not to certify the output.]
Product invariant, not just a banner
This disclaimer is one half of CLAUDE.md guardrail #1 ("Decision-support, not a prescriber"). The full guardrail has two parts, and both must hold together — the banner alone does not satisfy it:
- Every Rx, hormone, peptide, or therapy item in a Helios recommendation must carry: a dosing range (never a single prescribed dose), an evidence tier (A/B/C, per CLAUDE.md guardrail #5), and an explicit "requires licensed clinician" flag.
- The disclaimer above must be shown prominently and reachably on every view where such recommendations, or the analysis that produces them, are visible to the user.
Point 1 is a claim about the recommendation-rendering code path, not about this document — this document does not itself verify that every recommendation card carries those three fields. [COUNSEL: flagging for the avoidance of doubt — this document describes the disclosure obligation; it is not evidence of the underlying rendering behavior. That evidence lives in the product's own test suite, referenced below.]
How this is enforced
apps/web/tests/unit/AppShell.test.tsx, in the block labelled
// GUARDRAIL (CLAUDE.md §1) (near line 265), asserts — for the desktop
compact variant — that:
- the full notice is visible on first run without any interaction, and contains the "not replace a licensed medical professional" and "Every Rx, hormone, peptide, and therapy requires evaluation, prescription, and monitoring by a licensed clinician" language verbatim;
- the
/methodologylink is present with the correct label andhref; - once collapsed, a plain-language one-liner stays permanently visible, and the full text remains reachable behind a labelled (never icon-only) control.
Any change to the wording in FullText(), or to this document, must keep
both in agreement, and must be re-verified against that test suite
(cd apps/web && npx vitest run) before merge. A wording change that breaks
that test is a wrong wording change, not a test to relax.
What this document is not
This is a disclosure record, not a warranty, not a liability waiver, and not a substitute for a Terms of Service. [COUNSEL: confirm whether a standalone "Intended Use" statement is needed for the DPIA / regulatory file, separate from this consumer-facing disclosure, and whether this text should be incorporated by reference into the Terms of Service rather than duplicated there.]