Model Task Recommender — "the right model for your task, on your machine"
SkillProductivitySOP for AIDE's per-task model recommendation engine, mapping Hugging Face GGUF models to task suitability (coding / planning-chat / utility) using Hub API metadata (pipeline_tag, library=gguf, num_parameters ranges), merging with on-device fit verdicts (M2) and measured benchmarks (llama-bench lane), producing the ranked "recommended for YOUR machine + YOUR task" lists in the hub UI. Use when building the recommender service, designing the task taxonomy, wiring hub starter grids, or debugging recommendation ranking.
Use Model Task Recommender — "the right model for your task, on your machine" in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Model Task Recommender — "the right model for your task, on your machine" and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Model Task Recommender skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by anonymousnomad/covert-coder in skills/packs/aide-model-task-recommender/SKILL.md and read by Ahel’s review.
What we are doing
When a user opens the hub or asks "what should I use for coding?", AIDE returns a short ranked list of GGUF models that (1) FIT comfortably on their hardware, (2) are SUITED to the task family, (3) ideally have MEASURED tok/s from the benchmark lane. This is the differentiator vs Ollama's flat list and PocketPal's generic size tiers.
Research base (verified 2026-08-24)
- HF Hub REST API (huggingface.co/docs/hub/main/en/api + /.well-known/openapi.json):
GET https://huggingface.co/api/models?library=gguf&pipeline_tag=X&sort=downloads&limit=N— public, no auth; supportsfilter(tags),author,search,num_parametersrange syntax (min:1B,max:8B),gated,inference_provider. Model info endpoint withexpandparams;siblings= file list (find *.gguf filenames); OpenAPI spec is machine-readable and always current. - HF GGUF docs:
hf.co/models?library=ggufbrowsing; @huggingface/gguf JS parser can read GGUF metadata from REMOTE URLs (header-only) — lets us pre-validate architecture/params before recommending a download. - ToolNeuron reference UX (captured in aide-model-hub-acquisition): recommended-by-use-case starter table (~600MB quick test / ~2.8GB general / ~5.5GB power) + filter chips populated from live HF tags catalog.
- Our own verified assets: M2 verdict tiers (COMFORTABLE <70% VRAM / TIGHT 70–95% / OVER ≥95%), header-only footprint estimation, nvidia-smi probe cache, benchmark lane (aide-device-benchmark-runner).
Task taxonomy (locked v1 — keep SMALL)
Three task families matching our role routing:
coding— act-role code generation/editing. Signals: model family reputation for code (Qwen-Coder/DeepSeek-Coder/CodeLlama lineage), pipeline_tag text-generation + name/tags containing coder/code, context length ≥8k preferred for file context.planning— plan-role reasoning/architecture/chat. Signals: instruct/chat tuning, larger param counts favored, long-context bonus, reasoning-family tags (R1-distill lineage etc).utility— titles/commit-msgs/quick edits. Signals: small params (<4B), fast tg128, any instruct model. Curated seed list: hard-coded vetted {repo_id, task_tags[], notes} entries for ~10 known-good models (updated by us, versioned in repo as data file). Live HF search AUGMENTS seeds; seeds guarantee offline-first quality (no network needed for good defaults).
Design
common/contracts/recommend.ts RecommendRequest {task:'coding'|'planning'|'utility', limit?}
RecommendedModel {repo_id, filename?, size_bytes, params_b?, quant?,
verdict:'COMFORTABLE'|'TIGHT'|'OVER', est_tok_s?,
measured?:{pp512,tg128}, source:'seed'|'live',
why:string[]}
RecommendResponse {task, device:{gpu,vram_free,vram_total}, models[]}
node/src/services/recommend-service.mjs
createRecommendService({workspace, hubFetcher(injectable), benchStore, fitModel, hwProbe})
- score(model) = fitScore(verdict) * taskFit(tags,params,ctx) * speedBonus(measured||est) ; NO hidden weights — constants at top, documented
- rank: COMFORTABLE always above TIGHT above OVER regardless of other scores (fit gates, never blends)
- live path: egress journal BEFORE fetch (hub search), cache HF responses 24h in .aide/recommend/cache.json (offline still works from seeds+cache)
routes/recommend.ts GET /api/models/recommend?task=coding&limit=5
Why this way
- Fit-gated ranking implements the M2 skill law ("rank BY THIS VERDICT before popularity"). Popularity/downloads is a tie-breaker ONLY within same verdict tier.
- Seeds make recommendations honest OFFLINE (In-the-Box law) while live search keeps freshness; 24h cache respects No-Phone-Home (no automatic polling — fetch only on explicit user view of recommendations).
- Transparent scoring with named constants = no vibes; every recommendation carries
why[]strings shown in UI tooltip ("fits in 62% of your VRAM", "coder-tuned lineage", "measured 41 tok/s on your GPU").
Code guidance specifics
- HF fetch: single query per request combining
library=gguf, task-relevantsearchterms,sort=downloads, limit 20; parse siblings[] for ONE .gguf filename (prefer Q4_K_M in name, else first gguf); NEVER download at recommend time. - num_parameters filter from device budget: maxB = floor((vram_free*0.7) bytes→params at 4bit≈0.58 bytes/param) — conservative Q4_K_M math, documented constant.
- Params estimate fallback: parse from repo_id/name (
7b-instruct) when metadata missing; markestimated:true. - Injected hubFetcher mirrors indexEmbedFn seam pattern → CI tests run fully offline against fixtures.
Pitfalls / bugs watch-list
- HF API shape drift: validate responses through zod contract; unknown fields tolerated via passthrough, missing fields degrade gracefully (drop candidate, never crash the panel).
- Quant-in-filename parsing is heuristic soup (
Q4_K_M,q4_k_m,IQ4_XS) — normalize uppercase, maintain regex table, unknown quants → treat as TIGHT unless measured. - Context length not visible in list endpoint — do NOT claim ctx fitness from list data alone; only from GGUF header after download/import (fitModel already does this).
- Stale cache showing uninstalled/removed models — reconcile against local manifests before display.
- Seeded repos can go dead/gated on HF — seed entries carry
last_verifieddate; UI marks stale >90d; verification job manual/opt-in only. - GTX 1060-class reality: many "popular" 14B+ Q4s are TIGHT/OVER — recommender must surface the comfortable small models FIRST even if downloads rank lower (this IS the product promise).
Threat matrix
| Threat | Control |
|---|---|
| Egress creep (auto-refresh calls) | fetch ONLY on explicit user action; journaled; 24h disk cache |
| Malicious repo promoted into seeds | seeds are OUR reviewed commits (PR review gate); live candidates never auto-install — user must click download |
| Prompt-injection via model card text | recommender renders only structured fields (id/size/verdict/why[]) — never raw README/markdown from cards |
| Ranking manipulation (fake-download repos) | fit-gate dominates; downloads only tie-break; seeds outrank live |
Verification gates
- Unit (fixture HF JSON + fake bench store): seed-only offline path; verdict gating order (COMFORTABLE beats higher-scoring TIGHT); quant normalization table; cache hit/miss/expiry; traversal-proof model_name handling.
- Arch route test over HTTP incl. zod envelope + degraded mode when hubFetcher errors (returns seeds only,
sourceflags honest). - LIVE once: real HF query journaled; screenshot of panel with why[] tooltips; evidence into docs/evidence/.
- Standard chain: tsc x2, eslint, veritas PASS, CI green, journal entry.
Signals
- GitHub stars
- 43
- Forks
- 14
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
aide-model-task-recommender- Source
- github.com/anonymousnomad/covert-coder
github.com/anonymousnomad/covert-coder
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptsetup-ts-deep-modules
Skill · mattpocock
The pick for TypeScripttypescript-pro
Skill · jeffallan
The pick for TypeScriptlark-markdown
Skill · larksuite
The pick for Markdownmarkdown-formatter
Skill · nvidia
The pick for Markdown