lukasreese/powerbi-claude-skills/pbir-report-builder
Claude Code and agent skill by lukasreese/powerbi-claude-skills
- community
- ext:[{"type":"plugin","description":"Custom plugin integration"}]
Checking that the SKILL.md file is still in the repository.
[power-bi] Power BI PBIR Report Builder with IBCS Visuals. Generates Power BI report pages, visuals, and IBCS-compliant variance charts by writing PBIR JSON files directly into PBIP project folders. Use this skill EVERY TIME the user asks to: create a Power BI report page, add visuals to a report, generate KPI cards, create charts or tables in Power BI, build a dashboard layout with visuals, create IBCS variance charts, create actual vs plan visuals, or programmatically create Power BI visuals. Also trigger when the user mentions 'PBIR', 'IBCS', 'variance chart', 'variance table', 'actual vs plan', 'actual vs comparison', 'create visuals', 'add a page', 'build a report', 'KPI cards', 'place visuals', or wants to generate Power BI report content through code. If the user mentions any combination of Power BI + visuals/page/report/KPI/chart/table/IBCS/variance + create/build/generate/add, use this skill.
Install
npx vskill@latest install lukasreese/powerbi-claude-skills/pbir-report-builderSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
PBIR Report Builder
Add pages and visuals to existing Power BI PBIP projects by writing PBIR (Enhanced Report Format) JSON files directly into the project folder structure.
Critical: Hybrid Approach (Do NOT Create PBIP From Scratch)
NEVER create an entire PBIP project from scratch. Power BI Desktop generates boilerplate files (report.json, .platform, version.json, theme packages, settings) with version-specific schema references, real GUIDs, and internal settings that are impractical to replicate manually.
The correct workflow:
- User creates a blank PBIP — open Power BI Desktop, connect to the data source, save as PBIP format. This generates all boilerplate correctly.
- Semantic model measures — use
powerbi-modeling-mcpif Desktop is running, OR write directly to TMDL files if Desktop is closed (see "Adding Measures When Desktop Is Closed" below). - This skill adds pages and visuals — write PBIR JSON files into the existing
.Report/definition/folder to create report pages with visuals.
Why not from scratch? The report.json file contains Desktop-version-specific theme references (e.g., CY26SU02 with nested version objects), resource packages, 6+ report settings, and the .platform files need real UUIDs. These change between Desktop versions and cannot be reliably generated.
PBIP File Structure (for reference — user creates this by saving)
Key learning: The semantic model entry point is definition.pbism (a JSON file), NOT definition.tmdl. TMDL files go inside the definition/ subfolder.
References (Self-Contained)
All reference material is bundled inside this skill at references/:
Reference docs:
references/visual-types.md— all 35+ visual type identifiers and query rolesreferences/field-references.md— column/measure binding patterns, aggregation codes, conditional formattingreferences/formatting-objects.md— container/visual/page formatting JSON patternsreferences/folder-structure.md— annotated PBIP/PBIR/TMDL folder treereferences/page-naming.md— readable naming convention (pg##/v## rules)
JSON templates (ready-to-use):
references/json-templates/card-kpi.json— KPI card with CY, PY, YoY%, conditional colorreferences/json-templates/clustered-column.json— vertical bar chartreferences/json-templates/clustered-bar.json— horizontal bar chartreferences/json-templates/line-chart.json— line trend over timereferences/json-templates/combo-chart.json— column + line comboreferences/json-templates/table.json— table with multiple columns/measuresreferences/json-templates/matrix.json— pivot table with rows/columns/valuesreferences/json-templates/slicer.json— slicer dropdownreferences/json-templates/donut.json— donut/pie chartreferences/json-templates/page-standard.json— standard page definitionreferences/json-templates/page-drillthrough.json— drillthrough pagereferences/json-templates/report-settings.json— report-level settings
Complete examples (start here for new users):
references/examples/kpi-dashboard-example.md— full working example: 4 KPI cards + bar chart + line chart, complete Node.js script, DAX measures, layout gridreferences/examples/card-kpi-with-yoy.md— KPI card with conditional YoY badge —cardVisualwith prior-year reference row, custom label ("vs. PY:"), and green/red % badge driven by DAX color measures. Includes fullreferenceLabelDetailconditional formatting pattern, required DAX measures, complete JSON template with placeholders, and community contribution guide.
JSON schemas (Microsoft originals):
references/json-schemas/— local copies of all PBIR schemas for offline validation
IBCS Visuals (integrated):
references/ibcs-visuals/IBCS-REFERENCE.md— full IBCS workflow, template selection guide, generation stepsreferences/ibcs-visuals/references/ibcs-colors.md— IBCS color palette (actual, comparison, positive, negative)references/ibcs-visuals/references/ibcs-dax-measures.md— 15 DAX measure templates for column variancereferences/ibcs-visuals/references/ibcs-svg-measures.md— SVG measure templates for table visualsreferences/ibcs-visuals/references/ibcs-column-variance.md— combo chart visual.json patternreferences/ibcs-visuals/references/ibcs-bar-variance.md— bar chart with NativeVisualCalculation patternreferences/ibcs-visuals/references/ibcs-table-simple.md— pivot table with SVG variance barsreferences/ibcs-visuals/references/ibcs-table-full.md— full SVG table (AC, PY bars + variance)
For IBCS visuals, read references/ibcs-visuals/IBCS-REFERENCE.md for the full workflow and template selection guide.
Read the relevant template file when building a visual type you haven't used recently.
How It Works
Step 0: Prerequisites
Before using this skill, verify:
- A PBIP project already exists — user must have saved a
.pbipfrom Power BI Desktop - The semantic model is connected — the
.SemanticModel/folder has data tables with columns - Measures exist or can be created — either already in the model, creatable via MCP, or writable to TMDL
- Power BI Desktop is CLOSED — files cannot be written while Desktop has the project open
If the user doesn't have a PBIP yet, instruct them to:
- Open Power BI Desktop
- Connect to their data source
- File → Save As → select "Power BI Project (.pbip)" format
- This creates the full boilerplate structure that this skill needs
Step 1: Gather Requirements
Ask the user:
- Target PBIP project path — where to write the files (must already exist as a saved PBIP)
- Page name and purpose — e.g., "Sales Overview", "Product Drillthrough"
- Canvas size — read from existing
page.jsonfiles or use default 1280x720 - Visuals needed — what charts/cards/tables, and what data they show
- Measures and columns — table.field references for each visual (case-sensitive, must match model exactly)
- Layout — natural language ("4 KPIs at top, bar chart left, line chart right") or pixel positions
If the user has a background SVG from the Background Designer skill, use those exact grid positions.
Step 2: Generate the PBIR Files
Write files directly into the project's .Report/definition/ folder.
File Generation Order:
- Create page folder:
definition/pages/pg##Name/ - Create
page.jsonin that folder - Create
visuals/subfolder - For each visual, create
visuals/v##Name/visual.json - Update
definition/pages/pages.json— add the new page topageOrder
Step 3: Naming Convention
ALWAYS use readable names:
- Pages:
pg01Overview,pg02SalesDetail,pg03Drillthrough - Visuals:
v01KpiTotalSales,v02BarByRegion,v03LineTrend - The
namefield inside the JSON MUST match the folder name exactly
See page-naming.md for full convention.
Step 4: Deliver
Tell the user:
- Files have been written to
[path] - Close Power BI Desktop if open, then reopen the
.pbipfile - The new page should appear with all visuals
JSON Structure Reference
page.json Template
Schema version detection: Before writing any files, read an existing visual.json from the project to discover the schema version Desktop used (e.g., 2.6.0, 2.7.0). Use that same version for all new files. The template above shows 2.0.0 as a baseline — always override with the detected version.
Canvas sizes:
- Standard:
1280x720 - Report:
1300x900 - Wide:
1600x900 - Full HD:
1920x1080
Page types:
- Standard: omit
typefield - Drillthrough: add
"type": "Drillthrough" - Tooltip: add
"type": "Tooltip", use smaller dimensions (320x240) - Hidden: add
"visibility": "HiddenInViewMode"
pages.json — Adding a New Page
Read existing pages.json, add the new page name to pageOrder:
visual.json — Visual Container Structure
Visual Type Patterns
KPI Card (cardVisual) — The Core Pattern
This is the most common visual. Shows a main value, a comparison reference, and a change percentage with conditional coloring.
Query roles:
Data— main KPI value (e.g., Total Sales CY)ReferenceLabels— comparison value (e.g., Total Sales PY)AdditionalMeasure— change metric (e.g., YoY Sales %)
Conditional color via measure: The KPI Color measure returns a hex color based on YoY performance. Use the IBCS color palette consistently: "#44C088" (green/positive) or "#ED7373" (red/negative). Do NOT use "#00B050" / "#FF0000" — those clash with the IBCS visual standards used elsewhere in the report.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpbir-report-builder/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Extension points
pluginCustom plugin integration
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/lukasreese/powerbi-claude-skills/pbir-report-builder)