| name | model-optimizer-universal |
| description | Universal model selection skill. Works for any user type and domain. Checks whether the active Claude model matches the complexity of the current task and recommends switching when there is a mismatch. Catches waste in both directions: powerful models on trivial tasks, underpowered models on complex ones.
Adapts to a personal calibration profile when one is present in project instructions. Run ONBOARDING.md once to generate yours.
TRIGGER on any actionable request: write, build, create, analyze, debug, fix, design, summarize, translate, explain, plan, draft, code, review, research, compare, set up, generate, automate. Trigger for simple tasks (short emails, translations) AND complex ones (full apps, architectures, research synthesis).
Also trigger on explicit commands: model check, check my model, am I on the right model, which model should I use.
DO NOT trigger on: pure conversation (thanks, ok, hi), follow-up messages continuing an ongoing task, or A/B replies to the confirmation menu.
|
Model Optimizer — Universal
Evaluate whether the active Claude model matches the complexity of the
current task. Output a short verdict block. Pause for user confirmation
if there is a mismatch.
Availability note (June 2026): Fable 5 access was suspended on
June 12 2026 to comply with a US government directive, and may or
may not be available when this skill runs. The Fable 5 tier is kept
in the logic below so the skill is ready if access returns. If the
user's calibration profile or available models do not list Fable 5,
treat Ultra-High tasks as best served by Opus and never recommend
Fable 5. Only recommend Fable 5 when it is explicitly listed as
available to the user.
Step 0 — Check for a calibration profile
Before scoring, scan the project instructions or system context for a
block that starts with # Model Optimizer Calibration Profile.
If found:
→ Read the domain signals section
→ Add those domain-specific points to the base score in Step 2
→ Read the plan line if present and apply the plan adjustment in Step 3
→ Note in the Why line that calibration is active
If not found:
→ Proceed with base scoring only
→ No mention of calibration in the output
Plan adjustment
If the calibration profile contains a Plan: line, adjust how aggressively
the skill pushes users away from heavy models. Lighter plans hit their
limit faster, so the skill protects them harder.
| Plan | Behavior |
|---|
| Pro | Aggressive. Push toward Haiku and Sonnet wherever they are valid. Recommend Opus only on High, Fable 5 only on Ultra-High with an explicit cost warning. |
| Max 5x | Balanced. Standard thresholds apply with no extra penalty. |
| Max 20x | Permissive. Allow Opus on Medium-High without flagging it as waste. Fable 5 still requires Ultra-High. |
If no plan is specified, default to Max 5x behavior (balanced).
Step 1 — Detect the active model
Read the model identifier from the system prompt.
Known model identifiers and their tiers
| Model identifier (any format) | Family | Tier |
|---|
| claude-fable-5, Claude Fable 5, Fable 5, Fable | Fable | 4 — Ultra Heavy |
| claude-opus-4-8, Claude Opus 4.8, Opus 4.8 | Opus | 3 — Heavy |
| claude-opus-4-6, Claude Opus 4.6, Opus 4.6 | Opus | 3 — Heavy |
| claude-opus-4, Claude Opus 4, Opus 4 | Opus | 3 — Heavy |
| claude-opus-3, Claude Opus 3, claude-3-opus | Opus | 3 — Heavy |
| claude-sonnet-4-6, Claude Sonnet 4.6, Sonnet 4.6 | Sonnet | 2 — Balanced |
| claude-sonnet-4, Claude Sonnet 4, Sonnet 4 | Sonnet | 2 — Balanced |
| claude-sonnet-3-7, claude-3-7-sonnet, Sonnet 3.7 | Sonnet | 2 — Balanced |
| claude-sonnet-3-5, claude-3-5-sonnet, Sonnet 3.5 | Sonnet | 2 — Balanced |
| claude-haiku-4-5, Claude Haiku 4.5, Haiku 4.5 | Haiku | 1 — Light |
| claude-haiku-3, claude-3-haiku, Haiku 3 | Haiku | 1 — Light |
If the model cannot be identified, output:
⚡ MODEL CHECK
Current model : Unknown — please verify your model in the interface
Then continue with Steps 2 through 4, using "Unknown" as the current
model label.
Step 2 — Score task complexity
Read the full user request. Add up points for every signal present.
Be generous when in doubt — score higher rather than lower.
If a calibration profile is active, add domain-specific points after
completing the base score.
Base scoring table
| Signal | Points |
|---|
| Content complexity | |
| Novel reasoning or open-ended problem with no clear answer | +3 |
| Deep synthesis of multiple sources, systems, or disciplines | +3 |
| Ambiguous or under-specified problem requiring significant inference | +2 |
| Multi-step logical chain where steps depend on each other | +2 |
| Technical explanation requiring domain expertise | +2 |
| Standard analysis, comparison, or structured thinking | +1 |
| Factual lookup, single-concept definition, or basic Q&A | 0 |
| Scope complexity | |
| Full application, end-to-end system, or complete autonomous workflow | +3 |
| Multi-file, multi-module, multi-service, or multi-agent task | +3 |
| Long document or large dataset (10+ pages or 5000+ words) | +2 |
| Multiple distinct deliverables requested in a single prompt | +2 |
| Single-feature implementation or medium-length document | +1 |
| Single function, single paragraph, or short standalone output | 0 |
| Output complexity | |
| Agentic or autonomous multi-turn execution | +3 |
| Full system or architecture design decision | +2 |
| Complete professional document (strategy, report, proposal, spec) | +2 |
| Structured output with multiple named sections | +1 |
| Short formatted output (email, social post, bullet list) | 0 |
| Plain conversational answer | 0 |
| Domain complexity | |
| Expert-level reasoning in any specialized field | +2 |
| Advanced technical work (distributed systems, security, ML, infra) | +2 |
| Standard technical work, scripting, or data processing | +1 |
| General writing, communication, translation, or everyday reasoning | 0 |
| Fable 5 triggers (cumulative — add to total above) | |
| Autonomous task designed to run for several hours or multiple days | +5 |
| 3 or more documents each exceeding 50 pages, synthesized simultaneously | +4 |
| Task where the current model previously failed or required excessive correction | +4 |
| Expert-level analysis across 3 or more dense specialized sources | +3 |
Score to complexity tier
| Total score | Complexity level | Best model fit |
|---|
| 0 to 2 | Low | Haiku |
| 3 to 5 | Medium-Low | Haiku or Sonnet |
| 6 to 9 | Medium | Sonnet |
| 10 to 13 | Medium-High | Sonnet or Opus |
| 14 to 17 | High | Opus |
| 18+ | Ultra-High | Fable 5 |
⚠️ Compliance check for Fable 5: Fable 5 imposes a mandatory
30-day data retention policy. If zero data retention is required,
use Opus regardless of the score.
⚠️ Cost check for Fable 5: Effective cost on real tasks is 3 to 5x
Opus, not 2x, because Fable 5 uses more tokens on complex problems.
Only recommend Fable 5 when Opus has plateaued or failed on the
same task.
Border zone tie-breaker (Medium-Low and Medium-High):
- User is on the lighter of the two valid models: match, no mismatch.
- User is on the heavier of the two valid models: flag as mismatch (overqualified).
Step 3 — Apply the decision matrix
Cross the current model tier with the complexity tier.
| Current model | Low | Medium-Low | Medium | Medium-High | High | Ultra-High |
|---|
| Haiku | Match | Match | Mismatch — upgrade to Sonnet | Mismatch — upgrade to Sonnet | Mismatch — upgrade to Opus | Mismatch — upgrade to Fable 5 |
| Sonnet | Mismatch — downgrade to Haiku | Match | Match | Match | Mismatch — upgrade to Opus | Mismatch — upgrade to Fable 5 |
| Opus | Mismatch — downgrade to Haiku | Mismatch — downgrade to Sonnet | Mismatch — downgrade to Sonnet | Match | Match | Mismatch — upgrade to Fable 5 |
| Fable 5 | Mismatch — downgrade to Haiku | Mismatch — downgrade to Sonnet | Mismatch — downgrade to Sonnet | Mismatch — downgrade to Opus | Mismatch — downgrade to Opus | Match |
Step 4 — Output the verdict block
Output the block with no preamble and no text before it.
⚡ MODEL CHECK
Current model : [full model name]
Task : [3 to 6 word summary of the request]
Complexity : [Low / Medium-Low / Medium / Medium-High / High / Ultra-High]
Score : [total points from Step 2]
Verdict : [see phrasing table below]
Why : [one sentence, max 15 words, plain language, no jargon]
Verdict phrasing
| Situation | Verdict line |
|---|
| Match | ✅ Good fit — proceeding now |
| Overqualified by 1 level | ⬇️ Sonnet would handle this — switch to save your usage |
| Overqualified by 2 levels | ⬇️ Even Haiku handles this — current model is significantly overkill |
| Fable 5 on Medium or below | ⬇️ Opus or Sonnet are sufficient — Fable 5 is waste on this task |
| Fable 5 on High | ⬇️ Opus handles this — Fable 5 adds 3 to 5x cost for no real gain |
| Underpowered by 1 level | ⬆️ Sonnet would be more reliable for this task |
| Underpowered by 2 levels | ⬆️ This task needs Opus — current model is likely to struggle |
| Underpowered, needs Fable 5 | ⬆️ This task needs Fable 5 — Opus has likely plateaued here |
Step 5 — Confirmation menu (mismatch only)
When the verdict is NOT a match, do not start the task. Output the menu
immediately after the verdict block and wait.
Continue with [current model], or switch before we start?
A — Keep [current model] and start now
B — Switch to [recommended model] first (recommended)
No other text. Wait for the user's reply.
Interpreting the reply
| User says | Action |
|---|
| A / yes / keep / continue / go / start / ok | Proceed with the task immediately. No further comment about the model. |
| B / switch / change / new / recommended | Output the redirect message. Stop. Do not start the task. |
| Anything else or ambiguous | Ask once: "A to keep [current model], or B to switch to [recommended model]?" |
Redirect message (B only)
To switch:
1. Open a new conversation
2. Select [recommended model] in the model selector
3. Paste your request there
Stopping here to preserve your [current model] usage.
Step 6 — After the verdict
| Outcome | What to do |
|---|
| Match | Proceed with the task immediately after the verdict block. No menu. |
| Mismatch, user chose A | Proceed with the task immediately. Never mention the model again. |
| Mismatch, user chose B | Output redirect message. Stop. Zero task output. |
Never re-run the model check on follow-up messages within the same
ongoing task.
Hard rules
- Run the model check before every new task without exception.
- Never output any text before the verdict block.
- Match: proceed immediately after the verdict block, no menu.
- Mismatch: show the menu, wait, never proceed unilaterally.
- User chooses B: output the redirect message, stop, produce zero task output.
- User chooses A: proceed immediately, never mention the model again.
- Do not re-run the check on follow-up messages within the same task thread.
- Always name the recommended model explicitly.
- Keep the Why line under 15 words, plain language, no jargon.
- When in doubt on scoring, round up.
- If calibration profile is active, always apply domain signals before
producing the verdict. Never ignore a loaded profile.
Examples
Haiku on a simple translation (match)
User: "Translate this sentence to Spanish: 'The meeting is confirmed for Monday.'"
Scoring: factual/simple 0, single short output 0, general 0 = 0 → Low
⚡ MODEL CHECK
Current model : Claude Haiku 4.5
Task : Translate one sentence
Complexity : Low
Score : 0
Verdict : ✅ Good fit — proceeding now
Why : Single-sentence translation needs no advanced reasoning.
Sonnet on a data analysis task (match)
User: "Analyze this CSV of monthly sales data and highlight the top 3 trends."
Scoring: standard analysis +1, structured output +1, standard technical work +1 = 3 → Medium-Low (Sonnet is valid)
⚡ MODEL CHECK
Current model : Claude Sonnet 4.6
Task : Analyze monthly sales trends
Complexity : Medium-Low
Score : 3
Verdict : ✅ Good fit — proceeding now
Why : Standard data analysis is well within Sonnet's range.
Opus on a short email (mismatch, downgrade)
User: "Write a quick thank-you email to my client."
Scoring: standard writing +1, short output 0, general communication 0 = 1 → Low
⚡ MODEL CHECK
Current model : Claude Opus 4.8
Task : Write short thank-you email
Complexity : Low
Score : 1
Verdict : ⬇️ Even Haiku handles this — current model is significantly overkill
Why : A short email needs no advanced reasoning — any model works.
Continue with Opus, or switch before we start?
A — Keep Opus and start now
B — Switch to Haiku first (recommended)
Sonnet on a complex architecture task (mismatch, upgrade)
User: "Design the full architecture for a distributed event-driven
microservices platform with Kafka, Redis, and Postgres, including
failover and data consistency guarantees."
Scoring: novel reasoning +3, deep synthesis +3, multi-step chain +2,
full system +3, architecture decision +2, advanced technical +2 = 15 → High
⚡ MODEL CHECK
Current model : Claude Sonnet 4.6
Task : Design distributed microservices architecture
Complexity : High
Score : 15
Verdict : ⬆️ This task needs Opus — current model is likely to struggle
Why : Multi-system architecture with consistency guarantees needs Opus-level depth.
Continue with Sonnet, or switch before we start?
A — Keep Sonnet and start now
B — Switch to Opus first (recommended)
Opus on a multi-day autonomous research task (mismatch, upgrade to Fable 5)
User: "Run a full autonomous research workflow over the next 24 hours:
scrape all public filings for 12 companies, synthesize 4 reports per
company, build a comparative analysis, and produce a final investment
memo with sourced recommendations."
Scoring: deep synthesis +3, novel reasoning +3, multi-step chain +2,
full autonomous workflow +3, multiple deliverables +2, long documents +2,
expert-level reasoning +2 = 17 base + autonomous multi-day task +5 = 22 → Ultra-High
⚡ MODEL CHECK
Current model : Claude Opus 4.8
Task : 24h autonomous multi-company research workflow
Complexity : Ultra-High
Score : 22
Verdict : ⬆️ This task needs Fable 5 — Opus has likely plateaued here
Why : Multi-day autonomous run across 48 documents exceeds Opus reliability.
Continue with Opus, or switch before we start?
A — Keep Opus and start now
B — Switch to Fable 5 first (recommended)
Fable 5 on a routine task (mismatch, downgrade)
User: "Summarize this one-page article in 3 bullet points."
Scoring: standard analysis +1, short output 0, general 0 = 1 → Low
⚡ MODEL CHECK
Current model : Claude Fable 5
Task : Summarize one-page article
Complexity : Low
Score : 1
Verdict : ⬇️ Even Haiku handles this — current model is significantly overkill
Why : Summarizing a short article burns Fable 5 usage for no quality gain.
Continue with Fable 5, or switch before we start?
A — Keep Fable 5 and start now
B — Switch to Haiku first (recommended)