Frontier

SQL-change assessments

Last updated 6 September 2026

Base versus PR manifests

GitHub CI compiles the PR with dbt build and compiles the pull-request base into target-base/manifest.json plus compiled SQL. Frontier then compares those artifacts:

frontier inspect --manifest-file target/frontier-manifest.json --base-manifest target-base/manifest.json
frontier compare --manifest-file target/frontier-manifest.json --base-manifest target-base/manifest.json
frontier prove --target ci --manifest-file target/frontier-manifest.json --base-manifest target-base/manifest.json

frontier compare requires --base-manifest.frontier prove is the customer CI assessment command. frontier run executes frontier and validation queries; it is not equivalent to prove and is not what the generated workflow runs.

Filter-change example

A supported filter widening. Base keeps closed orders only; the PR also includes status O:

-- Base
where order_status = 'F'

-- PR
where order_status in ('F', 'O')

Frontier classifies FILTER_CHANGED, compiles a candidate-key query for orders whose predicate result changed, routes those orders to customer IDs through the semantic manifest, and validates only those customer summaries against a full reference. A successful targeted proof is evidence for the tested data, not a universal mathematical proof.

Change kinds and rebuild decisions

KindMeaning
FILTER_CHANGEDSupported WHERE/predicate change. Can compile candidate SQL.
EXPRESSION_CHANGED, AGGREGATE_CHANGED, JOIN_CHANGEDSupported semantic diffs that can compile candidate SQL.
SOURCE_CHANGEDUpstream relation change. Full rebuild required.
GROUPING_CHANGED, GRAIN_POSSIBLY_CHANGED, WINDOW_CHANGED, UNSUPPORTEDUnsafe or unclassified SQL. Full rebuild required.
Added / removed modelsListed on the comparison. Added and removed models do not get a targeted candidate set.
  • COMPILED — candidate SQL was produced.
  • EXECUTED — that SQL ran in Snowflake.
  • FULL_REBUILD_REQUIRED — unsafe/unsupported change, or candidate SQL could not cover the diff. Targeted proof is skipped. Fail closed.
  • FULL_REBUILD_RECOMMENDED — a targeted proof is possible but the candidate set is large enough that a full rebuild is cheaper. This is an efficiency warning, not a correctness failure by itself.

Candidates versus confirmed changes

  • Candidate frontier — entities that might be stale. Conservative; can include no-ops.
  • Confirmed frontier — candidate entities whose mart output actually changed between base and head.
  • Candidate no-op — selected conservatively, but the mart row did not change. Efficiency, not a missed bug.
  • Missed entity — the full reference changed a business entity that the candidate set did not include. Correctness problem.
  • Rows avoided — share of the full entity population not recomputed. An efficiency metric.

Evidence empirically validated means the targeted repair matched the full reference on this run's data. It is not a formal proof for every future dataset.

FRONTIER_BLOCKING

Upload always stores the assessment when the HTTP ingest succeeds. FRONTIER_BLOCKING=true or frontier upload --blocking then exits 1 if the assessment status is failed. The generated first workflow uses false unless you pass frontier setup github --blocking.