Power Bi AI Readiness
DKH-DK/Self-Service-Power-BI-Fabric
Score and prepare Power BI semantic models for AI (Fabric Data Agent / Copilot).
Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.
$ npx skills add data-goblin/power-bi-agentic-development --skill bpa-rules -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --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/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .claude/skills/bpa-rules && 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 "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .claude/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rulesType 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 data-goblin/power-bi-agentic-development --skill bpa-rules -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .agents/skills/bpa-rules && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .agents/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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 data-goblin/power-bi-agentic-development --skill bpa-rules -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .cursor/skills/bpa-rules && 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 "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .cursor/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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/data-goblin/power-bi-agentic-development.git --path plugins/tabular-editor/skills/bpa-rules--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 data-goblin/power-bi-agentic-development --skill bpa-rules -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .gemini/skills/bpa-rules && 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 "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .gemini/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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 data-goblin/power-bi-agentic-development bpa-rulesInstalls 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 data-goblin/power-bi-agentic-development --skill bpa-rules -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .github/skills/bpa-rules && 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 "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .github/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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 data-goblin/power-bi-agentic-development --skill bpa-rules -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/tabular-editor/skills/bpa-rules .opencode/skills/bpa-rules && 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 "bpa-rules" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/tabular-editor/skills/bpa-rules into .opencode/skills/bpa-rules/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bpa-rules", 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.
bpa-rulesInteractive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.
Bpa Rules is an agent skill from data-goblin/power-bi-agentic-development. Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring. Automatically invoke when the user mentions "BPA rule", "Best Practice Analyzer", or asks to "create a BPA rule", "audit BPA rules", "recommend BPA rules", "set up BPA for my team", "check model for best practices", "validate BPA rules", "improve a BPA expression".
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `examples/README.md`, `examples/comprehensive-rules.json` and `examples/course-3-business-case-bpa-rules.json`).
It sits in Data & Analytics. It works with Power BI. The repository describes itself as: Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports… The licence is GPL-3.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 41886f2. 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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comAlso links to:
docs.tabulareditor.comgithub.comdata-goblins.comFrom 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.
Bpa Rules loads about 4.4k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 101 tokens; SKILL.md has 1,878 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 data-goblin/power-bi-agentic-development at commit 41886f2, republished under its GPL-3.0 licence (© data-goblin). 1,878 words, ~4,440 tokens.
.claude/skills/bpa-rules/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Expert guidance for creating and improving BPA (Best Practice Analyzer) rules for Tabular Editor and Power BI semantic models.
Activate automatically when tasks involve:
CRITICAL: Do NOT generate BPA rules immediately. This is a requirements-gathering exercise. Use the AskUserQuestion tool to conduct an iterative, back-and-forth conversation with the user across multiple rounds. Continue asking questions until sufficient context about the user's business, team, model, and priorities has been gathered. Only then move to rule generation.
The workflow follows a double-diamond pattern:
Call AskUserQuestion with 2-4 questions per round. After each round, review the answers and ask follow-up questions. Do not proceed to Phase 2 until the organizational context is clear. Continue rounds until satisfied.
Round 1 -- Goal and audience:
Ask about the primary goal and who will use the rules. Example AskUserQuestion call:
Round 2 -- Standards and existing rules:
Based on Round 1 answers, ask about conventions and existing rules. Example:
Round 3+ -- Follow-ups as needed:
If the user has existing rules, ask for the file path or URL and read them. If they have naming conventions, ask for specifics. If they mentioned CI/CD, ask about the pipeline setup. Keep calling AskUserQuestion until the organizational picture is clear.
After Phase 1, use AskUserQuestion to determine how to access the model:
Then investigate the model based on the answer:
| Answer | Action |
|---|---|
| Published to Fabric | Use AskUserQuestion to get workspace and model name. Then use fab CLI to inspect remotely -- load the fabric-cli skill and read references/model-investigation.md for specific commands. |
| Local as PBIP | Use AskUserQuestion to get the path to the .SemanticModel/definition/ folder. Then read TMDL files directly with Read/Grep tools. |
| Local as .pbix only | Guide the user to save as PBIP: File > Save as > Power BI Project (*.pbip) in Power BI Desktop. Then ask for the resulting folder path. See references/model-investigation.md for detailed steps. |
| model.bim file | Use AskUserQuestion to get the file path. Then parse with jq or read directly. |
| No model yet | Skip model investigation; generate general-purpose rules based on organizational context only. |
What to extract from the model (read files, grep patterns, count objects):
After model investigation, summarize findings to the user and use AskUserQuestion to confirm the analysis is accurate and ask if anything was missed.
Based on everything gathered, present a prioritized recommendation of rule categories. Use AskUserQuestion to let the user confirm or adjust before generating any rules.
Present categories ranked by relevance to the user's context. For example:
If the model has many measures without descriptions and the user cares about governance:
Use AskUserQuestion to ask:
Do not generate rules until the user confirms the priorities.
Only after Phases 1-3, generate tailored BPA rules. For each rule:
After generating rules, use AskUserQuestion to ask:
scripts/validate_rules.pyIterate on the rule set until the user is satisfied. Continue calling AskUserQuestion for refinements.
Skip the full Q&A workflow only when:
Even in these cases, ask clarifying questions with AskUserQuestion if the request is ambiguous.
BPA rule files must follow specific formatting requirements for Tabular Editor to load them correctly. Files that don't follow these rules may show empty rule collections or fail to load entirely.
Tabular Editor on Windows requires Windows line endings (CRLF, \r\n). Files with Unix line endings (LF only) will fail to load or show empty rule collections.
To convert a file to CRLF:
# macOS/Linux
sed -i 's/$/\r/' rules.json
# Or use the validation script
python scripts/validate_rules.py --fix rules.jsonWhen adding rule files in Tabular Editor:
C:\BPARules\my-rules.json)..\..\.. - TE may fail to resolve thesehttps://raw.githubusercontent.com/...)No extra properties: TE's JSON parser is strict. Only use allowed fields:
ID, Name, Category, Description, Severity, Scope, ExpressionFixExpression, CompatibilityLevel, Source, RemarksAvoid these patterns:
// BAD: _comment fields not allowed
{ "_comment": "Section header", "ID": "RULE1", ... }
// BAD: Runtime fields (TE adds these, don't include them)
{ "ID": "RULE1", "ObjectCount": 0, "ErrorMessage": null, ... }
// GOOD: FixExpression can be null or omitted
{ "ID": "RULE1", "FixExpression": null, ... }
{ "ID": "RULE1", "Name": "...", "Severity": 2, "Scope": "Measure", "Expression": "..." }Note: FixExpression: null is valid. ErrorMessage and ObjectCount are runtime fields that TE adds - do not include them in rule definitions.
When using RegEx.IsMatch() in expressions:
No @ prefix: Do not use C# verbatim string prefix
// BAD: @ prefix not supported
RegEx.IsMatch(Expression, @"FILTER\s*\(\s*ALL")
// GOOD: Standard escaping
RegEx.IsMatch(Expression, "FILTER\\s*\\(\\s*ALL")No RegexOptions parameter: TE doesn't support the options parameter
// BAD: RegexOptions not supported
RegEx.IsMatch(Name, "^DATE$", RegexOptions.IgnoreCase)
// GOOD: Use inline flag or pattern only
RegEx.IsMatch(Name, "(?i)^DATE$")
RegEx.IsMatch(Name, "^(DATE|date|Date)$")Use the exact scope names from the TOM enum. Common mistakes:
| Wrong | Correct |
|---|---|
Role | ModelRole |
Member | ModelRoleMember |
Expression | NamedExpression |
DataSource | ProviderDataSource or StructuredDataSource |
Note: Column is valid as a backwards-compatible alias for DataColumn, CalculatedColumn, CalculatedTableColumn.
Use the validation script to check and fix TE compatibility issues:
# Check for issues
python scripts/validate_rules.py rules.json
# Auto-fix issues (CRLF, remove nulls, remove _comment)
python scripts/validate_rules.py --fix rules.jsonThe script checks:
_comment fieldsnull values for optional fieldsBPA rules can exist in multiple locations (evaluated in order of priority):
| Location | Path / Source | Description |
|---|---|---|
| Built-in Best Practices | Internal to TE3 | Default rules bundled with Tabular Editor 3 |
| URL | Any valid URL (e.g., https://raw.githubusercontent.com/TabularEditor/BestPracticeRules/master/BPARules-standard.json) | Remote rule collections loaded from web |
| Rules within current model | See below | Rules embedded in model metadata |
| Rules for local user | %LocalAppData%\TabularEditor3\BPARules.json | User-specific rules on Windows |
| Rules on local machine | %ProgramData%\TabularEditor3\BPARules.json | Machine-wide rules for all users |
For built-in rule IDs (27 rules in TE3), model-embedded rule formats, cross-platform file access, and all file location details, see references/te-compatibility.md.
For rule JSON structure, valid scope values, severity levels, compatibility levels, and category prefixes, see references/quick-reference.md.
For expression syntax (Dynamic LINQ, TOM properties, string/boolean/collection checks, Tokenize(), DependsOn, ReferencedBy), see references/expression-syntax.md.
BPA rules can be embedded in TMDL files via annotations:
annotation BestPracticeAnalyzer = [{ "ID": "...", ... }]
annotation BestPracticeAnalyzer_IgnoreRules = {"RuleIDs":["RULE1","RULE2"]}
annotation BestPracticeAnalyzer_ExternalRuleFiles = ["https://..."]For complete annotation patterns, see references/tmdl-annotations.md.
Follow the Primary Workflow: Interactive Q&A Discovery (above) for the best results. Use AskUserQuestion iteratively to gather context, investigate the model, then generate targeted rules.
When the user requests a specific rule without needing full discovery:
For detailed syntax and patterns, consult:
references/model-investigation.md - Investigating models via Fabric CLI or local .bim/.tmdl files; guiding users to save as PBIP; model analysis checklistreferences/te-compatibility.md - Tabular Editor compatibility (CRLF, file paths, JSON format, regex, scope names, validation, built-in rules, file locations, cross-platform access)references/quick-reference.md - Rule JSON structure, valid scopes, severity levels, compatibility levels, category prefixes, expression syntax overviewschema/bparules-schema.json - JSON Schema for validating BPA rule files (Draft-07) (temporary location)references/rule-schema.md - Human-readable BPA rule field descriptionsreferences/expression-syntax.md - Dynamic LINQ expression syntax, TOM properties, Tokenize(), DependsOn, ReferencedByreferences/tmdl-annotations.md - BPA annotations in TMDL formatWorking examples in examples/:
examples/comprehensive-rules.json - 30+ production-ready rules across all categoriesexamples/model-with-bpa-annotations.tmdl - TMDL file showing all annotation patternsUtility scripts:
/scripts/bpa_rules_audit.py - Comprehensive BPA rules audit across all sources (built-in, URL, model, user, machine). Supports Windows, WSL, and macOS with Parallels. Outputs ASCII report and JSON export.scripts/validate_rules.py - Validate BPA rule JSON files for schema complianceAudit Script Usage:
# Basic audit
python scripts/bpa_rules_audit.py /path/to/model
# Export to JSON
python scripts/bpa_rules_audit.py /path/to/model --json output.json
# Quiet mode (summary only)
python scripts/bpa_rules_audit.py /path/to/model --quiet/suggest-rule - Generate BPA rules from descriptionsbpa-expression-helper - Debug and improve BPA expressionsTo retrieve current BPA and TOM reference docs, use microsoft_docs_search + microsoft_docs_fetch (MCP) if available, otherwise mslearn search + mslearn fetch (CLI). Search based on the user's request and run multiple searches as needed to ensure sufficient context before proceeding.
{
"ID": "META_MEASURE_NO_DESCRIPTION",
"Name": "Measure has no description",
"Category": "Metadata",
"Description": "All measures should have descriptions for documentation.",
"Severity": 2,
"Scope": "Measure",
"Expression": "string.IsNullOrWhitespace(Description)"
}{
"ID": "PERF_UNUSED_HIDDEN_COLUMN",
"Name": "Remove hidden columns not used",
"Category": "Performance",
"Description": "Hidden columns with no references waste memory.",
"Severity": 3,
"Scope": "Column",
"Expression": "IsHidden and ReferencedBy.Count = 0 and not UsedInRelationships.Any()",
"FixExpression": "Delete()"
}© data-goblin, GPL-3.0. 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 16 other files (scripts, references) in plugins/tabular-editor/skills/bpa-rules of data-goblin/power-bi-agentic-development.
Open the folder on GitHubat commit 41886f2
Bpa Rules 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 |
|---|---|---|---|---|---|---|
| Bpa Rules this skilldata-goblin/power-bi-agentic-development | 1k | — | ~4.4k | Automated safety check: Pass | GPL-3.0 | |
| Power Bi AI ReadinessDKH-DK/Self-Service-Power-BI-Fabric | 113 | — | ~2k | Automated safety check: Pass | None | |
| Pbi Report Builderlukasreese/powerbi-claude-skills | 128 | — | ~7.5k | Automated safety check: Pass | None | |
| Pbi Docxperiun/skills-xperiun-free | 117 | — | ~3k | Automated safety check: Pass | MIT | |
| Pbip Dependency Analyzerlukasreese/powerbi-claude-skills | 128 | — | ~3.2k | Automated safety check: Pass | None | |
| Pbi Modelo Reviewxperiun/skills-xperiun-free | 117 | — | ~2.9k | Automated safety check: Pass | MIT |
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.
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.
xperiun/skills-xperiun-free
Cria medida DAX a partir de descrição em PT, respeitando o modelo Power BI existente (colunas reais, naming convention, padrões DAX).
data-goblin/power-bi-agentic-development
Author, validate, publish, and test Power BI paginated reports in the RDL format.
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.
data-goblin/power-bi-agentic-development
Guidance for Power BI Project (PBIP) structure, thick and thin reports, project renames, forks, and validation.
data-goblin/power-bi-agentic-development
Actionable feedback on the quality, usage, and effectiveness of Power BI reports.
data-goblin/power-bi-agentic-development
This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a…
data-goblin/power-bi-agentic-development
Tabular Editor documentation search and configuration file guidance (.tmuo, Preferences.json, UiPreferences.json, Layouts.json).
Works with
Categories
Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring. Bpa Rules is an agent skill from data-goblin/power-bi-agentic-development. Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.
Bpa Rules fits situations like: mentions BPA rule; best Practice Analyzer; asks to create a BPA rule; audit BPA rules.
Run `npx skills add data-goblin/power-bi-agentic-development --skill bpa-rules -a claude-code`. Or copy the skill folder (plugins/tabular-editor/skills/bpa-rules in data-goblin/power-bi-agentic-development) into .claude/skills/bpa-rules in your project. Claude Code loads it when a task matches its description.
Run `npx skills add data-goblin/power-bi-agentic-development --skill bpa-rules -a codex`. Or copy the skill folder (plugins/tabular-editor/skills/bpa-rules in data-goblin/power-bi-agentic-development) into .agents/skills/bpa-rules 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 data-goblin/power-bi-agentic-development --skill bpa-rules -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bpa-rules, .gemini/skills/bpa-rules, .github/skills/bpa-rules and .opencode/skills/bpa-rules in your project.
Going by SKILL.md and its folder, Bpa Rules needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md names 4 domains. In commands or code: raw.githubusercontent.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.tabulareditor.com, github.com and data-goblins.com. 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.
Bpa Rules is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 11k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Bpa Rules: Power Bi AI Readiness (DKH-DK/Self-Service-Power-BI-Fabric, 113 stars), Pbi Report Builder (lukasreese/powerbi-claude-skills, 128 stars), Pbi Doc (xperiun/skills-xperiun-free, 117 stars) and Pbip Dependency Analyzer (lukasreese/powerbi-claude-skills, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
data-goblin (a GitHub user) maintains it in data-goblin/power-bi-agentic-development, which has 1,026 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 5, 2026.
Source: data-goblin/power-bi-agentic-development on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.