Use when creating or modifying dbt Semantic Layer components including semantic models, metrics, and dimensions leveraging MetricFlow.
View on GitHubFebruary 1, 2026
Select agents to install to:
npx add-skill https://github.com/dbt-labs/dbt-agent-skills/blob/main/skills/building-dbt-semantic-layer/SKILL.md -a claude-code --skill building-dbt-semantic-layerInstallation paths:
.claude/skills/building-dbt-semantic-layer/# Building the dbt Semantic Layer This skill guides the creation and modification of dbt Semantic Layer components: semantic models, entities, dimensions, and metrics. - **Semantic models** - Metadata configurations that define how dbt models map to business concepts - **Entities** - Keys that identify the grain of your data and enable joins between semantic models - **Dimensions** - Attributes used to filter or group metrics (categorical or time-based) - **Metrics** - Business calculations defined on top of semantic models (e.g., revenue, order count) ## Additional Resources - [Time Spine Setup](references/time-spine.md) - Required for time-based metrics and aggregations - [Best Practices](references/best-practices.md) - Design patterns and recommendations for semantic models and metrics > [!NOTE] This skill contains guidance for the new dbt semantic layer YAML spec, valid for dbt 1.12.0 and above. If the user is using a different version of dbt, you can use the [migration guide](https://docs.getdbt.com/docs/build/latest-metrics-spec) to help them migrate to the new spec and add new components to their semantic layer. Ask the user if they want to migrate to the new spec before proceeding. ## Entry Points Users may ask questions related to building metrics with the semantic layer in a few different ways. Here are the common entry points to look out for: ### Business Question First When the user describes a metric or analysis need (e.g., "I need to track customer lifetime value by segment"): 1. Search project models or existing semantic models by name, description, and column names for relevant candidates 2. Present top matches with brief context (model name, description, key columns) 3. User confirms which model(s) / semantic models to build on / extend / update 4. Work backwards from users need to define entities, dimensions, and metrics ### Model First When the user specifies a model to expose (e.g., "Add semantic layer to `customers` model"): 1. Read