From signalpilot-dbt
Fix current_date/now() hazards in dbt date spine models. Replaces nondeterministic date references with data-driven boundaries from get_date_boundaries.
How this skill is triggered — by the user, by Claude, or both
Slash command
/signalpilot-dbt:dbt-date-spinesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- `dbt_project_map` reports "WARNING: Models use current_date"
dbt_project_map reports "WARNING: Models use current_date"dbt run produces far more rows than expected in a date-spine modelThese are pre-shipped model SQL files in models/ — you have direct write access.
For general date spine syntax, see duckdb-sql skill section 2.
Edit the model SQL directly. Replace current_date/current_timestamp/now() with a data-driven endpoint — a subquery from the primary fact table:
-- Before: ... CURRENT_DATE ...
-- After: ... (SELECT MAX(order_date) FROM {{ ref('stg_orders') }}) ...
Use the fact table with the most rows, or the one referenced in the task instruction.
If the flagged file is in dbt_packages/ (marked "PACKAGE MODEL" in the warning):
models/<same_filename>.sql — dbt prioritizes local models over package modelscurrent_date with the data-driven endpoint{{ config(materialized='table') }} at the topExample: if dbt_packages/shopify_source/models/stg_shopify__order.sql uses current_date:
-- models/stg_shopify__order.sql (local override — copy ENTIRE package SQL here)
{{ config(materialized='table') }}
-- Replace current_date with a data-driven endpoint:
-- (SELECT MAX(order_date) FROM {{ ref('stg_orders') }})
Do NOT edit files inside dbt_packages/ directly — dbt deps will overwrite your changes.
Call mcp__signalpilot__get_date_boundaries(connection_name="<id>").
Use the primary fact table's max date (marked "USE THIS"). Never use the global max — dimension tables often have later dates.
dbt run --select <model_name>
SELECT MIN(date_col), MAX(date_col), COUNT(*) FROM <model_name>
The spine's max date must match the source data's endpoint, not today's date.
Searches 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.
npx claudepluginhub signalpilot-labs/signalpilot-plugin --plugin signalpilot-dbt