// for the people who find out on Monday
Riftless reads every pull request against the data your company runs on. When a change would break a report, or quietly change what a number means, it says so on the PR, before merge, with everyone downstream attached.
We're letting in a few teams at a time. Work email, please.
Does orders.amount still include tax?
# services/orders/totals.py- amount = subtotal + tax_total+ amount = subtotal
“Order total in cents, including tax.”
Types unchanged. Every other check on this PR is green.
What we're building
A dropped column or a narrowed type is flagged in the pull request that causes it, next to the models and dashboards that read that field.
amount stops including tax. Same column, same type, CI stays green, and finance finds out at month end. Riftless asks the question CI can't: does this change what the data means?
Findings are grouped the way Sentry groups errors: one issue per field and kind of change, with an owner, a history and a resolve button. Fixed ones reopen if they come back.
Built for data teams at 50 to 500 person companies: a few producer repos, one warehouse, and the dozen numbers leadership actually looks at. Protect those boundaries with a few lines of YAML in the producer's repo. No six-month rollout, no governance council.
# riftless.yamlcontracts: - asset: orders owner: Checkout team source_paths: [services/orders/] fields: - name: amount type: INT64 meaning: Order total in cents, including tax