← ClaudeAtlas

bq-schema-contractlisted

Define, version, and enforce schema contracts between data producers and consumers on BigQuery. Use when the user mentions a data contract, schema drift, a breaking change, a producer or consumer agreement, column deprecation, or asks how to stop upstream teams from breaking downstream tables. Also use when reviewing a schema change PR.
rk-chavali/gcp-de-skills · ★ 0 · API & Backend · score 70
Install: claude install-skill rk-chavali/gcp-de-skills
# BigQuery schema contract A contract is a file in the producer's repo that the consumer can read and CI can enforce. If it is a wiki page, it is not a contract. ## The contract file ```yaml # contracts/retail/fct_order.yaml contract_version: 2 table: acme-shop-prod.mart_retail.fct_order owner: team: data-platform slack: "#data-platform" consumers: - team: finance-analytics usage: daily revenue dashboard - team: marketing-ops usage: attribution model grain: one row per order_id freshness: max_lag_minutes: 90 measured_on: ordered_at partition: column: ordered_at type: DAY require_filter: true columns: - name: order_id type: STRING mode: REQUIRED description: Source order id. Primary key. stability: stable - name: order_total_usd type: NUMERIC mode: REQUIRED description: Order total in USD, excluding tax and shipping. stability: stable - name: payment_status type: STRING mode: NULLABLE description: One of paid, pending, refunded, voided. allowed_values: [paid, pending, refunded, voided] stability: stable - name: legacy_channel_code type: STRING mode: NULLABLE description: Deprecated. Use channel_id. stability: deprecated remove_after: "2026-12-01" sla: availability: business days by 07:00 UTC breaking_change_notice_days: 30 ``` ## What counts as breaking | Change | Breaking | Notes | | --- | --- | --- | | Drop a column | Yes | requires notice period | | Rename a co