Seven harness patterns Anthropic uses for non-coding agents in Claude Code
Anthropic followed its dynamic-workflows launch in Claude Code with a longer piece on how to actually structure the JavaScript orchestration scripts that spawn subagents. The argument is that the default Claude Code harness is tuned for coding, and once you start using subagents for non-coding work (research, triage, sorting, migrations), you need a different shape. The post catalogs seven reusable patterns the team has been running internally.
The patterns are: classify-and-act (route by task type), fan-out-and-synthesize (split, process, merge), adversarial verification (spawn a separate judge with the rubric), generate-and-filter (overproduce, then prune), tournament (pairwise comparison rounds), loop-until-done (keep spawning until a stop condition), and memory-and-rule-adherence (a dedicated verifier checks outputs against a rule list). Each is paired with a concrete use, including the Bun Zig-to-Rust migration, triage at scale, root-cause investigation that splits agents across logs, files, and data, and deep research that adversarially verifies its own claims.
The framing matters. These are not abstract academic patterns, they are the specific failure modes the team has run into. Agentic laziness, when Claude declares a task done after partial progress. Self-preferential bias, when a single context favors its own answers if asked to check them. Goal drift across many turns. Each pattern is named for a specific defense against one of those.
Why it matters
If you have tried to build agent harnesses and watched them grade their own homework or quietly stop halfway, this is a worked-out playbook for which pattern fixes which failure. The harnesses are JavaScript, so you can read them, fork them, and steal the verification step into whatever framework you are already using.