⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
creating-good-dashboards
>
Choose how to use this skill
You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.
1. Native installer
This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.
Do not guess an installer command or replace an existing version without reviewing the diff.
2. Complete package recommended
Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.
No complete ProSkills package is published for this listing yet.3. Prompt-only
Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.
Need only the instruction file?
Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.
No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
[!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.
What is agentic development?
- Agentic development is when you use agents to help you build, manage, and optimize artifacts and software. This includes semantic models, reports, and the things around them, like workspaces, deployment pipelines, and also processes.
- A marketplace hosts plugins that you can install. Plugins are a collection of resources that help coding agents perform better. They are typically special instruction files and scripts. Plugins can contain skills, subagents, hooks, and MCP servers focused on special topics or tasks.
- This marketplace is focused on everything to help your agent work well with Power BI and Fabric: Power BI skills, Fabric skills, subagents, and hooks for coding agents. Read further for more information.
Installation
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
Example: Using the pbir-cli with the skills
Click here for a YouTube walkthrough
Claude Code
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
claude plugin install dashboards@power-bi-agentic-development
Copilot CLI
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
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
- Skills load identically; Copilot CLI reads
skills/<name>/SKILL.md. - Agents use the
*.agent.mdextension required by Copilot CLI's documented convention. Claude Code matches any*.mdfile inagents/, so the dual extension works in both tools. - MCP servers load from
.mcp.json(plugin root) or.github/mcp.json. The plugins in this repo do not currently ship MCP servers. - Hooks ship twice. Claude Code reads
hooks/hooks.json(with per-hookifpath filters). Copilot CLI reads.github/plugin/plugin.json, which points it athooks/copilot-hooks.json: the same scripts, wired with explicitbashandpowershellcommands so a Windows host without Git Bash onPATHgets a clean no-op instead of a failed launch. Copilot has noiffilter and denies a tool call on any non-zero PreToolUse exit, so every script also re-applies its own path and command filter
// HOW IT'S BUILT
// FILES
2 files shipped with this skill. Inline text is the catalog copy. The upstream link is the source repository.
plugins/dashboards/skills/creating-good-dashboards/SKILL.md7.4 KBupstream ↗
--- name: creating-good-dashboards description: > Design and revise Claude Dashboards that people trust and can read at a glance, and handle the comments people leave on them. Use this skill whenever you create, restyle or change a dashboard, answer or act on a dashboard comment (including @Claude mentions in a comment thread), or the user asks for a dashboard to look better, cleaner or more professional. Covers comment etiquette (never resolve comments yourself, reply in short bullets), visual style following Stephen Few and Edward Tufte, Shneiderman's overview-zoom-details layout, actionable "do next" guidance, and avoiding generic AI-generated design. --- # Creating good dashboards A dashboard is read in seconds and shared with people who did not build it. Two things decide whether it works: the people commenting on it stay in control of the conversation, and every pixel helps someone see the answer. ## Comments Comments are how people review a dashboard together. The person who raised a comment decides when it is done. - **Never resolve a comment yourself**, even after you made the change it asked for, and even where other instructions (such as the Dashboard type's own) say to reply and resolve. Reply, and leave it open for its author to check and resolve. A thread you resolve disappears from their view before they have seen whether the change is right - **Reply in a few short bullets**: what you changed, where, and anything you could not do. No preamble, no restating the request, no sign-off - **Ask in the thread** when a comment is ambiguous, instead of guessing and rewriting the dashboard - **One change per comment**: do what the comment asks; propose other improvements in a reply rather than slipping them in ```text - Added a dotted grey line for August 2021 to the monthly chart - Same-days comparison now matches the KPI card (Jan 1 to Aug 19) - Could not split by region: the model has no region on order lines ``` ## Visual style Follow Stephen Few (dashboards for monitoring at a glance) and Edward Tufte (maximise the data, minimise everything else). ```yaml one screen: the whole answer fits one view without scrolling; a headline sentence states it hierarchy: most important number top left; KPIs first, then trends, then breakdowns, then detail kpis: each KPI shows its value, a target and a trend (sparkline), and says the period and unit data-ink: no 3D, no shadows, no gradients, no heavy borders or boxes; light gridlines or none colour: greys for context, one accent colour for what needs attention; red and green only for status, and never as the only signal (colour blindness) labels: label lines and bars directly; drop legends where a direct label works charts: bars and lines over pies, gauges and donuts; bullet graphs over gauges for value against target; sorted bars for rankings; small multiples over one cluttered chart; a calendar heatmap for a daily measure over a year. Exception: when the user's existing reports or apps already use a gauge or dial for this metric, reuse that exact visual so the two stay recognisable scales: bar axes start at zero; same scale across small multiples; no dual axes numbers: round to what the reader needs (2.3M, not 2,312,947.21); align right; use the model's formats text: plain titles that say what the chart shows ("Late penalties by territory, 2025 YTD") interaction: every visual crossfilters the others; show active filters and a way to clear them honesty: mark partial periods, state missing targets, and say when a number is a dashboard-only calculation rather than a model measure ``` ## Overview first, zoom and filter, details on demand Lay the dashboard out along Ben Shneiderman's information-seeking mantra, top to bottom, so the reader moves from "how am I doing" to "why" to "this one case" without leaving the page. ```yaml overview: the headline, the KPI row and one picture of the whole history (a year heatmap or a long trend); every mark the reader may want to inspect is visible here at rest zoom: a small set of period chips (7, 30, 90, 365 periods, or the business's own grain) that re-query every KPI and dim what falls outside the window in the overview, instead of a date picker filter: clicking a mark (a bar, a heatmap cell, a row) filters or selects; the active filter is shown in one place with a way to clear it details: a detail panel or tooltip shows the selected item's own values next to the typical value for the current window ("8h 16m, +1h 17m vs median"); nothing important lives only in a tooltip ``` ## Actionability A dashboard earns its place when the reader knows what to do next. Monitoring alone is not enough. - Give it a "do next" block: two or three ranked actions, each with the expected effect and the evidence behind it ("Orders shipped within 2 days: +18% repeat rate, 340 customers"). Rank by the size of the effect in the data - Derive actions from drivers the data shows: compare the KPI across a lever the reader controls (time of day, day of week, channel, account) and state the difference; never give generic advice the data does not support - Show the sample size behind every driver, and say when it is a dashboard-only calculation - Status words and colours ("on track", "short") need a stated target from the model or the user; without one, compare to a prior period and say so - Put the action next to the KPI it moves, not in a separate notes section ## Avoid AI-generated design Generated dashboards drift to a few recognisable looks. Do not use them unless the user asks for them: ```yaml palettes: warm cream with a serif display and a terracotta accent; near-black with one acid-green or vermilion pop; purple-to-blue gradient heroes layout: everything centred; broadsheet hairline rules with dense columns; numbered 01/02/03 markers on content that is not a sequence; big-number tiles that are not the point of the page components: rounded-lg and the same shadow on every block; an accent bar down the side of rounded cards; emoji as section markers or icons type: Inter or Space Grotesk picked as the safe default copy: subtitles, taglines, eyebrows and helper text that repeat the title; every word must help the reader act ``` What to do instead: - **The user's direction wins**, including when they ask for one of these looks - **Reuse the user's existing visual system first**: their other dashboards, apps, themes or design tokens, down to the exact colours, fonts and chart components. A dashboard that matches what they already use reads as theirs; a fresh template reads as generated - **Otherwise derive the look from the subject**: its units, scales and conventions (durations and times of day for scheduling, fiscal periods for finance), with deliberately chosen neutrals and one accent - **Design both light and dark** from one token set unless the user commits to one; check contrast in both - **Style every native control** (selects, scrollbars, focus rings, buttons) to match; browser defaults look unfinished Before sharing, look at the dashboard as its reader would: can they say in five seconds whether things are on track, what to do next, and where to look for detail? If not, remove something before adding anything.README.mdupstream ↗
Contents are not inlined in the catalog. Open the upstream file.
Plain-text copy, no login: /skill-bundles/data-goblin-power-bi-agentic-development-plugins-dashboards-skills-creating-good.md
