[BUG] Subagent frontmatter `model: claude-opus-4-8` silently ignored — subagent runs on the parent model (Fable 5.1) in 2.1.259

Status Open
Reported on v2.1.259
Maintainer reply None cached
Activity 1 comment · opened Sep 3, 2026

Summary

A custom subagent whose definition carries model: claude-opus-4-8 in its frontmatter is spawned on the parent session's model (Fable 5.1) instead. No warning is shown. The task header in the terminal reads Fable 5.1, the token/time line confirms it.

Environment

  • Claude Code 2.1.259, macOS (Darwin 25.5.0), terminal (zsh)
  • Session model: claude-fable-5-1[1m] (from ~/.claude/settings.json "model")
  • Agent definition: ~/.claude/agents/frontend-developer.md (user-scoped)

Agent frontmatter

---
name: frontend-developer
description: Use for ALL frontend work - Svelte 5 components, ...
color: green
model: claude-opus-4-8
skills:
  - superpowers:verification-before-completion
  - superpowers:systematic-debugging
  - frontend-design:frontend-design
---

Steps to reproduce

  1. Start an interactive session on claude-fable-5-1.
  2. Add model: claude-opus-4-8 to the frontmatter of a user-scoped agent in ~/.claude/agents/<name>.md (in our case the line was added during the session, before the spawn).
  3. Spawn it via the Agent tool with subagent_type: "<name>" and no model override.
  4. Open the task in the task list.

Expected

The subagent runs on claude-opus-4-8 (the Agent tool's own description says the model "comes from its definition (.claude/agents/*.md frontmatter)"), or Claude Code refuses/warns when the frontmatter value cannot be honoured.

Actual

The task header shows Fable 5.1. The subagent inherited the parent model. Nothing in the UI or the tool result said the pin was ignored.

Notes / hypotheses

  • Agent definitions may be read once at session start and cached, so a frontmatter edit made mid-session is never seen. If that is the design, a mid-session spawn should at least say which model it resolved to.
  • Alternatively the frontmatter model field may accept only the aliases (sonnet / opus / haiku) and silently drop a full model id such as claude-opus-4-8. The docs are not explicit about full ids being accepted here.
  • Related observation in the same session: passing model: "opus" on the Agent call resolved to claude-opus-5 (the 529 overload errors named that model). So there is currently no working way to pin a subagent to Opus 4.8 from an Opus 5 / Fable 5.1 parent: the alias floats to the newest Opus, and the full id in the frontmatter is ignored.

Ask

  1. Honour a full model id in agent frontmatter, or document that only aliases are accepted.
  2. Re-read agent definitions on spawn (or surface the resolved model in the spawn result / task header so a mismatch is visible).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗