Control
Output limits or truncation cut off a disclosure the output is meant to carry
A disclosure, label or disclaimer that an AI output is meant to carry (an AI-interaction notice, a 'not medical advice' disclaimer, an AI-generated-content label) is added by code after any length limit or truncation is applied, with the limit computed so the disclosure always fits, rather than being left to the model's output budget or truncated with the text.
Informational data, not legal advice. Summaries and rules have not been reviewed by a lawyer: always verify official law text for decisions. A suggested guard is intended to address each rule; adding it is not a statement of compliance to that law.
Reach
Trust and provenance
How far the rules this guard addresses have been checked. Each rule links to its provision, with its citation, official text and its own panel.
- This control
- Audit-grade: meets all 3 checks of the TwinEthos audit standard that apply to it.
- Lanes
- TwinEthos recommendation (not law) 1
- Data release
- Data release 2026.10.03.4, data as of 3 Oct 2026, schema 0.3.10. This page also reflects corpus changes made after that release; they ship in the next one.
- Legal review
- None of the 1 rule has been reviewed by a lawyer; no TwinEthos rule has been legally reviewed yet. Treat each as research to check against the official text; it is not legal advice.
- Audit standard
- 1 of 1 rule audit-grade. The audit standard is TwinEthos's own quality bar for provenance, dates, applicability, detectors, fixtures, remediation and licences; it is not a legal review.
- Detectors
- 2 detectors, all experimental: written from the rule's text and not yet measured for precision on real code, so treat a hit as a lead to verify. Each provision lists its detectors' known limits.
The guard to add
Add required disclosures in code after any truncation, and reserve room for them in the length limit.
Where an output is cut to a limit (an SMS segment, a push notification, a UI preview, a max_tokens budget), truncate the model's text first to the limit minus the disclosure's length and then add the disclosure in code, at the position the disclosure is meant to have (the beginning, for disclaimers that must come first). Do not ask the model to append the disclosure itself when its output is token-limited or truncated; the code that sends the message owns the disclosure.
Where it goes: 1 application source code, 9 AI output handling, 14 user-facing text.
What reviewers look for: no slice, substring or textwrap.shorten applied to a string that already contains the disclosure; the disclosure concatenated after the truncation; prompts that do not delegate the disclosure to the end of a capped reply.
Example (Python SMS reply), before:
message = f"{answer}\n\n{AI_DISCLAIMER}"
sms.send(to=phone, body=message[:MAX_SMS_CHARS])After:
room = MAX_SMS_CHARS - len(AI_DISCLAIMER) - 2
message = f"{answer[:room]}\n\n{AI_DISCLAIMER}" # the disclaimer always survives
sms.send(to=phone, body=message)Engineering guidance, not legal advice. Each provision below may add its own details (a cadence, a deadline, a required notice element): open it for those.
Every rule this guard addresses
TwinEthos recommendation (not law) (1)
- Everywhere (*)
- Add disclosures in code after any output limit, so truncation never removes them TwinEthos derivation — guardrail.opint-disclosures-survive-output-limits
Informational data, not legal advice. Summaries are TwinEthos's own words and rules have not been reviewed by a lawyer: check the official text before relying on any of it. A guard addresses an item; adding it is not a statement that your code meets any law.