disable-model-invocation and user-invocable are independent Copilot fields: the first gates whether the runtime auto-selects an agent (i.e. whether its description is a routing string), the second only gates manual invocation. An agent can be disable-model-invocation: false plus user-invocable: false and still be model-routed, so the old bullet conflated two unrelated contracts under one trigger. Fixes: #125 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EeH8SCbcrCAQrtymkNuhKP