Dev Tool Experiences
All articles

· 7 min read

The Five Model Names You’ll Confuse This Quarter

By D. Marchetti

  • tools
  • satire

This is satire, which makes it the most responsible possible format for documenting model names. The software industry has solved intelligence, code generation, and autonomous browser control. It has not yet solved putting the noun, version, capability tier, product surface, and deprecation status in an order that lets a tired engineer choose one before stand-up.

  1. The model whose name is also a promise not to remember its name

Meet sonnet. It is not a model name so much as a polite agreement that someone else will keep track. Claude Code accepts sonnet and opus as aliases for the latest model, while also accepting a full dated model identifier such as claude-sonnet-4-20250514. That gives you two valid ways to say “please use the thing I meant,” one of which changes underneath you on purpose. [1]

# useful for a one-off local session
claude --model sonnet

# useful when a regression ticket needs a reproducible answer
claude --model claude-sonnet-4-20250514

The alias is good at keeping a personal CLI session current. It is bad at postmortems, golden-output tests, and the exquisite Friday afternoon when a dependency upgrade, a changed alias target, and an agent that “helpfully” reformatted 183 files arrive at the same conclusion. Spend 90 seconds deciding which category a command belongs to: exploratory work gets an alias; CI gets an explicit version. The Department of Names That Mean “Whatever Is New” recommends calling this policy “adaptive determinism” and printing it on a lanyard.

  1. The coding model, the coding model’s maximum, and the coding model’s smaller cousin

OpenAI’s model catalog currently distinguishes GPT-5.1, GPT-5.1 Codex, GPT-5.1-Codex-Max, and GPT-5.1 Codex mini, alongside older and general-purpose siblings. The words are doing real work: the catalog describes the Codex variants as optimized for agentic coding, labels Max for long-horizon work, and calls the mini variant less capable but more cost-effective. [2]

This is where a developer experiences the traditional five stages of model selection: confidence, dropdown inspection, confident selection of the wrong nearby label, blame directed at the tool harness, and a spreadsheet. Do not treat “Codex” as proof that a model will repair your repository faster than a general model. It is a useful indication of intended optimization, not a substitute for running your own task with your permissions, test suite, and token budget. It is especially bad at telling you whether the agent will understand the undocumented migration that only exists in a Slack thread from 2021.

  1. The number that is a version, except when it is a product-menu suggestion

In GitHub Copilot’s current comparison docs, GPT-5 mini is presented for general-purpose coding and writing, GPT-5.3-Codex for agentic software-development tasks, and GPT-5.4 for deeper reasoning and debugging. [3] The numerals look like a clean ordering because numerals have spent centuries earning our trust. Here they are joined by hyphens, suffixes, vendor packaging, plan entitlements, and a model picker that may not expose every option in every surface.

The bad workflow is writing “use GPT-5” in an engineering decision record, then discovering three weeks later that this sentence had the operational precision of “use a database.” Record the exact displayed model label, the surface that offered it, and whether it was selected manually. If the work ran through Auto, record that too. GitHub says Auto chooses from supported models subject to policies and subscription type, and shows the model used for a response in the relevant product UI. [4] This is not glamorous metadata. Neither is the commit SHA that explains why production is vibrating.

  1. The word “latest,” carefully engineered to mean “please read the migration notes”

Gemini’s API documentation separates stable, preview, latest, and experimental naming patterns. A stable identifier normally points to a specific stable model; a latest alias can be hot-swapped to a newer release; preview models can carry tighter limits and are deprecated with notice; experimental endpoints may change availability. [5] In other words, -latest is not a version. It is a subscription to future archaeology.

# Convenient, deliberately movable target
gemini-flash-latest

# Pin a stable identifier for a production evaluation
gemini-3.6-flash

The alias is good at a prototype, a throwaway internal helper, or an experiment where improvement is welcome and output drift is part of the deal. It is bad at a benchmark harness that needs comparable runs, a regulated review, or any task where a malformed JSON field costs more than the saved keystrokes. The International Council of Tiny Suffixes suggests calling the second identifier “production” only after someone has tested it against actual prompts rather than a single demo involving a cheerful weather bot.

  1. Auto, the model name that declines to be one

Auto is the final boss because it is a model-selection policy wearing a model-selection hat. GitHub documents that Auto picks from supported models based on availability and task complexity, with behavior also constrained by policy and subscription. [4] This can be sensible: availability incidents should not turn a code review into a candlelight vigil. It can also make a cost investigation read like a detective novel written by a dropdown.

Use Auto when you are optimizing for uninterrupted interactive help and can inspect the model actually used. Avoid it when the point of the run is comparison, reproducibility, or explaining a material change in behavior to a teammate who has already read the prompt twice and is now reading it for metaphysical clues. The setting is not bad. The assumption that it is a stable model choice is bad.

A naming policy for people with better things to do

  1. For local exploratory agent sessions, use a documented alias and accept movement as the price of convenience.
  2. For CI, evaluations, and bug reproduction, pin the complete model identifier rather than a family nickname or latest alias.
  3. Log the exact model label, tool version, permission mode, and whether Auto selected the model beside the run output.
  4. When a provider introduces an almost-identical new label, do not interpret the typography as a benchmark result. Run one repository task that matters.

The true observation beneath the naming parade is almost disappointingly ordinary: model identifiers are deployment dependencies. The useful question is not which name sounds strongest. It is whether you can state, after the run, exactly what executed, under which settings, and whether you can run it again.

Sources & citations

  1. [1]Anthropic Claude Code CLI reference
  2. [2]OpenAI API model catalog
  3. [3]GitHub Copilot AI model comparison
  4. [4]GitHub Copilot Auto model selection
  5. [5]Google Gemini API model naming patterns
The Five Model Names You’ll Confuse This Quarter | Dev Tool Experiences