validation-testing
Installation
SKILL.md
Power BI Validation and Self-Testing
Overview
Validation skill for any TMDL, PBIR, DAX, or M artifact a developer (or Claude) generates. The goal: catch syntax, schema, and best-practice errors locally before a Fabric REST deploy fails. This skill is essential for the powerbi-expert agent's Self-Validation Protocol -- whenever the agent writes TMDL or PBIR, it should describe (or run) the matching validation step from this skill.
As of 2026, Power BI validation has four distinct layers, each catching a different class of error:
| Layer | TMDL Tool | PBIR Tool | What it catches |
|---|---|---|---|
| 1. Syntax / parser | TmdlSerializer.DeserializeDatabaseFromFolder (.NET) |
JSON schema validation ($schema URLs) |
Indentation errors, invalid keywords, malformed JSON |
| 2. Object / schema | TmdlSerializer -> TmdlSerializationException (valid syntax, invalid TOM metadata) |
PBIR JSON schemas in microsoft/json-schemas repo |
Invalid property combinations, type mismatches, missing required properties |
| 3. Best practice (BPA) | Tabular Editor BPA rules (BPARules.json) or semantic-link-labs.run_model_bpa |
PBI-InspectorV2 rules (Base-rules.json) |
Anti-patterns, missing display folders, ambiguous relationships, naming conventions |
| 4. Lineage / cross-reference | DAX measure references resolve, sortByColumn exists, calculation group precedence | Bookmarks reference real pages, drillthrough targets exist, theme files present | Dangling references, broken bookmarks, missing visuals |
The cardinal rule: never deploy without passing layers 1 and 2; never merge to main without passing layer 3.