Do not let every CLI client carry your provider-specific naming quirks.
Let them speak in the model vocabulary they already know.
Then keep the messy parts in one place:
- routing
- provider adaptation
- deployment overrides
- request logs
- model mapping UI
That design has held up much better for me than trying to force the whole stack to agree on one shared name.
Repo:
CliGate on GitHub
How are you handling this right now?
Are you keeping model names and deployment names identical on purpose, or are you hiding the mismatch behind a gateway too?