Claude Code Agent Routing: Plugin Governance and OTEL Audit Trails
Claude Code v2.1.157 introduces agent dispatch routing via settings.json, auto-loaded .claude/skills plugins, and OTEL tool-parameter telemetry—three operator controls for governed multi-agent coding pipelines.
Archive item produced with AI assistance from the cited source and published without individual review. Editor of record: Joe Werner.

The May 29 Claude Code release (v2.1.157) is one of the most operationally significant updates in recent months — not because of a headline model upgrade, but because it ships three controls that change how teams govern, route, and observe multi-agent coding pipelines. If you run Claude Code at team scale, these changes affect your deployment model today.
What changed
Three features stand out from the v2.1.157 changelog:
1. Plugins auto-load from .claude/skills — no marketplace required
Previously, distributing a Claude Code plugin to your team required going through the marketplace or manual installation steps. Now, any plugin placed in a .claude/skills directory is automatically loaded when Claude Code starts. A new claude plugin init <name> command scaffolds the plugin structure in place.
This is a governance shift: teams can now ship internal plugins — custom tools, company-specific workflows, proprietary integrations — through their own repo or shared filesystem without depending on Anthropic's marketplace infrastructure.
2. The agent field in settings.json is now honored for dispatched sessions
When Claude Code dispatches a background agent session (via claude agents), it now reads the agent field from settings.json to determine which agent profile to use. You can override it per-invocation with --agent <name>.
This is a routing decision point: operators can now pin which agent identity runs in dispatched sessions at the configuration level, rather than relying on runtime flags or hoping the default is correct. For teams running multiple agent profiles (e.g., a strict code-review agent vs. a permissive exploration agent), this means the dispatch routing is now declarative and auditable.
3. tool_decision telemetry events now include tool_parameters when OTEL_LOG_TOOL_DETAILS=1
Claude Code already emitted OTEL telemetry for tool decisions. With this release, setting OTEL_LOG_TOOL_DETAILS=1 causes those events to include the actual tool parameters — bash commands executed, MCP tool names called, skill names invoked.
This closes a significant observability gap. Before, you could see that a tool was called; now you can see what it was called with. For teams routing Claude Code through an API gateway or running it in CI/CD pipelines, this means you can finally build meaningful audit trails and cost attribution at the tool-call level.
Why it matters for AI engineering teams
These three changes address different layers of the operator stack:
Plugin governance removes a dependency on external infrastructure for internal tooling. Teams that have been hesitant to build proprietary Claude Code extensions — because distributing them required marketplace approval or manual steps — now have a clean path: commit plugins to a shared repo, mount the .claude/skills directory, done. This is particularly relevant for enterprises with air-gapped or restricted environments.
Agent routing config makes multi-agent dispatch auditable. The agent field in settings.json means your CI/CD pipeline, your team's shared config, or your operator-managed deployment can declare which agent profile runs — and that declaration is version-controlled. This is the difference between "we think the right agent ran" and "we can prove the right agent ran."
OTEL tool telemetry enables real cost attribution and security auditing. If you're running Claude Code at scale — dozens of developers, hundreds of agent sessions per day — knowing which bash commands were executed and which MCP tools were called is not optional. It's the foundation for billing reconciliation, anomaly detection, and compliance reporting.
The router/operator angle
The agent field in settings.json is the most underappreciated change here. It introduces a routing layer inside Claude Code's own dispatch mechanism: the operator declares the agent identity, and the runtime honors it. This is analogous to how a routing gateway lets you pin a model or provider per request — except here it's the agent profile, not the model.
For teams using Claude Code through an API gateway like TheRouter, the combination of agent routing config and OTEL tool telemetry creates a more complete observability picture:
- The gateway sees the model, token counts, and latency at the API level.
- OTEL tool telemetry (with
OTEL_LOG_TOOL_DETAILS=1) adds the tool-call layer: what commands ran, which MCP tools were invoked, which skills were used. - The
agentfield insettings.jsonadds the identity layer: which agent profile was responsible.
Together, these three layers give you the data you need to answer "what did this agent session actually do, and who authorized it?"
Plugin governance checklist for operators:
- Audit your
.claude/skillsdirectories — anything there now auto-loads. Treat it like a PATH entry. - If you're distributing internal plugins, move them to a
.claude/skillsdirectory in your shared config repo. - Set
OTEL_LOG_TOOL_DETAILS=1in your CI/CD environment if you need tool-level audit trails. - Add the
agentfield to your team'ssettings.jsonto pin the agent profile for dispatched sessions. - Review the
claude plugin initscaffold to understand what a valid plugin structure looks like before deploying custom tools.
What TheRouter users should watch or try
If you're routing Claude Code through TheRouter, the OTEL tool telemetry change is directly relevant to your observability setup. The gateway-level data (model, tokens, latency) and the tool-level data (bash commands, MCP calls) now come from different layers — but both are available if you configure them.
Watch for how Anthropic extends the agent field semantics in future releases. If agent profiles gain model-pinning or provider-routing capabilities, this config field becomes a first-class routing control that operators will want to manage centrally.
The plugin auto-loading change is also worth monitoring from a security posture: any .claude/skills directory in scope is now an execution surface. Teams should treat plugin governance with the same rigor as dependency management.

Claude Code 2.1.274: MCP Reliability Overhaul, Gateway Postgres Config, and Self-Healing Transcripts
Claude Code 2.1.274 fixes six MCP failure modes that silently break production tool sessions, adds store.connect_timeout_seconds and CLAUDE_CODE_GATEWAY_DRAIN_TIMEOUT_MS to the Claude apps gateway, and makes corrupted transcripts self-heal instead of looping forever.

Claude Code 2.1.273: Five New Gateway Headers and a Classifier Flip on Bedrock, Vertex, and Foundry
Claude Code 2.1.273 ships opt-in gateway hint headers exposing request class, agent type, and compaction state to any LLM proxy. It also flips the auto mode classifier to local-only on Bedrock, Vertex AI, and Foundry — only one change has a revert path.

Claude Code Origin Story Routing: Why Anthropic's Terminal Agent History Matters
Claude Code origin story routing turns Anthropic's official history into an operator checklist for terminal agents, permissions, context, and parallel swarms.