Feature: semantic model tier aliases for agents, skills, and commands
Problem
When defining agents in .claude/agents/, the model: frontmatter field accepts specific tier names (opus, sonnet, haiku). While these auto-resolve to the latest model in each tier (e.g., opus → Opus 4.6), the naming is still tied to Anthropic's current product line.
Two issues:
- No
model:support in skills (.claude/skills/) or commands (.claude/commands/). Only agents support explicit model selection.
- Tier names are product names, not intent-based. When specifying
model: opus, the intent is "use the most capable model available" — but the name doesn't convey that. Similarly,haikumeans "use the fastest/cheapest model" but reads as a specific product.
Proposal
Semantic aliases for model tiers
Support intent-based aliases alongside product names:
| Alias | Maps to | Intent |
|-------|---------|--------|
| best / most-capable | opus | Most capable model available |
| balanced | sonnet | Balance of speed and capability |
| fast / cheapest | haiku | Fastest, lowest cost |
Example in agent frontmatter:
model: best # Always uses most capable model
model: fast # Always uses fastest model
Extend model: support to skills and commands
Allow .claude/skills/*/SKILL.md and .claude/commands/*.md to specify a model: field in their YAML frontmatter, similar to agents.
Use case
In a project with 10+ agents, some need the most capable model (documentation writing, complex analysis) while others could use a faster model. When new model generations arrive, the intent ("use the best") should persist without requiring manual updates to every agent file.
Current workaround: agents without explicit model: inherit the parent session's model, which works well. But having semantic aliases would make explicit model choices more maintainable and self-documenting.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗