From signalpilot-dbt
Load when dbt run or dbt parse fails. Covers YML duplicate patches, ref errors, passthrough model warnings, current_date fixes, DuckDB error messages, and zero-row diagnosis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/signalpilot-dbt:dbt-debuggingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
dbt fails with "Duplicate patch" when the same model appears in multiple YML files.
dbt fails with "Duplicate patch" when the same model appears in multiple YML files. Fix in ONE pass:
models/**/*.yml to find all YML filesschema.yml (which typically only has tests)If Compilation Error: node not found for ref():
SELECT table_name FROM information_schema.tables WHERE table_name = 'name'{{ config(materialized='ephemeral') }}
select * from main.<name>
{{ ref('name') }} with main.name directlyNEVER create .sql files named after raw tables (e.g. circuits.sql, results.sql).
This DESTROYS source data by replacing it with a materialized model.
Fix: add schema: main to the source definition in YML instead.
If dbt_project_map warns about current_date usage:
get_date_boundaries — find the column marked "USE THIS"current_date/now() with (SELECT MAX(<col>) FROM {{ ref('<table>') }})models/<name>.sql, paste full SQL, replace current_dateIf dbt_project_map warns about ROW_NUMBER/RANK:
dbt run --select <model>| Error | Fix |
|---|---|
invalid date field format | STRPTIME(col, '%d/%m/%Y')::DATE |
Table does not exist | Check actual names with describe_table |
column not found | Check exact names — case matters in DuckDB |
Cannot mix TIMESTAMP and INTEGER | Cast both args to same type |
No function matches DOUBLE / VARCHAR | Add explicit CAST() |
fivetran_utils is undefined | Run dbt deps (only if packages.yml exists) |
Binary search: comment out WHERE clauses and JOINs one at a time to find which condition drops all rows. Most common cause: INNER JOIN where LEFT JOIN is needed.
SELECT join_key, COUNT(*) FROM right_table GROUP BY 1 HAVING COUNT(*) > 1SELECT DISTINCT (if valid for the grain)ROW_NUMBER() dedup patternnpx claudepluginhub signalpilot-labs/signalpilot-plugin --plugin signalpilot-dbtSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.