⏳ This skill is pending AI review.

Scores will appear once the review pipeline completes.

version unknown

creating-good-dashboards

@data-goblin⭐ 1.1k stars

>

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.

—/10

// RATINGS

⭐GitHub Stars
⭐⭐⭐⭐⭐ 1.1k on GitHubGitHub ↗

Very popular

🟢ProSkills Score
—
📍

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

pbir-cli demo

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.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 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-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 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

// REPO STATS

1.1k stars