PYX data product agentic engineering
Stage 03 · Build

Generated, not typed

Tables, layer pipelines, jobs and metric definitions all generate from the one model a person approved: Databricks-native, in source format, deterministic from what was agreed.

How this worked before

One to two quarters per data product, because meaning is re-derived by hand at every hand-off and typed out again in a different notation.

How it works here

One artifact reviewed, six artifact classes generated, and the build reduced to the part that was never the hard bit.

Most of a quarter goes into agreeing what the number means. The rest is typing. Once the agreement exists as a machine-readable model, the typing is not work worth paying a person to do, and worse, every keystroke of it is a chance to introduce a difference between what was agreed and what runs.

So generation is deterministic from what was approved, which is the property that makes AI safe here. The model does not write your pipeline from a prompt at three in the morning. It drafts a model, a person rules on it, and the pipeline follows from the ruling. The blast radius of the AI stops at an artifact somebody reviewed.

The output is your platform's own idiom, not a runtime you now depend on us for: notebooks in source format, jobs you can read, tables in your catalogue. If you turned PYX off tomorrow, the data product keeps running.

Change the meaning in one place

A definition changes in the model and regenerates everywhere it landed, instead of being chased through six repositories and a semantic layer.

Bronze, silver, gold, with the reasons

The layer gradient is argued rather than assumed: thin at bronze, heaviest at silver, routed at gold, and every unplaced line comes back with a reason rather than disappearing.

Partial builds are honest

A build that placed nine of twenty lines says so, names the gap, and does not pretend it shipped. What it could not compile is waived explicitly, with a reason attached.

Any duration on this page is a design target, not a measured result. It gets measured on a real estate, including where it comes in slower.
Demo · click through it

This stage, running

pyx · build · requirement → published data product
Journey
Requirement
Build
Control
Visualize
Estate
Concepts
Assets
Evidence
What somebody actually said in the meeting
“We need estimated-read exposure by rate class, monthly, so we can size the true-up risk before the cycle closes.”
Grilled into claims · kept attached to everything downstream
Definitionconsumption billed from an estimate, not yet replaced by an actual read
Grainrate_class × accounting_month
Clears whenthe actual read lands, in the month of the read, not the estimate
1 blocking question
Does an estimate later replaced by an actual still count as exposure in the month it was estimated?
Nobody can infer this, and the answer changes the number by a factor. It refuses the build until a person answers it: in writing, once, on the record.
This is the step that normally costs a month, because it happens implicitly, four times, in four heads.
Durations are design targets, not measured results.