CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Articles/Claude.ai
Claude.ai/2026-05-22Advanced

Holding the Line on Claude's Output Shape With <output_format> — A Pattern From My Indie App Copy Pipeline

How I keep multilingual App Store copy from drifting across 100+ locales by leaning on the <output_format> tag, with the prompts and validators I actually run.

Claude API115output_formatprompt design6indie development14ASO2

Premium Article

As a one-person operation I have been shipping iOS and Android apps for years, and at some point the store copy grew past what I could keep maintaining by hand. The hard part was never writing the copy. The hard part was making sure the copy that came back from the model still matched the contract I needed.

People keep asking me what changed when I started using Claude. The honest answer is not "I write faster." It is "I learned how to make the model honor a shape more strictly than a human would." The tool that made that possible was the <output_format> tag. This article walks through how I got there, and the prompts I run today for the indie app copy pipeline.

Four Years of Tuning, and Why I Now Lead With output_format

In the early days I would hand Claude a paragraph and ask it to polish or translate. The output was usually fine, but the variance was unbearable across batches:

  • A trailing "Hope this helps!" would appear out of nowhere.
  • Paragraphs would shuffle into a different order than I had asked for.
  • Localizations would silently exceed App Store byte limits.
  • An English keyword in the source would survive untranslated in the target locale.

Any one of these is recoverable. A hundred of them in parallel is a half-day lost to cleanup. The mental flip that fixed this was deciding that the shape of the output is more important than the body of the prompt. I tell Claude what the answer should look like before I tell it what to do.

Writing prompts taught me to decide the joinery before cutting the wood: settle the shape of the output before writing a word of instruction. Reordering those two steps is the single change that cut the most rework out of my pipeline. Pick the shape; then say what to do.

Why Plain Generation APIs Drift

Claude's responses are, at their core, a flat text stream. Tools and structured outputs sit on top of that, but the body the model produces does not natively contain a frame that says "title starts here, subtitle there." Three failure modes show up in production over and over:

  1. Length drift. A "keep it under 150 characters" instruction will still produce 180 characters sometimes.
  2. Ordering drift. You ask for A, B, C; you get B, A, C.
  3. Language drift. A multilingual generation accidentally returns English when the source string contained English brand names.

If you patch these downstream with regex, you end up with an unmaintainable parser. I burned a full day doing that before I shifted to the tag-first approach.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A concrete pattern for taming Claude's silent output drift with structural tags
Real prompts I use to localize indie app store copy across 100+ locales
The mindset shift from 'write a prompt' to 'write a shape, then a prompt'
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude.ai2026-07-06
When Instructions Fade in Long Conversations: Measuring Adherence and Pulling It Back
System-prompt instructions quietly lose their grip as a conversation grows. This piece turns that drift into a number you can track, then fixes it with prompt structure and mid-conversation re-anchoring, backed by runnable code and measured results.
Claude.ai2026-07-04
Claude in Chrome Went GA and I Stopped Babysitting the Tab — Where Background Notifications and Handoff Actually Help
Claude in Chrome's general availability adds background notifications, draft handoff, and better failover. As someone who hands browser work to it daily in solo development, here's what to notify on, what to leave running, and the settings I actually changed.
Claude.ai2026-05-26
Three Weeks of Letting Claude in Chrome Run My Android Vitals Weekly Review
I moved my Monday-morning Android Vitals review for a portfolio of wallpaper and relaxation apps over to Claude in Chrome three weeks ago. Notes on what I delegated, what I kept for myself, and how the rhythm has settled in for an indie developer in year twelve.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →