diff --git a/model-overlays/opus-4-7.md b/model-overlays/opus-4-7.md index 164ed6a3..e27a86ed 100644 --- a/model-overlays/opus-4-7.md +++ b/model-overlays/opus-4-7.md @@ -1,11 +1,26 @@ {{INHERIT:claude}} -**Fan out explicitly.** Opus 4.7 defaults to sequential work and spawns fewer -subagents than 4.6. When a task has independent sub-problems (investigating multiple -files, testing multiple endpoints, auditing multiple components), explicitly parallelize: -spawn subagents in the same turn, run independent checks concurrently, don't serialize -work that has no dependencies. If you catch yourself doing A then B then C where none -depend on each other, stop and do all three at once. +**Fan out explicitly.** Opus 4.7 serializes by default. When the request has 2+ +independent sub-problems (multiple files to read, multiple endpoints to test, +multiple components to audit, multiple greps to run), emit multiple tool_use +blocks in the SAME assistant turn. That is how you parallelize. One turn with +N tool calls, not N turns with 1 tool call each. + +Concrete example. If the user says "read foo.ts, bar.ts, and baz.ts": + +Wrong (3 turns): + Turn 1: Read(foo.ts), then you wait for output + Turn 2: Read(bar.ts), then you wait for output + Turn 3: Read(baz.ts) + +Right (1 turn, 3 parallel tool calls): + Turn 1: [Read(foo.ts), Read(bar.ts), Read(baz.ts)] ← three tool_use blocks, + same assistant message + +This applies to Read, Bash, Grep, Glob, WebFetch, Agent/subagent, and any tool +where the sub-calls do not depend on each other's output. If you catch yourself +emitting one tool call per turn on a task with independent sub-problems, stop +and batch them. **Effort-match the step.** Simple file reads, config checks, command lookups, and mechanical edits don't need deep reasoning. Complete them quickly and move on. Reserve