`disable-model-invocation: true` ignored in `.agents/skills/`

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Issue: the disable-model-invocation: true frontmatter field is ignored for skills in .agents/skills/. Skills with this flag are still shown to the model and can be auto-inferred.

Actual: The flag works correctly in ~/.cursor/skills-cursor/ and .cursor/skills/, but is ignored in .agents/skills/.

Steps to Reproduce

  1. Add disable-model-invocation: true to any .agents/skills/*/SKILL.md frontmatter
  2. Start an agent conversation
  3. Observe the skill still appears in the model’s available skills list

Expected Behavior

skills with disable-model-invocation: true should be hidden from the model’s skill list — only accessible via explicit /skill-name invocation.

Operating System

MacOS

Version Information

Version: 3.12.17
VS Code Extension API: 1.128.0
Commit: 0fb762053c34788bb7760d5673f8a6d4c8589d50
Date: 2026-07-17T02:53:53.006Z
Layout: Agent Window
Build Type: Stable
Release Track: Nightly
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Darwin arm64 25.5.0

For AI issues: which model did you use?

Opus 4.6 High

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hi @ofir-drift!

Thanks for the report.

Is it possible that you have the same skill in another folder, like .claude/skills/ or .codex/skills/, or a user-level ~/.agents/skills/, that doesn’t include the disable-model-invocation flag*? It’s possible that in attempting to dedupe the skills, a copy without the flag wins.

Hey @Colin

No, I have tested this thoroughly.

Generate an example skill with disable-model-invocation: true at .agents/skills/ and ask the agent if he see the skill in the <available_skills>section. It shouldn’t appear in this section.

Repeat the test on .cursor/skills (preferably with different skill name from the previous test)
Make sure you open new-session or re-open cursor to make an hard refresh after you change the either of the skills folder.

Also reproduces on Cursor CLI

Hey @ofir-drift

I’ve done that! Here’s my example skill:

---
name: example-explicit-skill
description: >-
  Drafts concise release notes from git history between two refs. Use only when
  the user invokes /example-explicit-skill or asks to run the example explicit
  skill — not for general changelog or release work.
disable-model-invocation: true
---

# Example Explicit Skill

This skill is an **example** of a project skill under `.agents/skills/` with `disable-model-invocation: true`. The agent should **not** auto-load it from ambient context; it applies only when the user names it (for example `/example-explicit-skill`).

## When to run

Proceed only if the user explicitly requested this skill. If they asked for release notes without naming this skill, do not use these instructions.

## Release notes workflow

1. Confirm the base and head refs (defaults: `main` and `HEAD`).
2. Run `git log <base>..<head> --oneline --no-decorate` to list commits.
3. Group commits by theme (features, fixes, chores). Skip merge commits unless they carry user-visible changes.
4. Write notes in present tense, user-facing language. Omit internal refactors with no external effect.

## Output template
....
## Quality checks

- Every bullet maps to at least one commit in the range.
- No speculative items; if scope is unclear, say so in one line under Highlights.
- Keep the full output under ~40 lines unless the user asks for detail.

If I switch disable-model-invocation to false, it can be seen.

Let me know if my skill looks any different from yours!

I have tested this on an empty repo and it didn’t reproduce, for some reason in our repo it still happens.

From further investigation its not clear if its in the context or did the agent read files or did it exist in the context. Do you have any idea what might be the issue in our repo?

The prompt I used for asking

show me the full available skill list

result

Workspace Skills (.agents/skills/):

  1. REDUCATED
  2. example-explicit-skill (untracked)
  3. REDUCATED

Personal Skills (~/.cursor/skills-cursor/):
72. babysit
73. create-hook
74. create-rule
75. create-skill
76. loop
77. review-bugbot
78. review-security
79. sdk
80. split-to-prs
81. statusline
82. update-cli-config

the “untracked” was suspicious for me so i asked the next question

do you see example-explicit-skill in the context or did you see it in the files

and i got this answer

I saw it in the context — specifically in the git status shown at the start of the conversation:

?? .agents/skills/example-explicit-skill/

It appeared as an untracked directory. It was not listed in the <available_skills> section provided by the system, which is why I marked it with (untracked) in my list. I should not have included it as an “available
skill” since it wasn’t actually in the skill list — that was a mistake on my part.

I didn’t see git status invocation so I don’t know where it got it from but it seems like the <available_skills> doesn’t contain the explicit skill