plugins/powerbi-master/skills/programmatic-development/SKILL.md
Programmatic Power BI development with PBIR, PBIP, TMDL, TOM, and fabric-cicd. PROACTIVELY activate for: (1) creating Power BI reports programmatically (PBIR enhanced report format), (2) PBIR vs PBIR-Legacy selection (2026 default), (3) PBIP developer mode and Power BI project files, (4) Tabular Object Model (TOM) / .NET SDK scripting, (5) Tabular Editor scripting (C# scripts, advanced scripting), (6) pbi-tools workflows, (7) fabric-cicd Python deployments (FabricWorkspace, publish_all_items), (8) Fabric CLI (fab deploy), (9) Semantic Link / sempy / semantic-link-labs, (10) generating PBIX programmatically, (11) parameter.yml for environment-specific deployments, (12) ALM Toolkit. Provides: PBIR/PBIP project templates, fabric-cicd deploy.py, Tabular Editor scripting recipes, parameter.yml patterns, and end-to-end programmatic workflows.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace programmatic-developmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Power BI supports multiple approaches for creating and managing reports and semantic models through code. As of 2026, the canonical stack is:
tmdl-mastery skill)fab deploy for deploymentDetailed material lives in references/. Load only what the current task needs.
| Topic | File | When to load |
|-------|------|--------------|
| PBIR rollout timeline, full PBIP folder structure, byPath/byConnection, annotations, validation, limitations | references/pbir-format-deep-dive.md | Authoring PBIR by hand, debugging definition.pbir, validating generated PBIR, understanding 2026 rollout state |
| PBIR JSON schema (visuals, pages, report settings) with Python manipulation examples | references/pbir-schema-reference.md | Scripting PBIR with Python: add page, batch-update visuals, copy between reports |
| TOM/Tabular Editor/fabric-cicd/Fabric CLI/semantic-link/pbi-tools/ALM Toolkit -- setup, examples, Desktop developer features | references/tools-and-tabular-editor.md | Choosing a tool, deploying, scripting TOM, running C# scripts, configuring Desktop |
| TOM advanced patterns (RLS, OLS, partitions, perspectives, translations, calc groups, SP auth) | references/tom-advanced-patterns.md | Writing complex TOM .NET code beyond basic measure/table edits |
| fabric-cicd advanced recipes (multi-workspace, hooks, GitHub Actions/Azure DevOps pipelines, parameter patterns, troubleshooting) | references/fabric-cicd-recipes.md | Production CI/CD workflows, multi-environment promotion, OIDC federated credentials |
PBIR is Microsoft's modern, publicly documented, folder-based, JSON report format. It replaces the opaque report.json blob (now called PBIR-Legacy) with one file per visual, page, and bookmark, enabling proper Git diff/merge, code review, and schema-validated editing in VS Code.
Current state (April 2026): PBIR is the default for newly created reports in the Service. Existing Service reports are being auto-upgraded gradually. Desktop still needs the preview toggle until the May 2026 release, when PBIR becomes the Desktop default. PBIR-Legacy will be deprecated at PBIP GA.
For the full 2026 rollout timeline, admin opt-out, Service/Desktop restore policies, Sovereign Cloud caveats, complete project structure, byPath vs byConnection examples, annotations, self-validation procedure, and limitations, see references/pbir-format-deep-dive.md.
Quick PBIP structure (essentials only):
MyProject.pbip # Entry JSON
├── MyProject.Report/
│ ├── definition.pbir # Required entry; uses byPath or byConnection
│ └── definition/ # PBIR folder (one file per page/visual/bookmark)
└── MyProject.SemanticModel/
├── definition.pbism
└── definition/ # TMDL folder
TMDL is the human-readable, source-control-friendly format for semantic model definitions. GA since 2025. For comprehensive TMDL coverage including complete syntax reference, all object types, CI/CD patterns, and deployment workflows, load the dedicated powerbi-master:tmdl-mastery skill.
Quick example:
table Sales
measure 'Total Sales' = SUM(Sales[Amount])
formatString: $ #,##0.00
displayFolder: Revenue
partition 'Sales-Partition' = m
mode: import
source =
let
Source = Sql.Database("server", "db"),
Sales = Source{[Schema="dbo",Item="Sales"]}[Data]
in
Sales
column Amount
dataType: decimal
sourceColumn: Amount
formatString: $ #,##0.00
powerbi-master:validation-testing skill.parameter.yml for environment-specific GUIDs/connection strings.fabric-cicd (Python library, primary) or fab deploy (CLI wrapper). Both consume the same parameter.yml. First deploy requires manual data-source credential entry in the Fabric portal.| Scenario | Recommended Tool |
|----------|------------------|
| PBIP project with CI/CD (GitHub Actions / Azure DevOps) | fabric-cicd (Python) |
| Local ad-hoc deploy of a PBIP | fab deploy (Fabric CLI v1.5+) |
| Fabric notebook-based model editing | semantic-link-labs (sempy_labs) |
| Pure semantic model via XMLA | TOM (.NET) via Microsoft.AnalysisServices.NetCore.retail.amd64 |
| TMDL folder -> XMLA | Tabular Editor 2 CLI (-D switch) |
| Legacy PBIX only (no PBIP) | pbi-tools |
| Cross-environment promotion (dev/test/prod) | Fabric Deployment Pipelines (GUI) OR fabric-cicd with parameter.yml |
| Schema diff between two models | ALM Toolkit |
| Need | Load reference | Tool |
|------|---------------|------|
| Modify a measure on a deployed model | tools-and-tabular-editor.md | TOM or semantic-link-labs |
| Auto-generate measures across folders | tools-and-tabular-editor.md | Tabular Editor C# script |
| Deploy PBIP from CI | fabric-cicd-recipes.md | fabric-cicd + parameter.yml |
| Generate PBIR pages from a template | pbir-schema-reference.md | Python + JSON schema validation |
| RLS/OLS in .NET | tom-advanced-patterns.md | TOM |
| Extract legacy PBIX for diff | tools-and-tabular-editor.md | pbi-tools |
powerbi-master:tmdl-mastery -- Deep TMDL language reference and syntaxpowerbi-master:validation-testing -- Validate generated PBIR / TMDL / DAX before deploypowerbi-master:rest-api-automation -- Raw Fabric REST API endpoints when fabric-cicd doesn't cover a scenariopowerbi-master:deployment-admin -- Fabric Deployment Pipelines, workspace management, RLS at deploy timepowerbi-master:fabric-integration -- Direct Lake, OneLake, Lakehouse/Warehouse integrationdevelopment
This skill should be used when the user asks to train, debug, scale, or improve ML models. PROACTIVELY activate for: (1) PyTorch, TensorFlow/Keras, JAX, Flax, Hugging Face Trainer/Accelerate training loops, (2) distributed training, DDP/FSDP/DeepSpeed, TPU/GPU setup, (3) mixed precision AMP/bf16, gradient accumulation, checkpointing, seeding, (4) overfitting, imbalance, loss functions, regularization, LR schedules, warmup, (5) memory optimization, gradient checkpointing, offloading, quantization-aware training. Provides: reproducible training best practices across deep learning and classical ML.
development
This skill should be used when the user asks to productionize, track, version, govern, monitor, or automate ML systems. PROACTIVELY activate for: (1) MLflow, Weights & Biases, Neptune, Comet, ClearML experiment tracking, (2) model registry, model versioning, artifact lineage, reproducibility, (3) Kubeflow, SageMaker Pipelines, Vertex AI Pipelines, Azure ML pipelines, Databricks workflows, (4) CI/CD, continuous training/evaluation, A/B tests, canary/shadow deployments, (5) drift detection, model monitoring, data validation, responsible AI governance. Provides: end-to-end MLOps architecture and operational safeguards.
development
This skill should be used when the user asks to optimize, export, serve, compress, or accelerate ML inference. PROACTIVELY activate for: (1) latency, throughput, p95/p99, batching, concurrency, KV cache, memory, or cost issues, (2) quantization INT8/INT4, GPTQ, AWQ, bitsandbytes, pruning, sparsity, distillation, (3) ONNX export, ONNX Runtime, TensorRT, TorchScript, torch.compile, XLA, OpenVINO, Core ML, TFLite, (4) Triton, TorchServe, TF Serving, BentoML, Seldon, KServe configuration, (5) edge deployment, CPU/GPU/TPU/Inferentia serving. Provides: hardware-aware inference optimization and safe benchmarking.
testing
This skill should be used when the user asks to tune hyperparameters, run sweeps, optimize search spaces, or use AutoML. PROACTIVELY activate for: (1) Optuna, Ray Tune, FLAML, AutoGluon, Hyperopt, Nevergrad, KerasTuner, W&B sweeps, (2) grid search, random search, Bayesian optimization, TPE, Gaussian processes, evolutionary search, (3) ASHA, Hyperband, successive halving, multi-fidelity optimization, population-based training, (4) learning-rate finder, batch-size search, early stopping, pruning, (5) reproducible sweep design and experiment analysis. Provides: budget-aware hyperparameter search strategy.