Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.

GPL-3.0Auto-check passedData & Analytics

Install Bpa Rules

skills CLI
$ npx skills add data-goblin/power-bi-agentic-development --skill bpa-rules -a claude-code

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

GitHub CLI
$ gh skill install data-goblin/power-bi-agentic-development bpa-rules --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/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-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
bpa-rules
GitHub stars
1k
Token cost
~4.4k tokens
SKILL.md length
1,878 words
Files
17 (incl. scripts, references)
Skills in repo
33
Repo updated
First seen
Licence
GPL-3.0

At a glance

Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.

  • Works in 4 steps: Understand the User and Organization → Investigate the Model → Prioritize and Recommend → …
  • Mentions BPA rule
  • SKILL.md covers When to Use This Skill, Primary Workflow: Interactive…, Critical and Tabular Editor Compatibility, plus 6 more sections
  • Runs Python scripts from its folder; calls python; reaches raw.githubusercontent.com

What it does

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.

When your agent uses it

  • Mentions BPA rule
  • Best Practice Analyzer
  • Asks to create a BPA rule
  • Audit BPA rules

Example prompts

  • “BPA rule”
  • “Best Practice Analyzer”
  • “create a BPA rule”
  • “/bpa-rules”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Understand the User and Organization
  2. Investigate the Model
  3. Prioritize and Recommend
  4. Generate Rules

What it can do on your machine

Read from SKILL.md and the folder at commit 41886f2. 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 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • raw.githubusercontent.com

    Also links to:

    • docs.tabulareditor.com
    • github.com
    • data-goblins.com

    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

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.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~16k

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 data-goblin/power-bi-agentic-development at commit 41886f2, republished under its GPL-3.0 licence (© data-goblin). 1,878 words, ~4,440 tokens.

Download SKILL.mdSave it as .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.
name
bpa-rules
description
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".

Best Practice Analyzer Rules

Expert guidance for creating and improving BPA (Best Practice Analyzer) rules for Tabular Editor and Power BI semantic models.

When to Use This Skill

Activate automatically when tasks involve:

  • Creating new BPA rules for semantic model validation
  • Recommending or choosing BPA rules for a model, team, or organization
  • Improving or debugging BPA rule expressions
  • Writing FixExpression to auto-remediate rule violations
  • Understanding BPA annotations in TMDL files
  • Analyzing a semantic model against best practices
  • Converting ad-hoc checks into reusable BPA rules
  • Auditing or discovering all BPA rules across sources (built-in, URL, model, user, machine)

Primary Workflow: Interactive Q&A Discovery (Double Diamond)

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:

  1. Diverge -- broadly explore the user's context, organization, and goals
  2. Converge -- narrow down to specific priorities and constraints
  3. Diverge -- explore the model structure and identify candidate rule areas
  4. Converge -- select and generate the final tailored rule set
Diamond 1: Requirements Gathering (Phases 1-2)
Phase 1: Understand the User and Organization

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:

  • Question 1: "What is the primary goal for these BPA rules?" -- options: "Set up BPA for my team", "Improve a specific model", "Create governance/compliance rules", (Other)
  • Question 2: "Who will use these rules?" -- options: "Solo developer", "Small team (2-5)", "Large org / multiple teams", (Other)
  • Question 3: "What tooling do you use?" -- options: "Tabular Editor 3", "Tabular Editor 2", "TE CLI in CI/CD", "Fabric notebooks"

Round 2 -- Standards and existing rules:

Based on Round 1 answers, ask about conventions and existing rules. Example:

  • Question 1: "Do you have existing naming conventions?" -- options: "Yes, documented", "Yes, informal/ad-hoc", "No conventions yet", (Other)
  • Question 2: "Are there BPA rules already in use?" -- options: "Yes, in Tabular Editor", "Yes, from a URL/repo", "No existing rules", (Other)
  • Question 3: "Which categories matter most?" -- multiSelect: true -- options: "Performance", "Metadata/Documentation", "DAX quality", "Naming conventions"

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.

Phase 2: Investigate the Model

After Phase 1, use AskUserQuestion to determine how to access the model:

  • Question: "How is your semantic model available?" -- options: "Published to Fabric / Power BI Service", "Local as PBIP (.tmdl files)", "Local as .pbix file", "I have a model.bim file"

Then investigate the model based on the answer:

AnswerAction
Published to FabricUse 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 PBIPUse AskUserQuestion to get the path to the .SemanticModel/definition/ folder. Then read TMDL files directly with Read/Grep tools.
Local as .pbix onlyGuide 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 fileUse AskUserQuestion to get the file path. Then parse with jq or read directly.
No model yetSkip model investigation; generate general-purpose rules based on organizational context only.

What to extract from the model (read files, grep patterns, count objects):

  • Table count, measure count, column count
  • Storage mode (Import, DirectQuery, Direct Lake, mixed)
  • Metadata completeness (descriptions, display folders, format strings)
  • DAX patterns in use (CALCULATE, FILTER/ALL, calculation groups, UDFs)
  • Relationship patterns (bi-directional, many-to-many, inactive)
  • RLS roles defined
  • Naming conventions currently in use
  • Existing BPA annotations already embedded in model.tmdl

After model investigation, summarize findings to the user and use AskUserQuestion to confirm the analysis is accurate and ask if anything was missed.

Diamond 2: Rule Generation (Phases 3-4)
Phase 3: Prioritize and Recommend

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:

  1. Metadata (high priority -- many objects lack descriptions)
  2. Governance (high priority -- user goal)
  3. Performance (medium -- some unused hidden columns detected)
  4. DAX Expressions (medium -- some FILTER/ALL patterns found)
  5. Naming Conventions (low -- model already follows consistent naming)

Use AskUserQuestion to ask:

  • Which categories to include (multiSelect)
  • What severity level to assign to each category (or let the skill decide)
  • Whether FixExpressions should be included (some teams prefer manual fixes)

Do not generate rules until the user confirms the priorities.

Phase 4: Generate Rules

Only after Phases 1-3, generate tailored BPA rules. For each rule:

  • Explain why it is relevant to the user's specific model and context
  • Include a FixExpression where safe and practical (if the user opted in)
  • Set severity based on the user's stated priorities
  • Use the organization's naming conventions in rule IDs and names

After generating rules, use AskUserQuestion to ask:

  • Whether any rules should be adjusted, removed, or added
  • Where to save the output (user-level, machine-level, model-embedded, or URL)
  • Whether to validate with scripts/validate_rules.py

Iterate on the rule set until the user is satisfied. Continue calling AskUserQuestion for refinements.

When to Skip Q&A

Skip the full Q&A workflow only when:

  • The user asks for a specific, well-defined rule (e.g., "write a rule that checks for measures without descriptions")
  • The user asks to improve or debug an existing expression
  • The user asks to audit existing rules
  • The user provides all context upfront in their request

Even in these cases, ask clarifying questions with AskUserQuestion if the request is ambiguous.

Critical

  • Always validate rule expressions before suggesting them
  • Test expressions against the target scope (Measure, Column, Table, etc.)
  • Ensure FixExpression does not cause data loss or break the model
  • Consider CompatibilityLevel when using newer TOM properties

Tabular Editor Compatibility

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.

Line Endings (CRLF Required)

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:

bash
# macOS/Linux
sed -i 's/$/\r/' rules.json

# Or use the validation script
python scripts/validate_rules.py --fix rules.json
Show full SKILL.md (758 more words)Show less
File Paths

When adding rule files in Tabular Editor:

  • Use absolute paths (e.g., C:\BPARules\my-rules.json)
  • Avoid relative paths with ..\..\.. - TE may fail to resolve these
  • URLs work reliably (e.g., https://raw.githubusercontent.com/...)
JSON Format Requirements

No extra properties: TE's JSON parser is strict. Only use allowed fields:

  • ID, Name, Category, Description, Severity, Scope, Expression
  • FixExpression, CompatibilityLevel, Source, Remarks

Avoid these patterns:

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

Regex Expression Syntax

When using RegEx.IsMatch() in expressions:

No @ prefix: Do not use C# verbatim string prefix

csharp
// 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

csharp
// 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)$")
Correct Scope Names

Use the exact scope names from the TOM enum. Common mistakes:

WrongCorrect
RoleModelRole
MemberModelRoleMember
ExpressionNamedExpression
DataSourceProviderDataSource or StructuredDataSource

Note: Column is valid as a backwards-compatible alias for DataColumn, CalculatedColumn, CalculatedTableColumn.

Validation Script

Use the validation script to check and fix TE compatibility issues:

bash
# 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.json

The script checks:

  • Line endings (CRLF)
  • No _comment fields
  • No null values for optional fields
  • Valid scope names
  • Expression syntax warnings

About BPA rules

  • BPA rules define automatic tests for semantic models in Power BI and Fabric for QA/QC
  • BPA rules are used by Tabular Editor 2, 3, CLI, or Fabric notebooks
  • Rule expressions are defined in C# for Tabular Editor or Python for Fabric Notebooks
  • BPA rules are better defined and used by Tabular Editor because they are actionable with ability to ignore or fix, and they are integrated with the IDE

File Locations

BPA rules can exist in multiple locations (evaluated in order of priority):

LocationPath / SourceDescription
Built-in Best PracticesInternal to TE3Default rules bundled with Tabular Editor 3
URLAny valid URL (e.g., https://raw.githubusercontent.com/TabularEditor/BestPracticeRules/master/BPARules-standard.json)Remote rule collections loaded from web
Rules within current modelSee belowRules embedded in model metadata
Rules for local user%LocalAppData%\TabularEditor3\BPARules.jsonUser-specific rules on Windows
Rules on local machine%ProgramData%\TabularEditor3\BPARules.jsonMachine-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.

Quick Reference

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.

TMDL Annotations

BPA rules can be embedded in TMDL files via annotations:

tmdl
annotation BestPracticeAnalyzer = [{ "ID": "...", ... }]
annotation BestPracticeAnalyzer_IgnoreRules = {"RuleIDs":["RULE1","RULE2"]}
annotation BestPracticeAnalyzer_ExternalRuleFiles = ["https://..."]

For complete annotation patterns, see references/tmdl-annotations.md.

Workflow

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.

Creating a Single Rule (Direct)

When the user requests a specific rule without needing full discovery:

  1. Identify the best practice to enforce
  2. Determine the appropriate Scope
  3. Write the Expression to detect violations
  4. Optionally write a FixExpression for auto-remediation
  5. Test against sample models
  6. Add to rule collection
Improving an Existing Rule
  1. Understand the current rule's intent
  2. Identify false positives or missed cases
  3. Refine the Expression logic
  4. Verify FixExpression doesn't cause side effects
  5. Test thoroughly

Additional Resources

Reference Files

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 checklist
  • references/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 overview
  • schema/bparules-schema.json - JSON Schema for validating BPA rule files (Draft-07) (temporary location)
  • references/rule-schema.md - Human-readable BPA rule field descriptions
  • references/expression-syntax.md - Dynamic LINQ expression syntax, TOM properties, Tokenize(), DependsOn, ReferencedBy
  • references/tmdl-annotations.md - BPA annotations in TMDL format
Example Files

Working examples in examples/:

  • examples/comprehensive-rules.json - 30+ production-ready rules across all categories
  • examples/model-with-bpa-annotations.tmdl - TMDL file showing all annotation patterns
Scripts

Utility 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 compliance

Audit Script Usage:

bash
# 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 descriptions
  • bpa-expression-helper - Debug and improve BPA expressions
Fetching Docs

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

External References

Example Rules

Measure Without Description
json
{
  "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)"
}
Hidden Unused Column
json
{
  "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

Files

SKILL.md and 16 other files (scripts, references) in plugins/tabular-editor/skills/bpa-rules of data-goblin/power-bi-agentic-development.

  • SKILL.md
  • examples/README.md
  • examples/comprehensive-rules.json
  • examples/course-3-business-case-bpa-rules.json
  • examples/microsoft-analysis-services-rules.json
  • examples/model-with-bpa-annotations.tmdl
  • examples/power-query-operations-rules.json
  • examples/te3-preferences-sample.json
  • references/expression-syntax.md
  • references/model-investigation.md
  • references/quick-reference.md
  • references/rule-schema.md
  • references/te-compatibility.md
  • references/tmdl-annotations.md
  • schema/README.md
  • schema/bparules-schema.json
  • scripts/validate_rules.py

Open the folder on GitHubat commit 41886f2

Compare with similar skills

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.

Bpa Rules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bpa Rules this skilldata-goblin/power-bi-agentic-development1k—~4.4kAutomated safety check: PassGPL-3.0
Power Bi AI ReadinessDKH-DK/Self-Service-Power-BI-Fabric113—~2kAutomated safety check: PassNone
Pbi Report Builderlukasreese/powerbi-claude-skills128—~7.5kAutomated safety check: PassNone
Pbi Docxperiun/skills-xperiun-free117—~3kAutomated safety check: PassMIT
Pbip Dependency Analyzerlukasreese/powerbi-claude-skills128—~3.2kAutomated safety check: PassNone
Pbi Modelo Reviewxperiun/skills-xperiun-free117—~2.9kAutomated safety check: PassMIT

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.

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

    117 GitHub stars~3k tokensUpdated 21 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.

    128 GitHub stars~3.2k tokensUpdated 5 mo ago
    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.

    117 GitHub stars~2.9k tokensUpdated 21 days ago
    Data & AnalyticsAuto-check passed
  • Pbi Dax Create

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

    117 GitHub stars~2.6k tokensUpdated 21 days ago
    Data & AnalyticsAuto-check passed

More from data-goblin/power-bi-agentic-development

All 33 skills in this repo
  • Paginated Report

    data-goblin/power-bi-agentic-development

    Author, validate, publish, and test Power BI paginated reports in the RDL format.

    1k GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-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 2 days ago
    Auto-check passed
  • Pbip

    data-goblin/power-bi-agentic-development

    Guidance for Power BI Project (PBIP) structure, thick and thin reports, project renames, forks, and validation.

    1k GitHub stars~3.8k tokensUpdated 2 days ago
    Auto-check passed
  • Review Report

    data-goblin/power-bi-agentic-development

    Actionable feedback on the quality, usage, and effectiveness of Power BI reports.

    1k GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Semantic Model

    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…

    1k GitHub stars~2.8k tokensUpdated 2 days ago
    Auto-check passed
  • Te Docs

    data-goblin/power-bi-agentic-development

    Tabular Editor documentation search and configuration file guidance (.tmuo, Preferences.json, UiPreferences.json, Layouts.json).

    1k GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Bpa Rules

What does Bpa Rules do?

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.

When should I use Bpa Rules?

Bpa Rules fits situations like: mentions BPA rule; best Practice Analyzer; asks to create a BPA rule; audit BPA rules.

How do I install Bpa Rules in Claude Code?

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.

How do I install Bpa Rules in Codex?

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.

Can I use Bpa Rules 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 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.

What does Bpa Rules need to run?

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.

Does Bpa Rules access the network?

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.

Is Bpa Rules 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 Bpa Rules use?

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.

How many tokens does Bpa Rules use?

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.

What are the alternatives to Bpa Rules?

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.

Who maintains Bpa Rules?

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.