OurSharedCodePrompt Engineering Studio

Guides

Written by Mark · ten pieces, September 2026

These are the things I worked out while building the Prompt Engineering Studio and using it on real work. They are about system prompts specifically — the instructions you write once and then live with — rather than about chatting with a model.

Each one is a technique I use, an honest account of where it stops working, and the prompt text before and after. Where I think a popular idea is oversold I say so, and where I have contradicted myself between two of these pages I have left the contradiction visible and explained it.

Why your system prompt gets ignored

Six causes that account for nearly all of it: contradictions you wrote on different days, instructions buried in the quiet middle of a long prompt, negations, vague quantifiers, examples that overrule the prose, and rule lists nobody could follow. Ends with the order I debug in.

Grounding: how to stop a model inventing facts

"Use only the information provided" is the right idea and leaks in four places. Delimiting the source, giving refusal a defined form, splitting the half of the task that cannot be grounded, and requiring quotes so the output can be checked by a machine rather than trusted.

Few-shot examples that work

How many to use, why to choose the awkward cases over the typical ones, and the accidental patterns — length, subject, label balance, order — that your examples teach without your noticing. Two tests that catch it.

Chain-of-thought is oversold

Where "think step by step" genuinely pays, where it only adds latency and a parsing problem, what the printed reasoning is and is not evidence of, and why reasoning models change the calculation. Includes the twenty-minute experiment that settles it for your task.

Writing output formats a program can parse

Getting JSON out of a model is easy; getting the same JSON on the two-hundredth call is a different job. Literal schemas, defined empty values, giving the urge to explain somewhere to go — and the five things the parser has to do because no prompt gets you to a hundred per cent.

A system prompt you can steal

One complete working prompt for support-ticket triage, built a block at a time with the reason for every line — including the four techniques left out on purpose, which is the part most worth copying.

The Role block: what "act as an expert" actually changes

A persona sets the register and the vocabulary of an answer and not much else. Why the years-of-experience clause does nothing, why the studio still scores the block at twenty points, and the version of it that describes the reader instead of the author.

System prompt or user message: what belongs where

The system prompt is what you would edit for a release; the user message is what you would edit for a request. Where dates, pasted documents, examples and the format reminder go, and why the system prompt is neither a stronger instruction nor a security boundary.

Uncertainty: giving the model permission to say "I don't know"

One line of permission changes the cost of admitting doubt and nothing about what the model knows. Why stated confidence levels are weaker than they look, four ways to make a guess look different from a fact on the page, and the class of error none of them catches.

Testing a system prompt: a twelve-case regression set

Every edit fixes one thing and may quietly break another. Twelve saved inputs with yes-or-no checks instead of golden outputs, run before and after each change. What goes in the twelve, how to write a check, and what the set will never tell you.