powerbi-tmdl
TMDL code Skill
Tabular Model Definition Language (TMDL) is a declarative language that represents a Power BI semantic model in text. This skill provides important context when interacting directly with TMDL code.
TMDL Semantics / General Rules
- A TMDL object is declared by specifying the TOM object type followed by its name
- TMDL definition uses a folder structure, where some objects such as tables, culture, perspectives, roles are defined in separate files.
- Objects like partition or measure have default properties that can be assigned after the equals (=) sign that specify the PowerQuery expression or DAX expression respectively.
DO:
- Always learn from existing examples and patterns in the code. For example, existing naming conventions.
- Object names must be enclosed in single quotes if they contain spaces or special characters such as .,=,:,'
DON'T:
- Don't add
lineageTagproperty when creating new objects - Don't add comments to the TMDL code. TMDL language don't support
//comments. It does support descriptions (see Task: Setting descriptions in TMDL objects). But comments can be within Power Query (M) expressions or DAX expressions code blocks.
Example of a TMDL of a semantic model:
More from ruiromano/powerbi-agentic-plugins
powerbi-semantic-model
Guide to develop Power BI Semantic Models. Use this skill when asked to connect to a semantic model for analysis or any development operation against a Power BI Semantic Model including (1) Creating new models or Direct Lake models, (2) Creating/editing measures using DAX, (3) Creating/editing tables and relationships, (4) Analyzing model best practices, (5) Deploying models to Fabric workspace, (6) Working with PBIP projects containing semantic models, (7) Troubleshooting DAX performance, (8) Refreshing semantic models in Desktop or Fabric service, (9) Create or edit TMDL code or TMDL files. Do NOT use for report layout/visual authoring (use powerbi-pbir), or workspace/pipeline administration (use fabric-cli).
15powerbi-report-authoring
Guide to develop Power BI Reports in PBIR format. Use this skill for any development operation against a Power BI Report PBIR file format including (1) Creating new reports on top of semantic models, (2) Editing visuals, pages, and bookmarks, (3) Aligning and laying out visuals, (4) Rebinding reports to different semantic models, (5) Deploying reports to Fabric workspaces, (6) Exporting reports from workspaces. Do NOT use for semantic model development or TMDL (use powerbi-semantic-model), or workspace/pipeline administration (use fabric-cli).
4powerbi-semantic-model-authoring
Develops and manages Power BI Semantic Models. Handles connecting to semantic models for analysis and all development operations including (1) Creating new models, (2) Creating/editing measures using DAX, (3) Creating/editing tables and relationships, (4) Analyzing model best practices, (5) Deploying models to Fabric workspace, (6) Working with PBIP projects containing semantic models, (7) Troubleshooting DAX performance, (8) Refreshing semantic models in Desktop or Fabric service, (9) Creating or editing TMDL code or TMDL files. Does NOT handle report layout/visual authoring, or workspace/pipeline administration (use fabric-cli).
4fabric-cli
Use Microsoft Fabric CLI (fab) to manage workspaces, semantic models, reports, notebooks, lakehouses, and other Fabric resources via file-system metaphor and commands. Use when deploying Fabric items, running jobs, querying data, managing OneLake files, or automating Fabric operations. Invoke this skill automatically whenever a user mentions the Fabric CLI, fab, or Fabric.
3powerbi-pbir
Guide to develop Power BI Reports in PBIR format. Use this skill for any development operation against a Power BI Report PBIR file format including (1) Creating new reports on top of semantic models, (2) Editing visuals, pages, and bookmarks, (3) Aligning and laying out visuals, (4) Rebinding reports to different semantic models, (5) Deploying reports to Fabric workspaces, (6) Exporting reports from workspaces. Do NOT use for semantic model development (use powerbi-semantic-model), TMDL syntax (use powerbi-tmdl), or workspace/pipeline administration (use fabric-cli).
1