On July 12, OpenAI quietly posted Prompting guidance for GPT-5.6 Sol on its developer site — a single, official recipe book for how to write prompts for the new model family. Read alongside this morning’s https://cuigh.com/posts/gpt-5-6-sol-production-migration-2026/ Ploy piece, it reads as the other half of the 7/9 launch story.

The headline number is sharp: on OpenAI’s own internal coding-agent eval, swapping the system prompt from the GPT-5-era “encyclopedia” shape to a lean shape lifted eval scores 10–15%, cut total tokens 41–66%, and reduced cost 33–67%. That is not “the model is smarter so you can write shorter”. It is the reversal of prompt-design philosophy itself, now that model capability has caught up.

The lean-prompt data point: 10–15% / 41–66% / 33–67%

From OpenAI’s verbatim:

“In a sample of internal coding-agent eval runs, configurations with leaner system prompts improved evaluation scores by roughly 10–15% while reducing total tokens by 41–66% and cost by 33–67%. Results will vary by workload, so treat these ranges as directional and validate changes on representative tasks from your own application.”

All three ranges point the same direction: scores up, tokens down, cost down, with savings in the 30%+ band. The implicit claim is sharper than “fewer tokens, cheaper bills” — redundant instructions, padded examples, and verbose tool descriptions in the system prompt are not just expensive, they actively hurt model performance.

The spine: from “enumerate rules” to “describe the destination”

The doc’s 14 H3 sections circle one spine. The core reversal:

“Describe the destination rather than prescribing every step. GPT-5.6 can usually choose an efficient search, tool, or reasoning path when the prompt states what good looks like.”

For the last twelve months the default posture has been “exhaustively enumerate rules, keep the model on rails” — write ALWAYS / NEVER / must / only for every plausible case and lock the decision path down. GPT-5.6’s guidance flips it: write what “good” looks like, let the model pick the path. The companion rule:

“Avoid unnecessary absolute rules. Use ALWAYS, NEVER, must, and only for true invariants such as safety rules, required fields, or actions that should never happen. For judgment calls, such as when to search, ask, use a tool, or keep iterating, prefer decision rules.”

My read: under this rule, roughly 80% of the ALWAYS / NEVER clauses in any production system prompt need rewriting — they were judgment calls mislabeled as invariants.

Five prompt-engineering reversals that hit builders daily

Five of the 14 sections I think matter most for day-to-day builder work:

Reversal 1: verbosity is an API parameter, not a soft instruction

GPT-5.6 is more concise by default than GPT-5.5. From the doc:

“GPT-5.6 tends to be more concise by default than GPT-5.5. When migrating, check whether broad brevity instructions such as ‘Be concise’ or ‘Keep it short’ are still useful. They may be unnecessary for some tasks and can sometimes make responses too brief.”

For globally consistent verbosity control, set the text.verbosity API parameter to one of three tiers (low / medium / high), and use the prompt only for task-specific length requirements. The soft instruction “be concise” has the side effect of sometimes leaving out information the user actually needed.

Reversal 2: autonomy is prompt engineering, not a runtime guard

GPT-5.6 is the first flagship where OpenAI explicitly says autonomy should live in the prompt. The doc gives a three-part policy template:

  • Read-class tasks (answer / explain / review / diagnose / plan): inspect the relevant material and report the result. Do not implement changes unless the request also asks for them.
  • Change-class tasks (change / build / fix): make the requested in-scope local changes and run non-destructive validation, without asking first.
  • External writes / destructive actions / purchases / scope expansion: require confirmation.

Most teams have historically treated autonomy as a runtime-layer concern — application code that requires human approval for certain actions. OpenAI’s stance here is explicit: autonomy boundaries are prompt work; spell out in the prompt what each class of request is allowed to do, and the model will stop on its own rule. Runtime guards should only cover what the prompt does not — they should never replace the prompt.

Reversal 3: citation is prompt engineering, not post-processing

From the doc:

“For grounded answers, citation behavior should be part of the prompt. Define what needs support, what counts as enough evidence, and how to behave when evidence is missing. Absence of evidence should not automatically become a factual ’no.’”

This one made me pause. Most RAG applications today treat citation as a post-processing step — rerank, then jam a final “cite your sources” instruction into the prompt. GPT-5.6’s guidance is explicit: citation behavior itself belongs in the prompt: what needs support, what counts as “enough evidence”, what to do when evidence is missing (the default must not be “no evidence = doesn’t exist”). For RAG pipelines this is a structural rework.

Reversal 4: one preamble plus sparse phase updates, not every-step narration

From the doc:

“For multi-step or tool-heavy tasks, prompt for a short visible preamble before the first tool call, then sparse outcome-based updates at major phase changes. Do not ask the model to narrate routine tool calls.”

In engineering terms: write a short preamble before the first tool call so the user knows what the agent is about to do; after that, give outcome-based updates only at major phase changes — don’t have the model narrate every routine tool call. From my own experience the most painful front-end UX is an agent that narrates every tool call — “reading X.json / reading Y.json / reading Z.json”. That output inspires neither trust nor control. OpenAI has now officially labeled it an anti-pattern.

Reversal 5: before raising reasoning effort, check whether the prompt is missing a completion bar

From the doc’s opening line:

“GPT-5.6 works best when prompts define the outcome, important constraints, available evidence, and completion bar, then leave room for the model to choose an efficient path.”

Practical meaning: don’t reach for reasoning_effort (a model-side knob) the first time the model underperforms. Go back to the prompt and check whether you’ve actually defined the completion bar / success criterion. The OpenAI logic is: reasoning effort is extra thinking budget for a model that already knows what to do. Without a defined destination, raising reasoning just means a longer think about the wrong thing.

The migration workflow: never rewrite the whole stack; cut one group and rerun evals

This rule took me three reads to appreciate how much it matters. From the doc:

“Start with a prompt and tool set that already works. Remove one group of instructions, examples, or tools at a time, then rerun the same evals.”

In engineering terms: never rewrite a working (or shipped) prompt stack all at once. OpenAI’s recommendation: each round, cut one group of instructions / examples / tools, then run the same eval set and see whether scores go up or down. The companion rule:

“Review the remaining instructions for contradictions. GPT-5-class models follow prompt contracts closely, so conflicting rules can create more instability than missing detail.”

GPT-5-class models honor prompt contracts more strictly than the previous generation, so two mutually-conflicting rules are worse than one missing rule. When migrating to GPT-5.6, resolve conflicts before filling gaps.

Where this differs from the 7/13 Ploy post

This morning’s https://cuigh.com/posts/gpt-5-6-sol-production-migration-2026/ walks through Ploy’s engineering account of moving a production agent from Claude Opus 4.8 to GPT-5.6 Sol: per-task cost $3.06 → $2.22, wall-clock 8m00s → 3m42s — but three real traps underneath that visible ledger: tool-parameter overreach (25 fields auto-filled with defaults), the partial-prefix cache cliff, and reasoning-replay failure from server-side item references.

This piece is OpenAI’s official prompt guidance — the builder-side ledger for the same migration. Same destination, two different jobs: the Ploy post is what breaks at runtime, this one is what to rewrite on the prompt side. Read together they map the full migration path:

Axis 7/13 Ploy post This post
Source Ploy’s own production traces OpenAI doc, internal coding-agent eval
Lens three runtime traps (schema / cache / replay) five prompt-engineering reversals + migration workflow
Fix schema transform + explicit cache key + don’t depend on server-side replay lean prompt + text.verbosity + autonomy-in-prompt + completion bar first
Builder takeaway “your stack must actively opt into GPT-5.6’s contract” “describe the destination, don’t exhaustively enumerate the path”

In the same week, OpenAI repositioned GPT-5.6 as a model whose ceiling is set by stack support: the Ploy post validates that from the runtime side; this OpenAI guide supplies the official recipe from the prompt side. The two posts are two views of the same load-bearing wall.

References