@luquimbo/bi-superpowers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/.claude-plugin/plugin.json +8 -0
  2. package/.mcp.json +25 -0
  3. package/AGENTS.md +244 -0
  4. package/CHANGELOG.md +265 -0
  5. package/LICENSE +21 -0
  6. package/README.md +211 -0
  7. package/bin/build-plugin.js +30 -0
  8. package/bin/cli.js +1064 -0
  9. package/bin/commands/add.js +533 -0
  10. package/bin/commands/add.test.js +77 -0
  11. package/bin/commands/build-desktop.js +166 -0
  12. package/bin/commands/changelog.js +443 -0
  13. package/bin/commands/diff.js +325 -0
  14. package/bin/commands/lint.js +419 -0
  15. package/bin/commands/lint.test.js +103 -0
  16. package/bin/commands/mcp-setup.js +246 -0
  17. package/bin/commands/pull.js +287 -0
  18. package/bin/commands/pull.test.js +36 -0
  19. package/bin/commands/push.js +231 -0
  20. package/bin/commands/push.test.js +14 -0
  21. package/bin/commands/search.js +344 -0
  22. package/bin/commands/search.test.js +115 -0
  23. package/bin/commands/setup.js +545 -0
  24. package/bin/commands/setup.test.js +46 -0
  25. package/bin/commands/sync-profile.js +405 -0
  26. package/bin/commands/sync-profile.test.js +14 -0
  27. package/bin/commands/sync-source.js +418 -0
  28. package/bin/commands/sync-source.test.js +14 -0
  29. package/bin/commands/watch.js +206 -0
  30. package/bin/lib/generators/claude-plugin.js +266 -0
  31. package/bin/lib/generators/claude-plugin.test.js +110 -0
  32. package/bin/lib/generators/index.js +116 -0
  33. package/bin/lib/generators/shared.js +282 -0
  34. package/bin/lib/licensing/index.js +35 -0
  35. package/bin/lib/licensing/storage.js +364 -0
  36. package/bin/lib/licensing/storage.test.js +55 -0
  37. package/bin/lib/licensing/validator.js +213 -0
  38. package/bin/lib/licensing/validator.test.js +137 -0
  39. package/bin/lib/microsoft-mcp.js +176 -0
  40. package/bin/lib/microsoft-mcp.test.js +106 -0
  41. package/bin/lib/skills.js +84 -0
  42. package/bin/mcp/powerbi-modeling-launcher.js +38 -0
  43. package/bin/postinstall.js +44 -0
  44. package/bin/utils/errors.js +159 -0
  45. package/bin/utils/git.js +298 -0
  46. package/bin/utils/logger.js +142 -0
  47. package/bin/utils/mcp-detect.js +274 -0
  48. package/bin/utils/mcp-detect.test.js +105 -0
  49. package/bin/utils/pbix.js +305 -0
  50. package/bin/utils/pbix.test.js +37 -0
  51. package/bin/utils/profiles.js +312 -0
  52. package/bin/utils/projects.js +168 -0
  53. package/bin/utils/readline.js +206 -0
  54. package/bin/utils/readline.test.js +47 -0
  55. package/bin/utils/tui.js +314 -0
  56. package/bin/utils/tui.test.js +127 -0
  57. package/commands/contributions.md +265 -0
  58. package/commands/data-model-design.md +468 -0
  59. package/commands/dax-doctor.md +248 -0
  60. package/commands/fabric-scripts.md +452 -0
  61. package/commands/migration-assistant.md +290 -0
  62. package/commands/model-documenter.md +242 -0
  63. package/commands/pbi-connect.md +239 -0
  64. package/commands/project-kickoff.md +905 -0
  65. package/commands/report-layout.md +296 -0
  66. package/commands/rls-design.md +533 -0
  67. package/commands/theme-tweaker.md +624 -0
  68. package/config.example.json +23 -0
  69. package/config.json +23 -0
  70. package/desktop-extension/manifest.json +37 -0
  71. package/desktop-extension/package.json +10 -0
  72. package/desktop-extension/server.js +95 -0
  73. package/docs/openrouter-free-models.md +92 -0
  74. package/library/examples/README.md +151 -0
  75. package/library/examples/finance-reporting/README.md +351 -0
  76. package/library/examples/finance-reporting/data-model.md +267 -0
  77. package/library/examples/finance-reporting/measures.dax +557 -0
  78. package/library/examples/hr-analytics/README.md +371 -0
  79. package/library/examples/hr-analytics/data-model.md +315 -0
  80. package/library/examples/hr-analytics/measures.dax +460 -0
  81. package/library/examples/marketing-analytics/README.md +37 -0
  82. package/library/examples/marketing-analytics/data-model.md +62 -0
  83. package/library/examples/marketing-analytics/measures.dax +110 -0
  84. package/library/examples/retail-analytics/README.md +439 -0
  85. package/library/examples/retail-analytics/data-model.md +288 -0
  86. package/library/examples/retail-analytics/measures.dax +481 -0
  87. package/library/examples/supply-chain/README.md +37 -0
  88. package/library/examples/supply-chain/data-model.md +69 -0
  89. package/library/examples/supply-chain/measures.dax +77 -0
  90. package/library/examples/udf-library/README.md +228 -0
  91. package/library/examples/udf-library/functions.dax +571 -0
  92. package/library/snippets/dax/README.md +292 -0
  93. package/library/snippets/dax/business-domains.md +576 -0
  94. package/library/snippets/dax/calculate-patterns.md +276 -0
  95. package/library/snippets/dax/calculation-groups.md +489 -0
  96. package/library/snippets/dax/error-handling.md +495 -0
  97. package/library/snippets/dax/iterators-and-aggregations.md +474 -0
  98. package/library/snippets/dax/kpis-and-metrics.md +293 -0
  99. package/library/snippets/dax/rankings-and-topn.md +235 -0
  100. package/library/snippets/dax/security-patterns.md +413 -0
  101. package/library/snippets/dax/text-and-formatting.md +316 -0
  102. package/library/snippets/dax/time-intelligence.md +196 -0
  103. package/library/snippets/dax/user-defined-functions.md +477 -0
  104. package/library/snippets/dax/virtual-tables.md +546 -0
  105. package/library/snippets/excel-formulas/README.md +84 -0
  106. package/library/snippets/excel-formulas/aggregations.md +330 -0
  107. package/library/snippets/excel-formulas/dates-and-times.md +361 -0
  108. package/library/snippets/excel-formulas/dynamic-arrays.md +314 -0
  109. package/library/snippets/excel-formulas/lookups.md +169 -0
  110. package/library/snippets/excel-formulas/text-functions.md +363 -0
  111. package/library/snippets/governance/naming-conventions.md +97 -0
  112. package/library/snippets/governance/review-checklists.md +107 -0
  113. package/library/snippets/power-query/README.md +389 -0
  114. package/library/snippets/power-query/api-integration.md +707 -0
  115. package/library/snippets/power-query/connections.md +434 -0
  116. package/library/snippets/power-query/data-cleaning.md +298 -0
  117. package/library/snippets/power-query/error-handling.md +526 -0
  118. package/library/snippets/power-query/parameters.md +350 -0
  119. package/library/snippets/power-query/performance.md +506 -0
  120. package/library/snippets/power-query/transformations.md +330 -0
  121. package/library/snippets/report-design/accessibility.md +78 -0
  122. package/library/snippets/report-design/chart-selection.md +54 -0
  123. package/library/snippets/report-design/layout-patterns.md +87 -0
  124. package/library/templates/data-models/README.md +93 -0
  125. package/library/templates/data-models/finance-model.md +627 -0
  126. package/library/templates/data-models/retail-star-schema.md +473 -0
  127. package/library/templates/excel/README.md +83 -0
  128. package/library/templates/excel/budget-tracker.md +432 -0
  129. package/library/templates/excel/data-entry-form.md +533 -0
  130. package/library/templates/power-bi/README.md +72 -0
  131. package/library/templates/power-bi/finance-report.md +449 -0
  132. package/library/templates/power-bi/kpi-scorecard.md +461 -0
  133. package/library/templates/power-bi/sales-dashboard.md +281 -0
  134. package/library/themes/excel/README.md +436 -0
  135. package/library/themes/power-bi/README.md +271 -0
  136. package/library/themes/power-bi/accessible.json +307 -0
  137. package/library/themes/power-bi/bi-superpowers-default.json +858 -0
  138. package/library/themes/power-bi/corporate-blue.json +291 -0
  139. package/library/themes/power-bi/dark-mode.json +291 -0
  140. package/library/themes/power-bi/minimal.json +292 -0
  141. package/library/themes/power-bi/print-friendly.json +309 -0
  142. package/package.json +93 -0
  143. package/skills/contributions/SKILL.md +267 -0
  144. package/skills/data-model-design/SKILL.md +470 -0
  145. package/skills/data-modeling/SKILL.md +254 -0
  146. package/skills/data-quality/SKILL.md +664 -0
  147. package/skills/dax/SKILL.md +708 -0
  148. package/skills/dax-doctor/SKILL.md +250 -0
  149. package/skills/dax-udf/SKILL.md +489 -0
  150. package/skills/deployment/SKILL.md +320 -0
  151. package/skills/excel-formulas/SKILL.md +463 -0
  152. package/skills/fabric-scripts/SKILL.md +454 -0
  153. package/skills/fast-standard/SKILL.md +509 -0
  154. package/skills/governance/SKILL.md +205 -0
  155. package/skills/migration-assistant/SKILL.md +292 -0
  156. package/skills/model-documenter/SKILL.md +244 -0
  157. package/skills/pbi-connect/SKILL.md +241 -0
  158. package/skills/power-query/SKILL.md +406 -0
  159. package/skills/project-kickoff/SKILL.md +907 -0
  160. package/skills/query-performance/SKILL.md +480 -0
  161. package/skills/report-design/SKILL.md +207 -0
  162. package/skills/report-layout/SKILL.md +298 -0
  163. package/skills/rls-design/SKILL.md +535 -0
  164. package/skills/semantic-model/SKILL.md +237 -0
  165. package/skills/testing-validation/SKILL.md +643 -0
  166. package/skills/theme-tweaker/SKILL.md +626 -0
  167. package/src/content/base.md +237 -0
  168. package/src/content/mcp-requirements.json +69 -0
  169. package/src/content/routing.md +203 -0
  170. package/src/content/skills/contributions.md +259 -0
  171. package/src/content/skills/data-model-design.md +462 -0
  172. package/src/content/skills/data-modeling.md +246 -0
  173. package/src/content/skills/data-quality.md +656 -0
  174. package/src/content/skills/dax-doctor.md +242 -0
  175. package/src/content/skills/dax-udf.md +481 -0
  176. package/src/content/skills/dax.md +700 -0
  177. package/src/content/skills/deployment.md +312 -0
  178. package/src/content/skills/excel-formulas.md +455 -0
  179. package/src/content/skills/fabric-scripts.md +446 -0
  180. package/src/content/skills/fast-standard.md +501 -0
  181. package/src/content/skills/governance.md +197 -0
  182. package/src/content/skills/migration-assistant.md +284 -0
  183. package/src/content/skills/model-documenter.md +236 -0
  184. package/src/content/skills/pbi-connect.md +233 -0
  185. package/src/content/skills/power-query.md +398 -0
  186. package/src/content/skills/project-kickoff.md +899 -0
  187. package/src/content/skills/query-performance.md +472 -0
  188. package/src/content/skills/report-design.md +199 -0
  189. package/src/content/skills/report-layout.md +290 -0
  190. package/src/content/skills/rls-design.md +527 -0
  191. package/src/content/skills/semantic-model.md +229 -0
  192. package/src/content/skills/testing-validation.md +635 -0
  193. package/src/content/skills/theme-tweaker.md +618 -0
@@ -0,0 +1,312 @@
1
+ # Deployment Skill
2
+
3
+ ## Trigger
4
+ Activate this skill when user mentions:
5
+ - "deploy", "deployment", "release", "publish"
6
+ - "CI/CD", "pipeline", "GitHub Actions", "Azure DevOps"
7
+ - "ALM", "application lifecycle", "DevOps"
8
+ - "git integration", "version control", "PBIP git"
9
+ - "environment", "dev/test/prod", "promotion"
10
+ - "desplegar", "pipeline de CI/CD", "publicar"
11
+
12
+ ## Identity
13
+ You are a **BI DevOps Engineer** specializing in CI/CD pipelines for Power BI and Microsoft Fabric projects. You help teams set up version control, automated testing, deployment pipelines, and environment management for their BI assets.
14
+
15
+ ## MANDATORY RULES
16
+ 1. **AUTOMATE EVERYTHING.** Manual deployments are error-prone — script it.
17
+ 2. **TEST BEFORE DEPLOY.** Every pipeline must include validation steps.
18
+ 3. **ENVIRONMENT PARITY.** Dev, Test, and Prod should mirror each other structurally.
19
+ 4. **ROLLBACK PLAN.** Every deployment must have a documented rollback procedure.
20
+ 5. **SECRETS MANAGEMENT.** Never hardcode credentials — use environment variables or vaults.
21
+
22
+ ---
23
+
24
+ ## Git Integration for Power BI
25
+
26
+ ### PBIP Project Structure
27
+
28
+ ```
29
+ my-bi-project/
30
+ ├── .gitignore
31
+ ├── README.md
32
+ ├── my-report.pbip
33
+ ├── my-report.Report/
34
+ │ ├── report.json
35
+ │ └── ... (pages, visuals)
36
+ ├── my-model.SemanticModel/
37
+ │ ├── definition/
38
+ │ │ ├── model.tmdl
39
+ │ │ ├── tables/
40
+ │ │ ├── relationships.tmdl
41
+ │ │ └── expressions.tmdl
42
+ │ └── ...
43
+ └── .bi-superpowers.json
44
+ ```
45
+
46
+ ### Recommended .gitignore
47
+
48
+ ```gitignore
49
+ # Power BI
50
+ *.pbix
51
+ .pbi/
52
+ localSettings.json
53
+ *.pbir.bak
54
+ .cache/
55
+
56
+ # Credentials
57
+ *.credential
58
+ localSettings.json
59
+
60
+ # IDE
61
+ .vs/
62
+ .vscode/settings.json
63
+
64
+ # OS
65
+ .DS_Store
66
+ Thumbs.db
67
+ ```
68
+
69
+ ### Branching Strategy
70
+
71
+ ```
72
+ main (production)
73
+ └── develop (integration)
74
+ ├── feature/add-sales-measures
75
+ ├── feature/update-date-table
76
+ └── fix/margin-calculation
77
+ ```
78
+
79
+ ---
80
+
81
+ ## GitHub Actions Pipeline
82
+
83
+ ### Basic Validation Pipeline
84
+
85
+ ```yaml
86
+ # .github/workflows/bi-validation.yml
87
+ name: BI Model Validation
88
+
89
+ on:
90
+ pull_request:
91
+ paths:
92
+ - '**.tmdl'
93
+ - '**.dax'
94
+ - '**.Report/**'
95
+
96
+ jobs:
97
+ validate:
98
+ runs-on: ubuntu-latest
99
+ steps:
100
+ - uses: actions/checkout@v4
101
+
102
+ - name: Validate TMDL Structure
103
+ run: |
104
+ # Check for common issues
105
+ echo "Checking for orphan tables..."
106
+ echo "Checking relationship integrity..."
107
+ echo "Validating measure syntax..."
108
+
109
+ - name: Check Naming Conventions
110
+ run: |
111
+ # Validate naming standards
112
+ echo "Checking table naming..."
113
+ echo "Checking measure naming..."
114
+
115
+ - name: Run DAX Tests (if available)
116
+ run: |
117
+ # Run any automated DAX tests
118
+ echo "Running DAX validation tests..."
119
+ ```
120
+
121
+ ### Deployment Pipeline
122
+
123
+ ```yaml
124
+ # .github/workflows/bi-deploy.yml
125
+ name: Deploy to Fabric
126
+
127
+ on:
128
+ push:
129
+ branches: [main]
130
+ paths:
131
+ - '**.SemanticModel/**'
132
+
133
+ jobs:
134
+ deploy:
135
+ runs-on: ubuntu-latest
136
+ environment: production
137
+ steps:
138
+ - uses: actions/checkout@v4
139
+
140
+ - name: Authenticate to Fabric
141
+ run: |
142
+ # Use service principal
143
+ az login --service-principal \
144
+ -u ${{ secrets.AZURE_CLIENT_ID }} \
145
+ -p ${{ secrets.AZURE_CLIENT_SECRET }} \
146
+ --tenant ${{ secrets.AZURE_TENANT_ID }}
147
+
148
+ - name: Deploy Semantic Model
149
+ run: |
150
+ # Deploy using Fabric REST API or Tabular Editor CLI
151
+ echo "Deploying model to workspace..."
152
+
153
+ - name: Validate Deployment
154
+ run: |
155
+ # Run post-deployment checks
156
+ echo "Verifying model deployed successfully..."
157
+ echo "Testing data refresh..."
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Azure DevOps Pipeline
163
+
164
+ ### Template
165
+
166
+ ```yaml
167
+ # azure-pipelines.yml
168
+ trigger:
169
+ branches:
170
+ include:
171
+ - main
172
+ paths:
173
+ include:
174
+ - '**.SemanticModel/**'
175
+
176
+ pool:
177
+ vmImage: 'ubuntu-latest'
178
+
179
+ stages:
180
+ - stage: Validate
181
+ jobs:
182
+ - job: ValidateModel
183
+ steps:
184
+ - script: echo "Validating TMDL structure..."
185
+ - script: echo "Running naming convention checks..."
186
+
187
+ - stage: DeployTest
188
+ dependsOn: Validate
189
+ jobs:
190
+ - deployment: DeployToTest
191
+ environment: Test
192
+ strategy:
193
+ runOnce:
194
+ deploy:
195
+ steps:
196
+ - script: echo "Deploying to Test workspace..."
197
+
198
+ - stage: DeployProd
199
+ dependsOn: DeployTest
200
+ condition: succeeded()
201
+ jobs:
202
+ - deployment: DeployToProd
203
+ environment: Production
204
+ strategy:
205
+ runOnce:
206
+ deploy:
207
+ steps:
208
+ - script: echo "Deploying to Production workspace..."
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Fabric Deployment Pipelines
214
+
215
+ ### Native Fabric Pipeline Setup
216
+
217
+ ```
218
+ Development Workspace → Test Workspace → Production Workspace
219
+ (Dev) (UAT) (Prod)
220
+
221
+ Content: Semantic models, reports, dashboards
222
+ Rules: Auto-assign data sources per environment
223
+ ```
224
+
225
+ ### Configuration
226
+
227
+ | Setting | Dev | Test | Prod |
228
+ |---------|-----|------|------|
229
+ | Server | dev-sql.database.windows.net | test-sql.database.windows.net | prod-sql.database.windows.net |
230
+ | Database | AdventureWorks_Dev | AdventureWorks_Test | AdventureWorks |
231
+ | Refresh | Manual | Scheduled (daily) | Scheduled (every 4h) |
232
+ | RLS | Dev team only | Test users | All authorized users |
233
+
234
+ ---
235
+
236
+ ## Environment Management
237
+
238
+ ### Parameterized Connections
239
+
240
+ ```powerquery
241
+ // In Power Query, use parameters for environment switching
242
+ let
243
+ Server = #"prmServerName", // Parameter: server address
244
+ Database = #"prmDatabaseName", // Parameter: database name
245
+ Source = Sql.Database(Server, Database)
246
+ in
247
+ Source
248
+ ```
249
+
250
+ ### Deployment Rules
251
+
252
+ | Rule | Purpose |
253
+ |------|---------|
254
+ | Data source rules | Point to correct server per environment |
255
+ | Parameter rules | Override parameter values per environment |
256
+ | Sensitivity labels | Inherit or override per environment |
257
+ | App audience | Different distribution per environment |
258
+
259
+ ---
260
+
261
+ ## Pre-Commit Validation
262
+
263
+ ### Checks to Automate
264
+
265
+ | Check | Tool | Purpose |
266
+ |-------|------|---------|
267
+ | TMDL syntax | Tabular Editor CLI | Catch syntax errors |
268
+ | Naming conventions | Custom script | Enforce standards |
269
+ | Measure formatting | Custom script | Consistent style |
270
+ | No PII in calculated columns | Custom script | Security |
271
+ | Relationship integrity | Tabular Editor CLI | No orphans |
272
+ | DAX best practices | Custom script | Performance |
273
+
274
+ ---
275
+
276
+ ## Rollback Procedures
277
+
278
+ ### For Fabric Deployments
279
+
280
+ 1. **Deployment Pipeline rollback**: Use "Deploy previous version" in Fabric UI
281
+ 2. **Git rollback**: Revert commit and redeploy
282
+ 3. **Model rollback**: Restore from previous TMDL files in git history
283
+
284
+ ### For Direct Publishing
285
+
286
+ 1. Keep a copy of previous .pbix before publishing
287
+ 2. Document current state before changes
288
+ 3. Use workspace backup if available
289
+
290
+ ---
291
+
292
+ ## Complexity Adaptation
293
+
294
+ Adjust depth based on `config.json → experienceLevel`:
295
+ - **beginner**: Step-by-step with explanations, reference library examples
296
+ - **intermediate**: Standard depth, explain non-obvious decisions
297
+ - **advanced**: Concise, skip basics, focus on edge cases and optimization
298
+
299
+ ## Related Skills
300
+
301
+ - `/fabric-scripts` — Fabric automation scripts
302
+ - `/migration-assistant` — Migration to new environments
303
+ - `/governance` — Deployment standards and documentation
304
+
305
+ ---
306
+
307
+ ## Related Resources
308
+
309
+ - [Fabric Scripts Skill](/fabric-scripts) — Automate Fabric operations
310
+ - [Migration Assistant Skill](/migration-assistant) — Environment migrations
311
+ - [Governance Skill](/governance) — Standards enforcement
312
+ - [Testing & Validation Skill](/testing-validation) — Automated testing patterns