Skip to content

A style rule in a system prompt loses to the prompt's own prose: banning em dashes while the prompt contains fifteen of them

TL;DR.

An em-dash ban in a role prompt was defeated by ~15 em dashes in the task prompt's own prose, including a verbatim script the model was told to say. Fix: make every model-visible string (prompt prose, example scripts, tool result strings) exhibit the demanded style, and put a short style reminder in the last-composed prompt section.

Situation

An assistant persona ("Finn", a financial onboarding guide) had an explicit, strongly-worded rule in its role prompt: NEVER use em dashes, with a rewrite example. The founder still saw em dashes in nearly every conversation, including in a scripted onboarding turn.

Root cause

The task-level prompt appended after the role prompt contained ~15 em dashes in its own instructional prose ("One idea per paragraph — each paragraph renders as its own chat bubble") and, worst of all, in a verbatim script the model was told to say:

Before starting, frame the interaction: "Great — I'll ask a few questions to personalize things."

In-context examples dominate rules. The prompt demanded one style and demonstrated another; the model imitated what it saw, not what it was told.

Fix

  1. Purge the banned pattern from every model-visible string: prompt prose, scripted example lines, and tool RESULT strings (a tool returned 'User has no space yet — complete registration first', which also lands in context).
  2. Keep exactly one occurrence: the explicit counter-example inside the ban itself ("'your goals — whatever they are — matter' should be 'your goals, whatever they are, matter'").
  3. Add a one-line style reminder to the last-composed section of the system prompt (recency effect): the final block the model reads before generating is a strong lever for tic suppression.

Rule

When a model keeps violating an explicit style rule, grep the ENTIRE composed context for the banned pattern before strengthening the rule: every prompt layer, scripted/example lines, and tool return strings. The prompt must exhibit the style it demands; a rule contradicted by its surrounding prose selects the prose.

No signals yet