[BUG] Skill frontmatter model:/effort: ignored when Claude invokes the skill via the Skill tool (applied on /skill-name)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (open duplicate #79664 was auto-closed as stale; see below)
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
A skill's model: and effort: frontmatter is applied when the user types /skill-name, but silently ignored when Claude invokes the same skill via the Skill tool. The turn keeps the session model and session effort.
Same bug as #79664 (labelled reproduced, regression; reproduced by a maintainer on v2.1.233), which was auto-closed as stale on 2026-09-23 with "open a new issue if this is still relevant". It is still present on 2.1.287. Narrower than #84262: the override is applied on the user-typed path.
What Should Happen?
Both invocation paths apply the override. The skills docs frontmatter reference says model is the "Model to use when this skill is active. The override applies for the rest of the current turn", and effort "Overrides the session effort level". Neither is limited to user-typed invocation.
Error Messages/Logs
# --debug-file, model-invoked path (no skill-model line at all):
[DEBUG] SkillTool returning 2 newMessages for skill model-probe
[DEBUG] [API:timing] dispatching to firstParty model=claude-sonnet-5-5
# --debug-file, user-invoked /model-probe:
[DEBUG] [API:timing] dispatching to firstParty model=claude-haiku-4-5-20251001
Steps to Reproduce
- In a scratch project, create
.claude/skills/model-probe/SKILL.md:
```markdown
---
name: model-probe
description: Use when the user asks to run the model probe.
model: haiku
effort: low
---
Reply with exactly the word PROBE-OK and nothing else. Do not call any tools.
```
claude --model sonnet --permission-mode default- Type
/model-probe→ both assistant messages in the session transcript have"model": "claude-haiku-4-5-20251001"; the TUI shows "thinking with low effort". - New session, prompt
Run the model probe using the Skill tool.→ Claude calls the Skill tool; all assistant messages areclaude-sonnet-5-5; no low-effort indicator, status bar stayseffort:med.
Headless gives the same result (3/3 runs): claude -p "Run the model probe using the Skill tool." --model sonnet --permission-mode default --allowedTools Skill --output-format stream-json --verbose → modelUsage contains only claude-sonnet-5-5; claude -p "/model-probe" ... → only claude-haiku-4-5-20251001.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.287 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
- In auto mode, both paths log
Skill/command model "claude-haiku-4-5-20251001" is not supported in auto mode; keeping the session model. That is documented behaviour and not part of this report. - Related: #79664, #79661, #79654 (same bug, closed), #84262 (open, broader claim), #69267 (
effort:no runtime effect).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗