Semantic layer change review
Skill yeaight7/agent-powerups/skills/semantic-layer-change-review
Use when a change touches dbt semantic models, metrics, saved queries, or other semantic-layer YAML -- especially when an existing metric's expression, aggregation, filters, or dimensions are modified.From its SKILL.md
npx -y skills add yeaight7/agent-powerups --skill semantic-layer-change-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.0 KB, 615 tokens by cl100k_base, as published. Nobody here has run it
Purpose
Changes to the semantic layer directly impact dashboards and business reporting. A silent drift in a metric definition destroys trust. Review every semantic-layer change for mathematical soundness and backwards compatibility before approval.
When to Use
- A PR modifies metric or semantic model YAML
- A metric's
expr, aggregation, or filters are changing - New dimensions or entities are being added to an existing semantic model
Inputs
- The semantic-layer diff (semantic models, metrics, saved queries)
- The underlying model's grain and entity keys
Workflow
-
Enumerate what changed:
git diff origin/main...HEAD -- '*.yml' '*.yaml' dbt ls --resource-type metric dbt ls --resource-type semantic_model -
Identify the change type:
- Addition — safe (adding a new metric or dimension).
- Deprecation — requires communication (removing a metric).
- Modification — high risk (changing the SQL expression, aggregation, or filters of an existing metric).
-
Evaluate mathematical soundness:
- Are we averaging an average?
- Are we summing a distinct count?
- Does adding this dimension cause a fan-out that inflates the metric?
-
Check backwards compatibility. If an existing metric's logic is changed, you MUST flag it. The recommended path is dbt's metric versioning or a new metric (e.g.,
revenue_v2) rather than silently altering historical numbers. Find consumers of the metric before judging impact:grep -rn "<metric_name>" --include="*.yml" --include="*.yaml" . -
Verify entity mapping. Ensure
entities(primary/foreign keys) match the granularity of the underlying semantic model. -
Confirm definitions still parse:
dbt parse
Output
- Change classification (addition / deprecation / modification) per touched metric or semantic model
- Mathematical soundness findings
- Backwards-compatibility verdict, with consumers that need communication
- Entity/grain mismatches, if any
Verification
- Every touched metric and semantic model classified by change type
- Modifications to existing metrics explicitly flagged, never silently approved
- Consumers of modified metrics identified
-
dbt parsepasses on the changed project - Entity keys checked against the underlying model's grain
Failure Modes
- Silent restatement — approving a change to a core metric's
exprwithout explicitly confirming the business requested the restatement of historical data. - Treating modification like addition — additions are safe; modifications are high risk and need versioning or a new metric.
- Fan-out blindness — a new dimension join can inflate a metric while every individual definition still looks correct.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.