Skip to content

Explicit slash skill is redundantly reloaded through model registry and fails with “Skill not found” #4451

Description

@pchung13

Describe the bug

An explicitly invoked interactive slash skill is successfully resolved and expanded into the conversation, but the assistant then attempts to load the same skill through the model-facing skill() tool. For skills excluded from model invocation, that redundant call fails with Skill not found, and the requested workflow does not start.

This differs from #4438: the interactive /skill resolver succeeds and provides the skill context. The failure happens afterward because the assistant routes the already-resolved explicit invocation back through the model-only registry.

Affected version

GitHub Copilot CLI 1.0.79

Steps to reproduce the behavior

  1. Create a personal skill at %USERPROFILE%\.agents\skills\implement.

  2. Configure agents\openai.yaml:

    interface:
      display_name: "Implement"
      short_description: "Build work from a spec or tickets"
    policy:
      allow_implicit_invocation: false
  3. Start an interactive Copilot CLI session using GPT-5.6 Sol.

  4. Invoke the skill directly:

    /implement 5514365
    
  5. The CLI successfully injects an explicit invocation message and <skill-context name="implement"> containing the skill's base directory and instructions.

  6. Instead of following that supplied context, the assistant calls the model-facing tool:

    skill: "implement"
    
  7. The tool returns:

    Skill not found: implement
    

The same session shows that skills with allow_implicit_invocation: false are absent from the model-facing registry, while skills without that policy are present. Skills under %USERPROFILE%\.copilot\skills without this policy are also present.

Expected behavior

Once an interactive slash command has resolved a skill and supplied its <skill-context>, the assistant should execute those instructions directly. It should not call the model-facing skill() tool again.

allow_implicit_invocation: false should prevent automatic model selection without breaking a direct /skill invocation that the CLI has already resolved.

Additional context

Debug logs available on request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agents

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions