data-goblin/power-bi-agentic-development/tree/main/plugins/reports

建立、格式化、最佳化及檢視互動式 Power BI 報表,並提供遵循 pbir CLI 的報表面板,顯示 Claude 讀取與修改的內容。
data-goblin/power-bi-agentic-development/tree/main/plugins/reports

[!WARNING] 這些技能仍在積極開發中,並以每週發布的節奏更新,因此名稱與結構會定期變更。
**26.26 到 26.38 是刻意安排的破壞性過渡。**在這段每週發布期間,技能可能會合併、重新命名、移除,或變得不那麼自動。如果需要過渡前的技能結構與行為,請固定使用 26.25 或更早版本;不要假設前後兩個過渡版本互相相容。
以下是在 Claude Code 中開始使用的方法;在終端機執行這個指令以取得市集:
claude plugin marketplace add data-goblin/power-bi-agentic-development
加入市集後,使用 /plugin 前往已安裝的市集並安裝外掛。
另一種方式是透過命令列加入外掛:
claude plugin install goblin-mode@power-bi-agentic-development
claude plugin install tabular-editor@power-bi-agentic-development
claude plugin install pbi-desktop@power-bi-agentic-development
claude plugin install pbip@power-bi-agentic-development
claude plugin install semantic-models@power-bi-agentic-development
claude plugin install reports@power-bi-agentic-development
claude plugin install paginated-reports@power-bi-agentic-development
claude plugin install custom-visuals@power-bi-agentic-development
claude plugin install fabric-cli@power-bi-agentic-development
claude plugin install fabric-admin@power-bi-agentic-development
claude plugin install databricks-cli@power-bi-agentic-development
claude plugin install fabric-data-app@power-bi-agentic-development
claude plugin install etl@power-bi-agentic-development
獨立的 Copilot CLI 支援從 GitHub 存放庫安裝外掛。Copilot CLI 會讀取此存放庫使用的相同 .claude-plugin/marketplace.json 清單,因此市集與子外掛配置不需要修改就能運作。
TMDL 檔案處理超過 260 個字元的存放庫相對路徑時會遇到問題。Windows 舊版 MAX_PATH 會阻止 git clone 寫入這些路徑,除非同時在作業系統與 git 層級啟用長路徑支援。否則,copilot plugin install 會因 Filename too long 而中止。
請參考 useful-stuff/agent-scripts/enable-windows-longpaths.ps1,其中示範了如何從提升權限的 ps 環境執行腳本來啟用長路徑;你也可以在線上找到其他做法……直接問 Copilot 即可。變更登錄後建議重新開機。這是 Windows 作業系統的限制,詳見 Maximum Path Length Limitation。
也請參閱下面的 git config 指令:
git config --system core.longpaths true
</details>
<details>
<summary><strong>其他安裝說明</strong></summary>
這個存放庫是 Anthropic 格式的外掛市集(一組外掛),不是單一可散發的外掛,因此根目錄 .claude-plugin/ 只有 marketplace.json。有兩條有文件記載的安裝路徑:
1. 註冊一次市集,再安裝指定名稱的子外掛。範例:
copilot plugin marketplace add data-goblin/power-bi-agentic-development
copilot plugin install tabular-editor@power-bi-agentic-development
2. 或直接從子目錄安裝單一外掛,不需要註冊市集。範例:
copilot plugin install data-goblin/power-bi-agentic-development:plugins/pbip
兩種形式都記載於 Copilot CLI 外掛參考 和 外掛使用方式。在互動式 Copilot 工作階段中,/plugin install PLUGIN-NAME@MARKETPLACE-NAME 等同於 (1)。不帶限定詞的 copilot plugin install data-goblin/power-bi-agentic-development 不會安裝任何有用內容,因為根目錄是市集目錄,不是外掛。
在 Copilot CLI 中:
/env # Loaded instructions, MCP servers, skills, agents, plugins, LSPs, extensions
/plugin list # Installed plugins
/skills list # Available skills
/skills info pbip # Details for a specific skill
/agent # Browse installed agents
</details>
<details>
<summary><strong>相容性說明</strong></summary>
skills/<name>/SKILL.md。*.agent.md 副檔名。Claude Code 會比對 agents/ 中任何 *.md 檔案,因此雙重副檔名在兩個工具中都能運作。.mcp.json(外掛根目錄)或 .github/mcp.json 載入。此存放庫的外掛目前不提供 MCP 伺服器。hooks/hooks.json(含每個 hook 的 if 路徑篩選器)。Copilot CLI 讀取 .github/plugin/plugin.json,該檔案指向 hooks/copilot-hooks.json:這些是相同的腳本,透過明確的 bash 與 powershell 指令連接,因此在 PATH 沒有 Git Bash 的 Windows 主機上會得到乾淨的 no-op,不會啟動失敗。Copilot 沒有 if 篩選器,而且任何非零的 PreToolUse 結束碼都會拒絕工具呼叫,所以每個腳本也會重新套用自己的路徑與指令篩選器,對不相關內容以 0 結束。CLAUDE_PLUGIN_ROOT 需要 Copilot CLI >= 1.0.26(2026-04-14)(見 changelog);較舊版本會略過 hooks,而不是失敗。原生 Windows bash 使用者也可能遇到上游追蹤的另一個路徑格式錯誤:claude-code#11984。~/.copilot/installed-plugins/,其 hooks 會在這台機器的每個工作階段執行。它沒有逐專案安裝,因此下面的「優先使用專案範圍」建議只適用於 Claude Code;在 Copilot 中只在需要時安裝外掛。/plugin rm 或 copilot plugin uninstall 可能失敗並顯示 Access is denied. (os error 5)。這是 Copilot CLI 的公開 bug,不是外掛問題:安裝程式會透過重新命名外掛資料夾來替換它,而當另一個程序持有資料夾控制代號時,Windows 會拒絕重新命名。VS Code 的 Copilot 擴充功能會在每個已安裝外掛的 hooks/、agents/ 和 skills/ 資料夾上保留目錄監看器,第二個 Copilot CLI 工作階段也會這樣做。問題記錄在 github/copilot-cli#4095 和 #4151。
%USERPROFILE%\\.copilot\\installed-plugins\\(或 %COPILOT_HOME%\\installed-plugins\\)底下的外掛資料夾,然後重新啟動 Copilot CLI。hooks 資料夾。此存放庫包含技能、代理與 hooks。
/skill-name 手動呼叫。在 Claude Code 中,技能與指令已經合併;指令只是規範性更強的技能工作流程。可以透過設定檔個別切換 hook 檢查。將任何檢查設為 false 即可停用:
plugins/pbip/hooks/config.yaml -- PBIR、TMDL 與報表繫結驗證plugins/pbi-desktop/hooks/config.yaml -- DAX 參照、量值中繼資料、參照完整性、中繼資料快取<details> <summary><strong>goblin-mode</strong>   開始使用、設定工具,並檢查與改善完整的代理式開發環境</summary>[!WARNING] 不要安裝所有外掛。每項技能都會爭奪代理的注意力與內容視窗,因此只在需要時安裝外掛,不需要時移除。優先安裝專案範圍的外掛,而不是使用者範圍的外掛,讓每個專案只帶有實際使用的技能。
| 類型 | 名稱 | 說明 |
|------|------|-------------|
| 技能 | help-me-get-started | 給代理新手的慢速、友善、不使用術語的代理式開發指南;會討論你想做什麼,了解你的角色和存取權限,透過本機互動式解說工具教導五大支柱(模型、內容、提示、工具、環境),並檢查及安裝所需內容(Windows/macOS 指令)。可調整速度:完整教學或快速安裝 |
| 技能 | improve-my-agent-setup | 具有多種模式(shallow/deep/ultra/yolo)的整體設定健康檢查:技能、記憶、工具、STT、模型獨立性
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add data-goblin/power-bi-agentic-development claude plugin install reports
[!WARNING] These skills are under active development with a weekly release cadence, so expect regular renaming and restructuring.
Versions 26.26 through 26.38 are a deliberate breaking transition. Skills may be consolidated, renamed, removed, or made less automatic between weekly releases in this range. Pin 26.25 or earlier if you need the pre-transition skill structure and behavior; do not assume compatibility from one transition release to the next.
Here's how you get started in Claude Code; run this in the terminal to get the marketplace:
claude plugin marketplace add data-goblin/power-bi-agentic-development
Click here for a YouTube walkthrough
Add the marketplace, then install plugins via /plugin and navigating to the installed marketplace.
Alternative; add plugins via command line:
claude plugin install goblin-mode@power-bi-agentic-development
claude plugin install tabular-editor@power-bi-agentic-development
claude plugin install pbi-desktop@power-bi-agentic-development
claude plugin install pbip@power-bi-agentic-development
claude plugin install semantic-models@power-bi-agentic-development
claude plugin install reports@power-bi-agentic-development
claude plugin install paginated-reports@power-bi-agentic-development
claude plugin install custom-visuals@power-bi-agentic-development
claude plugin install fabric-cli@power-bi-agentic-development
claude plugin install fabric-admin@power-bi-agentic-development
claude plugin install databricks-cli@power-bi-agentic-development
claude plugin install fabric-data-app@power-bi-agentic-development
claude plugin install etl@power-bi-agentic-development
The standalone Copilot CLI supports plugin installation from GitHub repos. Copilot CLI reads the same .claude-plugin/marketplace.json manifest this repo uses, so the marketplace and child-plugin layout works without modification.
TMDL files have a problem with repository-relative paths over 260 characters. Windows' legacy MAX_PATH blocks git clone from writing them unless long path support is enabled at both the OS and git level. Without this, copilot plugin install aborts with Filename too long.
Check useful-stuff/agent-scripts/enable-windows-longpaths.ps1 as an example of a script you can run from an elevated ps environment to enable long paths; there are other routes to do this that you can find online, too... just ask Copilot. A reboot is recommended after the registry change. This is a Windows OS limitation, documented at Maximum Path Length Limitation.
See also the below git config command:
git config --system core.longpaths true
</details>
<details>
<summary><strong>Additional installation instructions</strong></summary>
This repository is an Anthropic-format plugin marketplace (a set of plugins), not a single distributable plugin, so the root .claude-plugin/ contains only marketplace.json. Two documented install paths work:
1. Register the marketplace once, then install named child plugins. Example:
copilot plugin marketplace add data-goblin/power-bi-agentic-development
copilot plugin install tabular-editor@power-bi-agentic-development
2. Or install a single plugin directly from its subdirectory, no marketplace registration needed. Example:
copilot plugin install data-goblin/power-bi-agentic-development:plugins/pbip
Both forms are documented in the Copilot CLI plugin reference and the plugins how-to. Inside an interactive Copilot session, /plugin install PLUGIN-NAME@MARKETPLACE-NAME is the equivalent of (1). The bare copilot plugin install data-goblin/power-bi-agentic-development (no qualifier) will not install anything useful, because the root is a marketplace catalog, not a plugin.
Inside Copilot CLI:
/env # Loaded instructions, MCP servers, skills, agents, plugins, LSPs, extensions
/plugin list # Installed plugins
/skills list # Available skills
/skills info pbip # Details for a specific skill
/agent # Browse installed agents
</details>
<details>
<summary><strong>Compatibility notes</strong></summary>
skills/<name>/SKILL.md.*.agent.md extension required by Copilot CLI's documented convention. Claude Code matches any *.md file in agents/, so the dual extension works in both tools..mcp.json (plugin root) or .github/mcp.json. The plugins in this repo do not currently ship MCP servers.hooks/hooks.json (with per-hook if path filters). Copilot CLI reads .github/plugin/plugin.json, which points it at hooks/copilot-hooks.json: the same scripts, wired with explicit bash and powershell commands so a Windows host without Git Bash on PATH gets a clean no-op instead of a failed launch. Copilot has no if filter and denies a tool call on any non-zero PreToolUse exit, so every script also re-applies its own path and command filters and exits 0 on anything unrelated. Requires Copilot CLI >= 1.0.26 (2026-04-14) for CLAUDE_PLUGIN_ROOT (changelog); older builds skip the hooks rather than fail. Native Windows bash users may also hit a separate path-format bug tracked upstream at claude-code#11984.~/.copilot/installed-plugins/ and their hooks run in every session on the machine. There is no per-project install, so the "prefer project scope" advice below applies to Claude Code only; in Copilot, install a plugin only while you need it./plugin rm or copilot plugin uninstall can fail with Access is denied. (os error 5). This is an open Copilot CLI bug, not a plugin problem: the installer swaps the plugin folder by renaming it, and Windows refuses the rename while another process holds a handle on it. VS Code's Copilot extension keeps directory watchers on every installed plugin's hooks/, agents/ and skills/ folders, and a second Copilot CLI session does the same. Tracked at github/copilot-cli#4095 and #4151.
%USERPROFILE%\.copilot\installed-plugins\ (or %COPILOT_HOME%\installed-plugins\) and restart Copilot CLI.hooks folder from that same location.The repo contains skills, agents, and hooks.
/skill-name. In Claude Code, skills and commands have coalesced; commands are simply more prescriptive skill workflows.Hook checks can be individually toggled via config files. Set any check to false to disable it:
plugins/pbip/hooks/config.yaml -- PBIR, TMDL, and report binding validationplugins/pbi-desktop/hooks/config.yaml -- DAX references, measure metadata, referential integrity, metadata cache<details> <summary><strong>goblin-mode</strong>   Get started, set up your tools, and audit and improve your whole agentic setup</summary>[!WARNING] Don't install every plugin. Each skill competes for the agent's attention and context window, so install a plugin only when you need it and remove it when you don't. Prefer installing plugins scoped to a project rather than to your user, so each project carries only the skills it actually uses.
| Type | Name | Description |
|------|------|-------------|
| Skill | help-me-get-started | A slow, friendly, jargon-free guide to agentic development for people new to agents; talks through what you want to do, feels out your role and access, teaches the five pillars (model, context, prompt, tools, environment) with local interactive explainers, and checks and installs what you need (Windows/macOS commands). Adapts pace: full tutorial or a fast install run |
| Skill | improve-my-agent-setup | Setup-wide health check with modes (shallow/deep/ultra/yolo): skills, memory, tools, STT, model independence, other clients, harness config, git, permission/isolation, network and autonomous-agent exposure, safety enforcement, secrets and PII hygiene, and workflow habits; then offers to fix what's weak. Absorbs the old /audit-context |
| Type | Name | Description |
|------|------|-------------|
| Skill | bpa-rules | Create and improve Best Practice Analyzer rules for models |
| Skill | c-sharp-scripting | C# scripting and macros for TE |
| Skill | te-cli | Cross-platform Tabular Editor CLI (te, preview) for semantic models from the terminal |
| Skill | te2-cli | Tabular Editor 2 CLI usage and automation (not TE3) |
| Skill | te-docs | Tabular Editor documentation search, TE3 config files. Uses pbi-search CLI |
| Command | /suggest-rule | Generate BPA rules from descriptions |
| Agent | bpa-expression-helper | Debug and improve BPA rule expressions |
| Type | Name | Description |
|------|------|-------------|
| Skill | connect-pbid | Explore, query, and modify a model in Power BI Desktop, and reload/screenshot the report canvas via the Desktop Bridge |
| Agent | query-listener | Capture DAX queries from Power BI Desktop visuals in real time |
| Hook | DAX reference validation | Validates table, column, and measure references against the connected model; suggests corrections |
| Hook | Measure metadata enforcement | Blocks adding measures without DisplayFolder, Description, and FormatString |
| Hook | Referential integrity check | Reports unmatched many-side keys after relationship or column changes |
| Hook | Metadata cache refresh | Auto-snapshots model metadata on TOM connect or model modification |
| Hook | Compatibility level check | Reports features available by upgrading; optional auto-upgrade |
| Type | Name | Description |
|------|------|-------------|
| Skill | pbip | Power BI Project (PBIP) format, structure, and file types |
| Skill | tmdl | Author and edit TMDL files directly |
| Skill | pbir-format | Author and edit PBIR metadata files directly (visual.json, report.json, themes, filters, report extensions, visual calculations) |
| Agent | pbip-validator | Validate PBIP project structure, TMDL syntax, and PBIR schemas |
| Hook | PBIR validation | Validates PBIR structure, required fields, naming conventions, and schema URLs |
| Hook | Report binding validation | Validates semantic model binding (byPath directory exists; byConnection model exists via fab exists) |
| Hook | TMDL validation | Validates TMDL structural syntax |
| Type | Name | Description |
|------|------|-------------|
| Skill | create-pbi-report | Step-by-step workflow for building a complete report from scratch via the pbir CLI: model discovery, pages, theme, visuals, field binding, filtering, formatting, validation, publishing |
| Skill | pbi-report-design | The Power BI report design canon: design identity, visual hierarchy, layout, color discipline, chart selection, KPI/table design, accessibility. Shared reference used by the other report skills |
| Skill | modifying-theme-json | Design, enforce, audit, and validate report themes through the pbir CLI |
| Skill | review-report | Actionable feedback on report quality, usage, and effectiveness; usage analysis, health checks |
| Skill | pbir-cli | Programmatic report manipulation via the pbir CLI, including live Power BI Desktop refresh and page screenshots |
| Mod | /report-pane | Report pane: pages, visuals, bookmarks, filters and report measures of the .Report folder as a tree that follows pbir, with live highlights of what Claude reads or changes. Optional arg: a path to a .Report folder. Icons: FabricSymbols NF |
| Agent | deneb-reviewer | Review Deneb visual specs for Vega/Vega-Lite syntax and conventions |
| Agent | svg-reviewer | Review SVG DAX measures for syntax and design quality |
| Agent | r-reviewer | Review R visual scripts (ggplot2) for Power BI conventions |
| Agent | python-reviewer | Review Python visual scripts (matplotlib/seaborn) for Power BI conventions |
| Type | Name | Description |
|------|------|-------------|
| Skill | paginated-report | Author, validate, publish, and test Power BI paginated reports in RDL format (Report Builder, PBIRS/SSRS-compatible); connect to a semantic model, render to PDF/Excel |
| Hook | RDL validation | Validates .rdl structure after Write/Edit and on Bash commands touching .rdl files; blocks on structural errors only |
| Type | Name | Description |
|------|------|-------------|
| Skill | deneb-visuals | Deneb visual creation, Vega/Vega-Lite spec authoring, Deneb best practices for PBIR reports |
| Skill | r-visuals | Custom R visuals (ggplot2) for Power BI reports |
| Skill | python-visuals | Custom Python visuals (matplotlib/seaborn) for Power BI reports |
| Skill | svg-visuals | SVG generation via DAX measures and extension measures for inline chart visualizations (sparklines, bullet charts, KPI indicators, and more) |
| Skill | powerbi-custom-visuals | Power BI developer custom visual (.pbiviz) development with the pbiviz toolchain and its MCP server: scaffold, build, debug, package, certify, publish to AppSource |
Reviewer agents for these visual types (deneb-reviewer, svg-reviewer, r-reviewer, python-reviewer) ship in the reports plugin above.
| Type | Name | Description |
|------|------|-------------|
| Skill | semantic-model | Design, build, refresh, and review semantic models through a te-first tool cascade |
| Skill | standardize-naming-conventions | Audit and standardize naming conventions in semantic models |
| Skill | refresh-semantic-model | Trigger or troubleshoot refreshes |
| Skill | lineage-analysis | Trace downstream reports from a semantic model across workspaces |
| Skill | power-query | Write M expressions, debug query folding, execute M locally or via Fabric API |
| Skill | dax | Write, debug, and optimize DAX in semantic models. Contributed by Justin Martin |
| Agent | semantic-model-auditor | Audit semantic models for quality, memory, DAX, and design issues |
| Type | Name | Description |
|------|------|-------------|
| Skill | fabric-cli | Fabric CLI (fab) for any remote operation in Power BI or Fabric (works fully on Pro, PPU; Fabric not required) |
| Command | /migrating-fabric-trial-capacities | Migrate workspaces from trial to production capacity |
| Mod | /fabric-pane | Fabric pane: workspaces and items as a tree that follows fab, with live highlights, copy of fab paths, open in Fabric, and open semantic models in te. Optional arg: a workspace to reveal. Icons: FabricSymbols NF |
| Type | Name | Description |
|------|------|-------------|
| Skill | audit-tenant-settings | Audit Fabric and Power BI tenant settings, delegated overrides, and Entra security group membership |
| Type | Name | Description |
|------|------|-------------|
| Mod | /databricks-pane | Databricks pane: workspace, Unity Catalog, compute, jobs, pipelines, apps and dashboards as a tree that follows databricks, with live highlights, profile switching (-p or DATABRICKS_CONFIG_PROFILE), copy of CLI arguments, and open in Databricks. Optional arg: a profile. Icons: DatabricksSymbols NF |
| Type | Name | Description |
|------|------|-------------|
| Mod | /fabric-app-pane | Fabric app pane: every Fabric App (rayfin/rayfin.yml) under the working directory with its data sources, deploy state and files, as a tree that follows rayfin, with live highlights of what Claude deploys or changes. Optional arg: a folder. Icons: FabricSymbols NF |
| Type | Name | Description |
|------|------|-------------|
| Skill | executing-spark | Execute arbitrary Python or PySpark code on Fabric Spark compute without creating a notebook artifact; ephemeral Livy sessions with full Delta table access |
| Skill | using-duckdb | Query Fabric lakehouse and warehouse data with DuckDB, locally or inside a Fabric notebook; data freshness and quality checks |
[!WARNING] Mods only work in Claude Code 2.1.287 or newer. In other tools, such as Copilot CLI, the panes do not appear.
Mods add a pane to Claude Code's sidebar. These panes show your Fabric tenant, Databricks workspace, Power BI report or Fabric data apps as a tree beside the conversation, highlight what Claude reads, downloads, uploads, deploys or changes through the CLI, say when Claude is working, show spinners while a command runs, and pass the item you select to Claude as context. See the Claude Code mod docs.
/fabric-pane from the fabric-cli plugin follows fab: workspaces grouped by domain, items, lakehouse tables and files.
/databricks-pane from the databricks-cli plugin follows databricks: workspace, Unity Catalog, compute, jobs, pipelines, apps and dashboards.
/report-pane from the reports plugin follows pbir: pages, visuals, bookmarks, filters and report measures of a .Report folder.
/fabric-app-pane from the fabric-data-app plugin follows rayfin: every Fabric App under the working directory, its data sources, deploy state and files.
/tui fullscreen, or "tui": "fullscreen" in ~/.claude/settings.json) and a terminal at least 110 columns wide. In the default layout or tmux the panes stay hidden and their command tells you how to switch. In a fullscreen session the Fabric, Databricks and report panes open by themselves on Claude's first fab, databricks or pbir command, and the Fabric app pane when the working directory holds a Fabric Appglyphs optionglyphs forces an icon set; follow (Follow Claude) decides whether the tree scrolls to what Claude touches; fontHint turns off the one-line install hint Claude gets once per session when the icons fall back to plain UnicodeGeneral-purpose agent resources that don't fit into a plugin: defensive hooks, patterns, and tools. See useful-stuff/.
These plugins are intended for free community use.
You do not have the license to copy and incorporate them into your own products, trainings, courses, or tools. If you copy these skills - manually or by using an agent to rewrite them - you must include attribution and a link to this original project. That includes you, Microsoft.
<br> <p align="center"> <img src="media/bg22-06-2.png" alt="" width="800"> </p>