Power Bi AI Readiness
DKH-DK/Self-Service-Power-BI-Fabric
Score and prepare Power BI semantic models for AI (Fabric Data Agent / Copilot).
Move a Power BI semantic model (TMDL, PBIP, or .pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match.
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install malloydata/publisher malloy-powerbi-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/malloy-powerbi-review .claude/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .claude/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install malloydata/publisher malloy-powerbi-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/malloy-powerbi-review .agents/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .agents/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install malloydata/publisher malloy-powerbi-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/malloy-powerbi-review .cursor/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .cursor/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/malloydata/publisher.git --path skills/malloy-powerbi-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install malloydata/publisher malloy-powerbi-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/malloy-powerbi-review .gemini/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .gemini/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install malloydata/publisher malloy-powerbi-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/malloy-powerbi-review .github/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .github/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install malloydata/publisher malloy-powerbi-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malloydata/publisher.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/malloy-powerbi-review .opencode/skills/malloy-powerbi-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "malloy-powerbi-review" agent skill from https://github.com/malloydata/publisher/tree/main/skills/malloy-powerbi-review into .opencode/skills/malloy-powerbi-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "malloy-powerbi-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
malloy-powerbi-reviewMove a Power BI semantic model (TMDL, PBIP, or .pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match.
Malloy Powerbi Review is an agent skill from malloydata/publisher. Move a Power BI semantic model (TMDL, PBIP, or .pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match. Use when Power BI artifacts are present, when a user wants to migrate or switch off Power BI, and whenever a specific DAX measure has to become Malloy - CALCULATE, ALL/ALLSELECTED/ALLEXCEPT, RANKX and top-N, time intelligence, USERELATIONSHIP, calculation groups, what-if parameters, or an RLS role. Carries a worked, executed transpile per construct and states what each port costs…
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts (for example `reference/_concepts.md`, `reference/cookbook-filter-context.md` and `reference/cookbook-structure.md`).
It sits in Data & Analytics. It works with Power BI. The repository describes itself as: Publisher is the open-source analytics engine for Malloy. It lets you define data models once — and use them everywhere. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c43a052. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Malloy Powerbi Review loads about 4k tokens when it runs. Until then it costs about 146 tokens; SKILL.md has 2,278 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from malloydata/publisher at commit c43a052, republished under its MIT licence (© malloydata). 2,278 words, ~4,006 tokens.
.claude/skills/malloy-powerbi-review/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.<!--
Copyright (c) Credible Data Inc.
SPDX-License-Identifier: MIT
-->
Purpose: Move a working Power BI semantic model onto Malloy, fast, and prove the numbers match. The user already has a model that their business agreed on; the job is to carry it across without silently changing what it means.
Tool names are written bare here -
get_context,execute_query,search_malloy_docs. The exact prefixed name depends on the host surface; match each against the tools you actually have.
This is NOT a blind conversion. DAX and Malloy disagree about what a filter means. A measure that translates cleanly on sight can still return a different number, with no error raised. Knowing which measures change meaning on the way across is the work - and then saying what the port costs, because "untranslatable" has done nothing for the customer.
.pbix (see below). reference/discover.md inventories it. (Workflow Step 1, DISCOVER.)reference/propose-fields.md. (Step 4, DEFINE.)reference/translate-measures.md decides where each one goes; the three cookbook-*.md files have the worked Malloy. A routing table is not a migration - the recipe is the deliverable. (Step 5, BUILD.)reference/review-coverage.md checks nothing was dropped; rls-roles.md and document.md finish the job. (Steps 7 to 9.)Step N here and in the reference files is the numbering of the shared modeling workflow (malloy-modeling); the five items above are where this migration's stages land in it.
The user's question is "can I move off Power BI and still trust my numbers?" Items 3 and 4 are the answer; the rest is bookkeeping.
.pbix, a .pbip project, or a definition/ folder of .tmdl files and the user confirms they want it carried across.reference/cookbook-*.md; the routing procedure is for a whole model.| Mode | When | Behavior |
|---|---|---|
| Power BI + live data | A connection is configured against the same warehouse the model reads | Power BI provides prior art; the data validates it. Full data-driven proposals. |
| Power BI only | No connection, or the model is import-mode with no warehouse behind it | The model file provides all context. Proposals flagged as unvalidated. |
In Power BI-only mode, warn the user: "No database connection found. I'll use the Power BI model as the sole source of context, but proposals cannot be validated against live data."
Three shapes arrive, and they are not equally trustworthy. Establish which one you have before anything else.
| Shape | What it is | How to read it |
|---|---|---|
TMDL folder (definition/*.tmdl) | The model in text form | Read directly. No extraction step, nothing to go wrong. Preferred. |
PBIP project (*.SemanticModel/definition/) | A .pbip save format that contains the TMDL folder above | Read the TMDL directly, same as above. |
.pbix | A zip whose model is a compressed binary part | Requires third-party extraction. See the parity section below before you trust a number out of it. |
Always ask for TMDL or PBIP before accepting a .pbix. It removes the entire extraction risk class from the migration. Power BI Desktop saves to PBIP directly, but it is still a preview feature that has to be enabled under Options > Preview features first, and it is unavailable in Desktop for Report Server, so ask with those instructions rather than just naming the format (reference/discover.md has the wording). A .pbix is what you fall back to when the user cannot re-save.
The .pbix also carries the data, where TMDL carries only the model. If the goal is a working model over a warehouse the user still has, TMDL is sufficient. If the goal includes lifting the imported data out, see reference/discover.md.
Two independent mechanisms can hand back a wrong number with no error. Neither announces itself.
1. Extraction can be silently wrong. Reading a .pbix means a reverse-engineered reader, not a Microsoft tool. The readers available have open issues in which a column decodes to plausible but wrong values rather than failing. A wrong number that looks like a number survives every check except comparison against the source. This risk does not exist on the TMDL path, which is one more reason to ask for it.
2. DAX and Malloy disagree about filters. This one applies on every path, including TMDL, and it is the one that costs a migration its credibility. A DAX Boolean filter argument overwrites the existing filter on that column; Malloy's where: intersects. The same measure, faithfully transcribed, answers a different question. reference/translate-measures.md is entirely about telling these apart.
So validate numerically, not visually:
execute_query and compare..pbix, also compare row counts and one column sum per table before modeling anything on top of it.Report parity as a table of measure, context, Power BI value, Malloy value, and match. "It looks right" is not a result. A migration is trusted or abandoned on these numbers.
Each reference file is loaded by the workflow phase that needs it. You do not need to read them all at once.
| Reference File | Phase | What It Does |
|---|---|---|
reference/discover.md | Step 1 (DISCOVER) | Inventory the model, classify storage mode, extract source candidates, capture prior-art notes |
reference/propose-fields.md | Step 4 (DEFINE) | Extract field proposals from tables, columns, and relationships |
reference/translate-measures.md | Step 5 (BUILD) | Route every DAX measure to a recipe, and say what the routing does not prove |
reference/cookbook-filter-context.md | Step 5 (BUILD) | Worked transpiles: CALCULATE, ALL / ALLSELECTED / ALLEXCEPT, ranking, top-N |
reference/cookbook-time.md | Step 5 (BUILD) | Worked transpiles: YTD, prior period, growth, date spines, semi-additive |
reference/cookbook-structure.md | Step 5 (BUILD) | Worked transpiles: role-playing dimensions, M:M, bidirectional, what-if parameters, hierarchies |
reference/rls-roles.md | Step 8 (CURATE) | Map RLS roles and hidden objects to access modifiers and gate annotations |
reference/review-coverage.md | Step 7 (REVIEW) | Compare the Malloy model against the Power BI model: table, measure, and relationship coverage |
reference/document.md | Step 9 (DOCUMENT) | Extract TMDL descriptions as #(doc) tag seeds |
reference/limitations.md | any | What the script reads and what it does not, and the calls it cannot make from the model file |
reference/corpus.md is not part of the workflow: it is the provenance of the public
models this skill was developed and regression-tested against. Read it only if you need
to reproduce a figure quoted here.
The three cookbook files are the deliverable of Step 5. Each recipe carries the
real DAX, the Malloy, whether the Malloy was executed or only semantics-cited,
and what the port costs. Route with translate-measures.md, then transpile from the
recipe - do not hand the user a classification and call it a migration.
reference/_concepts.md is the Power BI to Malloy concept mapping table. Referenced by propose-fields.md, translate-measures.md, and rls-roles.md for type mapping and syntax translation.
scripts/classify_measures.py routes a whole model in one pass, so a migration starts
from an inventory rather than from measure one. It does the three things that do not
survive reading measures one at a time at a few thousand of them: the dependency graph,
return-type inference from the model's own column types, and the relationship flags that
never appear in a measure's DAX. It has a --json mode for the .pbix path, which has
no TMDL. It runs where you have a shell (Claude Code, Cursor); the Credible app's agent
has no shell tool and the MCP skills bundle ships markdown only, so the prose stands alone.
DAX is not only in measure declarations, and the rest is not a rounding error.
The script also reads calculation groups, functions.tmdl, calculated columns,
calculated-table partitions and roles/*.tmdl, because three recipes fire zero
times in any measure body and are not rare at all: CALENDAR() is only ever in a
calculated-table partition, calculation items carry a model's time intelligence, and RLS
predicates live in roles/*.tmdl. Match only measure and you will tell a customer
their model has no calculation groups, no date spine and no row-level security.
reference/limitations.md is the inventory of what it reads, what it does not, and the
calls it cannot make from the model file at all.
This is why a migration is fast: the customer is not re-deciding any of it.
isHidden and perspectives/// comments, usually better than what anyone will write freshLocalDateTable_<guid> per date column plus a DateTableTemplate_<guid>. These are an artifact of a setting, not a modeling decision. Skip all of them and propose one real date dimension (reference/cookbook-structure.md#s7).report.json, *.Report/): visuals, pages, bookmarks, themes. Analysis is a separate workflow.Selected page = SELECTEDVALUE('Current page'[Current page]), has no string literal at all. reference/translate-measures.md step 1 has the tells.summarizeBy defaults, except as a hint about which columns are facts and which are keys.lineageTag, ordinal, and other authoring metadata.reference/discover.md).EARLIER / EARLIEST, route NR). It is neither divergent nor a stopgap, and it gets no Malloy from this skill: ask what the number means and rewrite the intent with the user.crossFilteringBehavior: bothDirections, or CROSSFILTER(..., BOTH) inside a measure). It is a model-level switch with a model-wide blast radius - it reaches 111 of the 117 measures in Microsoft's FabricASEngineAnalytics, and it is the construct most likely to change a number in a migration - and it is invisible in every measure's DAX. Ask what it was for; reference/cookbook-structure.md#s3 has the divergence worked out.#s2).isActive: false): they exist to be switched on by USERELATIONSHIP inside a measure. In Malloy they become named join paths (#s1), which changes every call site - the measure disappears rather than translating.reference/rls-roles.md.cookbook-time.md#t4), semi-additive measures (#t5), calculation groups (cookbook-structure.md#s5) and parent-child hierarchies (#s6). All four ship working Malloy at a cost worth stating before the customer discovers it. The router flags the last three (#t5 when a semi-additive function is a CALCULATE filter); no DAX function asks for a date spine, so #t4 is one you have to recognize yourself, from a report that shows periods with no rows..pbix. A snapshot answers today's question and goes stale.Power BI, Microsoft and Fabric are trademarks of Microsoft Corporation. This skill is not affiliated with or endorsed by Microsoft.
© malloydata, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 15 other files (scripts) in skills/malloy-powerbi-review of malloydata/publisher.
Open the folder on GitHubat commit c43a052
Malloy Powerbi Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Malloy Powerbi Review this skillmalloydata/publisher | 116 | — | ~4k | Automated safety check: Pass | MIT | |
| Power Bi AI ReadinessDKH-DK/Self-Service-Power-BI-Fabric | 113 | — | ~2k | Automated safety check: Pass | None | |
| Pbi Report Builderlukasreese/powerbi-claude-skills | 129 | — | ~7.5k | Automated safety check: Pass | None | |
| Pbi Docxperiun/skills-xperiun-free | 116 | — | ~3k | Automated safety check: Pass | MIT | |
| Pbip Dependency Analyzerlukasreese/powerbi-claude-skills | 129 | — | ~3.2k | Automated safety check: Pass | None | |
| Audit Tenant Settingsdata-goblin/power-bi-agentic-development | 1k | — | ~4.7k | Automated safety check: Pass | GPL-3.0 |
DKH-DK/Self-Service-Power-BI-Fabric
Score and prepare Power BI semantic models for AI (Fabric Data Agent / Copilot).
lukasreese/powerbi-claude-skills
[power-bi] Power BI PBIR Report Builder with IBCS Visuals. An agent skill from lukasreese/powerbi-claude-skills.
xperiun/skills-xperiun-free
Documenta projeto Power BI (PBIP) inteiro em markdown estruturado + HTML navegável (mini-site de doc).
lukasreese/powerbi-claude-skills
Power BI PBIP Dependency Analyzer. An agent skill from lukasreese/powerbi-claude-skills.
data-goblin/power-bi-agentic-development
Automatically invoke this skill whenever the user asks about Fabric tenant settings or Power BI tenant settings or auditing tenant settings.
xperiun/skills-xperiun-free
Audita modelo Power BI (PBIP) e gera relatório priorizado com anti-patterns, score 0-100 e recomendações acionáveis.
malloydata/publisher
Score one analytical answer against a verified golden, and score which of the entities the golden depends on retrieval delivered to the answerer.
malloydata/publisher
Fix a CRITICAL Trivy finding that is failing CI in this repo (a vulnerability, misconfiguration, or secret from security-scan.yml or image-scan.yml), or add, review, or retire an entry in…
malloydata/publisher
Turn a list of questions into an eval set, whatever shape it arrived in: a JSONL a customer sent, a CSV, a spreadsheet export, a markdown doc, an email thread, or a pull from production logs.
malloydata/publisher
Conduct a local Publisher evaluation loop in five steps: scrape/run, eval, diagnose, improve, checkpoint.
malloydata/publisher
Make the smallest safe Malloy model edit that closes a diagnosed model-owned gap, with a probe receipt for every factual claim.
malloydata/publisher
Decide whether ONE answer matches its golden, and say whether you believe the golden.
Works with
Categories
Move a Power BI semantic model (TMDL, PBIP, or .pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match. Malloy Powerbi Review is an agent skill from malloydata/publisher.pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match.
Malloy Powerbi Review fits situations like: power BI artifacts are present; A user wants to migrate; switch off Power BI; whenever a specific DAX measure has to become Malloy - CALCULATE.
Run `npx skills add malloydata/publisher --skill malloy-powerbi-review -a claude-code`. Or copy the skill folder (skills/malloy-powerbi-review in malloydata/publisher) into .claude/skills/malloy-powerbi-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add malloydata/publisher --skill malloy-powerbi-review -a codex`. Or copy the skill folder (skills/malloy-powerbi-review in malloydata/publisher) into .agents/skills/malloy-powerbi-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add malloydata/publisher --skill malloy-powerbi-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/malloy-powerbi-review, .gemini/skills/malloy-powerbi-review, .github/skills/malloy-powerbi-review and .opencode/skills/malloy-powerbi-review in your project.
Going by SKILL.md and its folder, Malloy Powerbi Review needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Malloy Powerbi Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Malloy Powerbi Review: Power Bi AI Readiness (DKH-DK/Self-Service-Power-BI-Fabric, 113 stars), Pbi Report Builder (lukasreese/powerbi-claude-skills, 129 stars), Pbi Doc (xperiun/skills-xperiun-free, 116 stars) and Pbip Dependency Analyzer (lukasreese/powerbi-claude-skills, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
malloydata (a GitHub organization) maintains it in malloydata/publisher, which has 116 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 10, 2026.
Source: malloydata/publisher on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.