Evolve the contract without breaking the product
Lesson 1 of the module "Keep the contract alive" in the course "Get reliable, product-ready AI outputs (JSON, schemas, function calling)".
Lesson objective
By the end of this lesson, you will be able to classify a schema change as additive or breaking, propose a migration plan, anticipate the effect of changing provider or model, and split roles between PM and developers.
Where it fits
Keep the contract alive
How do I evolve the schema without breaking the product, and how do I know it holds?
Lessons in this module
- Evolve the contract without breaking the product (this lesson)
- Test the contract on 20 cases chosen to break it
What you will learn in the course
This lesson is part of the course Get reliable, product-ready AI outputs (JSON, schemas, function calling)
- Diagnose where free-text output breaks a feature and decide which outputs require a contract.
- Choose between instructions alone, JSON mode, structured outputs and function calling for a given need, and justify the choice.
- Design an output schema (types, enums, required fields, nullable fields, descriptions, "unknown" values) where every field serves a consumer.
- Specify validation (syntax, schema, business rules), retries, handling of refusals and truncation, and the fallback path.
- Version and evolve an output contract without breaking its consumers, accounting for provider differences and the split of roles between PM and developers.
- Build a set of 20 robustness cases and set acceptance thresholds before going to production.
Related courses
- Build an AI assistant for your productAdvanced · ~3 hr
- Design a RAG architecture that fits your productAdvanced · ~3 hr 30 min
- Evaluate an AI feature: test sets, metrics and LLM judgesAdvanced · ~3 hr