Feature request: Skill tool should honor `effort` frontmatter on mid-turn invocation (chained skill inherits session effort)
What happened?
A skill's effort frontmatter is not applied when the skill is invoked via the Skill tool mid-turn (i.e. one skill's instructions tell the model to call the Skill tool to chain into another skill). The chained skill inherits the current turn/session effort instead of its declared level.
The docs describe effort as:
effort: Effort level when this skill is active. Overrides the session effort level. Default: inherits from session. Options:low,medium,high,xhigh,max.
That override only takes effect at a turn boundary — when the skill is the entry point (user types the slash command) or runs in a subagent (context: fork). When a skill is invoked via the Skill tool inside an already-in-progress turn, its effort is silently ignored.
This is the same class of problem as #17283 (Skill tool ignores context: fork and agent: frontmatter on mid-turn invocation). #17283 did not mention effort; this issue requests that effort also be honored.
Why it matters
Composable skill workflows are a common pattern: a set of skills where each stage hands off to the next by calling the Skill tool, and each stage declares its own effort (e.g. a planning/synthesis skill at effort: max, lighter stages lower). Today, the moment the chain auto-invokes the next skill, every stage runs at whatever the session effort happens to be — the per-skill effort declarations are dead weight inside the chain. The only workarounds are (a) set the whole session to the highest level (loses per-skill differentiation), or (b) make the user type each command manually (defeats the point of chaining).
Steps to reproduce
- Create skill
plannerwith frontmattereffort: max. - Create skill
starterwhose instructions end by invokingplannervia theSkilltool. - Set session effort below max, e.g.
/effort xhigh. - Run
/starter. When it chains intoplanner, observe the status line: it thinks at xhigh (the session level), not max (the skill's declared level).
Invoking /planner directly as a slash command correctly runs at max — confirming the gap is specific to Skill-tool (mid-turn) invocation.
Expected behavior
When a skill is invoked via the Skill tool, its effort frontmatter should override the current effort for that skill's execution, just as it does when the skill is invoked as a slash command — consistent with the documented "Overrides the session effort level" semantics.
Environment
- Claude Code v2.1.163 (native install), macOS (Darwin 25.1.0)
- Model: claude-opus-4-8
- Reproducible regardless of model.
Related
- #17283 — Skill tool should honor
context: forkandagent:frontmatter (same root cause: turn-boundary-only frontmatter ignored on mid-turnSkill-tool invocation; that issue coverscontext/agent, this one coverseffort).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗