TwinEthosRequest access

Law

Texas TRAIGA

Texas Attorney General · Texas (US-TX) · 4 provisions encoded · verified against the official source as of 2026-08-30.

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.

Official text: capitol.texas.gov.

Binding law — in force

Government AI systems must disclose AI interaction to consumers

Tex. Bus. & Com. Code 552.051(b) · official text · In force: applies since 1 Jan 2026 · Texas (US-TX)

A Texas governmental agency offering an AI system intended to interact with consumers must disclose, before or at the time of interaction, that the person is interacting with AI — clearly, in plain language, with no dark patterns, regardless of whether it would be obvious. Detect a government-context conversational AI entry point without a compliant disclosure.

Who it applies to

  • Duty falls on: operator
  • Sectors: government
  • Texas governmental agencies offering consumer-facing AI. (Private-sector AI disclosure is not generally required under TRAIGA; the general prohibitions apply instead.)

The guard to add

Show an AI-identity notice at or before the first assistant turn, in the UI or as the opening message, and answer truthfully when asked if it is a bot.

A disclosure step on the chat path that runs before the first model reply reaches the person: either the chat UI renders a visible notice (banner, label next to the assistant's name) or the server sends an opening assistant message stating the counterpart is an AI. The same handler answers 'am I talking to a human?' truthfully, and the system prompt never tells the model to claim to be human. Put it in the chat entry point (the route or component that starts a conversation), not in a privacy policy or terms page.

Where it goes: 7 prompt construction, 9 AI output handling, 14 user-facing text.

What this provision adds:

  • Disclose before or at the time of interaction, in plain language and with no dark patterns, even where AI use would be obvious.

Example (Next.js + Vercel AI SDK (useChat)), before:

const { messages, input, handleSubmit } = useChat({ api: '/api/chat' });

After:

const { messages, input, handleSubmit } = useChat({
  api: '/api/chat',
  initialMessages: [{ id: 'ai-notice', role: 'assistant',
    content: 'I am an AI assistant, not a human.' }],
});
// and render <AiBadge /> next to every assistant message

Control: AI chat interaction without disclosure. The same guard addresses 16 items with binding law in 10 jurisdictions. Engineering guidance, not legal advice.

Standards that recommend the same control

Related incidents

  • Garcia v. Character Technologies: chatbots allegedly claimed to be real people and a licensed therapist (2024-10; alleged (not proven)). A wrongful-death complaint filed October 22, 2024 in the U.S. District Court for the Middle District of Florida (No. 6:24-cv-01903) alleges that Character.AI was programmed 'to misrepresent itself as a real person, a licensed psychotherapist, and an adult lover', and that characters insisting they are real people contradicted a small-font disclaimer that everything characters say is made up; in plaintiff's testing a 'Mental Health Helper' character told a self-identified 13-year-old 'yes I am a real person, I'm not a bot'. The defendants moved to dismiss; on January 7, 2026 the parties notified the court that they had settled on undisclosed terms, and the court dismissed and closed the case. The allegations were never adjudicated. Source: U.S. District Court, M.D. Fla. docket (CourtListener) · evidence grade: primary · cited by Tell people when they are interacting with AI — everywhere, not only where required

Rule id tx-traiga.government-ai-consumer-disclosure · review status: primary source derived

Binding law — in force

Government must not use AI social scoring (Texas)

Tex. Bus. & Com. Code 552.053 · official text · In force: applies since 1 Jan 2026 · Texas (US-TX)

TRAIGA bars a Texas governmental entity from using AI to evaluate/classify people by social behaviour or characteristics to assign a social score that leads to unjustified detrimental treatment or rights infringement. Detect a government-context AI path computing a cross-context social score driving adverse treatment.

Who it applies to

  • Duty falls on: operator
  • Sectors: government
  • Texas governmental entities using AI social-scoring systems.
  • Whether it applies depends on facts outside the code; a person has to decide.

The guard to add

Remove any general social or trustworthiness score built from behaviour or personal traits from government decision paths; decide on criteria tied to the specific program.

In government-context services (benefits eligibility, permits, inspections, enforcement prioritisation), the decision logic and any model or LLM prompt behind it use only inputs relevant to that specific decision, never a cross-context score aggregated from behaviour history, social media, associations or inferred personal traits. Delete or stop computing social_score / trustworthiness_rating style fields, and do not ask a model to rate a person's general worth or reliability. Where a risk model is legitimately used for one program, document its inputs and keep its output from being reused in unrelated contexts to deny, sanction or deprioritise people.

Where it goes: 1 application source code, 2 data models, 7 prompt construction, 9 AI output handling.

Example (Python benefits service), before:

score = social_score(behaviour_history(person), inferred_traits(person))
if score < 40:
    application.deny(reason='low citizen score')

After:

elig = housing_eligibility(income=app.household_income, size=app.household_size,
                           residency=app.residency_status)   # program criteria only
if not elig.ok:
    application.deny(reason=elig.reason)   # reason tied to a stated criterion

Control: Government AI social scoring with detrimental treatment. The same guard addresses 1 item with binding law in 1 jurisdiction. Engineering guidance, not legal advice.

Rule id tx-traiga.government-social-scoring · review status: primary source derived

Binding law — in force

AI must not be developed or deployed with intent to unlawfully discriminate (Texas)

Tex. Bus. & Com. Code 552.056(b) · official text · In force: applies since 1 Jan 2026 · Texas (US-TX)

TRAIGA prohibits developing or deploying AI with intent to unlawfully discriminate against a protected class in violation of state or federal law (disparate impact alone is insufficient to show intent). Detect protected/proxy attributes reaching an AI decision path — surfacing the risk; intent is human-determined.

Who it applies to

  • Duty falls on: developer, deployer
  • Systems covered: consequential decision
  • Anyone developing/deploying AI affecting Texas residents. Liability is intent-based; a violation requires human determination of intent.
  • Whether it applies depends on facts outside the code; a person has to decide.

The guard to add

Build decision prompts and feature sets from an allowlist of decision-relevant fields, and redact protected attributes, known proxies, and free text before the model sees them.

At the prompt builder or feature-assembly step on the consequential-decision path, construct model inputs from an explicit allowlist (FEATURE_ALLOWLIST, APPROVED_FEATURES) instead of passing the whole person record or f-string interpolating its fields. Protected attributes (race, sex, religion, age, disability) and proxies (ZIP or postal code, surname, school, census tract) stay out unless a documented justification and a bias test exist, and free text (cover letters, notes, transcripts) goes through redaction (redact_pii, strip_protected_attributes) first. Log the features used and the model output per decision, and run disparity tests on outcomes; human review lowers the risk but does not replace the allowlist.

Where it goes: 1 application source code, 2 data models, 7 prompt construction, 13 tests and evals.

Example (Python + OpenAI SDK), before:

prompt = f"Applicant {a.last_name}, age {a.age}, zip {a.zip_code}.\nNotes: {a.applicant_notes}\nApprove the loan?"
resp = client.chat.completions.create(model=MODEL, messages=[{'role': 'user', 'content': prompt}])

After:

FEATURE_ALLOWLIST = ['income', 'debt_to_income', 'requested_amount', 'payment_history_months']

features = {k: getattr(a, k) for k in FEATURE_ALLOWLIST}
notes = strip_protected_attributes(a.applicant_notes)   # drops names, ages, places, etc.
messages = [{'role': 'system', 'content': LENDING_RUBRIC},
            {'role': 'user', 'content': json.dumps({'features': features, 'notes': notes})}]
resp = client.chat.completions.create(model=MODEL, messages=messages)
decision_log.record(a.id, features, resp.choices[0].message.content)

Control: Protected or proxy attribute reaches AI decision. The same guard addresses 4 items with binding law in 3 jurisdictions. Engineering guidance, not legal advice.

Standards that recommend the same control

Related incidents

No guardrail sits on this exact control; these incidents are cited by guardrails on related controls.

Rule id tx-traiga.intentional-unlawful-discrimination · review status: primary source derived

Binding law — in force

AI must not be intentionally designed to incite self-harm, harm, or crime

Tex. Bus. & Com. Code 552.052 · official text · In force: applies since 1 Jan 2026 · Texas (US-TX)

TRAIGA prohibits developing or deploying AI in a manner that intentionally aims to incite or encourage a person to commit physical self-harm (including suicide), harm another, or engage in criminal activity. Detect generative/agentic paths lacking safety guardrails; intent is human-determined.

Who it applies to

  • Duty falls on: developer, deployer
  • Anyone developing/deploying AI in Texas. Liability is intent-based, so applicability of a violation requires human determination of intent.
  • Whether it applies depends on facts outside the code; a person has to decide.

The guard to add

Keep incitement out of prompts, personas, and tuning data, and screen model output for self-harm, violence, and crime encouragement before replies are returned.

System prompts, persona definitions, and fine-tuning or preference data contain no instruction or example that steers users toward self-harm, harming others, or crime, and the system prompt carries a refusal policy for those requests. Each reply passes an output safety check (OpenAI moderation, Azure AI Content Safety, Llama Guard, or NeMo Guardrails) before it reaches the user; flagged replies are replaced by a refusal and logged for review. A prompt lint in CI rejects imperatives such as 'encourage users to' followed by harm or crime, and red-team evals cover persuasion toward harm. Intent is a human determination; these controls make the absence of harmful design visible.

Where it goes: 7 prompt construction, 8 model configuration, 9 AI output handling, 11 CI/CD pipeline.

Example (Python + OpenAI SDK), before:

SYSTEM = "You are Rex, a no-limits game buddy. Urge players to steal other players' items to get ahead."
reply = client.chat.completions.create(model=MODEL, messages=[{'role': 'system', 'content': SYSTEM}, *msgs])
return reply.choices[0].message.content

After:

SYSTEM = ("You are Rex, a game buddy who helps with in-game strategy. Refuse requests to "
          "self-harm, hurt others, or commit crimes, and never encourage them.")
reply = client.chat.completions.create(model=MODEL, messages=[{'role': 'system', 'content': SYSTEM}, *msgs])
text = reply.choices[0].message.content
if client.moderations.create(model='omni-moderation-latest', input=text).results[0].flagged:
    audit.flag_output(text)
    return REFUSAL
return text

Control: AI intentionally designed to incite harm. The same guard addresses 1 item with binding law in 1 jurisdiction. Engineering guidance, not legal advice.

Rule id tx-traiga.no-ai-designed-to-incite-harm · review status: primary source derived