Review dbt schema changes, blast radius, policy findings, and bounded fix pull requests.
Install the GitHub App named Embrasure on each repository that contains a dbt project. For an actionable pull request, Embrasure compiles the proposed project, compares schemas, evaluates policy rules, and checks confirmed downstream impact.
Embrasure creates one comment headed Embrasure - Scout Change Review and edits it as commits arrive.
## Embrasure - Scout Change Review
1 breaking change · 2 downstream tables
### analytics.orders
- 🔴 Column `customer_id` was dropped
- Confirmed downstream impact: `finance.customer_rollup`
Observe-only: this check never blocks a merge.Quiet pull requests do not receive a wall of output. The comment focuses on actionable findings and labels evidence that could not be evaluated.
Observe-only
Change review reports evidence and suggested action. It does not block merges, change branch protection, or write warehouse data.
Level 0 is the near-free path: Embrasure compiles the changed dbt models, probes their output schema, and checks the proposed contract against production. Level 1 materializes a bounded recent-data slice and compares row count, null rate, and cardinality. The default tolerances are 1% for row count, 0.5% for null rate, and 5% for cardinality.
Every pull request has a workspace-configured byte budget. Embrasure estimates the bounded query before Level 1 runs, using a BigQuery dry run or Snowflake EXPLAIN. If an estimate is unavailable, the receipt records deferred (cost_unknown): schema checks still run, but the data comparison does not spend warehouse compute without a known cost.
Agent authors can read the same structured result from either GitHub surface. The review comment contains JSON after <!-- embrasure-validation-payload:v1 -->, and the check run includes it in output.text. Both use the schema identifier embrasure.change_validation/v1 and include the decision, findings, pass conditions, coverage gaps, impacted assets, and check counts.
Dropped tables, dropped columns, and renamed columns are breaking by default. Type, nullability, and sensitivity changes are warnings. Additions are informational. Confirmed downstream consumers can raise the effective severity.
The rule registry covers downstream breakage, shared-schema writes, sensitive data, insecure ingest, ownership, production migrations, duplicate tables, naming, descriptions, owners, schema contracts, drift, and column style. Workspace settings control enablement, severity, and supported parameters.
During review, Embrasure keeps the warning on the GitHub pull request so teams are not paged about changes that may never land. If the warned pull request is merged, Embrasure alerts affected downstream owners and automatically investigates supported breaking table and column changes. Before editing, it reads the current downstream branch again and stops without opening a pull request when a follow-up commit already resolved the issue. It follows confirmed lineage, edits at most three models, limits repairs to four iterations and 200 changed lines, and requires at least 85% confidence before opening a draft pull request. Agent-authored repairs also require an independent review. Lower-confidence investigations report findings in the alert thread without opening a pull request.
Every post-merge fix pull request runs the required Embrasure canonical validation check against real data in an isolated staging schema. The workflow fails closed when a proposal exceeds a guardrail or cannot validate. Embrasure never merges the draft or writes the repair directly to a warehouse.
The app reads repository metadata and pull-request content, then writes its single review comment. Fix PRs also require permission to create a branch and draft pull request.
After merge, Embrasure records change receipts, can create ownership claims from repository evidence, and can open a confidence-gated downstream fix pull request for a supported breaking change.