[BUG] teammateDefaultModel in settings.json is silently ignored, while the published JSON schema declares it valid there
Environment
- Claude Code v2.1.220
- macOS (Darwin 25), terminal CLI
- claude.ai Max subscription auth
What happened
I added "teammateDefaultModel": "sonnet" to ~/.claude/settings.json. The key validates cleanly against the published JSON schema (https://json.schemastore.org/claude-code-settings.json), which lists teammateDefaultModel as a settings.json property.
Per the docs' Global config settings section, however, the key is only read from ~/.claude.json:
"These settings are stored in~/.claude.jsonrather thansettings.json. If you add these keys tosettings.json, Claude Code silently ignores them at startup."
The result: the setting is silently ignored, no warning is emitted anywhere, and agent-team teammates keep inheriting the lead's model. Because the schema says the key is valid, editor validation actively reinforces the misconfiguration instead of catching it.
Expected behavior
Preferred: (a) promote teammateDefaultModel to settings.json like the other /config preference keys migrated in v2.1.119. "Default model for my teammates" is a portable user preference (and a cost control), not machine-local state — unlike the IDE-shaped keys in that table (autoConnectIde, diffTool, etc.). Users who sync dotfiles across machines currently cannot make this setting portable at all, since ~/.claude.json is tool-managed state that isn't sync material.
Failing that, either would remove the trap:
- (b) emit a startup warning when a global-config-table key is found in a settings.json file (precedent: the v2.1.210 startup warning for
Write(path)/Glob(path)permission rules), or - (c) remove
teammateDefaultModel(and the other five global-config keys) from the settings.json JSON schema so validation matches runtime behavior.
Repro
- Ensure
~/.claude.jsonhas noteammateDefaultModelkey. - Add
"teammateDefaultModel": "sonnet"to~/.claude/settings.json(validates against the schema). - Start a session with agent teams enabled (
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1), spawn a teammate without specifying a model. - Teammate inherits the lead's model; the configured
sonnetdefault is never applied and nothing reports the key as ignored.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗