pbir-format

Installation
SKILL.md

PBIR Format Reference

Skill that teaches Claude about the Power BI Enhanced Report (PBIR) JSON format to read and use it. Doesn't support legacy report.json or layout report metadata. To convert from legacy to PBIR format, users have to open and save their reports in Power BI Desktop.

Follow within reason the mental model when working with reports.

WARNING: The PBIR format is brittle and easily corrupted. Direct JSON file modification can lead to corruption. Prefer using the pbir CLI tool if available (uv tool install pbir-cli or pip install pbir-cli), as it has built-in safeguards against breaking report files. Only fall back to direct JSON modification if the user explicitly requests it or if pbir is not available.

General, critical guidance

  • Check examples: Check examples for a valid report
  • Take a backup: Make a copy of the report before modifying it
  • PBIX vs PBIP vs PBIR: So long as report metadata is in PBIR format, any of these formats works. PBIX is just a zip file; unzip and rezip to work with it. Do not work with PBIT (Power BI Template) file types. Note that PBIP and PBIX contain PBIR, but a "thin" report can be PBIR only.
  • Valid JSON vs. Rendering JSON: Valid JSON does not guarantee rendering. A visual might not render if the bound field is invalid (missing, wrong table, or misspelled) in the visual.json, if the visual elements are cropped by their container, if a model performance issue causes the dax query to time out, if a model data quality issue results in (Blank) or empty values, etc. Check whether a visual rendered using tools like the chrome or chrome devTools MCP server if the report was published to Power BI, but it's often faster to just ask the user to check in Power BI Desktop or the browser.
  • Hierarchical formatting cascade: In Power BI reports, formatting is determined by the following order of operations: defaults --> Theme wildcards (*) --> Theme visualTypes --> bespoke visual.json configuration. Theme overwrites defaults, visualType overrides wildcards in themes, and visual.json overrides all theme formatting. Prefer putting as much of the formatting in the theme as possible over bespoke visual.json formatting because then changes only need to happen in one place
  • PBIR files are strict JSON: No comments allowed
  • DON'T MAKE ASSUMPTIONS: Check the Microsoft documentation and other reputable resources for context if needed, or ask the user.

Report Structure

Related skills

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

Installs
13
GitHub Stars
571
First Seen
Apr 2, 2026