# Before you swap to Claude Sonnet 5.5: a prompt for Claude Code

Paste this into Claude Code at the root of the repository that calls the Claude API. It finds every place a
request is built and tells you which of them will fail or go quiet on `claude-sonnet-5-5`, before anything is
changed. It edits nothing.

Anthropic's own `/claude-api migrate` skill does the migration itself. Use this first when you want the list
before you let anything touch the code, for example to put in front of whoever owns the agent.

---

Find every place in this repository that builds a request to the Claude Messages API, directly or through an
SDK. For each one, list the file and line, the model it uses today, and which of these apply if the model is
changed to `claude-sonnet-5-5`. Do not edit any file.

1. `thinking: {"type": "disabled"}`. Returns 400. The replacement is `{"type": "between_tools"}`, which only
   works at effort `low`, `medium` or `high`.
2. `thinking: {"type": "enabled", "budget_tokens": N}`. Returns 400. Use adaptive thinking and
   `output_config.effort`.
3. `tool_choice` of type `any` or `tool`. Returns 400. Use `auto`, mark the tool `strict: true` (not available on
   Amazon Bedrock) and say in the prompt when to call it.
4. A `computer_20251124` tool on the Claude API or Google Cloud, or `computer_20250124` anywhere. Returns 400.
   Use `computer_toolset_20260801` (Bedrock: `computer_20251124`).
5. The advisor tool with Opus 4.8, 4.7, 4.6, Sonnet 5 or Sonnet 4.6 as advisor. Returns 400.
6. A non-default `temperature`, `top_p` or `top_k`. Returns 400.
7. A conversation that ends with an assistant message (prefill). Returns 400.
8. `output_format` at the top level. Move it to `output_config.format`.
9. The beta header `fine-grained-tool-streaming-2025-05-14` next to a toolset. Returns 400.
10. Streaming with tools and adaptive thinking at the default `display`. Does not fail. The text the model
    writes between tool calls arrives in `thinking` blocks with empty text, so a UI that shows it goes quiet.
    Check whether anything shows that text to a person.
11. Code that reads `content[0].text`, edits earlier conversation history before resending it, or does not
    handle `stop_reason: "refusal"`.

End with a table: file, line, current model, items that apply, and whether each one fails (400) or goes quiet.

---

Rules read from https://platform.claude.com/docs/en/models/sonnet-5-5/migration-guide on 28 September 2026.
Check that page for anything newer. Made by Brinvik, https://brinvik.com.
