Bauplan SDK 0.3 puts the contract in the model. Each model declares typed input and output schemas, with nullability, a doc and lineage for every column.
In this demo we ask Claude Code to add a column to a pipeline, run it on a branch, and check the result in the Bauplan app. We read the column docs back from the catalog. Then we look at a CI run where the output didn’t match the contract: the dry run stops and nothing merges until the column is declared in the schema.
Try Bauplan: https://app.bauplanlabs.com/