CtrlK
BlogDocsLog inGet started
Tessl Logo

model-selection

Automatically applies when choosing LLM models and providers. Ensures proper model comparison, provider selection, cost optimization, fallback patterns, and multi-model strategies.

78

1.25x
Quality

56%

Does it follow best practices?

Impact

93%

1.25x

Average score across 6 eval scenarios

SecuritybySnyk

—

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./ai-llm/model-selection-majiayu000-claude-skill-registr/SKILL.md

The canonical home for this skill is model-selection in majiayu000/claude-skill-registry

SKILL.md
Quality
Evals
Security

Quality

Content

38%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-organized but heavily inlined code library: five complete implementations that belong in bundled scripts or reference files, padded with boilerplate docstrings and volatile model IDs/pricing that will go stale. The examples are concrete yet contain executable-breaking gaps (unregistered ensemble model, missing imports, undefined client variables), and the workflow lacks validation checkpoints.

Suggestions

Move the five full implementations (ModelRegistry, ModelRouter, FallbackChain, CostOptimizer, ModelEnsemble) into scripts/ or references/ files, keeping only a short pattern overview with one condensed example per pattern in SKILL.md and clearly signaled one-level-deep links to them.

Fix the executable gaps: register the claude-opus-4 model used in the ensemble example (or use a registered one), import Dict and use typing.Any in FallbackChain, and define or stub the client variables (anthropic_client, openai_client, clients) in usage blocks.

Strip boilerplate docstrings and isolate time-sensitive model IDs and pricing into a clearly-marked, updatable data section (or deprecated/old-patterns section) so stale values don't penalize the whole skill; add concrete validation steps (e.g., how to test a fallback chain) to the Auto-Apply workflow.

DimensionReasoningScore

Conciseness

Roughly 600 lines of complete Python class implementations are inlined, padded with trivial docstrings ("""Register a model.""", """Get model by ID.""") that add nothing Claude doesn't already know how to produce. Time-sensitive data — dated model IDs ("claude-sonnet-4-20250514", "gpt-4-turbo") and hardcoded prices ("input_price_per_mtok=3.00") — is not isolated in a deprecated/old-patterns section, which the rubric explicitly penalizes. Not anchor 1 because it never explains background concepts Claude already knows; the padding is boilerplate code, not tutorials.

2 / 5

Actionability

The guidance is concrete, full executable-style Python rather than pseudocode, but it has gaps beyond "minor": the ensemble example uses "claude-opus-4-20250514" which is never registered in the ModelRegistry (registry.get would return None and crash on model_config.provider), `Dict` is used in FallbackChain without being imported and `any` should be `Any`, and usage blocks reference undefined variables (anthropic_client, openai_client, clients). Not anchor 4 because those defects break execution of the flagship examples, not just trim them.

3 / 5

Workflow Clarity

The "Auto-Apply" section lists a 7-step sequence (register models, implement router, set up fallback chain, optimize, track, document, monitor) and the section order mirrors it, so a sequence is present. However the steps are abstract directions with no commands, and validation checkpoints are only implicit — "Test fallback chains regularly" appears as a checklist bullet with no how or feedback loop. Not anchor 2 because a coherent, reasonably defined sequence does exist rather than a rough sketch with many gaps.

3 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), and all five full implementations — ModelRegistry, ModelRouter, FallbackChain, CostOptimizer, ModelEnsemble — are inlined as complete class libraries in SKILL.md, which is precisely the anchor-2 condition of "content that clearly belongs in separate files is inlined". The one redeeming feature is good section headers per component, which keeps it above the structureless anchor 1 and above a flat 2 is not warranted given the volume.

2 / 5

Total

10

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A solid description that answers both what and when with a good set of natural trigger terms and a distinct niche. Its main limitation is phrasing: "Ensures proper…" lists capability domains rather than concrete actions, and the when-clause could name more explicit user-facing trigger phrases.

DimensionReasoningScore

Specificity

The description lists several specific action areas ("model comparison, provider selection, cost optimization, fallback patterns, and multi-model strategies") that map directly to the skill body's content. It falls short of anchor 5 because the actions are noun-phrase domains wrapped in the generic "Ensures proper…" rather than concrete verbs like the anchor's "Extract text and tables… fill forms… merge documents".

4 / 5

Completeness

Both parts are present: a clear what ("Ensures proper model comparison, provider selection, cost optimization, fallback patterns, and multi-model strategies") and an explicit when ("Automatically applies when choosing LLM models and providers"), so the missing-trigger cap of 3 does not apply. Not anchor 5 because the when is a single clause without the multiple concrete trigger phrases the top anchor requires.

4 / 5

Trigger Term Quality

It includes natural phrases users would say — "choosing LLM models and providers", "model comparison", "fallback" — giving good keyword coverage. Not anchor 5 because common variations and specifics are missing (e.g., "model selection", "which model", "routing", named providers).

4 / 5

Distinctiveness Conflict Risk

"Choosing LLM models and providers" carves out a clear niche with distinct triggers, and the named capabilities (fallback chains, cost optimization) further differentiate it. Minor overlap risk remains with closely related LLM skills the body itself lists (`llm-app-architecture`, `prompting-patterns`), keeping it below anchor 5.

4 / 5

Total

16

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (713 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 missing

Warning

Total

13

/

16

Passed

Repository
majiayu000/claude-skill-registry-data
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.