plugins/powerbi-master/skills/powerbi-core/SKILL.md
Core Power BI data modeling, source connectivity, and platform fundamentals. PROACTIVELY activate for: (1) Power BI data modeling and star-schema design, (2) relationships (active/inactive, bidirectional, USERELATIONSHIP), (3) data-source selection (DirectQuery vs Import vs Direct Lake vs composite), (4) incremental refresh setup, (5) gateway configuration (on-prem and VNet gateways), (6) streaming datasets and push-data scenarios, (7) Dataflow Gen2 basics, (8) Power BI common gotchas and pitfalls (bidirectional filtering, AutoExist, blank-row), (9) workspace identity and OAuth2 / service-principal auth, (10) semantic model architecture review. Provides: star-schema templates, mode-selection matrix, incremental refresh recipe, gateway setup steps, and a common-gotchas reference.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace powerbi-coreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Core Power BI knowledge covering data modeling best practices, connectivity modes, source types, relationships, and common pitfalls. This skill provides the foundational architecture guidance every Power BI developer needs.
Always design data models using star schema topology:
| Component | Purpose | Example | |-----------|---------|---------| | Fact table | Numeric events/transactions | Sales, Orders, WebVisits | | Dimension table | Descriptive attributes | Date, Product, Customer, Geography | | Bridge table | Many-to-many resolution | StudentCourse, OrderProduct |
Mandatory rules:
| Mode | Data Location | Refresh | Performance | Use When | |------|--------------|---------|-------------|----------| | Import | In-memory VertiPaq | Scheduled/on-demand | Fastest queries | Default choice, data under 1GB compressed | | DirectQuery | Source database | Real-time | Depends on source | Real-time needed, data too large for import | | Dual | Both | Scheduled + real-time | Best of both | Dimension tables in composite models | | Direct Lake | OneLake delta tables | Framing (seconds) | Near-import speed | Fabric lakehouse/warehouse scenarios |
Import mode considerations:
DirectQuery limitations:
Direct Lake key considerations (2025-2026 GA):
Choosing storage mode decision tree:
| Property | Options | Default | |----------|---------|---------| | Cardinality | One-to-many, Many-to-one, One-to-one, Many-to-many | One-to-many | | Cross-filter direction | Single, Both | Single | | Active | Yes/No | Yes (only one active per path) |
Relationship rules:
| Category | Sources | |----------|---------| | Microsoft SQL | SQL Server, Azure SQL, Azure Synapse, SQL Server Analysis Services | | Azure | Cosmos DB, Data Explorer (Kusto), Blob Storage, Data Lake, Fabric Lakehouse/Warehouse | | Cloud Databases | Snowflake, Databricks, Google BigQuery, Amazon Redshift, Amazon Athena | | Files | Excel, CSV/TSV, JSON, XML, Parquet, PDF | | Services | SharePoint, Dynamics 365, Salesforce, Google Analytics, Azure DevOps | | Protocols | OData, REST API, ODBC, OLEDB | | Streaming | Azure Stream Analytics, PubNub, REST API push |
Configure incremental refresh for large Import tables to avoid full refresh:
RangeStart and RangeEnd parameters (type DateTime) in Power QueryRequirements: Premium, PPU, or Fabric capacity for more than basic incremental refresh. Pro workspaces support incremental refresh but with limitations.
2025-2026 improvements:
On-premises data gateway bridges on-premises sources to Power BI Service:
| Gateway Type | Use Case | |-------------|----------| | Standard (enterprise) | Shared by multiple users, centrally managed | | Personal | Single user, development/testing only | | Virtual Network (VNet) | Azure VNet-connected sources, no on-prem hardware |
VNet data gateway (2025-2026):
Gateway releases (2025-2026):
Common gateway failures:
| Method | Use Case | Best For | |--------|----------|----------| | OAuth2 | Cloud sources (Azure SQL, Snowflake, Databricks) | Interactive use, SSO | | Service Principal | Automated refresh, CI/CD pipelines | Unattended operations | | Workspace Identity | Fabric workspaces (no secret to manage) | Fabric-native models | | Managed Identity | Dataflows Gen2 to Azure sources | Zero-secret PaaS access | | Username/Password | Legacy on-prem sources | Gateway-bound sources |
Workspace Identity (2025-2026):
OAuth2 token limitation: When set via REST API (not UI), OAuth2 credentials lack a refresh token and expire after 1 hour. Use service principal for long-running automation.
Connection pooling best practices:
try/otherwise| Pitfall | Impact | Fix | |---------|--------|-----| | Auto date/time enabled | Hidden date tables bloat model (one per date column) | Disable in Options > Data Load | | Implicit measures (drag numeric to visual) | No control over aggregation, no reuse | Create explicit DAX measures | | Bidirectional cross-filter | Ambiguity, performance degradation, wrong results | Use single-direction, handle in DAX | | Too many columns in fact tables | Bloated model, slow refresh, wasted memory | Keep facts narrow: keys + numeric values | | BLANK vs 0 vs null confusion | DAX treats BLANK differently from 0; visuals hide BLANK rows | Use IF/COALESCE to handle explicitly | | Circular dependency errors | Usually from calculated columns referencing each other or bidirectional filters | Restructure model, break the cycle | | 1GB PBIX limit | Cannot save file locally | Remove unused columns, optimize cardinality | | Power BI Service vs Desktop gap | Some features only available in one or the other | Check feature matrix before designing | | Calculated columns vs measures | Calculated columns consume memory, stored per row | Prefer measures (computed at query time) | | String columns in fact tables | High cardinality strings destroy VertiPaq compression | Move to dimension table, use key reference |
references/data-sources-detail.md -- Detailed connector configuration for all source typesreferences/gotchas-deep-dive.md -- Extended pitfall analysis with examples and resolution patternsdevelopment
Use for Clerk sessions, tokens, webhooks, orgs, and security. PROACTIVELY activate for session tokens, JWT templates, getToken(), custom claims, pending sessions, multi-session UX, organizations, roles, permissions, system vs custom permissions, features/plans, MFA/passkeys/password policy/bot protection, Clerk webhooks, Svix signatures, verifyWebhook(), user/org sync, retries/replays, environment variables, custom domains, secret rotation, logs, and auth security reviews. Provides token semantics, webhook idempotency, authorization defaults, and hardening checklist.
tools
Use for Clerk in Next.js. PROACTIVELY activate for @clerk/nextjs setup, App Router auth()/currentUser(), clerkMiddleware(), proxy.ts/middleware.ts, createRouteMatcher(), protected pages/layouts/Route Handlers/Server Actions/API routes/tRPC, auth.protect() role/permission/token checks, ClerkProvider placement, server-only clerkClient, Link prefetch, redirects, 401/404 auth failures, custom domains, __clerk proxy paths, and deployment gotchas. Provides file patterns, server/client boundary rules, matcher templates, and production checks.
development
Use for Clerk frontend auth flows. PROACTIVELY activate for React, JavaScript, Vue, Nuxt, Astro, Expo, React Router, TanStack React Start, or SPA setup; ClerkProvider and publishable-key wiring; SignIn/SignUp/UserButton/UserProfile/OrganizationSwitcher; custom useUser/useAuth/useClerk/useSignIn/useSignUp/useSession/useOrganization flows; multi-session UX; cross-origin getToken() fetches; loading states, redirects, routing, CORS/cookies, or hydration bugs. Provides SDK selection, UI patterns, token-fetch templates, and frontend gotchas.
development
Use for Clerk dev/prod readiness, deployment, and multi-language implementation planning. PROACTIVELY activate for environment variables, pk_test/sk_test vs pk_live/sk_live, local dev, preview/staging/prod instances, domains/DNS, redirects, OAuth credentials, custom domains/proxy, authorizedParties, CSP, CORS/cookies, webhooks/tunnels, Vercel/Netlify/Cloudflare/API gateways, monitoring/troubleshooting, and backends in Node/Express/Fastify, Python/FastAPI/Django/Flask, Go, Ruby/Rails, Java/Spring, .NET, PHP/Laravel. Provides checklists, rollout plans, and language-portable patterns.