Summary
A skill that is explicitly invoked with a slash command can execute and inject its instructions into context, while another lookup path reports Skill not found, creating misleading context noise.
Reproduction
Use a skill with this frontmatter:
---
name: implement
description: "Implement a piece of work based on a spec or set of tickets."
disable-model-invocation: true
---
The local skill is C:\Users\omzig\.copilot\skills\implement\SKILL.md; the relevant setting is line 4: disable-model-invocation: true.
Then run:
Observed behavior:
- The
/implement workflow is recognized and its instructions are injected into context.
- A separate skill lookup reports:
Skill not found: implement.
- The command can continue, but the error is misleading and makes it appear that the skill failed to load.
Environment: Copilot CLI 1.0.80 on Windows.
Expected behavior
disable-model-invocation: true should prevent automatic/model-driven invocation. It should not make an explicit slash-command invocation unavailable. When the explicit command path succeeds, the runtime should not perform a second conflicting lookup or emit Skill not found.
Suggested fix
Distinguish explicit slash-command invocation from automatic skill invocation. Resolve the command/skill once, honor disable-model-invocation only for automatic loading, and suppress the registry error when the explicit command path has already loaded the skill successfully.
This is primarily a context-quality issue: the implementation workflow works, but the duplicate/conflicting lookup adds noise and obscures the actual result.
Summary
A skill that is explicitly invoked with a slash command can execute and inject its instructions into context, while another lookup path reports
Skill not found, creating misleading context noise.Reproduction
Use a skill with this frontmatter:
The local skill is
C:\Users\omzig\.copilot\skills\implement\SKILL.md; the relevant setting is line 4:disable-model-invocation: true.Then run:
Observed behavior:
/implementworkflow is recognized and its instructions are injected into context.Skill not found: implement.Environment: Copilot CLI 1.0.80 on Windows.
Expected behavior
disable-model-invocation: trueshould prevent automatic/model-driven invocation. It should not make an explicit slash-command invocation unavailable. When the explicit command path succeeds, the runtime should not perform a second conflicting lookup or emitSkill not found.Suggested fix
Distinguish explicit slash-command invocation from automatic skill invocation. Resolve the command/skill once, honor
disable-model-invocationonly for automatic loading, and suppress the registry error when the explicit command path has already loaded the skill successfully.This is primarily a context-quality issue: the implementation workflow works, but the duplicate/conflicting lookup adds noise and obscures the actual result.