Grep checklist after Copilot retires six models
Treat model names as dependencies: search code, CI, and agent files for retired names, swap in the named replacements, and verify the selector.

A Copilot agent can return nothing on a quiet Tuesday because a model name in a CI config stopped being selectable. GitHub removed certain Copilot models on September 1, 2026, affecting most Copilot features, including chat, inline editing, ask, agent, and code-completion features. The names sit in code, CI configs, and agent definitions, so the response is a short grep-and-verify pass: find the retired names, swap in the named replacements, and confirm the replacement appears in the model selector before workflows break.
A deprecation is an ops event
The failure mode is unglamorous. A developer opens Copilot Chat, picks a model, and the option is gone. A CI job calls an agent with a hard-coded model string, and the job fails after the code has already compiled. A teammate updates one file, but the same name remains in a workflow, a prompt template, or a local script. The fix is mechanical, but it only works if the team knows where to look. The pass should take minutes, not a project, and it should leave a record that the next onboarding doc can use.
The checklist is the standing artifact. It is short enough to run in a normal workday and specific enough to avoid a meeting about which successor to choose. The meeting is only for the exceptions: a team that wants a different Opus tier, a repo that cannot be touched without a release freeze, or a workflow that needs a different owner.
One list covers the sweep, the swaps, and the checks
Run the items in order. The sweep has to happen before the swaps, and the checks have to happen after the config changes. If a name appears in more than one repo, record the repo and the file before replacing it.
- Grep repositories, CI configs, and agent definitions for the six retired models: Gemini 3.1 Pro, Claude Opus 4.5, Claude Opus 4.6, Claude Sonnet 4.5, Claude Sonnet 4.6, and Raptor Mini.
- Replace Claude Sonnet 4.5 or Claude Sonnet 4.6 with Claude Sonnet 5.
- Replace Raptor Mini with MAI-Code-1-Flash.
- Replace Claude Opus 4.5 or Claude Opus 4.6 with Claude Opus 4.7, Claude Opus 4.8, or Claude Opus 5.
- Replace Gemini 3.1 Pro with Gemini 3.6 Flash.
- Confirm the replacement appears in the model selector.
- Claude Sonnet 4.6 remained accessible to personal GitHub Copilot subscriptions billed annually after the September 1, 2026 deprecation.
The sweep catches hard-coded names in prompts, scripts, CI steps, and agent definitions. Swaps keep the change from becoming a guessing game about which successor is appropriate. Checks stop a green build from hiding a broken agent. If the selector shows the replacement, the config change is done; if it does not, the ticket stays open.
The selector is the fastest proof
A replacement can be named in a document and still absent from the interface. A team can update the config, run the pipeline, and assume the model is available. Then the agent returns an error only when a user tries it. The selector is the fastest place to see whether the replacement is actually reachable. It is also the easiest proof to show in a standup: one screenshot, one model name, one date.
Copilot agent config files are the quiet place where a model name survives. A CI pipeline can pass because the code compiles, while the agent still points at a retired model. The verification step belongs in the checklist, not in a later incident review. Put it next to the CI step that calls the agent, so the person who changes the model also checks the selector.
Keep the checklist next to the other runbooks. When a vendor changes the model catalog, the team should not be debating whether the change matters. The names are already in the list, the replacements are already named, and the verification step is already written. The work is to run it, record the result, and close the ticket. Write the result in the same place where the team tracks other infrastructure changes: a short note with the date, the repos checked, and the replacement used is enough.