TokenPad

Checklist · Shipping

LLM Production Readiness Checklist

29 items9 criticalAnyone about to put a model in front of real users

A prototype becomes a production system the moment someone who did not build it depends on it. Most of the distance between those two states is error handling, spend limits and a way to turn it off.

Work down the list. Anything you cannot tick is a decision you are making implicitly — make it explicitly instead.

Ticks are saved in this browser only — close the tab and come back to where you were. Nothing is sent anywhere and there is no account.

0 of 29 done · 9 critical outstanding

Failure handling

0/6

Model APIs fail in ways ordinary HTTP APIs do not: they succeed and return the wrong shape, they succeed and stop mid-sentence, they refuse.

  • A response cut off at the token limit arrives with HTTP 200. Nothing about the transport tells you the answer is half-finished — only the stop reason does. This is the single most common silent failure in production LLM systems.

    Check this with the max tokens planner
  • A rate limit hit by twenty workers that all retry after exactly one second is a rate limit hit by twenty workers one second later. Jitter is what breaks the synchronisation; without it a brief overage becomes a sustained outage.

  • Retrying a malformed request burns quota and latency to receive the same error four more times. Classify before you retry: 429 and 5xx yes, 400 and 401 never.

  • Long generations can run for minutes. Without a client timeout a single slow request holds a connection, a worker and a user for as long as the provider is willing to keep talking.

  • Structured output is a strong constraint, not a guarantee. Something eventually comes back with a trailing comma or a markdown fence around it, and the handler for that case should exist before it happens.

    Check this with the llm output json validator
  • Providers have multi-hour incidents. Decide now whether the feature disappears, falls back to a second provider, or serves a cached answer — the decision is worse under pressure.

Cost and limits

0/6
  • An alert tells you after the money is gone. A ceiling stops it. The gap between the two is the entire cost of an abuse incident.

    Check this with the llm cost calculator
  • Left unset, output length is bounded only by the model. One prompt that induces a rambling answer costs the same as thousands of normal ones, and output tokens are the expensive side.

    Check this with the max tokens planner
  • Anyone who can paste can paste a novel. Input length is the one cost variable a user controls directly.

    Check this with the token counter
  • Real prompts carry system instructions, retrieved context, conversation history and tool schemas. The estimate from a bare user message is routinely off by an order of magnitude.

    Check this with the llm cost calculator
  • A timestamp or a request id in the system prompt invalidates the cache on every call. The saving is large enough — cached reads cost a fraction of base input — that it is worth checking rather than assuming.

    Check this with the prompt cache checker
  • Aggregate spend tells you the bill went up. Per-request usage with a feature or endpoint tag tells you which change did it.

Quality and evaluation

0/5
  • Without one, every prompt change is evaluated by trying three examples that came to mind and declaring victory. Fifty cases is where changes stop being coin flips.

    Check this with the eval dataset builder
  • An eval set built from successes measures nothing. The failures are the only part that can regress.

  • Prompt edits routinely improve the case you were looking at and break two you were not. Only a fixed set catches that.

    Check this with the prompt ab significance
  • A prompt is program logic written in English. Editing it in a dashboard means production behaviour changes with no diff, no review and no way back.

  • The default is not neutral, it is a choice someone else made. Classification and extraction want determinism; drafting does not.

    Check this with the temperature simulator

Safety and privacy

0/6
  • Any text the model reads can attempt to instruct it. Delimiting does not make injection impossible, but concatenating without delimiters makes it trivial.

    Check this with the prompt injection scanner
  • This is the question a data protection review asks first, and the answer "the whole record, it was easier" fails it.

    Check this with the pii redactor
  • Providers differ on retention defaults and on whether inputs may be used for training. Your policy makes a promise; the setting is what keeps it.

  • Prompts get logged, cached, and shown in error messages. Anything in one should be safe to read.

    Check this with the secret scanner
  • Model output is untrusted input wearing a helpful tone. The rules that apply to a form field apply here.

  • Beyond the growing regulatory expectation, it sets the accuracy expectation correctly and makes the occasional wrong answer survivable.

Operations

0/6
  • When a prompt change or a provider incident starts producing bad answers, the time to fix is the time to disable — not the time to review, build and ship a revert.

  • A floating alias means the model under your prompt changes on the provider's schedule, not yours, and the first sign is a quality regression nobody deployed.

  • Rolling back to "whatever it was last Tuesday" is only possible if last Tuesday was recorded.

  • Generation latency has a long tail by nature. The mean stays comfortable while a quarter of users wait twice as long.

    Check this with the streaming simulator
  • This is the cheapest source of real failure cases that exists, and it closes the loop between production and the thing you test against.

  • Without it your quota is shared on a first-come basis, and one script takes it all.

Tools for this list

Questions

How much of this applies to an internal tool?

The cost, failure handling and kill switch items apply unchanged — internal tools generate real bills and real outages. The disclosure and feedback items matter less when every user can walk over and tell you.

What is the minimum set if I ship tomorrow?

The six critical items: check stop reasons, backoff with jitter, a spend ceiling in code, truncate user input, delimit untrusted text, and a kill switch. Those six prevent most of what actually goes wrong in a first month.

Do I need an eval set for something simple?

If the prompt will ever be edited again, yes. The eval set is not for launch, it is for the fourth change to the prompt, when nobody remembers what the first three were meant to fix.