Skip to content

disable-model-invocation: true does not suppress skill descriptions from context #31935

Description

@srstomp

Summary

Skills with disable-model-invocation: true in their YAML frontmatter still have their descriptions loaded into the system-reminder skill list in every conversation. The flag correctly prevents auto-invocation by the model, but the descriptions still consume context tokens unnecessarily.

Expected behavior

Skills with disable-model-invocation: true should NOT appear in the skill description list injected into the system-reminder. These are user-only skills (invoked via slash commands) — the model never needs to see their descriptions since it can't invoke them.

Actual behavior

All skill descriptions are loaded into context regardless of the disable-model-invocation flag. For a plugin with 23 skills where 6 are process skills marked disable-model-invocation: true, this adds ~200-300 unnecessary tokens per conversation.

Reproduction

  1. Create a plugin skill with this frontmatter:
---
name: my-process-skill
description: This description should not appear in context
disable-model-invocation: true
---
  1. Start a conversation with the plugin loaded
  2. Observe the system-reminder skill list — the skill's description is present

Environment

  • Claude Code v2.1.71
  • macOS (Darwin 25.2.0)

Additional context

The disable-model-invocation flag was added specifically for process skills that are only meaningful when invoked by the user via slash commands (e.g., /work, /plan). The model has no reason to see these descriptions since it cannot auto-invoke them. Suppressing them from the description list would reduce context overhead for plugins with many skills.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions