Why a whole session on vendors
Sessions 1-6 taught the shared core: clarity, structure, examples, grounding, chains, agents. Every vendor agrees on that core - then names it differently, places context differently, and ships per-model pages that change your prompts materially. Teams lose real weeks to this: one engineer quotes the OpenAI guide, another quotes Anthropic's, both are right, and the prompt ships wrong. Today we map the deltas and port TriageBot v4 across all three vendors to feel the portability tax first-hand.
Same ideas, different words 5 min live
Most cross-vendor confusion is vocabulary, not substance. The same concept wears three names, and two teammates quoting different guides can argue for an hour while agreeing completely. Pin this table where your team argues.
LiveThe divergence table4 min▶
| Concept | Anthropic (Claude) | OpenAI (GPT) | Google (Gemini) |
|---|---|---|---|
| The standing instructions | System prompt | Developer message | System instructions |
| AI that improves your prompt | Prompt improver (Console) | Metaprompting | APE (per the Boonstra whitepaper) |
| Answering from your documents | RAG | RAG | Grounding |
| Few-shot stance | 3-5 examples, a core technique | Zero-shot first; examples can HURT reasoning models | Pushed hardest - "always include examples" |
| Long-context placement | Query AFTER the docs (up to +30%) | Instructions at BOTH ends (GPT-4.1) | Data first, question LAST |
| Preferred delimiters | XML tags as house idiom | Markdown headers first; XML fine | Flexible; headers or tags |
| Step-by-step on reasoning models | Do not prompt it - adaptive thinking + effort | Do not say "think step by step" | Do not - thinking is built in |
Read the last row twice: on reasoning-era models, all three vendors now agree you should NOT prompt step-by-step thinking. Where they still genuinely disagree - few-shot stance and long-context placement - the disagreement reflects how each model family was trained, which is exactly why prompts do not port cleanly.
Meridian's week-long argument: a platform engineer insisted context goes "data first, question last" (he had read the Gemini docs); the Claude-side engineer insisted the same thing was "query after docs" (Anthropic's phrasing). They escalated to an architecture review before noticing they agreed. The third engineer, quoting GPT-4.1's "instructions at both ends", actually disagreed - and nobody noticed that.
The model-specific pages tour 7 min live
The biggest shift since 2024: every vendor now ships prompting pages per MODEL, not just per company - and they change your prompts materially. A prompt tuned for one generation can be actively wrong on the next. The habit this part installs: before shipping on a new model, read its page, then re-test.
LiveClaude's pages: Fable 5, Sonnet 5, Opus 4.83 min▶
- Fable 5: a brief, clear instruction now beats a long enumerated list - over-specified prompts constrain it. It is steered to ground progress claims (no "done!" without evidence), and you set effort levels instead of coaxing depth with words.
- Sonnet 5: the breaking change -
temperatureandtop_pnow return a 400 error. Adaptive thinking is the default; the old budget_tokens knob is gone in favor of effort. Prompts that shipped sampling params do not degrade, they crash. - Opus 4.8: has its own page too. The point is not memorizing each delta - it is that Anthropic maintains one page per model, and the deltas are real. Also live from Session 3: prefill returns a 400 on Claude 4.6 and later; the migration patterns replace it.
LiveOpenAI's GPT-5.1 page and Gemini 33 min▶
- GPT-5.1: adds a none reasoning mode (a reasoning model that can skip reasoning - your model-class decision tree from Session 1 now has a toggle inside one model), personality shaping in the developer message, and first-class metaprompting: you can hand GPT-5.1 its own prompt and ask it to diagnose contradictions and ambiguities before you ship them.
- Gemini 3: leave sampling defaults alone (the docs say it plainly), be precise and direct rather than persuasive or emotional, and control length with verbosity guidance. Long context stays data first, question last.
Sampling params: a history lesson 5 min live
Google's Boonstra whitepaper - still the best single PDF on prompting - devotes a whole chapter to temperature, top-K, and top-P. Learn the concepts: they explain why outputs vary and what "randomness" means mechanically. Then learn the 2026 reality: the vendors took the dials away.
LiveThe portability checklist: what to re-verify when you switch vendors3 min▶
Everything this session covered, compressed into the checklist you run on every migration:
| Surface | Re-verify |
|---|---|
| Placement | Where do instructions and documents go? Claude: query after docs. GPT-4.1: both ends. Gemini: data first, question last. |
| Delimiters | XML house idiom on Claude; markdown headers first on GPT. Re-check your tags survive. |
| Few-shot stance | Keep 3-5 on Claude, push more on Gemini, strip them for OpenAI reasoning models and re-test. |
| Params | Remove temperature/top_p (400 on Sonnet 5, ignored by OpenAI reasoning, leave-default on Gemini 3). Map to effort/verbosity equivalents. |
| Tool-call format | Each API's tools field differs in schema shape and naming rules. Re-declare, never string-replace. |
| Evals | Re-run the full set. The page tells you what changed; only your evals tell you what broke. |
Self-studyOne card on open models (and one pointer past text)2 min read▶
Everything above assumed a hosted API. Run an open model - Llama and friends - and two more deltas appear. First, the chat format itself is yours to get right: Llama's chat template differs from hosted APIs, and a malformed template silently degrades output before your prompt is even read. Second, safety is a separate layer: hosted APIs bundle moderation; with open models you add it yourself, and Llama Guard is the standard classifier for filtering inputs and outputs. DeepLearning.AI's Prompt Engineering with Llama course covers both - self-study, not exam material.
And one pointer past text entirely: vision-model prompting (segmentation coordinates, diffusion negative prompts) is a real craft this course deliberately skips - see the course map's not-covered list.
TriageBot goes multi-vendor ★ 22 min · build it with me
Meridian's platform team wants vendor optionality: TriageBot must run on Claude, GPT, and Gemini. Naive plan: copy the prompt three times. Real plan: port it properly, and write down every change you had to make. That list is the portability tax, and it goes in the repo next to the prompts.
Start from TriageBot v4 (Session 6): system prompt with agentic rules, lookup_order tool spec, policy manual, few-shot examples, JSON schema.
Write the Claude variant. XML delimiters for the manual and examples, query after the docs (ticket last), effort medium, no sampling params - Sonnet 5 would 400 the call.
Write the GPT variant. Markdown headers for structure, key instructions repeated at both ends of the long context, reasoning_effort set instead of any temperature, tools re-declared in OpenAI's schema.
Write the Gemini variant. Data first, question last - manual and ticket up top, the ask at the very end. All sampling defaults untouched. Consider one extra few-shot example; Gemini's docs push examples hardest.
Write down every delta. Placement, delimiters, example count, params, tool schema. That list is your portability tax - and your migration checklist for the next model generation.
LiveThe delta table - what actually changed per vendor4 min▶
| Surface | Claude variant | GPT variant | Gemini variant |
|---|---|---|---|
| Delimiters | XML tags | Markdown headers (## Policy manual) | Headers, kept simple |
| Placement | Query after docs (ticket last) | Key instructions at both ends | Data first, question literally last |
| Few-shot | 3 examples | 3 examples (standard model; strip and re-test if a reasoning variant) | 4 examples - docs push them hardest |
| Params | effort: medium, nothing else | reasoning_effort, no temperature | All defaults untouched |
| Tools | tools field, Anthropic schema | tools field, OpenAI schema | tools field, Gemini schema |
Five rows of change for one identical business task. Multiply by every prompt in your system: that is the real cost of "we will just swap vendors" - not impossible, but never free, and only safe with the eval set from Sessions 8-9 to prove each variant still passes.
Three things before Session 8 ◐ 30 min total
- Port one of your own prompts to a second vendor using the portability checklist. Keep the delta list - bring it to Session 8, where it becomes eval cases.
- Read one model-specific page for a model you actually use, end to end. Note one thing your current prompts do that the page says to stop doing.
- Grep your codebase for temperature. Every hit is either a 400 waiting to happen (Sonnet 5), a silently ignored param (OpenAI reasoning), or a doc violation (Gemini 3). Decide the fate of each one.
What this session covers
Builder-level coverage of the sources below. Vendor docs move fast - re-check the model pages before you ship; links live in the course map.
Three questions before you go 🎯 ◐ 90 seconds
1 · A teammate says "put it in the developer message". In Anthropic and Google terms, they mean...
One concept, three names: system prompt = developer message = system instructions. Half of cross-vendor arguments dissolve once the table is on the wall.
2 · Your prompt sets temperature=0.3. What happens across the 2026 model landscape?
The whitepaper-era dials moved: rejected on Sonnet 5, ignored by OpenAI reasoning models, leave-default on Gemini 3. Today you reach for effort and verbosity instead.
3 · Before shipping an existing prompt on a newly released model, the professional habit is...
Neither extreme. The core carries; the deltas (placement, delimiters, few-shot stance, params, tool format) need re-verification - and only your eval set proves what broke.