microsoft / microsoft/vscode

Agents window: disable-model-invocation: true prevents manual slash invocation of Agent Skills

Open
#331,477 2 comments 0 reactions 1 assignee Claimed by @aeschli View on GitHub
agents-window
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

Does this issue occur when all extensions are disabled?: No — reproduction requires GitHub Copilot Chat / the Agents window

* VS Code Version: 1.133.0
* OS Version: Windows 11 Enterprise

## Description

In the VS Code Agents window, an Agent Skill with `disable-model-invocation: true` appears in the `/` command menu, but manually invoking the skill does not load or execute it.

The same skill can be manually invoked successfully in regular VS Code GitHub Copilot Chat.

If I remove `disable-model-invocation: true` from the skill and start a new Agents-window session, the skill becomes invokable there.

This appears inconsistent with the intended behavior of `disable-model-invocation`: the setting should prevent model-initiated invocation while still permitting explicit user invocation.

## Test skill

I reproduced this with a simple `wait-what` skill installed at:

```text
C:\Users\\.agents\skills\wait-what
```

The directory is a normal directory, not a symlink or junction.

Its `SKILL.md` contains:

```yaml
---
name: wait-what
description: Stop. That last message did not land — re-pitch it.
disable-model-invocation: true
---
```

## Steps to Reproduce

### Regular GitHub Copilot Chat

1. Ensure the `wait-what` skill contains `disable-model-invocation: true`.
2. Open regular GitHub Copilot Chat in VS Code.
3. Type `/`.
4. Select or type `/wait-what`.
5. Observe that the skill is invoked successfully.

### Agents window

1. Open the VS Code Agents window.
2. Start a new Copilot session.
3. Type `/`.
4. Observe that `wait-what` appears in the command list.
5. Select or type `/wait-what`.
6. Observe that the skill is not loaded/invoked.

The skill exists on disk, but the Agents-window session does not expose it as an available skill.

### Remove `disable-model-invocation`

1. Remove this line from `SKILL.md`:

```yaml
disable-model-invocation: true
```

2. Start a new Agents-window Copilot session.
3. Invoke `/wait-what` again.
4. Observe that the skill can now be loaded/invoked.

No other change to the skill is required.

## Expected Behavior

With `disable-model-invocation: true`:

* the skill should remain visible in the `/` menu;
* the model should not invoke it automatically;
* an explicit user `/wait-what` invocation should load and execute the skill.

## Actual Behavior

In the Agents window:

* the skill appears in the `/` menu;
* automatic model invocation is disabled;
* explicit user invocation also fails to load the skill.

Removing `disable-model-invocation: true` makes the skill usable in a new Agents-window session.

This creates a mismatch between slash-command discovery and actual skill availability in the Agents window.

## Additional Information

I verified that the skill directory is not a symlink or junction:

```powershell
Get-ChildItem "$HOME\.agents\skills" -Directory |
Where-Object Name -eq "wait-what" |
Select-Object Name, LinkType, Target, Attributes
```

It reports a normal `Directory` with no `LinkType`.

The key comparison is:

```text
Regular Copilot Chat
+ disable-model-invocation: true
+ explicit /wait-what
= works

Agents window
+ disable-model-invocation: true
+ explicit /wait-what
= does not invoke skill

Agents window
+ disable-model-invocation removed
+ fresh session
= works
```

## Comparison with regular Chat

The important difference is that the same manual `/wait-what` invocation works in regular VS Code GitHub Copilot Chat but does not work in the Agents window.

This suggests the problem is specific to the Agents-window / Agent Host invocation path rather than the skill itself.

## Related issues

This appears related to, but distinct from:

- #315979 — skills appear in the `/` UI but `skill()` fails for **symlinked** skills. My reproduction uses a normal directory, so that root cause does not apply.
- #316285 — Agents-window slash commands can autocomplete successfully while the execution side fails to load the corresponding prompt content. This has a similar discovery-versus-execution symptom, but concerns local Agent Plugin prompt files rather than a normal Agent Skill with `disable-model-invocation`.
- #324645 — Agent Host has had separate runtime slash-command discovery behavior from the normal VS Code chat path.

I did not find an existing issue covering this exact combination of:

`Agents window + normal Agent Skill directory + disable-model-invocation: true + manual slash invocation fails + regular Copilot Chat succeeds`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.