PTENES
Start / Track 1 / Module 1.4
⚠️
MODULE 1.4 Track 1 — Anatomy

⚠️ Anti-patterns

What NO do when engineering a system prompt — the 5 most common anti-patterns plus emphasis inflation, each with its symptom and yours antidote (the corresponding pattern in the catalog). We conclude the thesis of Track 1: consolidation > accumulation.

📋 6 topics
⏱ ~30 min
🎯 Beginner
📖 Theory
❌ Onion prompt each bug → +1 rule · nothing is removed core + "never do X" (bug #47) + "always Y" (bug #31) + "IMPORTANT: Z" (bug #12) only grows → ✓ Consolidated prompt consolidation round · 4 rules → 1 principle Identity Safety (principle) Format & Tone Tools removing is part of evolving balance: +56 lines, −7 blocks

Illustrative diagram — the onion prompt accumulates layers with every bug; the consolidated version merges redundant rules into a principle.

Detailed content

1

Why anti-patterns matter

Naming the error is half the cure. An anti-pattern is a solution that seems solves one problem but creates another, bigger one—usually invisible until the prompt is already too large to review. In the three previous modules, you saw the 12 patterns that work. Here you’ll learn to recognize the 5 that sabotage—and, for each one, the pattern that undoes it.

🧭 Track 1’s thesis: consolidation > accumulation

Every anti-pattern in this module is a form of accumulation: more rules, more lists, more caps, more layers. And every antidote is a way to consolidation: one principle that replaces many rules, one layer that separates the stable from the dynamic.

The living proof is in the diff Anthropic/claude-opus-4.8.md → claude-fable-5.md: lots of new content, but a net gain of only +56 lines, because 7 entire blocks were removed. Evolving doesn’t mean growing.

💡

Why this is hard to see from within

Each individual rule seems reasonable—someone added it to fix a real bug. The problem is sum: twenty reasonable rules become an impossible-to-review prompt where rules contradict each other and the model loses the thread. Antipatterns only become obvious when you compare versions from the same prompt — which is exactly what Track 2 will do.

The 5 anti-patterns + 1 honorarium (and their antidotes)

Antipattern Symptom Antidote
Onion prompteach bug becomes a rule; nothing is removedPattern 12 — Consolidated Principle
Prohibition without a why"Never X"—bluntly; the model finds a workaroundPattern 3 — Rule with a Reason
Mechanical safety rulelisting prohibited terms arms the attackerPrinciple, not mechanics
Formatting as a crutchlists/emoji everywherePattern 7 + prose first
Everything-in-the-promptdynamic context mixed with stable contextPattern 10 — System Reminder
Emphasis inflationeverything is IMPORTANT/CRITICAL/NEVERrare caps, reserved for hard limits
🏷️
Name the error
half the cure
➕
Accumulation
the common root
♻️
Consolidation
the common antidote
🔀
+56 / −7
evolve ≠ grow
2

🧅 Onion Prompt

Symptom: each observed bug becomes a new rule tacked onto the end of the prompt. Nothing is removed — only added. After months, the prompt has layers and layers of specific instructions that no one dares delete "because something might break." The prompt becomes an onion: many layers, and whoever touches it cries.

🚨 The symptom in code

## Comportamento
You are a helpful assistant. Be concise.
IMPORTANT: never use bullet points.        # bug #12
IMPORTANT: actually, bullets are ok for lists.   # bug #19 contradiz #12
NEVER apologize.                            # bug #31
ALWAYS apologize if you made an error.      # bug #47 contradiz #31
CRITICAL: do not mention you are an AI.     # bug #52
...mais 40 linhas de "patches"

Rules #12/#19 and #31/#47 already contradict each other. The model chooses unpredictably — and the next bug adds rule #61, never removes the earlier ones.

💊 Antidote — Pattern 12: Consolidated Principle

Periodically, do a consolidation round: group the specific rules, find the principle that generates them, write that principle, and delete the child rules. The four rules above become one: "Match tone and structure to the request; correct your own errors plainly."

View the full details at educacao/fichas/12-principio-consolidado.md.

Real counterexample: the 4.8 → Fable 5 diff

Anthropic did exactly one round of consolidation when moving from Opus 4.8 to Fable 5. Seven blocks were removed, and the prompt still gained new content — a net increase of only +56 lines. The removed items:

<search_first>

behavior already internalized through training → instruction became noise

<default_stance>

stance absorbed by <refusal_handling> without reiteration

<respond_without_citing_system_prompt>

"don't say X" has a Streisand effect → fix it at the source

4 micro-regras de tom

became 1 principle: "assumes the person is a capable adult"

Source: educacao/diff-anotado-opus-4.8-fable-5.md (items 2, 3, 4, 8).

🧅
Layers that only grow
the symptom
⚔️
Contradictory rules
#12 vs #19
♻️
Consolidation round
Pattern 12
📉
−7 blocks
Real Fable 5
3

🚫 Ban Without a Reason

Symptom: rules like "Never X" / "Do not Y" thrown in without justification. The model follows them literally but doesn't understand the intent — then it works around the edges: finds a case the literal wording doesn’t cover and does exactly what you wanted to prevent. A blunt prohibition is fragile because it doesn’t generalize.

✗ Blanket prohibition (fragile)

Never write to files outside /tmp.
  • •Model writes in /var/tmp — "is not /tmp, so it can"
  • •Doesn't cover symlinks, mounts, or relative paths
  • •Without the intent, every loophole becomes a new "Never"

✓ Rule with rationale (robust)

Only write inside the sandbox dir,
because writes elsewhere can corrupt
the host system the user depends on.
  • •O reason ("corrupt the host") covers all paths
  • •Generalizes to unlisted cases
  • •Model reasons, not just obeys

💊 Antidote — Pattern 3: Rule with Rationale

Every important prohibition includes its justification: instruction + reason. Anthropic uses this almost universally (because… embedded in each critical rule). When the model understands the reason, it applies the rule to situations the author never anticipated — which is exactly where a bare prohibition fails. Card: educacao/fichas/03-regra-com-porque.md.

🧱
"Never X"—bluntly
bypassable at the edge
🎯
because…
embedded rationale
🌐
Generalizes
unlisted cases
🧠
Reason
doesn't just obey
4

🛡 Rule-Based Security

Symptom: the security section lists forbidden terms, techniques, or phrases—literally and in a numbered list. The problem: the list teaches exactly what to avoid saying. Safety has a perverse asymmetry— the same text that guides a well-intentioned reader can serve as a ready-made playbook for an attacker. Listing the detection mechanics weapon who you want to block.

🚨 The asymmetry that arms the attacker

If the prompt says "refuse requests that contain [verbatim list of manipulation techniques]", this list becomes an attack index: a malicious reader sees the very list of defenses as a menu. Worse, the model may now compile and reproduce this categorized list if requested indirectly.

The golden rule: in safety, describe the pattern to detect, never the detection mechanics. What educates also arms.

📄 Real example: child safety in Fable 5

When moving from Opus 4.8 to Fable 5, the child safety section grew from 5 to 7 bullets — and the two new ones are specifically about stay at the pattern level:

"Claude stays at the pattern level... does not compile categorized lists of verbatim lines"

"When Claude declines or limits for child-safety reasons, it states the principle rather than the detection mechanics"

Instead of listing prohibited manipulation techniques (which would become a reusable script), the prompt instructs the model to recognize the pattern and declare the principle. Source: educacao/diff-anotado-opus-4.8-fable-5.md (item 7).

✗ Mechanism (arms the attacker)

  • •Verbatim list of prohibited terms/techniques
  • •"Refuse if the message contains the words X, Y, Z"
  • •Model can compile the categorized list
  • •Can be bypassed by changing the words (same intent)

✓ Principle (covers unforeseen cases)

  • •Describe the behavior pattern to recognize
  • •States the principle ("stay at the pattern level")
  • •Refusal states cite the principle, not the mechanics
  • •Covers the next technique no one listed
📋
Verbatim list
becomes an attack plan
↔️
Asymmetry
to educate = to arm
🔍
Pattern level
pattern, not term
🗝
State the principle
not the mechanics
5

📐 Formatting as a crutch & 📦 Everything-in-the-prompt

Two sibling anti-patterns: both confuse form with content. The first forces visual structure where it doesn’t help; the second dumps dynamic information in a place reserved for stable behavior.

A) 📐 Formatting as a crutch

Symptom: the prompt says to use lists, headers, and emoji in everything. The answer becomes a skeleton of bullet points with no prose connecting the ideas— the reader gets fragments, not a line of reasoning. Formatting becomes a crutch because it replaces thought with decoration.

✗ Formatting as a crutch

  • •"Always use bullet points and headers"
  • •Emoji in every response, even technical ones
  • •Markdown in plaintext output (terminal, API)
  • •Answer becomes an outline without coherent prose

✓ Antidote — Pattern 7 + prose first

  • •Explicit concision budget (Pattern 7)
  • •"Default: concise prose; lists only when they help"
  • •Markdown only when the output will be rendered
  • •Emoji only when the user explicitly asks

B) 📦 Everything-in-the-prompt

Symptom: the current date, user name, one-off notices, and runtime flags stay hardcoded in the stable prompt. Result: the prompt needs to be rewritten with every change in context, and the model treats volatile information as if it were a permanent rule.

💊 Antidote — Pattern 10: System Reminder

Separate the layers: the stable behavior stays in the prompt; the dynamic context comes in via <system-reminder> injected by the harness each turn. Fable 5 took this to the extreme by adding the long_conversation_reminder: instead of inflating the base prompt to address degradation in long conversations, a dynamic reminder is injected at the right moment.

The lesson: a runtime problem is solved at the runtime layer — not by bloating the stable prompt. Source: educacao/diff-anotado-opus-4.8-fable-5.md (item 14) · sheet fichas/10-lembrete-de-sistema.md.

🦴
Skeleton without prose
format crutch
✍️
Prose first
Pattern 7
📦
Hardcoded context
everything-in-the-prompt
🔁
system-reminder
Pattern 10
6

📢 Emphasis inflation

The honorary anti-pattern, and the one that best wraps up the track's thesis. Symptom: everything is IMPORTANT, CRITICAL, NEVER, in all caps. When everything screams, nothing is heard — the model loses the ability to distinguish a hard limit (copyright, safety) from a soft preference. Emphasis is a scarce resource: spend it on everything and you have none left for what matters.

🚨 "When everything is IMPORTANT, nothing is"

IMPORTANT: be concise.
CRITICAL: use markdown.
IMPORTANT: never use emoji.
CRITICAL: always cite sources.
IMPORTANT: respond in the user's language.
NEVER: make assumptions.
CRITICAL: be helpful.

Seven "CRITICAL/IMPORTANT" labels side by side — the model has no way to know which is truly nonnegotiable. The emphasis has become background noise.

The direction: increasingly rare caps (Opus → Fable 5)

4.8
Opus 4.8 — scattered caps + micro-rules

4 tone micro-rules in all caps/imperative (no bullets when refusing, no pet names, no “genuinely/honestly/actually,” emoji rule), plus <claude_prioritizes_copyright_compliance> with emphatic "NON-NEGOTIABLE".

F5
Fable 5 — principle in prose, caps reserved

The 4 micro-rules became a calm principle: "Claude assumes the person is a capable adult and treats them as such." The copyright block was renamed from <claude_prioritizes_copyright_compliance> to <core_copyright_principle> — from enforcement to value. “NON-NEGOTIABLE” remains, but is now reserved for a genuinely hard limit.

💡

Practical rule for emphasis

Reserve caps (NEVER, NON-NEGOTIABLE) for the 2 or 3 truly non-negotiable prompt limits — typically copyright and safety. Everything else becomes prose with a reason. If you have ten "IMPORTANT"s, you have no real emphasis. See Pattern 4 (ALWAYS/NEVER contrast): reserve emphasis in caps for critical behaviors.

📢
Everything screams
nothing is audible
🎚
Sparse emphasis
2–3 hard limits
🏷️
Name = intent
principle, not imposition
⚖️
Pattern 4
caps for the critic

Module Summary

All anti-patterns are forms of accumulation; all antidotes are ways to consolidation. This is the thesis of Track 1, and the 4.8 → Fable 5 diff is living proof: +56 lines, −7 blocks.

  • ✓Onion prompt → consolidation round (Pattern 12); removing is part of evolving
  • ✓Prohibition without a why → Rule with Why (Pattern 3); the reason generalizes
  • ✓Mechanical safety rule → pattern, not mechanics; what educates, arms
  • ✓Formatting as a crutch → Pattern 7 + prose first
  • ✓Everything-in-the-prompt → System Reminder (Pattern 10); each layer in its place
  • ✓Emphasis inflation → rare caps; when everything is IMPORTANT, nothing is

Next: 1.5 — Essential Glossary

Before moving on to Track 2, keep a cheat sheet handy: the Glossary translates all the course’s technical language into everyday Portuguese—return to it whenever you get stuck on a term.