[BUG] Skill effort: frontmatter changes session effortLevel but doesn't reset after skill completes
Description
When a skill with effort: high in its YAML frontmatter is invoked via the Skill tool, the session's effortLevel is changed to high. After the skill completes, the effort level stays at high for the remainder of the session instead of resetting to the global default from settings.json.
Steps to Reproduce
- Set
"effortLevel": "medium"in~/.claude/settings.json - Create a skill with
effort: highin its SKILL.md frontmatter - Start a new session — effort level shows as "medium"
- Invoke the skill via
/skill-name - After skill completes, check effort level — it is now "high"
- All subsequent conversation uses high effort until user manually toggles it back
Expected Behavior
After a skill completes, the session effortLevel should revert to the global default defined in settings.json (in this case "medium"). The skill's effort: frontmatter should be scoped to the skill execution only.
Actual Behavior
The effort level stays at the skill's effort: high value for the entire session after the skill finishes. The user has to manually toggle it back to medium.
Environment
- Claude Code v2.1.88
- OS: Linux (WSL2)
- Observed with both project-level and global skills
Workaround
PostToolUse hook on Skill matcher that emits an advisory reminder to reset effort level. Additionally, auditing all skills to minimize unnecessary effort: high usage.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗