description FIELD IS THE ROUTING INTERFACE
All three extension layers share a single activation mechanism: the description field.
It is the activation signal in SKILL.md[1],
the tool-selection mechanism in MCP server schemas[2],
and the dispatch signal for subagent auto-invocation[3].
The session should open here. Make participants write one before the first break.
disable-model-invocation: true for side-effect workflowsENABLE_TOOL_SEARCH=auto:5 lowers threshold to 5%claude -p --bare for CI — skips all config discovery[12]--bare becomes default for -p in a future releasedeny › defer › ask › allow
The pattern is consistent across all three extension layers — treat it as a first-class design principle, not an optimisation tip.
Subagent descriptions front-load the routing decision so the spawn prompt never enters context unless the parent decides to dispatch.
Corollary: if it can be a Skill, make it one. CLAUDE.md is only for invariants that apply to every interaction.
readOnlyHint enables concurrent dispatch at ~2× rate · destructiveHint triggers confirm dialogslist_changed notifications · roots replace allowed-directories[25]roots/list_changed allows scope updates without reconnecting
Elicitation shipped in the June 2025 spec; neither sampling nor elicitation available in Claude Code as of June 2026.
Check clientCapabilities at runtime — this is a live contradiction worth naming in the session.[8]
description field
→
LLM treats manifest as authoritative
→
executes embedded directives
→
user sees expected output
Rug-pull variant: trusted tool updated post-approval. Manifests are not version-locked at install time.[9] Session closing provocation: when agents are both MCP clients and servers in the same pipeline, do these defences still compose?
claude -p · GitHub Actions
The 2026 MCP roadmap removes stateful session IDs to enable stateless horizontal scaling[15], and the Tasks extension (SEP-1686) enables async agent-to-agent communication via MCP. When agents become both MCP clients and MCP servers in the same pipeline, what does the tool-poisoning threat model look like?
The defences developed for human-to-agent flows may not compose cleanly when the "user" approving a manifest is another agent. Leave this open. The session earns the right to not answer it — just to name it.