The expensive mistake in agent maintenance is not running evals. It is running the full suite on every change, which burns time and money until the team quietly stops running anything. The fix is to classify the change first, then match the test scope to the class. This is the same logic as a risk register, where each entry gets a likelihood, an impact, and a defined response, and only the high-severity entries get the heavy treatment risk register guidance from Drata.
For prompt work, most teams already have three informal classes: cosmetic (tone, wording), behavioral (instructions that change output shape), and contract (output format consumed by code). Tool changes map onto the same three classes almost one to one. A description edit is cosmetic. A new optional parameter is behavioral. A renamed parameter is contract, and contract changes are the ones that break silently, because the model usually still produces something plausible.
A useful internal test: if a downstream parser, teammate, or second tool reads the output of this tool, then any change to that output's shape is a contract change. That single question catches most of the misclassifications.



