Part 8 — Traps, caveats, and the verification gap
What will go wrong if I am not careful?
6 min · Updated June 2026
This is the section to read before you go broad with a rollout, and to return to when something goes wrong. It’s a consolidated list of the failure modes from the underlying research, the cases where the blueprint in this article doesn’t apply, and guidance on how to weight the sources behind all of this.
8.1 — Before I go broad with this rollout, I want a straight list of how it bites people. What are some of the concrete failure modes in the order teams usually hit them?
Eleven failure modes, in roughly the order teams hit them. The first nine are about configuration. The last two are about the thing the configuration exists to serve — and they’re the ones that quietly cost the most.
Trap 1
Treating the sandbox as a security boundary
It isn’t. allowUnsandboxedCommands defaults to true, meaning a command that fails inside the sandbox can be retried under normal permissions. There are also documented demonstrations of agents reasoning around path-based denylists via indirect paths (e.g., reaching a binary through /proc/self/root/usr/bin/npx). Layer external isolation for high-risk work.
Trap 2
Wiring only the Compliance API for audit
It doesn’t cover Claude Code prompt/tool-use content. If you only wire the Compliance API, you have an audit blind spot over your developers’ actual coding sessions. You need OpenTelemetry for that — they’re two separate pipelines and you need both.
Trap 3
Forgetting to pin model versions
Unpinned, Bedrock and Vertex can silently swap models on update; Foundry can hard-error. Pin every model ID in managed-settings.json before you roll out.
Trap 4
Bloated instruction files
The ETH Zurich study (arXiv:2602.11988) found context files can reduce task success rates and add 20%+ cost. Keep AGENTS.md/CLAUDE.mdlean; push detail into skills. If you’re surprised when the agent ignores your 300-line instruction file, this is why.
Trap 5
Assuming AGENTS.md is read by Claude Code directly
As of Q2 2026 it isn’t — bridge it with @import or a symlink in CLAUDE.md.
Trap 6
Trusting MCP registry enforcement as a hard control
GitHub’s own guidance says it matches on server name, can be bypassed, and doesn’t apply to the cloud agent. Treat it as a governance signal, not a security boundary. Use a real gateway.
Trap 7
Underestimating token cost
Subagent-heavy workflows can run roughly 7x a single-threaded session. Bedrock’s default Opus rate limit (around 25 RPM) needs raising before team rollout. Stand up cost dashboards early — before the first surprised finance conversation, not after.
Trap 8
Depending on preview features
GitHub Agentic Workflows was in technical preview as of mid-2026; the MCP enterprise allowlist remained in preview at the broader AI Controls GA; several Copilot agent-customization features are in public preview. Don’t make any of them load-bearing without a fallback.
Trap 9
Skipping the supply-chain basics
CVE-2025-59536 demonstrated that a malicious MCP config in a cloned repo could execute commands before the trust dialog appeared. The Cline and Shai-Hulud incidents showed what happens with autonomous agents that have write access and no defense against prompt injection. The controls: pin plugins by SHA, allowlist MCP servers, and default autonomous work to read-only.
Trap 10
Shipping verification theater instead of verification
This is the trap that defines the Part 1 spectrum, and the one most invisible in a demo. A working demo proves an agent can succeed once; only an eval suite proves it succeeds reliably. Two mechanisms have to work together, and most harnesses ship only the first:
- Tests verify the deterministic parts — given this input, the function returns that output. Checked by code.
- Evals verify the non-deterministic parts — did the agent take a sensible trajectory, choose the right tools, and produce output that clears the quality bar. Checked by labelled datasets, rubrics, and LM judges.

Without both, you are vibe coding regardless of how sophisticated your prompts and hooks are. Build output evals (did it produce the right artifact) and trajectory evals (did it get there the right way) into the harness, with explicit rubrics, and gate shared-workflow agents on eval coverage the same way you gate a service on test coverage. An eval without a clear rubric measures nothing.
Trap 11
Forgetting the harness exists to change what the human does
The harness is not there to remove the developer. It’s there to relocate them — from typing implementation to exercising judgment. Teams that install all the machinery but never shift the human role get the worst of both worlds: agents producing 80% of a feature fast, and humans still trying to review it line-by-line as if they’d written it, which is exactly where the METR 19% slowdown lives.
The 80% problem is real: agents rapidly generate ~80% of a feature, but the last 20% — edge cases, error handling, integration points, subtle correctness — needs contextual judgment current models often lack. The developers who win reserve their attention for what AI struggles with (ambiguous requirements, architectural trade-offs, correctness verification) and delegate what it’s good at. If your rollout plan upgrades the tooling but not the role, you’ve built a faster way to produce code nobody fully understands. That’s debt, not velocity.
8.2 — I'm not sure this whole harness blueprint fits my situation. How can I figure out when it's overkill and what to drop.
The harness design in this article is built for a specific context: multi-vendor (Claude Code + Copilot), polyrepo, regulated or otherwise compliance-sensitive, hybrid cloud. If your situation is materially different, some of it is overhead.
- Single-cloud, single-IDE shops. If you’re 100% VS Code on Azure, the dual-vendor harness is overhead. Pick one vendor and reinvest the saved effort into deeper skills and MCP coverage.
- Pure prototyping / disposable code. If nothing you’re building outlives the week, you’re on the left end of the Part 1 spectrum by design. A lean
AGENTS.mdand good instincts beat a governance plane. Don’t pay CapEx you’ll never amortize (Part 5). - If
gh-awreaches GA with a multi-tenant MCP gateway and solid cross-repo orchestration, shift more autonomous repo work from Claude hooks to Agentic Workflows. The hooks-vs-workflows boundary will move. - If Microsoft ships a first-party
managed-settingsequivalent for Copilot agent hooks, simplify the policy layer accordingly. - If you go fully air-gapped or sovereign, drop the direct Anthropic API, front Bedrock via PrivateLink or a self-hosted Anthropic-compatible proxy through an LLM gateway, and accept losing some launch-day features.
The blueprint is a starting point, not a specification. The right thing to do is understand why each decision was made and adjust it to your actual constraints.
8.3 — I want to weigh the evidence behind all this advice properly rather than taking it on faith. How do I understand how much to trust each type of source.
The backbone is the five DORA software-delivery metrics, which are backed by multi-year research and exceptional in the volume of evidence supporting them. The 2025 DORA report — retitled State of AI-assisted Software Development — matters most here because it added a fifth metric, rework rate, to catch the instability the original four miss. That metric is the lie-detector for an AI harness.
The KPIs that earn your trust
Stability— the lie-detector
Rework rate
Is AI speed real, or borrowed against future debugging debt?
unplanned fixes to prod ÷ total deploymentsEvaluation harness, deterministic test suite, lean AGENTS.md, read-only autonomous default
Stability
Change failure rate
What share of releases break production?
failed deployments ÷ total deploymentsCI gates, test-generation subagent, model-version pinning, MCP gateway/allowlist
AI-specific
First-pass success rate
How often does the agent succeed without a retry loop?
tasks passing on first attempt ÷ total agent tasksLean context file, skills / progressive disclosure, architectural guardrails, model routing
AI-specific
AI-code rework
Does AI-authored code survive, or get rewritten within 30 days?
follow-on edits to AI code ÷ AI lines merged (30-day window)AI-vs-human diff mapping, code-review subagent, skills depth
Throughput
Lead time for changes
How long from commit to running in production?
median(deploy timestamp − commit timestamp)Harness automation, CI/CD pipeline, test generation
Throughput
Deployment frequency
How often do we successfully ship to production?
successful prod deployments ÷ time windowCI/CD pipeline, deployment automation, harness backlog maturity
Which assets move which KPIs
The point of the table below is the coupling: a single asset — the lean context file, the eval harness — moves several KPIs at once. That’s the actual evidence. A real harness lifts throughput and stability together rather than trading one for the other.
| Harness asset | KPIs it primarily moves |
|---|---|
| Lean context file (AGENTS.md + skills) | First-pass success ↑, rework rate ↓ |
| Evaluation harness (deterministic tests) | Rework rate ↓, change failure rate ↓, lead time ↓ |
| Model routing + version pinning | First-pass success ↑, change failure rate ↓ |
| CI/CD + gateway (gates, allowlist) | Change failure rate ↓, lead time ↓, deployment frequency ↑ |
Why the headline numbers lie on their own
The single most important signal is rework rate. It’s the clearest leading indicator of whether AI speed gains are real or borrowed against future debugging debt — teams that see PR volume surge without a corresponding decline in rework rate are typically converting today’s review shortcuts into tomorrow’s incident load. This matters because throughput read alone is misleading: AI adoption tends to improve throughput by an estimated 2–18% yet often comes with declining stability and significantly higher change failure rates. Watching velocity by itself would tell you the harness works even as quality degrades.
Two cautions to bake into how you read the numbers
- 1.Acceptance rate is not quality. An acceptance rate above roughly 45% may indicate uncritical acceptance rather than tool quality. High acceptance paired with rising rework is a red flag, not a win — always read acceptance and rework together, never acceptance alone.
- 2.Attribution requires code-level visibility. Traditional dashboards can’t distinguish AI-written code from human-written code, so to prove the harness (and not something else) is the cause, you need AI-vs-non-AI outcome analytics — comparing AI-generated code’s cycle times, rework rates, incident rates, and test coverage against human-written code. That requires repository-level diff access, not just PR metadata. Establish a baseline before adoption and track the delta over at least a 30-day window.