S
semantic-model-builder
About semantic-model-builder
semantic-model-builder is a data skill for defining metrics, dimensions, and entities as structured YAML. It helps data teams standardize business definitions, validate metadata, and prepare definitions for semantic-layer use.
Key features
- 01Scaffold metric, dimension, and entity YAML
- 02Validate fields, types, and references
- 03Consult dbt Semantic Layer guidance
- 04Produce definitions and a validation report
Use cases
- 01Establishing a canonical definition for a metric
- 02Preparing YAML for dbt Semantic Layer
- 03Documenting metadata for a core data model
- 04Checking existing semantic-model YAML
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ nimrodfisher/ data-analytics-skills --skill semantic-model-builderAfter installing, type/semantic-model-builderin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
assets/dimension_definition.yamlentity_definition.yamlmetric_definition.yamlreferences/dbt_semantic_layer_guide.mddimension_hierarchy_patterns.mdmetric_definition_framework.mdscripts/metric_template_generator.pymodel_yaml_validator.pyDetails
From the project READMEWhen to use
- A stakeholder asks "how is [metric] calculated?" and no canonical definition exists
- You're setting up dbt Semantic Layer and need YAML metric/dimension/entity definitions
- Multiple teams are using different SQL queries for the same metric — you need to codify the one true definition
- You're building a data catalog entry for a core model and need structured metadata
Process
- Identify the object type — decide whether you're documenting a metric, a dimension, or an entity. Use the frameworks in
references/metric_definition_framework.mdfor metrics andreferences/dimension_hierarchy_patterns.mdfor dimensions. - Gather the definition inputs — collect: calculation logic (SQL or formula), business context, data source(s), grain, edge cases, and known gotchas. Ask the data owner if anything is unclear.
- Generate the YAML template — run
scripts/metric_template_generator.pyto scaffold the initial YAML structure for the object type. Fill in the generated template. - Validate the YAML — run
scripts/model_yaml_validator.pyto check required fields, type constraints, and reference integrity (referenced dimensions exist in the same file). - Add dbt context — if this will be deployed to dbt Semantic Layer, consult
references/dbt_semantic_layer_guide.mdfor the exact field names and constraints for your dbt version. - Save final definitions — save metrics to
assets/metric_definition.yaml, dimensions toassets/dimension_definition.yaml, entities toassets/entity_definition.yaml.
Inputs the skill needs
- Required: the metric name or model name to document
- Required: calculation logic — SQL snippet, formula, or plain-English steps
- Required: business context — who uses it, what decision it informs, what a "good" value looks like
- Optional: data source table(s) and column names
- Optional: target semantic layer framework (dbt Semantic Layer, Cube.js, LookML, etc.)
- Optional: existing YAML to validate
Output
assets/metric_definition.yaml— filled metric YAML definition(s)assets/dimension_definition.yaml— filled dimension YAML definition(s)assets/entity_definition.yaml— filled entity YAML definition(s)- Validation report from
scripts/model_yaml_validator.py(inline output)
Comments
Markdown supported