Agent skill

Malloy Powerbi Review

by malloydata in 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.

MITAuto-check passedData & Analytics

Install Malloy Powerbi Review

skills CLI
$ npx skills add malloydata/publisher --skill malloy-powerbi-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install malloydata/publisher malloy-powerbi-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
malloy-powerbi-review
GitHub stars
116
Token cost
~4k tokens
SKILL.md length
2,278 words
Files
16 (incl. scripts)
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Move a Power BI semantic model (TMDL, PBIP, or .pbix) onto Malloy - read their model, transpile its DAX, and prove the numbers match.

  • Works in 5 steps: Get the model in text. Ask for TMDL or… → Carry across what the business already… → Route every measure, then transpile it… → …
  • Power BI artifacts are present
  • SKILL.md covers The migration, end to end, When to Use, Two Modes and Input Shapes: Prefer Text Over…, plus 5 more sections
  • Runs Python scripts from its folder

What it does

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.

When your agent uses it

  • Power BI artifacts are present
  • A user wants to migrate
  • Switch off Power BI
  • Whenever a specific DAX measure has to become Malloy - CALCULATE

Example prompts

  • “/malloy-powerbi-review”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Get the model in text. Ask for TMDL or PBIP before accepting a .pbix (see below). reference/discover.md inventories it. (Workflow Step 1…
  2. Carry across what the business already agreed on - tables, relationships, names, descriptions, visibility. reference/propose-fields.md…
  3. Route every measure, then transpile it from a recipe. reference/translate-measures.md decides where each one goes; the three cookbook-*.md…
  4. Prove the numbers. Parity at more than one filter context, below. This is what makes the switch safe to recommend rather than merely done…
  5. Say what changed. Every divergent measure, every stopgap and its cost, every RLS role that came across weaker…

What it can do on your machine

Read from SKILL.md and the folder at commit c43a052. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~146
When it runs · the whole SKILL.md, loaded when a task matches
~4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from malloydata/publisher at commit c43a052, republished under its MIT licence (© malloydata). 2,278 words, ~4,006 tokens.

Download SKILL.mdSave it as .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.
name
malloy-powerbi-review
description
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. Works with or without a database connection.
<!--
Copyright (c) Credible Data Inc.
SPDX-License-Identifier: MIT
-->

Power BI to Malloy

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.

The migration, end to end

  1. Get the model in text. Ask for TMDL or PBIP before accepting a .pbix (see below). reference/discover.md inventories it. (Workflow Step 1, DISCOVER.)
  2. Carry across what the business already agreed on - tables, relationships, names, descriptions, visibility. reference/propose-fields.md. (Step 4, DEFINE.)
  3. Route every measure, then transpile it from a recipe. 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.)
  4. Prove the numbers. Parity at more than one filter context, below. This is what makes the switch safe to recommend rather than merely done. (Steps 5 and 7.)
  5. Say what changed. Every divergent measure, every stopgap and its cost, every RLS role that came across weaker. 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.

When to Use

  • Auto-detected: The agent finds a .pbix, a .pbip project, or a definition/ folder of .tmdl files and the user confirms they want it carried across.
  • Explicitly requested: The user says "migrate off Power BI", "switch from Power BI", "model from Power BI", "convert this PBIX", or provides a path to Power BI artifacts.
  • One measure at a time: The user pastes a DAX expression and asks what it becomes in Malloy. Go straight to the recipe in reference/cookbook-*.md; the routing procedure is for a whole model.

Two Modes

ModeWhenBehavior
Power BI + live dataA connection is configured against the same warehouse the model readsPower BI provides prior art; the data validates it. Full data-driven proposals.
Power BI onlyNo connection, or the model is import-mode with no warehouse behind itThe 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."

Input Shapes: Prefer Text Over Binary

Three shapes arrive, and they are not equally trustworthy. Establish which one you have before anything else.

ShapeWhat it isHow to read it
TMDL folder (definition/*.tmdl)The model in text formRead directly. No extraction step, nothing to go wrong. Preferred.
PBIP project (*.SemanticModel/definition/)A .pbip save format that contains the TMDL folder aboveRead the TMDL directly, same as above.
.pbixA zip whose model is a compressed binary partRequires 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.

Numeric Parity Validation (do this before you trust anything)

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:

  1. Pick the measures the business actually looks at, not the easy ones. Ask the user which numbers are on the dashboard people open every morning.
  2. Get the current value from Power BI itself, at a stated filter context (a specific year, region, whatever the report shows). A screenshot of the report is fine and is often faster than arranging API access.
  3. Run the Malloy equivalent at the same filter context with execute_query and compare.
  4. Compare at more than one filter context. The overwrite-versus-intersect divergence is invisible at the grand total and only appears once a filter on the same column is active. A measure that matches unfiltered and diverges when sliced is the signature of this bug, not a coincidence.
  5. For a lifted .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.

Reference Files

Each reference file is loaded by the workflow phase that needs it. You do not need to read them all at once.

Reference FilePhaseWhat It Does
reference/discover.mdStep 1 (DISCOVER)Inventory the model, classify storage mode, extract source candidates, capture prior-art notes
reference/propose-fields.mdStep 4 (DEFINE)Extract field proposals from tables, columns, and relationships
reference/translate-measures.mdStep 5 (BUILD)Route every DAX measure to a recipe, and say what the routing does not prove
reference/cookbook-filter-context.mdStep 5 (BUILD)Worked transpiles: CALCULATE, ALL / ALLSELECTED / ALLEXCEPT, ranking, top-N
reference/cookbook-time.mdStep 5 (BUILD)Worked transpiles: YTD, prior period, growth, date spines, semi-additive
reference/cookbook-structure.mdStep 5 (BUILD)Worked transpiles: role-playing dimensions, M:M, bidirectional, what-if parameters, hierarchies
reference/rls-roles.mdStep 8 (CURATE)Map RLS roles and hidden objects to access modifiers and gate annotations
reference/review-coverage.mdStep 7 (REVIEW)Compare the Malloy model against the Power BI model: table, measure, and relationship coverage
reference/document.mdStep 9 (DOCUMENT)Extract TMDL descriptions as #(doc) tag seeds
reference/limitations.mdanyWhat 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.

Shared Reference

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.

Show full SKILL.md (929 more words)Show less
Script

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.

What comes across for free

This is why a migration is fast: the customer is not re-deciding any of it.

  • Table, column, and measure names the business already agreed on
  • Relationships with explicit cardinality and filter direction
  • Measure definitions carrying real business logic, often years of it
  • Visibility decisions via isHidden and perspectives
  • Descriptions in /// comments, usually better than what anyone will write fresh
  • Format strings that map to render tags

What to Skip

  • Auto date/time tables. Power BI generates a hidden LocalDateTable_<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 layout (report.json, *.Report/): visuals, pages, bookmarks, themes. Analysis is a separate workflow.
  • Report-layer measures. Button captions, tooltips, dynamic titles, selected-page names, conditional-format colors, SVG sparklines. They return text and belong to the canvas, not the model. Their share varies more than any other figure here - a third of the measures in one Microsoft model, a tenth in the average of a fifty-model sample - so count them for the model in front of you rather than assuming a share, and tell the user how many you skipped. Type the return value rather than looking for a quote character - the canonical example, Selected page = SELECTEDVALUE('Current page'[Current page]), has no string literal at all. reference/translate-measures.md step 1 has the tells.
  • Implicit measures. A numeric column aggregated in a visual with no defined measure. Note which columns are used this way, do not manufacture a measure per column.
  • summarizeBy defaults, except as a hint about which columns are facts and which are keys.
  • Display folders, lineageTag, ordinal, and other authoring metadata.
  • Hierarchies as structure: Malloy has no hierarchy object. Note the level order as drill intent and move on.
  • Query Editor / M on an import-mode model. The imported data is Power Query's output, so a snapshot runs no M. M matters only if you are reproducing the refresh, which is a separate decision (see reference/discover.md).

What to Flag for User Decision

  • Any measure routed to a divergent recipe. This is the flag that matters most and it must reach the user, never be resolved quietly. Say which filter context makes it diverge.
  • Any measure with no recipe (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.
  • Storage mode. DirectQuery and live-connection models contain no data; the model still translates but nothing can be validated locally.
  • Bidirectional cross-filtering (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.
  • Many-to-many relationships: model the bridge the grain actually has, and name the fan-out out loud (#s2).
  • Inactive relationships (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.
  • Calculated columns and calculated tables: DAX evaluated at refresh. Decide per object whether it becomes a Malloy dimension, a computed source, or work pushed upstream.
  • RLS roles that do not fit the gate grammar: most will not, and a translated role is usually weaker than the original unless it sits behind a trusted tier. See reference/rls-roles.md.
  • The four stopgaps: date spines (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.
  • Where next month's data comes from, if the user is lifting data out of a .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

Files

SKILL.md and 15 other files (scripts) in skills/malloy-powerbi-review of malloydata/publisher.

  • SKILL.md
  • NOTICE
  • reference/_concepts.md
  • reference/cookbook-filter-context.md
  • reference/cookbook-structure.md
  • reference/cookbook-time.md
  • reference/corpus.md
  • reference/discover.md
  • reference/document.md
  • reference/limitations.md
  • reference/propose-fields.md
  • reference/review-coverage.md
  • reference/rls-roles.md
  • reference/translate-measures.md
  • scripts/classify_measures.py
  • scripts/classify_measures_test.py

Open the folder on GitHubat commit c43a052

Compare with similar skills

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.

Malloy Powerbi Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Malloy Powerbi Review this skillmalloydata/publisher116—~4kAutomated safety check: PassMIT
Power Bi AI ReadinessDKH-DK/Self-Service-Power-BI-Fabric113—~2kAutomated safety check: PassNone
Pbi Report Builderlukasreese/powerbi-claude-skills129—~7.5kAutomated safety check: PassNone
Pbi Docxperiun/skills-xperiun-free116—~3kAutomated safety check: PassMIT
Pbip Dependency Analyzerlukasreese/powerbi-claude-skills129—~3.2kAutomated safety check: PassNone
Audit Tenant Settingsdata-goblin/power-bi-agentic-development1k—~4.7kAutomated safety check: PassGPL-3.0

Similar skills

  • Power Bi AI Readiness

    DKH-DK/Self-Service-Power-BI-Fabric

    Score and prepare Power BI semantic models for AI (Fabric Data Agent / Copilot).

    113 GitHub stars~2k tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • Pbi Report Builder

    lukasreese/powerbi-claude-skills

    [power-bi] Power BI PBIR Report Builder with IBCS Visuals. An agent skill from lukasreese/powerbi-claude-skills.

    129 GitHub stars~7.5k tokensUpdated 5 mo ago
    Data & AnalyticsAuto-check passed
  • Pbi Doc

    xperiun/skills-xperiun-free

    Documenta projeto Power BI (PBIP) inteiro em markdown estruturado + HTML navegável (mini-site de doc).

    116 GitHub stars~3k tokensUpdated 24 days ago
    Data & AnalyticsAuto-check passed
  • Pbip Dependency Analyzer

    lukasreese/powerbi-claude-skills

    Power BI PBIP Dependency Analyzer. An agent skill from lukasreese/powerbi-claude-skills.

    129 GitHub stars~3.2k tokensUpdated 5 mo ago
    Data & AnalyticsAuto-check passed
  • Audit Tenant Settings

    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.

    1k GitHub stars~4.7k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Pbi Modelo Review

    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.

    116 GitHub stars~2.9k tokensUpdated 24 days ago
    Data & AnalyticsAuto-check passed

More from malloydata/publisher

All 29 skills in this repo
  • Eval Answer

    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.

    116 GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Fix Scan Finding

    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…

    116 GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Eval Import

    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.

    116 GitHub stars~5.9k tokensUpdated today
    Auto-check passed
  • Eval Loop

    malloydata/publisher

    Conduct a local Publisher evaluation loop in five steps: scrape/run, eval, diagnose, improve, checkpoint.

    116 GitHub stars~7.8k tokensUpdated today
    Auto-check passed
  • Eval Improve

    malloydata/publisher

    Make the smallest safe Malloy model edit that closes a diagnosed model-owned gap, with a probe receipt for every factual claim.

    116 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Eval Judge

    malloydata/publisher

    Decide whether ONE answer matches its golden, and say whether you believe the golden.

    116 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Malloy Powerbi Review

What does Malloy Powerbi Review do?

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.

When should I use Malloy Powerbi Review?

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.

How do I install Malloy Powerbi Review in Claude Code?

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.

How do I install Malloy Powerbi Review in Codex?

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.

Can I use Malloy Powerbi Review in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Malloy Powerbi Review need to run?

Going by SKILL.md and its folder, Malloy Powerbi Review needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Malloy Powerbi Review access the network?

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.

Is Malloy Powerbi Review safe to install?

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.

What licence does Malloy Powerbi Review use?

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.

How many tokens does Malloy Powerbi Review use?

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.

What are the alternatives to Malloy Powerbi Review?

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.

Who maintains Malloy Powerbi Review?

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.