This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a…

GPL-3.0Auto-check passedDatabases

Install Semantic Model

skills CLI
$ npx skills add data-goblin/power-bi-agentic-development --skill semantic-model -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install data-goblin/power-bi-agentic-development semantic-model --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/semantic-models/skills/semantic-model .claude/skills/semantic-model && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
semantic-model
GitHub stars
1k
Token cost
~2.8k tokens
SKILL.md length
972 words
Files
30 (incl. scripts, references)
Skills in repo
33
Repo updated
First seen
Licence
GPL-3.0

At a glance

This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a…

  • Works in 3 steps: te CLI first. One verb per operation,… → TOM, or a model MCP, when te cannot… → fab + direct TMDL last, with the tmdl…
  • Tasks that involve Query optimization
  • SKILL.md covers When to use, When NOT to use, Tool cascade (the core… and Lifecycle, plus 4 more sections
  • Tasks that involve Data warehousing

What it does

Semantic Model is an agent skill from data-goblin/power-bi-agentic-development. This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a measure", "add a relationship", "create a role" / "set up RLS", "add a calculation group", "set up incremental refresh", "fix a star schema", "reduce model size", "prepare a model for Copilot / AI", or "check model quality". Covers the full lifecycle (design, build, refresh, review) and drives every operation through the te…

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 30 other files, including scripts and reference files (for example `references/aggregations.md`, `references/ai-copilot-readiness.md` and `references/calculation-groups.md`).

It sits in Databases, covering Query optimization and Data warehousing. It works with Model Context Protocol. The repository describes itself as: Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports… The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve Query optimization
  • Tasks that involve Data warehousing

Example prompts

  • “semantic model”
  • “data model”
  • “dataset”
  • “/semantic-model”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. te CLI first. One verb per operation, staged in memory until --save, with a save-time DAX + referential-integrity gate. Covers…
  2. TOM, or a model MCP, when te cannot reach a property. Some properties are absent from te set -p (for example alternateOf…
  3. fab + direct TMDL last, with the tmdl skill. Service- and file-shape operations with no model-edit verb: assigning Entra principals to…

What it can do on your machine

Read from SKILL.md and the folder at commit 41886f2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Semantic Model loads about 2.8k tokens when it runs, and up to ~39k if it reads all its reference files. Until then it costs about 178 tokens; SKILL.md has 972 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~178
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~39k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from data-goblin/power-bi-agentic-development at commit 41886f2, republished under its GPL-3.0 licence (© data-goblin). 972 words, ~2,788 tokens.

Download SKILL.mdSave it as .claude/skills/semantic-model/SKILL.md (or your agent's skills folder). This skill also uses 29 other files; get the full folder from GitHub.
name
semantic-model
description
This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a measure", "add a relationship", "create a role" / "set up RLS", "add a calculation group", "set up incremental refresh", "fix a star schema", "reduce model size", "prepare a model for Copilot / AI", or "check model quality". Covers the full lifecycle (design, build, refresh, review) and drives every operation through the `te` CLI first, then TOM (connect-pbid) or a model MCP, then TMDL authoring (the tmdl skill). Not for report visuals (use pbir-cli) or isolated DAX query tuning (use the dax skill).

Semantic models: design, build, refresh, review

Guidance for designing, building, refreshing, and reviewing Power BI / Analysis Services tabular models from the terminal. It consolidates model review with modeling best practices, and routes every change to the narrowest capable tool. Depth lives in references/; this file is the operating loop and the routing.

When to use

  • Designing or building a model: star schema, relationships, measures, calculation groups, roles, parameters, storage modes, incremental refresh
  • Optimizing a model: size / VertiPaq, DAX correctness, Direct Lake, refresh cost
  • Reviewing or auditing a model against quality, performance, and best-practice standards
  • Preparing a model for Copilot / AI consumption

When NOT to use

  • Editing report visuals, pages, or formatting: use the pbir-cli skill (reports plugin)
  • Isolated DAX query performance tuning: use the dax skill
  • TMDL file syntax mechanics: use the tmdl skill (this skill routes to it for the file-edit fallback)
  • The te command surface itself: the te-cli skill (tabular-editor plugin) is the command reference; this skill is the modeling judgment layered on top

Tool cascade (the core operating rule)

Reach for the narrowest capable tool, in order. Most edits never leave step 1.

  1. te CLI first. One verb per operation, staged in memory until --save, with a save-time DAX + referential-integrity gate. Covers add/set/rm/mv for measures, columns, relationships (Sales[K]->Dim[K] shorthand on te add), roles + RLS filters, calculation groups / items, DAX formatting (te set <path> --format Expression, or te script --inline "Model.AllMeasures.FormatDax();" for the whole model), te bpa, te vertipaq, te query. Each Bash call is a fresh shell, so pass --model <path> (or -s/-d for remote) on every command, or set TE_SESSION. Properties are -p Name=Value; read the real object's settable surface first with te get <obj> --properties. Every mutation is a dry run until --save. The te-cli skill is the full command reference.
  2. TOM, or a model MCP, when te cannot reach a property. Some properties are absent from te set -p (for example alternateOf, securityFilteringBehavior, crossFilteringBehavior, KPI sub-objects, linguistic-schema content, calendar objects). Drive these through a te script C# pass (in-process TOM), or the connect-pbid skill (PowerShell + TOM/ADOMD against a live local Desktop instance, and the only route to traces: EVALUATEANDLOG, aggregation-hit events, storage DMVs). The Power BI Modeling MCP server is also available if you prefer an MCP. The local Desktop proxy cannot reach Direct Lake; use a remote XMLA endpoint there.
  3. fab + direct TMDL last, with the tmdl skill. Service- and file-shape operations with no model-edit verb: assigning Entra principals to roles (workspace-side, not in .tmdl), report-to-model binding, Copilot-folder features (AI instructions, AI data schema, verified answers), Lakehouse / Delta reshaping behind Direct Lake, and bulk structural surgery that is cleaner as one TMDL diff than N te calls. For read-only Fabric retrieval of AI instructions / schema, use scripts/get_semantic_model_ai_metadata.py. Author the TMDL with the tmdl skill, then run te validate.

Ordering gate: add relationships before any measure that uses RELATED() or a cross-table CALCULATE(), or the save gate fails with DAX0002 (no relationship in context).

Lifecycle

Design

Model dimensionally: a star of fact plus conformed dimensions beats snowflakes and fact-to-fact joins. Decide storage mode and refresh strategy before building; both are near one-way doors once published. See references/dimensional-modeling.md, references/storage-modes.md, references/composite-models.md, and references/direct-lake.md.

Build

Make each change through the cascade above. Author measures with full metadata (DisplayFolder, FormatString, Description) in one pass. Validate after every mutation (te validate) and gate on BPA (te bpa run --fail-on error). Renaming or moving any object can silently break downstream reports and models; run the lineage check first, then propagate with pbir-cli / fabric-cli (see references/refactoring-renaming.md). Deep guidance per area: references/relationships.md, references/time-intelligence.md, references/calculation-groups.md, references/parameters.md, references/security.md, references/dax-authoring.md.

Show full SKILL.md (374 more words)Show less
Refresh

Configure incremental refresh from the terminal (te incremental-refresh); for Direct Lake, the refresh is the framing. See references/incremental-refresh.md, and the refresh-semantic-model skill for monitoring and troubleshooting.

Review

Audit against the categories below and produce prioritized findings with file locations. Gather context first with scripts/get_model_info.py (storage mode, size, connected reports, endorsement, data sources, refresh schedule). Full checklist in references/review-checklist.md; performance method in references/performance.md.

Review categories (by severity)

  • Critical: bidirectional ambiguity, circular dependencies, missing data types, orphaned tables, fail-open RLS, limited relationships that silently drop rows
  • Memory & size: high-cardinality dictionaries, auto attribute hierarchies (isAvailableInMDX on hidden / high-cardinality columns), unsplit DateTime, auto date/time tables, wrong data types, calc columns that should be measures, unused objects
  • Data reduction: unfiltered fact history (no incremental refresh), unnecessary columns, detail grain not needed for reporting, logic better pushed upstream
  • DAX correctness: filtering tables not columns in CALCULATE, unguarded division, context-blind calc columns, variable time-shift bugs (references/dax-authoring.md; for query tuning use the dax skill)
  • Measure hygiene: implicit measures, report-scoped measures that belong in the model, ambiguous duplicates
  • Documentation & AI: missing descriptions (Copilot truncates after 200 characters), missing display folders, missing synonyms, inconsistent naming (use standardize-naming-conventions)
  • Design: star-schema violations, mis-marked date table, many-to-many without a bridge, dead inactive relationships
  • Direct Lake: non-unique one-side keys (queries fail at runtime), DirectQuery fallback, calculated-column support by Direct Lake flavor, Delta guardrail breaches
  • tmdl: TMDL file authoring (the cascade's step-3 fallback)
  • dax: DAX query performance optimization
  • connect-pbid: TOM / ADOMD via PowerShell against a live Desktop instance; traces; the TOM / MCP tier
  • te-cli: the te command reference
  • c-sharp-scripting: TOM C# scripts and macros (te script) for properties te cannot reach
  • standardize-naming-conventions: naming audit and remediation
  • refresh-semantic-model: refresh monitoring and troubleshooting
  • lineage-analysis: artifact lineage (downstream reports and models that consume this model, across workspaces); distinct from intra-model object dependencies
  • bpa-rules (tabular-editor): authoring BPA rules; fabric-cli: service / workspace operations

Reference map

yaml
references/dimensional-modeling.md:    star schema, SCD2, junk / degenerate dimensions, header-detail, bridges
references/relationships.md:           cardinality, limited relationships, ambiguity, active / inactive, USERELATIONSHIP
references/time-intelligence.md:       classic vs calendar TI, mark-as-date traps, week-based / 4-4-5
references/calculation-groups.md:      precedence, sideways recursion, selection expressions, the variant trap
references/parameters.md:              field parameters, what-if parameters, dynamic titles
references/security.md:                RLS validation + defensive filters, bidirectional + RLS, OLS restrictions
references/query-semantic-model.md:    querying a model with DAX, INFO functions, output formats, probing
references/storage-modes.md:           Import / DirectQuery / Dual / Hybrid decision matrix
references/composite-models.md:        source groups, regular vs limited, Direct-Lake-plus-Import
references/aggregations.md:            user-defined aggregations, grain, te-script AlternateOf
references/direct-lake.md:             OneLake vs SQL, framing, DirectQuery fallback, guardrails
references/incremental-refresh.md:     IR policy, detect data changes, hybrid / real-time, refresh strategy
references/vertipaq-optimization.md:   VPA metrics, value vs hash encoding, splitting high-cardinality keys
references/dax-authoring.md:           variable semantics, DIVIDE, measure vs calc column (gaps vs the dax skill)
references/ai-copilot-readiness.md:    the Copilot grounding contract, synonyms / linguistic schema, descriptions, Q&A retirement
references/metadata-and-organization.md: descriptions, display folders, naming, measure tables, perspectives
references/hierarchies-cultures.md:    user hierarchies, parent-child, KPIs, perspectives, cultures / translations
references/documentation-and-bpa.md:    data dictionary, BPA documentation gate, metadata diffs, intra-model impact analysis (artifact lineage = the lineage-analysis skill)
references/refactoring-renaming.md:    safe rename workflow (lineage check first, then propagate via pbir-cli / fabric-cli)
references/review-checklist.md:        full audit checklist with remediation
references/performance.md:             performance testing, unused-column detection, memory analysis
scripts/get_model_info.py:             model metadata overview (mode, size, reports, endorsement, sources, refresh)
scripts/manage-ai-metadata.csx:        read/write AI instructions and AI schema through TOM culture linguistic metadata
scripts/get_semantic_model_ai_metadata.py: Fabric CLI service-definition readback for AI instructions and AI schema

What this skill deliberately leaves out

  • GUI-tool walkthroughs and the old review skill's "use whatever tool is available" framing: superseded by the te-cli-first cascade
  • Hand-authored Q&A phrasings: Q&A is being retired and Copilot does not read phrasings; invest in synonyms and descriptions
  • Perspectives or display folders presented as security: both are queryable by anyone with model access; use RLS / OLS
  • The PBIT format: out of scope

© data-goblin, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 29 other files (scripts, references) in plugins/semantic-models/skills/semantic-model of data-goblin/power-bi-agentic-development.

  • SKILL.md
  • references/aggregations.md
  • references/ai-copilot-readiness.md
  • references/calculation-groups.md
  • references/composite-models.md
  • references/dax-authoring.md
  • references/dimensional-modeling.md
  • references/direct-lake.md
  • references/documentation-and-bpa.md
  • references/hierarchies-cultures.md
  • references/incremental-refresh.md
  • references/metadata-and-organization.md
  • references/parameters.md
  • references/performance.md
  • references/query-semantic-model.md
  • references/refactoring-renaming.md
  • references/relationships.md
  • references/review-checklist.md
  • references/security.md
  • references/storage-modes.md
  • … and 10 more

Open the folder on GitHubat commit 41886f2

Compare with similar skills

Semantic Model next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Semantic Model compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Semantic Model this skilldata-goblin/power-bi-agentic-development1k—~2.8kAutomated safety check: PassGPL-3.0
Pytorch Clickhousepytorch/test-infra113—~2.8kAutomated safety check: PassCustom licence
Clickhouse Ioaffaan-m/ECC274k1 repos~2.7kAutomated safety check: PassMIT
Generating Clickhouse Query Performance ReportsPostHog/posthog-foss721—~5.1kAutomated safety check: PassMIT
Releasehypequery/hypequery103—~623Automated safety check: PassCustom licence
Altimate Data Warehouse DelegateAltimateAI/data-engineering-skills127—~1.4kAutomated safety check: PassMIT

Similar skills

  • Pytorch Clickhouse

    pytorch/test-infra

    Load this FIRST whenever working with PyTorch CI data (any pytorch/ org repo), the torchci/HUD codebase, or the PyTorch HUD ClickHouse database.

    113 GitHub stars~2.8k tokensUpdated today
    DatabasesAuto-check passed
  • Clickhouse Io

    affaan-m/ECC

    ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

    274k GitHub starsUsed in 1 repo~2.7k tokens
    DatabasesAuto-check passed
  • Produce and structure slow-query performance reports for PostHog's production ClickHouse (US and EU).

    721 GitHub stars~5.1k tokensUpdated today
    DatabasesAuto-check passed
  • Release

    hypequery/hypequery

    Cut a stable hypequery release via Changesets, or explain/check the canary flow.

    103 GitHub stars~623 tokensUpdated today
    DatabasesAuto-check passed
  • Altimate Data Warehouse Delegate

    AltimateAI/data-engineering-skills

    Delegates dbt and warehouse tasks such as lineage, migrations and cost attribution to the altimate-code CLI agent and relays its answer back.

    127 GitHub stars~1.4k tokensUpdated 5 days ago
    DatabasesAuto-check passed
  • Official

    Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.

    21k GitHub stars~2.3k tokensUpdated today
    DatabasesAuto-check passed

More from data-goblin/power-bi-agentic-development

All 33 skills in this repo
  • Paginated Report

    data-goblin/power-bi-agentic-development

    Author, validate, publish, and test Power BI paginated reports in the RDL format.

    1k GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check passed
  • Audit Tenant Settings

    data-goblin/power-bi-agentic-development

    Automatically invoke this skill whenever the user asks about Fabric tenant settings or Power BI tenant settings or auditing tenant settings.

    1k GitHub stars~4.7k tokensUpdated 2 days ago
    Auto-check passed
  • Bpa Rules

    data-goblin/power-bi-agentic-development

    Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.

    1k GitHub stars~4.4k tokensUpdated 2 days ago
    Auto-check passed
  • Pbip

    data-goblin/power-bi-agentic-development

    Guidance for Power BI Project (PBIP) structure, thick and thin reports, project renames, forks, and validation.

    1k GitHub stars~3.8k tokensUpdated 2 days ago
    Auto-check passed
  • Review Report

    data-goblin/power-bi-agentic-development

    Actionable feedback on the quality, usage, and effectiveness of Power BI reports.

    1k GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Te Docs

    data-goblin/power-bi-agentic-development

    Tabular Editor documentation search and configuration file guidance (.tmuo, Preferences.json, UiPreferences.json, Layouts.json).

    1k GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Semantic Model

What does Semantic Model do?

This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a…. Semantic Model is an agent skill from data-goblin/power-bi-agentic-development. This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a measure", "add a relationship", "create a role" / "set up RLS", "add a calculation group", "set up incremental refresh", "fix a star schema", "reduce model size", "prepare a model for Copilot / AI", or "check model quality".

When should I use Semantic Model?

Semantic Model fits situations like: tasks that involve Query optimization; tasks that involve Data warehousing.

How do I install Semantic Model in Claude Code?

Run `npx skills add data-goblin/power-bi-agentic-development --skill semantic-model -a claude-code`. Or copy the skill folder (plugins/semantic-models/skills/semantic-model in data-goblin/power-bi-agentic-development) into .claude/skills/semantic-model in your project. Claude Code loads it when a task matches its description.

How do I install Semantic Model in Codex?

Run `npx skills add data-goblin/power-bi-agentic-development --skill semantic-model -a codex`. Or copy the skill folder (plugins/semantic-models/skills/semantic-model in data-goblin/power-bi-agentic-development) into .agents/skills/semantic-model in your project. Codex loads it when a task matches its description.

Can I use Semantic Model in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add data-goblin/power-bi-agentic-development --skill semantic-model -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/semantic-model, .gemini/skills/semantic-model, .github/skills/semantic-model and .opencode/skills/semantic-model in your project.

What does Semantic Model need to run?

SKILL.md names no scripts, command-line tools or credentials: Semantic Model is instructions for the agent only.

Does Semantic Model access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Semantic Model safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Semantic Model use?

Semantic Model is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Semantic Model use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 36k tokens, read only when the agent opens those files.

What are the alternatives to Semantic Model?

Skills that share tags, products or a category with Semantic Model: Pytorch Clickhouse (pytorch/test-infra, 113 stars), Clickhouse Io (affaan-m/ECC, 274k stars), Generating Clickhouse Query Performance Reports (PostHog/posthog-foss, 721 stars) and Release (hypequery/hypequery, 103 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Semantic Model?

data-goblin (a GitHub user) maintains it in data-goblin/power-bi-agentic-development, which has 1,026 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 5, 2026.

Source: data-goblin/power-bi-agentic-development on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.