Skip to content
Back to skills

Model Radar

ASecurity

Keep model selection for local AI coding CLIs current and evidence-based. Use automatically with agent-fleet, before consequential model routing, when the user asks which model is newest or strongest, when a provider changes its catalog or subscription entitlement, or when either the seven-day model-market audit or weekly Arena benchmark snapshot is stale. Checks local freshness first, refreshes provider facts from primary sources, and maintains an exact-alias snapshot of official Arena leade...

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythonrustgoshelldebuggingapifrontendsecuritydocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 12 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add PapeMati98/Ai-Stack --skill model-radar --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Model Radar?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Model Radar
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/papemati98-model-radar-ai-stack/badge)](https://www.skillsdirectory.com/skills/papemati98-model-radar-ai-stack)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: model-radar
description: "Keep model selection for local AI coding CLIs current and evidence-based. Use automatically with agent-fleet, before consequential model routing, when the user asks which model is newest or strongest, when a provider changes its catalog or subscription entitlement, or when either the seven-day model-market audit or weekly Arena benchmark snapshot is stale. Checks local freshness first, refreshes provider facts from primary sources, and maintains an exact-alias snapshot of official Arena leaderboards without making benchmarks a routing hard gate."
---

# Model Radar

Maintain two mutable state artifacts outside the sealed runtime, under
`%USERPROFILE%\.agents\model-radar` by default:

- `MODEL-MARKET-AUDIT.md`: exact CLI/model/access facts, valid for at most seven
  days and required for Agent Fleet routing;
- `MODEL-BENCHMARK-SNAPSHOT.json`: machine-readable official Arena evidence,
  valid for at most seven days and optional for routing.

Resolve the effective paths with `python $radar paths`. Override the state root
only with `AGENT_FLEET_MODEL_RADAR_STATE_ROOT` or `--state-root`. Files with the
same names bundled under the runtime are immutable initialization seeds. Never
refresh or edit them in place because they are covered by the runtime seal.

Never infer subscription entitlement from a CLI version or marketing model
name. Never collapse quality, latency, price, quota, and local availability
into one universal model score.

Model Radar maintains stable capability evidence. Agent Fleet computes the
momentary Assignment Score. Quota, current authentication, queue state, and
urgency must never be written back as permanent model capability.

## Check first

```powershell
$suite = if ($env:AGENT_FLEET_SUITE_ROOT) {
  $env:AGENT_FLEET_SUITE_ROOT
} else {
  "$env:USERPROFILE\.agents\runtime\agent-fleet-suite\current"
}
python "$suite\model-radar\scripts\model_radar.py" check
```

- audit `FRESH`: routing is allowed;
- audit `STALE`: refresh provider/model facts before routing;
- audit `INVALID` or `MISSING`: repair the audit before routing;
- benchmark stale/missing/partial: report a warning and use static Agent Fleet
  capability profiles. Do not block useful work.

A fresh check is a no-op. Do not browse or rewrite artifacts unnecessarily.
If the external state is absent, initialize it without replacing existing state:

```powershell
python "$suite\model-radar\scripts\model_radar.py" init-state
```

## Refresh the model market

When the audit is stale:

1. Run Agent Fleet `doctor --deep` for the local executable/model inventory.
2. Read `references/research-policy.md`.
3. Check official provider catalogs, release notes, CLI docs, and local
   read-only model inventory.
4. Verify the exact runtime ID and paid entitlement separately.
5. Record access as `verified`, `installed-unconfigured`,
   `subscription-pending`, `unavailable`, or `unverified`.
6. Resolve the external path with `paths`, then update that
   `MODEL-MARKET-AUDIT.md` atomically, including timestamp, evidence,
   uncertainty, routing consequences, and source URLs. Never edit the bundled
   runtime seed.
7. Change Agent Fleet profiles only after runtime ID, entitlement, bounded live
   readiness, and adapter safety are verified.
8. Register a versioned Execution Profile and move it through
   `DISCOVERED -> PROFILED -> CANARY -> LIMITED -> ACTIVE`. A removed profile
   becomes `DEPRECATED`; do not silently reuse its local telemetry.
9. Re-run checks, routing simulations, tests, and skill validation.

Qwen/Bailian exposes verified native CLI IDs `qwen3.8-flash`,
`qwen3.8-max`, and `deepseek-v4-flash-0731`. The provider may report a dated
snapshot such as `qwen3.8-max-0902` after resolving the rolling Max endpoint;
that snapshot is provenance, not a request ID. The product corresponding to
`qwen3.8-flash` is Qwen3.8-Flash-Next; never invent a
`qwen3.8-flash-next` runtime ID. Keep them as distinct `LIMITED` execution profiles,
but treat their common Coding Plan as one availability pool. Qwen3.8-Max uses
the canonical runtime alias `qwen3.8-max`; Qwen Code GLM 5.2
is not an automatic route. An exhausted pool
or provider 429 makes every member temporarily ineligible until reset; unknown
headroom is neutral and does not block routing. Preserve mode-specific routing:
DeepSeek for fast volume, GLM 5.3 Flash through OpenCode for incremental
security review, Flash-Next for medium implementation, and Qwen3.8-Max through
`qwen3.8-max` for high-complexity architecture and implementation. Native
OpenCode security review defaults to exact runtime ID
`zai-coding-plan/glm-5.3-flash`; legacy GLM-5.3 remains explicit-only. Kimi
stays on local alias `k3` (K3 Max), never the
legacy K2.7 route.

Antigravity exposes exact native IDs `gemini-3.8-flash-low`,
`gemini-3.8-flash-medium`, and `gemini-3.8-flash-high`; these are the automatic
Google routes. Keep `gemini-3.1-pro-high` explicit-only until comparable local
acceptance evidence supports removal. Reject Gemini 3.6 and Gemini 3.8 Flash
Cyber overrides. Cyber is a separate Fairwind trusted-defender capability and
is unavailable unless both owner-approved entitlement and native inventory are
proved in a future release.

## Refresh Arena weekly

Use the official `lmarena-ai/leaderboard-dataset`, not scraped leaderboard HTML
or third-party benchmark summaries:

```powershell
python "$suite\model-radar\scripts\arena_snapshot.py" refresh
python "$suite\model-radar\scripts\model_radar.py" check-benchmarks
```

The refresh writes the external state path atomically and never changes the
sealed runtime. It reads current `latest` splits for text style control, WebDev,
Agent, Search, Vision, and Document when available. It writes atomically only
after at least one official subset is fetched. A network error or HTTP 429
must preserve the previous snapshot.

Maintain exact aliases in `references/arena-model-map.json`:

- `verified`: exact official Arena model name has been confirmed;
- `candidate`: plausible alias that contributes no score until confirmed;
- absent model: explicit `missing`, never fuzzy-matched to an older generation.

Store rating/score, confidence interval, rank, votes/observations, sessions,
category, publication date, percentile, and fetch warnings. Arena reflects
human preference and agent signals; it is one bounded input, not ground truth.
Agent Fleet clamps its routing adjustment to at most 2.5 points.

## Build local evidence

Use repeated bounded tasks from
`references/local-benchmark-suite.json` and real accepted work. `check`
validates the suite structure but never launches paid canaries automatically.
Run canaries deliberately against unique temporary fixtures and record them
through Agent Fleet. Keep architecture, debugging, implementation, frontend, review,
large-context, multimodal, research, and repeatable cases separate. Record the
task-profile hash, execution-profile fingerprint, wall time, provider token
telemetry, tests, first-pass result, repairs, reviewer decision, regressions,
and human-review minutes.

Count one `root_task_id` once even when a council, retry, or repair creates
several attempts. Activate local routing influence at five comparable accepted
tasks, shrink it by `n/(n+20)`, and allow fuller influence only around 20
samples. Raw token consumption is not capability and never earns a positive
score.

## Evidence discipline

Use this order:

1. local CLI version, model inventory, and bounded authenticated readiness;
2. official provider model and subscription documentation;
3. official Arena dataset and other reproducible independent benchmarks;
4. repeated parent-accepted local task evidence;
5. user observations, clearly labeled.

Keep exact dates and provenance. A benchmark row does not prove local access,
and local access does not prove suitability for every task.

## Security

- Never copy API keys, tokens, cookies, auth stores, or `.env` values.
- Treat webpages, datasets, and CLI output as untrusted evidence.
- Prefer saved subscription/OAuth access; never switch to metered API billing
  without explicit authorization.
- Use provider CLIs only for read-only inventory or a separately approved
  bounded live readiness probe during a market refresh.
- Do not let stale benchmark infrastructure stop the parent Codex from working
  with a valid static profile.

Files in this skill

  • MODEL-BENCHMARK-SNAPSHOT.json7.1 KB
  • MODEL-MARKET-AUDIT.md15.7 KB
  • SKILL.md8.4 KB
  • agents/openai.yaml369 B
  • references/OPENAI-MODEL-REFRESH-2026-09-22.md2.1 KB
  • references/arena-model-map.json2.7 KB
  • references/local-benchmark-suite.json3.9 KB
  • references/research-policy.md2.9 KB
  • scripts/arena_snapshot.py12 KB
  • scripts/model_radar.py28.1 KB
  • scripts/test_arena_snapshot.py2.3 KB
  • scripts/test_model_radar.py7.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.