Developer tooling · LLM operations

llm-deprecation-radar

An offline, dated static scan for the model IDs and API surfaces that are scattered across source, configuration, environment defaults, and documentation — with days remaining and blast radius attached.

Public · synthetic demo · stdlib only
The problem

The vendor publishes a date. The codebase forgets where the dependency lives.

A production app can still wake up broken on shutdown day because model references hide in settings, test fixtures, old modules, and runtime routers. This radar builds the inventory. It does not perform the migration.

The money shot

Deadlines on 2026-08-02, from the generated report

① What needs attention first
referencedeadline stateevidence path
gemini-2.0-flashRETIRED · −62 dayslegacy_google.py:1
temperature on Opus 4.8RETIRED · immediateanthropic_client.py:1
claude-opus-4-1-20250805CRITICAL · 3 daysconfig.yaml:2
Assistants APICRITICAL · 24 daysapp.py:4
gpt-4-0613WARN · 82 daysapp.py:3

The Gemini reference is already past its published shutdown date. If that path still executes and depends on the retired model, it is already broken; static analysis alone cannot prove that the file is live or reachable.

② Evidence stays in its lane
6Confirmed evidence
2Likely references
2Unverified hypotheses
1Needs runtime data
dynamic f-string      → Unverified hypotheses
runtime MODELS router → Unverified hypotheses
remote config service → Additional data required

Dynamic selection is never promoted to Confirmed and never presented as clean. Runtime logs are the missing evidence.

③ Reproducible deadline gate
11 / 12planted cases detected independently
0 daysregistry snapshot age
exit 1retired / ≤30-day gate

The twelfth planted case is the current-model negative control and correctly produces no finding. Provider snapshots are dated and the weekly CI run fails when a live-code finding is retired or inside the configured deadline.

Four-section method

The classification is the honesty boundary.

Confirmed evidence        exact literal registry match
Likely                    strong indirect reference, such as an env default
Unverified hypotheses     dynamic construction or runtime router
Additional data required  remote config, database, or feature-flag evidence
Honest limitations
· Static analysis cannot resolve model names chosen at runtime.
· This tool inventories references and deadlines; it does not perform migrations.
· Vendor dates come from dated registry snapshots and must be re-verified at source.
· A clean report means “nothing matched the registry,” not “your system is safe.”
· A static reference does not prove that a file is deployed, reachable, or executed.
This is a deterministic synthetic sample demonstrating the inventory method. Inspect the dated registries, scanner, tests, and generated report ↗