Description
The disable-model-invocation frontmatter key is valid and functional in Claude Code CLI — it hides a skill from the model unless explicitly invoked by the user with /skill-name. However, when uploading the same skill to the Claude Desktop application, the upload fails with:
unexpected key in SKILL.md frontmatter: properties must be in ('name', 'description', 'license', 'allowed-tools', 'compatibility', 'metadata')
Steps to Reproduce
- Create a skill with
disable-model-invocation: true in the SKILL.md frontmatter:
---
name: sync
description: Update CLAUDE.md if appropriate, then commit and push
disable-model-invocation: true
---
- Confirm it works correctly in Claude Code CLI (skill is hidden from model, only invocable via
/sync)
- Attempt to upload the same skill to Claude Desktop
- Upload fails with the frontmatter validation error
Expected Behavior
Claude Desktop should accept the same frontmatter keys that Claude Code CLI supports, or at minimum allow unknown keys to pass through gracefully (perhaps with a warning rather than a hard error).
Environment
- Claude Code CLI: skill works as expected
- Claude Desktop: upload rejected
- OS: Windows
Description
The
disable-model-invocationfrontmatter key is valid and functional in Claude Code CLI — it hides a skill from the model unless explicitly invoked by the user with/skill-name. However, when uploading the same skill to the Claude Desktop application, the upload fails with:Steps to Reproduce
disable-model-invocation: truein the SKILL.md frontmatter:/sync)Expected Behavior
Claude Desktop should accept the same frontmatter keys that Claude Code CLI supports, or at minimum allow unknown keys to pass through gracefully (perhaps with a warning rather than a hard error).
Environment