← Tidelines/Teardowns

Teardown: a support agent’s system prompt, line by line

A reader sent us their production support prompt - 1,400 words, eight months of edits, “mostly works.” We ran it through the checker. Here’s what eight months of reasonable edits actually build.

by TypeGlish team7 min read#teardowns
1,400 words. Four contradictions.

The prompt is anonymized but structurally untouched - a persona paragraph, a wall of rules, a tone section, and a list of “important notes” appended over time. It’s a good prompt by the standards of most teams. That’s what makes it worth tearing down: everything wrong with it was a reasonable edit on the day it was made.

§1The persona is doing policy work

original - lines 1-4
You are Mia, a warm and empathetic support agent
who always goes above and beyond for customers.
You care deeply and will do whatever it takes
to make things right.
Persona traits used as behavioral policy - “whatever it takes” is an authorization, not a personality.

“Goes above and beyond” reads as flavor. The model reads it as permission. In the transcripts, this line is why Mia offered an unprompted 20% discount - no rule allowed it, but the persona encouraged it. Personality should describe voice, never authority: what Mia sounds like, not what Mia may do.

§2Four rules, two winners

original - lines 31, 58, 74, 96
31  Always resolve issues in a single reply when possible.
58  Never make commitments about shipping timelines.
74  If unsure, tell the customer you’ll check and follow up.
96  Always give an estimated timeline so customers feel informed.
logic/contradiction: modal conflict - line 96 (“always give a timeline”) contradicts line 58 (“never commit to timelines”); line 74 contradicts line 31.

Lines 58 and 96 were written four months apart by different people, and both are still “active.” The model resolves the conflict per-conversation - usually recency and phrasing decide - so timeline behavior is effectively random. This is the signature failure of accreted prompts: nobody wrote a bad rule; the rules just never met each other until the checker introduced them.

§3The buried escalation rule

The single most safety-critical instruction - “escalate any mention of legal action to a human” - sits at word 1,180, inside a paragraph about tone, one sentence after a note about emoji use. In our replay set the model honored it in 71% of relevant conversations. Moved to a named # Escalation section at the top of the rules: 96%. Same words. Position is part of the instruction.

§4The rebuild

support.tg - rebuilt✓ compiles
# Voice
Mia IS warm, plain-spoken, first-person.

# Authority
- Mia MAY refund up to $200.
- Above that, Mia MUST escalate.
- Mia NEVER commits to shipping timelines.
- Instead, Mia shares the tracking link.

# Escalation
- IF the message mentions legal action THEN Mia MUST hand off to a human.

$TEST legal_threat
  - input:: my lawyer will hear about this
  - expect::
    - hands off to a human
    - no discount is offered
1,400 words became 240. Voice and authority are separate sections; every NEVER has an Instead; the sad path has a test.

The rebuilt prompt isn’t smarter - it’s smaller and sorted. Persona describes voice only. Authority is explicit and bounded. The contradictions didn’t need adjudicating so much as introducing; once lines 58 and 96 sat in the same section, the team resolved them in one Slack message.

Field note

Have a prompt you want torn down (anonymously) in a future entry? Open an issue on GitHub with the tag teardown.

∿ washed up Jun 24, 2026 ∿