PASSED · DETERMINISTIC CORPUS
Adversarial repair evaluation
RippleProof is measured on both sides of the safety boundary: repairing supported dbt changes and refusing uncertain or unsafe automation. A false repair is any automatic plan produced for a case declared to require human review.
Corpus SHA-256: 6e6451226f139e41b77210a41296a3b149dcc667b928994909fec6187cca3364
Scroll the case table horizontally to inspect every evidence column.
| Case | Expected | Observed | Artifacts | Evidence |
|---|---|---|---|---|
| Preserve a direct downstream contractpreserve-simple-boundary · supported-repair | automate | automate | 1 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. No unresolved condition. |
| Rewrite quoted identifiers without touching inert textpreserve-quoted-inert-text · sql-token-safety | automate | automate | 1 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. No unresolved condition. |
| Propagate a rename through a declared dbt contractpropagate-contract-metadata · contract-repair | automate | automate | 1 SQL / 1 contract / 0 protected | PASSAll semantic checks passed. No unresolved condition. |
| Resolve a DataHub asset through a dbt manifest aliasmanifest-alias-mapping · repository-mapping | automate | automate | 1 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. No unresolved condition. |
| Protect a transitive consumer behind a stable boundarypreserve-transitive-consumer · contract-boundary | automate | automate | 1 SQL / 0 contract / 1 protected | PASSAll semantic checks passed. No unresolved condition. |
| Propagate code and contracts across two repositoriespropagate-two-repositories · multi-repository-repair | automate | automate | 2 SQL / 2 contract / 0 protected | PASSAll semantic checks passed. No unresolved condition. |
| Refuse a dashboard reached without column evidenceasset-level-dashboard · weak-lineage | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. DataHub reports asset-level reachability but not column usage. |
| Refuse to invent an alias for a complex projectioncomplex-preserve-projection · ambiguous-sql | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. The downstream output uses the renamed column, but its SELECT projection is not a single unambiguous identifier that can be aliased safely. |
| Refuse an asset mapped to multiple dbt modelsambiguous-model-mapping · ambiguous-repository | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. Multiple dbt models match this DataHub asset: analytics/models/orders_a.sql, finance/models/orders_b.sql. |
| Refuse a model containing only inert referencesinert-reference-only · sql-token-safety | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. The model contains no executable `user_id` identifier. |
| Refuse a duplicate destination in a dbt contractduplicate-contract-destination · contract-collision | manual-review | manual-review | 1 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. The dbt contract already declares `customer_id`; refusing to create a duplicate column in models/schema.yml. |
| Refuse automatic repair for an unsupported asset typeunsupported-column-asset · unsupported-consumer | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. Automatic patches support confirmed dbt datasets only. |
| Refuse a preserve boundary without hop distancemissing-hop-distance · incomplete-lineage | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. DataHub did not provide a valid downstream hop distance, so RippleProof cannot prove where to place a compatibility boundary. |
| Refuse to guess when no downstream model existsmissing-downstream-model · missing-code | manual-review | manual-review | 0 SQL / 0 contract / 0 protected | PASSAll semantic checks passed. No matching dbt model was found across the supplied repositories. |
The corpus runs locally against the same deterministic campaign-planning functions used by RippleProof. It makes no network requests, executes no migration, and does not modify source repositories.