model-catalog
Skill1 starsChanged 3 months agoMITView on GitHub
Read the enriched SpiderGate model catalog to PICK a concrete model for a task under a budget — the rich, cited profile behind each model plus a public leaderboard and the per-model eval prior. Trigger on: "which model is best for <task>", "best model for coding under $X", "cheapest model that can do vision / function calling", "compare model benchmarks", "model leaderboard", "rank models for planning", "read the evals for <model>", "what's the eval score for gpt-4o on coding", "pick a concrete model", "enriched model catalog", "per-provider pricing for a model", "how much does <model> cost across providers", "provenance / source for a benchmark", "best model for coding / vision / reasoning", "which capability categories are there", "rank models by category score", "per-category quality score". This skill teaches the READ surface — choosing a model. It does NOT send completions (that's use-the-gateway) and does NOT author catalog copy or edit the category taxonomy (that's admin-only). Read it before you call a model you picked from the catalog: the string to send is the row's `call_as`.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Adham-Aly/quartermastertheir own version, first seen Nov 1, 2026
- Adham-Aly/implement-looptheir own version, first seen Nov 1, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Adham-Aly/implement-loop★ 1same name
- Adham-Aly/quartermaster★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository31 other files it gives its agents.
- internet-data-accessSkill
- manage-browser-profilesSkill
- company-intelSkill
- lookup-company-dataSkill
- lead-enrichmentSkill
- lead-searchSkill
- run-enrichment-pipelineSkill
- spiderflowsSkill
- client-aliasesSkill
- events-streamSkill
- generate-mediaSkill
- key-setupSkill
- studio-promptsSkill
- use-the-gatewaySkill
- spidermailSkill
- scrape-google-mapsSkill
- spideriq-media-catalogSkill
- find-people-extract-linkedin-profileSkill
- submit-press-releaseSkill
- spiderpublishSkill
- capture-landing-pageSkill
- extract-website-brandingSkill
- research-websiteSkill
- scrape-website-extract-leadsSkill
- social-media-enrichmentSkill
- verify-email-deliverabilitySkill
- stitch-video-extract-framesSkill
- vayapinSkill
- authSkill
- integrationsSkill
- workspaceSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
All reads are LIST-ONLY — not metered, not billable (same class as listModels).
- Very specific: line 66
Call the winner: send its
call_as: Every catalog row carries call_as, the exact model string to pass to use-the-gateway's chat for that … - Very specific: line 98
Leaderboard rows carry
idand nocall_as: Before you call a ranked model, read it with getModel(id) and send that record's call_as.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Model Catalog (pick a model for a task, under a budget)
SpiderGate's catalog turns bare model specs into a rich, cited profile: spec + authored editorial + benchmarks + a live per-provider price/latency snapshot + reference links + an evals aggregate, every sourced field carrying provenance. On top of it sits a public model×task leaderboard and a per-model #7 evals aggregate — the shared prior a planner blends against its own experience.
┌── GET /catalog/leaderboard?task_type=coding (PUBLIC — no PAT)
│ models ranked by auto-eval score, each row: headline benchmark
│ + cheapest live blended $ across providers
│
your ──Bearer PAT──▶ GET /catalog/models?fields=capabilities,pricing,per_provider,evals
agent │ enriched rows, narrowed to the sections you need
│ ├── GET /catalog/models/{id} full record for one
│ └── GET /catalog/models/{id}/evals the #7 prior (per task)
│
▼ pick a row ──▶ read its call_as ──▶ use-the-gateway chat(model: <call_as>)
call_as is null ──▶ the shared pool cannot serve that row nowAll reads are LIST-ONLY — not metered, not billable (same class as listModels).
Approach
- "Best model for
<task>under$X" — the headline job. Rank on the leaderboard for the task, then filter the returned rows by the blended price. → references/best-model-under-budget.md. - Compare a shortlist in depth — pull the enriched catalog with
fields=to narrow, orgetModelone record: spec, capabilities, per-provider pricing, benchmarks, evals side by side. → references/enriched-catalog.md. - Trust the eval prior — read the per-model #7 aggregate (auto rollups +
human ratings) for a task before you rely on a model for it; a
nullscore means "no contribution yet", not zero. → references/evals-as-prior.md. - "Best model for a capability" (coding, vision, reasoning…) — a different
axis from the eval prior: rank by the benchmark-derived per-category
percentile.
listCategories()to see the 9 categories + how many models each scores, thenleaderboard(category=<key>, sort=score)to rank; read a specific model's own scores withlistCatalog(fields=category_scores)/getModel(model_id)(it takes nofieldsand returns every section). Only ~19% of models are scored — an emptycategory_scores[]means "unscored", not "bad". → references/pick-by-category.md. - Call the winner: send its
call_as. Every catalog row carriescall_as, the exactmodelstring to pass touse-the-gateway'schatfor that row right now, ornull. If it isnull, the shared pool cannot serve that row now; it does not cover your brand's own unshared keys. Do not send the row'sidormodel_idinstead. You do not have to route through a task alias. → references/enriched-catalog.md.
Decision tree
| You want to… | Method | Auth |
| Rank models for a task (+ budget) | leaderboard(task_type=…) | public |
| Rank models for a capability category | leaderboard(category=…, sort=score) | public |
| See the capability categories (+ scored counts) | listCategories() | brand PAT |
| Compare a set on spec/price/evals/category scores | listCatalog(fields=…) | brand PAT |
| Inspect one model fully | getModel(model_id) | brand PAT |
| Read the eval prior for a model×task | modelEvals(model_id, task_type=…) | brand PAT |
| Call the model you picked | read the row's call_as (listCatalog row or getModel(id)), then chat(model: <call_as>) in use-the-gateway | brand PAT |
The rules that trip agents up
<HARD-GATE name="send-call-as-not-the-id">
To call a model from the catalog, send its **`call_as`**. If `call_as` is `null`,
the shared pool cannot serve that row now.- A row's
idis a lookup key. For a Codex row theidand themodel_idare both refused asmodel; the row is called ascodex/<model_id>, and that is what itscall_asholds while the gateway holds a pooled Codex seat. - A filter does not make a row callable.
configured_only=trueselects on a storedis_configuredflag, not on a live check, and it can return a row whosecall_asisnull.servablestaysfalsefor Codex. Decide oncall_as. - Leaderboard rows carry
idand nocall_as. Before you call a ranked model, read it withgetModel(id)and send that record'scall_as. call_asis read from one gateway process's key state on each request and can differ between two reads for a moment. Read it close to the call; do not cache it with the rest of the catalog.</HARD-GATE>
<HARD-GATE name="rank-then-filter-by-price">
The leaderboard ranks by **eval score** (or category percentile), NOT price. To
answer a budget question ("best coding model under $2/1M"), rank first and then
**filter the returned rows by the blended price yourself** — do not expect a
`max_price` param. The cheapest live blended price is on every row for exactly
this. (See [references/best-model-under-budget.md](references/best-model-under-budget.md).)
</HARD-GATE><HARD-GATE name="task-type-vs-category-are-different-axes">
`leaderboard` has **two ranking axes** — pick the right one:
- **`task_type=…`** ranks by the **#7 EVAL success rate** (needs an eval
contribution; a model with no eval prior for that task ranks by missing data).
- **`category=…, sort=score`** ranks by the **benchmark-derived within-category
PERCENTILE** (needs published benchmarks). Use this for "best model for
*coding / vision / reasoning*" — a capability question.They are NOT interchangeable. A category score is a percentile (0–100), not
a raw benchmark mean; read rank ÷ total for "rank/N", and a score's
components[] is the WHY. Only ~19% of models are scored — treat an empty
category_scores[] as "unscored", never "worst". Call listCategories() to get
the valid category keys before ranking.
</HARD-GATE>
Surfaces
- HTTP (this skill wraps it):
GET /api/gate/v1/catalog/{models,models/{id},models/{id}/evals,leaderboard,categories}. Per-category ranking =GET /catalog/leaderboard?category=<key>&sort=score; each model's own scores =category_scoresin thefields=child section on/catalog/models[/{id}]. The skill methods (listCategories,leaderboardwithcategory) call these directly through the OPVS proxy — no client tool needed. - CLI:
spideriq gate catalog list|get|leaderboard|evals(client PAT; leaderboard public). ⚠ The CLI leaderboard is--task-typeonly — the per-category mode +/catalog/categoriesare NOT yet exposed as CLI commands (HTTP + this skill only, today). - MCP:
gate_catalog_list,gate_catalog_get,gate_leaderboard(task_typeonly),gate_catalog_model_evals(the@spideriq/mcp-gateslice). ⚠ There is no client MCP tool for the category read or the per-category leaderboard yet — the category surface reaches agents via THIS skill (HTTP proxy). A follow-up may addgate_catalog_categories+ acategoryarg ongate_leaderboard. - Admin (NOT this skill): editing the categories / scoring recipe is the
@spideriq/admin-skillscurate-categories skill (super_admin, X-Admin-Key).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

