bigquery-sql
BigQuery-specific SQL patterns: UNNEST for array expansion, STRUCT, ARRAY_AGG,…
Load when task involves dbt model versioning, creating v2 of a model, or backward-compatible model changes. Covers versions YAML config, defined_in, latest_version, and ref() with version pins.
$ npx -y skills add signalpilot-labs/signalpilot --skill dbt-versioning --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/dbt-versioningContext preview
The summary Claude sees to decide when to auto-load this skill.
Load when task involves dbt model versioning, creating v2 of a model, or backward-compatible model changes. Covers versions YAML config, defined_in, latest_version, and ref() with version pins.
name: dbt-versioning description: "Load when task involves dbt model versioning, creating v2 of a model, or backward-compatible model changes. Covers versions YAML config, defined_in, latest_version, and ref() with version pins." disable-model-invocation: false allowed-tools: Bash(dbt *)
When a task says "create a v2," "add a new version," or "backward-compatible change," use dbt's native `versions:` config (dbt-core 1.6+). Do NOT create a standalone model with a `_v2` suffix - that produces a separate node (`model.project.dim_customers_v2`) instead of a version node (`model.project.dim_customers.v2`).
Declare versions inside the model's `.yml` file under the model entry:
models:
- name: dim_customers
latest_version: 1
versions:
- v: 1
- v: 2
defined_in: dim_customers_v2Rules:
Version SQL files use the pattern `<model_name>_v<N>.sql`.
Do NOT rename or move the original SQL file. It remains v1 without changes.
Downstream models that need the new version must use `ref('dim_customers', v=2)`. Models using bare `ref('dim_customers')` continue to get the old version until `latest_version` is updated.
Read the original model's SQL first. If the v2 only renames or adds columns, write a thin wrapper:
select
customer_id,
customer_name,
account_status as customer_status -- renamed column
from {{ ref('dim_customers', v=1) }}Do NOT duplicate all upstream logic into the v2 file when a SELECT-with-renames suffices.
After creating the versioned model, run:
dbt ls --select dim_customers --output json
Confirm the output contains nodes `model.<project>.dim_customers.v1` and `model.<project>.dim_customers.v2`. If these nodes are missing, the `versions:` YAML is wrong.
Repo: signalpilot-labs/signalpilot
BigQuery-specific SQL patterns: UNNEST for array expansion, STRUCT, ARRAY_AGG,…
Load when dbt run or dbt parse fails. Covers YML duplicate patches, ref errors, passthrough…
Populate the knowledge base from dbt project research. Proposes entries across all 6…
Load when task involves dbt snapshots, SCD Type 2, or tracking data changes over time. Covers…
Load when task involves adding, writing, or fixing dbt unit tests. Covers unit_tests YAML…
Load at Step 1 before exploring the project. Covers output shape inference, incremental model…