Each of these can bite while every agent follows every rule.
1. The records become the work
The factory tracks facts that also live in Git, the build, the deploy and the live sessions. Its assignments,
checkpoints, verdicts and grants must keep agreeing with all of them. When several agents summarize the same moving
state, the record looks tidy and lags reality. What helps: one authoritative history of transitions, with every other
view derived from it.
2. Every gate is a queue
Serial gates add waiting even when everyone performs perfectly. Naming more specialists does not make a required step
finish sooner. What helps: sort each transition into judgment, independent evaluation, authorization, deterministic
validation or notification. The first three may need judgment; deterministic checks and notifications usually do not
need a model. Do not pay a model to reread the history and announce
the obvious next step.
3. Structure has an expiry date
Anthropic's engineers make a useful point: harness components assume the model cannot do something unaided. Test
those assumptions; they can be wrong, or become stale as models improve
(Anthropic, 24 March 2026).
They dropped their sprint structure once a newer model no longer needed it. They judged their evaluator "worth the
cost when the task sits beyond what the current model does reliably solo". What helps: after each model upgrade,
test removing one orchestration control at a time and measure. Keep required security and approval boundaries.
4. More agents, more of the wrong work
In Anthropic's 2026 experiments, swarms of agents each built a game. One variant gave them prescriptive roles; another
named a CEO. "But these prompts did not make much difference"
(Anthropic, 13 August 2026). A study of 260 agent
configurations found multi-agent setups ranging from 80.8% better than a single agent on decomposable financial
reasoning to 70.0% worse on sequential planning (Yubin Kim and others, arXiv 2512.08296).
Capacity also amplifies whatever work gets admitted: closed issues can climb while useful coverage stays flat. What
helps: add a role only for a duty that brings expertise, independent evidence, authority or recovery. Track the
outcome the work is for, not the closures.
5. Safe stopping turns into silent waiting
No blind resends, no automatic resume, no unauthorized reassignment: all sensible. But then progress depends on an
event arriving, and on an owner noticing when it does not. Every agent can obey every rule while an issue waits
forever for a lost message. We saw it: work sat still because a session held an older, narrower grant and needed a
fresh one from the human. What helps: make overdue owned work visible. Measure how long work sits dormant, not only
how many unsafe actions were stopped.
6. A frozen test can freeze the wrong target
Freezing the acceptance contract stops the goalposts moving. It cannot prove the goal was right. The author and the
reviewer can share one wrong reading of the request. StrongDM met the cheap version: "return true is a great way to
pass narrowly written tests". Their answer is scenarios kept outside the codebase, like a holdout set. What helps:
before freezing, a short adversarial step that asks what important failure would still pass.
7. Two reviewers can share one blind spot
A separate reviewer gives procedural independence. It does not give independent mistakes. A study of more than 350
models found that on one leaderboard dataset, "models agree 60% of the time when both models err". It also found
strongly correlated errors among larger, more accurate models across different architectures and providers
(Elliot Kim and others, ICML 2025). What helps: give the reviewer the original
request, the exact candidate and the raw evidence, never the builder's summary. Seed known defects and count how many
review misses.
8. The glue becomes a product
Hooks, wrappers, role settings and loaders sit on a runtime that changes often. A change to compaction or to the
permission schema can break an assumption without changing a word of the operating text. What helps: a small
compatibility suite, and the control configuration versioned with every run.