agentsclimarketplace

Semantic layer change review

Skill yeaight7/agent-powerups/plugins/data-engineering/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

Install
npx -y skills add yeaight7/agent-powerups --skill semantic-layer-change-review

Assembled 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

  1. Enumerate what changed:

    git diff origin/main...HEAD -- '*.yml' '*.yaml'
    dbt ls --resource-type metric
    dbt ls --resource-type semantic_model
    
  2. 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).
  3. 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?
  4. 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" .
    
  5. Verify entity mapping. Ensure entities (primary/foreign keys) match the granularity of the underlying semantic model.

  6. 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 parse passes 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 expr without 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.

Keep looking

Skills are one crate of 326,645. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.