`disable-model-invocation: true` does not remove skill from system-reminder
Summary
According to the documentation, disable-model-invocation: true should prevent a skill's description from being loaded into context (system-reminder). In practice, the skill continues to appear in the system-reminder regardless of this flag.
Steps to reproduce
- Create a skill with
disable-model-invocation: truein its frontmatter:
\\\yaml\
---
description: "My internal skill"
user-invocable: false
disable-model-invocation: true
---
\\
- Start a new session in a project with this plugin installed
- Inspect the system-reminder
Expected: the skill description does not appear in the system-reminder listing.
Actual: the skill description appears in the system-reminder, identical to a skill without the flag.
Impact
Plugins with many internal skills (invoked by other skills, never by the user) have no way to prevent those skills from polluting the system-reminder in every conversation.
A plugin with 35 skills where 26 are internal (user-invocable: false) pays the full context cost of listing all 35 on every conversation, even though users will never interact with those 26 directly.
Expected behavior per documentation
From the skills reference docs:
disable-model-invocation: true— Set totrueto prevent Claude from automatically loading this skill. Description NOT in context.
This is not happening.
Feature request (if the above is by design)
If disable-model-invocation: true is intentionally kept in the system-reminder, please add a dedicated flag (e.g., context-visible: false or by making user-invocable: false imply exclusion from the system-reminder) so that internal skills don't contribute to ambient context bloat.
Internal skills are implementation details — they serve no purpose in the system-reminder because neither the user nor Claude should discover or invoke them autonomously.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗