Rewrite, Translate, and Transform
Tone rewrites, translation, simplification, and format conversion — the transformation features that look trivial and fail in subtle ways.
"Make this friendlier." "Translate to Spanish." "Explain it for a new user." "Turn these notes into a help article." Transformation features are the ones teams ship first, because each looks like a single prompt and a button. Then the bug reports arrive: a rewrite that turned "we can't offer a refund" into "we'll look into a refund," a translated email with the {{first_name}} placeholder translated too, a simplified article that quietly dropped the warning about SSO accounts.
Transformations fail subtly because the output is fluent and the reader rarely compares it to the input. In this lesson you'll learn to write the contract every transformation needs (what changes and what must not), protect the parts that must survive untouched, handle translation properly, and check outputs in code before a user ever sees them.
Every transformation has a contract
A transformation takes text and changes some properties while holding others fixed. The bugs almost always live in the "held fixed" half, because that half is rarely written down. "Make it friendlier" specifies the change; it says nothing about keeping the refund policy intact.
So before you write the prompt, write the contract:
| Transformation | What changes | What must not change | Typical failure |
|---|---|---|---|
| Tone rewrite | Warmth, formality, concision | Facts, commitments, refusals, instructions, links | A firm "no" softened into a "maybe"; new apologies that admit fault |
| Translation | Language, idiom | Meaning, numbers, names, product terms, placeholders | Glossary terms translated; placeholders broken; wrong formality |
| Simplification | Vocabulary, sentence length | Every condition, warning, and step | Caveats dropped because they're "complicated" |
| Format conversion | Structure and layout | Content: nothing added, nothing lost | Invented steps to fill a template section |
The "must not change" column becomes rules in your prompt and checks in your code. That pairing is the theme of this lesson: tell the model what to preserve, then verify that it did.