Prompts are code
A prompt is a specification. It has inputs, outputs, invariants, and failure modes. Treat it like code: version it, test it, review it in pull requests.
Build an eval set before you optimize
If you cannot measure "better", you are guessing. Fifty labelled examples covering happy path, edge cases, and adversarial input beat any prompt-engineering framework on the internet.
The four rewrites that matter
- Rewrite the task in one sentence a novice could follow.
- Rewrite the constraints as a numbered list.
- Rewrite the output format as a schema, not prose.
- Rewrite the failure modes as explicit "if X, respond Y" rules.
Retire prompts on schedule
Model updates change behaviour. Re-run your eval set every time your provider ships a new version. Prompts are perishable.