Examples are the gravity well a voice skill keeps falling into. Four iterations and one rebuild later, this is what taught me how models learn voice and where they fail.
A brand owner reviewed the first pass and said every obvious mechanical error was gone, but none of the sentences sounded like the team.
That is the failure state: anonymous-clean prose.
The first thing I had to not build
My instinct was to add a multi-stage pipeline: analysis JSON, rewrite pass, cleanup pass. More stages, more control.
Wrong diagnosis. Mechanical checks were already catching mechanical failures. The missing voice lived in prompt behavior. The pipeline boundaries were fine all along.
A voice failure is a prompt-quality problem. A consistency failure is a pipeline problem. A speed failure is an orchestration problem.
Five prompts, two modes
I built a test set: three addressed prompts and two analytical prompts. Blind scoring showed a clean split.
Addressed outputs were warm and specific. Analytical outputs were polished, generic, and cold.
That pattern revealed a single mechanism: what I now call the addressee effect.
The addressee effect
When writing to a person, voice principles have a target: warm to whom, specific about what.
When writing about a topic with no recipient, warmth becomes abstract and the model defaults to polished explainer mode.
Fix: rewrite voice principles by context so analytical writing anchors in lived human reality instead of generic analysis.
The invented human
In a difficult analytical rewrite, the model invented a specific unnamed person to carry the emotional arc of the paragraph.
I did not ask for a character. I explained purpose: show human reality before systemic pattern.
That became a core rule: explaining why a principle exists is more powerful than listing the principle as a checklist item.
The antithesis trap
A repeated rhetorical pattern kept returning: contrast binaries that feel insight-like but read as AI tell.
I fixed individual sentences across iterations, then recognized the real issue: recurring bugs are usually system bugs, even when they look like output bugs.
So I added layered defenses: explicit prompt guidance, ending-specific constraints, and linter patterns for multiple antithesis variants.
The parroting problem
After antithesis improved, a new issue surfaced: the model lifted phrasing from golden examples.
Warnings did not work. If copyable sentences are in context, models copy.
That forced a rebuild from positive examples to anti-patterns and principles.
The rebuild
I replaced examples with anti-patterns, added signature moves without copyable templates, consolidated pattern tables, and introduced meaning-first fixing between linter and rewrite.
Instruction tone also changed: fewer absolute commands, more purpose-based guidance with room for judgment.
Result: output stayed in voice without borrowing phrases from reference material.
Core design principle
Voice cannot be shown to a model. It can only be constrained around.
Examples teach what to copy. Anti-patterns and principles teach what to be.
What is still open
The current system produces good voice through procedure, but still feels calculated.
Next question: can voice be carried by an implied author character defined by attention and judgment rather than templates?
The risk is over-performance. The opportunity is making voice a stance you take, rather than a checklist you follow.