@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,320 @@
1
+ ---
2
+ name: "deployment"
3
+ description: "Use when the user asks about Deployment Skill, especially phrases like \"deploy\", \"CI/CD\", \"ALM\", \"git integration\", \"environment\", \"desplegar\"."
4
+ version: "1.0.0"
5
+ ---
6
+
7
+ <!-- Generated by BI Agent Superpowers. Edit src/content/skills/deployment.md instead. -->
8
+
9
+ # Deployment Skill
10
+
11
+ ## Trigger
12
+ Activate this skill when user mentions:
13
+ - "deploy", "deployment", "release", "publish"
14
+ - "CI/CD", "pipeline", "GitHub Actions", "Azure DevOps"
15
+ - "ALM", "application lifecycle", "DevOps"
16
+ - "git integration", "version control", "PBIP git"
17
+ - "environment", "dev/test/prod", "promotion"
18
+ - "desplegar", "pipeline de CI/CD", "publicar"
19
+
20
+ ## Identity
21
+ 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.
22
+
23
+ ## MANDATORY RULES
24
+ 1. **AUTOMATE EVERYTHING.** Manual deployments are error-prone — script it.
25
+ 2. **TEST BEFORE DEPLOY.** Every pipeline must include validation steps.
26
+ 3. **ENVIRONMENT PARITY.** Dev, Test, and Prod should mirror each other structurally.
27
+ 4. **ROLLBACK PLAN.** Every deployment must have a documented rollback procedure.
28
+ 5. **SECRETS MANAGEMENT.** Never hardcode credentials — use environment variables or vaults.
29
+
30
+ ---
31
+
32
+ ## Git Integration for Power BI
33
+
34
+ ### PBIP Project Structure
35
+
36
+ ```
37
+ my-bi-project/
38
+ ├── .gitignore
39
+ ├── README.md
40
+ ├── my-report.pbip
41
+ ├── my-report.Report/
42
+ │ ├── report.json
43
+ │ └── ... (pages, visuals)
44
+ ├── my-model.SemanticModel/
45
+ │ ├── definition/
46
+ │ │ ├── model.tmdl
47
+ │ │ ├── tables/
48
+ │ │ ├── relationships.tmdl
49
+ │ │ └── expressions.tmdl
50
+ │ └── ...
51
+ └── .bi-superpowers.json
52
+ ```
53
+
54
+ ### Recommended .gitignore
55
+
56
+ ```gitignore
57
+ # Power BI
58
+ *.pbix
59
+ .pbi/
60
+ localSettings.json
61
+ *.pbir.bak
62
+ .cache/
63
+
64
+ # Credentials
65
+ *.credential
66
+ localSettings.json
67
+
68
+ # IDE
69
+ .vs/
70
+ .vscode/settings.json
71
+
72
+ # OS
73
+ .DS_Store
74
+ Thumbs.db
75
+ ```
76
+
77
+ ### Branching Strategy
78
+
79
+ ```
80
+ main (production)
81
+ └── develop (integration)
82
+ ├── feature/add-sales-measures
83
+ ├── feature/update-date-table
84
+ └── fix/margin-calculation
85
+ ```
86
+
87
+ ---
88
+
89
+ ## GitHub Actions Pipeline
90
+
91
+ ### Basic Validation Pipeline
92
+
93
+ ```yaml
94
+ # .github/workflows/bi-validation.yml
95
+ name: BI Model Validation
96
+
97
+ on:
98
+ pull_request:
99
+ paths:
100
+ - '**.tmdl'
101
+ - '**.dax'
102
+ - '**.Report/**'
103
+
104
+ jobs:
105
+ validate:
106
+ runs-on: ubuntu-latest
107
+ steps:
108
+ - uses: actions/checkout@v4
109
+
110
+ - name: Validate TMDL Structure
111
+ run: |
112
+ # Check for common issues
113
+ echo "Checking for orphan tables..."
114
+ echo "Checking relationship integrity..."
115
+ echo "Validating measure syntax..."
116
+
117
+ - name: Check Naming Conventions
118
+ run: |
119
+ # Validate naming standards
120
+ echo "Checking table naming..."
121
+ echo "Checking measure naming..."
122
+
123
+ - name: Run DAX Tests (if available)
124
+ run: |
125
+ # Run any automated DAX tests
126
+ echo "Running DAX validation tests..."
127
+ ```
128
+
129
+ ### Deployment Pipeline
130
+
131
+ ```yaml
132
+ # .github/workflows/bi-deploy.yml
133
+ name: Deploy to Fabric
134
+
135
+ on:
136
+ push:
137
+ branches: [main]
138
+ paths:
139
+ - '**.SemanticModel/**'
140
+
141
+ jobs:
142
+ deploy:
143
+ runs-on: ubuntu-latest
144
+ environment: production
145
+ steps:
146
+ - uses: actions/checkout@v4
147
+
148
+ - name: Authenticate to Fabric
149
+ run: |
150
+ # Use service principal
151
+ az login --service-principal \
152
+ -u ${{ secrets.AZURE_CLIENT_ID }} \
153
+ -p ${{ secrets.AZURE_CLIENT_SECRET }} \
154
+ --tenant ${{ secrets.AZURE_TENANT_ID }}
155
+
156
+ - name: Deploy Semantic Model
157
+ run: |
158
+ # Deploy using Fabric REST API or Tabular Editor CLI
159
+ echo "Deploying model to workspace..."
160
+
161
+ - name: Validate Deployment
162
+ run: |
163
+ # Run post-deployment checks
164
+ echo "Verifying model deployed successfully..."
165
+ echo "Testing data refresh..."
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Azure DevOps Pipeline
171
+
172
+ ### Template
173
+
174
+ ```yaml
175
+ # azure-pipelines.yml
176
+ trigger:
177
+ branches:
178
+ include:
179
+ - main
180
+ paths:
181
+ include:
182
+ - '**.SemanticModel/**'
183
+
184
+ pool:
185
+ vmImage: 'ubuntu-latest'
186
+
187
+ stages:
188
+ - stage: Validate
189
+ jobs:
190
+ - job: ValidateModel
191
+ steps:
192
+ - script: echo "Validating TMDL structure..."
193
+ - script: echo "Running naming convention checks..."
194
+
195
+ - stage: DeployTest
196
+ dependsOn: Validate
197
+ jobs:
198
+ - deployment: DeployToTest
199
+ environment: Test
200
+ strategy:
201
+ runOnce:
202
+ deploy:
203
+ steps:
204
+ - script: echo "Deploying to Test workspace..."
205
+
206
+ - stage: DeployProd
207
+ dependsOn: DeployTest
208
+ condition: succeeded()
209
+ jobs:
210
+ - deployment: DeployToProd
211
+ environment: Production
212
+ strategy:
213
+ runOnce:
214
+ deploy:
215
+ steps:
216
+ - script: echo "Deploying to Production workspace..."
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Fabric Deployment Pipelines
222
+
223
+ ### Native Fabric Pipeline Setup
224
+
225
+ ```
226
+ Development Workspace → Test Workspace → Production Workspace
227
+ (Dev) (UAT) (Prod)
228
+
229
+ Content: Semantic models, reports, dashboards
230
+ Rules: Auto-assign data sources per environment
231
+ ```
232
+
233
+ ### Configuration
234
+
235
+ | Setting | Dev | Test | Prod |
236
+ |---------|-----|------|------|
237
+ | Server | dev-sql.database.windows.net | test-sql.database.windows.net | prod-sql.database.windows.net |
238
+ | Database | AdventureWorks_Dev | AdventureWorks_Test | AdventureWorks |
239
+ | Refresh | Manual | Scheduled (daily) | Scheduled (every 4h) |
240
+ | RLS | Dev team only | Test users | All authorized users |
241
+
242
+ ---
243
+
244
+ ## Environment Management
245
+
246
+ ### Parameterized Connections
247
+
248
+ ```powerquery
249
+ // In Power Query, use parameters for environment switching
250
+ let
251
+ Server = #"prmServerName", // Parameter: server address
252
+ Database = #"prmDatabaseName", // Parameter: database name
253
+ Source = Sql.Database(Server, Database)
254
+ in
255
+ Source
256
+ ```
257
+
258
+ ### Deployment Rules
259
+
260
+ | Rule | Purpose |
261
+ |------|---------|
262
+ | Data source rules | Point to correct server per environment |
263
+ | Parameter rules | Override parameter values per environment |
264
+ | Sensitivity labels | Inherit or override per environment |
265
+ | App audience | Different distribution per environment |
266
+
267
+ ---
268
+
269
+ ## Pre-Commit Validation
270
+
271
+ ### Checks to Automate
272
+
273
+ | Check | Tool | Purpose |
274
+ |-------|------|---------|
275
+ | TMDL syntax | Tabular Editor CLI | Catch syntax errors |
276
+ | Naming conventions | Custom script | Enforce standards |
277
+ | Measure formatting | Custom script | Consistent style |
278
+ | No PII in calculated columns | Custom script | Security |
279
+ | Relationship integrity | Tabular Editor CLI | No orphans |
280
+ | DAX best practices | Custom script | Performance |
281
+
282
+ ---
283
+
284
+ ## Rollback Procedures
285
+
286
+ ### For Fabric Deployments
287
+
288
+ 1. **Deployment Pipeline rollback**: Use "Deploy previous version" in Fabric UI
289
+ 2. **Git rollback**: Revert commit and redeploy
290
+ 3. **Model rollback**: Restore from previous TMDL files in git history
291
+
292
+ ### For Direct Publishing
293
+
294
+ 1. Keep a copy of previous .pbix before publishing
295
+ 2. Document current state before changes
296
+ 3. Use workspace backup if available
297
+
298
+ ---
299
+
300
+ ## Complexity Adaptation
301
+
302
+ Adjust depth based on `config.json → experienceLevel`:
303
+ - **beginner**: Step-by-step with explanations, reference library examples
304
+ - **intermediate**: Standard depth, explain non-obvious decisions
305
+ - **advanced**: Concise, skip basics, focus on edge cases and optimization
306
+
307
+ ## Related Skills
308
+
309
+ - `/fabric-scripts` — Fabric automation scripts
310
+ - `/migration-assistant` — Migration to new environments
311
+ - `/governance` — Deployment standards and documentation
312
+
313
+ ---
314
+
315
+ ## Related Resources
316
+
317
+ - [Fabric Scripts Skill](/fabric-scripts) — Automate Fabric operations
318
+ - [Migration Assistant Skill](/migration-assistant) — Environment migrations
319
+ - [Governance Skill](/governance) — Standards enforcement
320
+ - [Testing & Validation Skill](/testing-validation) — Automated testing patterns