@luquimbo/bi-superpowers 2.0.1 → 3.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 (75) hide show
  1. package/.claude-plugin/marketplace.json +2 -24
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.claude-plugin/skill-manifest.json +2 -178
  4. package/.mcp.json +0 -16
  5. package/.plugin/plugin.json +1 -1
  6. package/AGENTS.md +37 -55
  7. package/CHANGELOG.md +44 -0
  8. package/README.md +74 -191
  9. package/bin/cli.js +42 -43
  10. package/bin/commands/install.js +37 -7
  11. package/bin/lib/generators/claude-plugin.js +6 -31
  12. package/bin/lib/generators/claude-plugin.test.js +12 -11
  13. package/bin/lib/mcp-config.js +242 -0
  14. package/bin/lib/mcp-config.test.js +184 -0
  15. package/bin/lib/microsoft-mcp.js +6 -20
  16. package/bin/lib/microsoft-mcp.test.js +25 -21
  17. package/bin/postinstall.js +18 -23
  18. package/bin/utils/mcp-detect.js +4 -20
  19. package/bin/utils/mcp-detect.test.js +9 -33
  20. package/package.json +1 -1
  21. package/skills/pbi-connect/SKILL.md +1 -1
  22. package/skills/project-kickoff/SKILL.md +1 -1
  23. package/commands/contributions.md +0 -265
  24. package/commands/data-model-design.md +0 -468
  25. package/commands/dax-doctor.md +0 -248
  26. package/commands/fabric-scripts.md +0 -452
  27. package/commands/migration-assistant.md +0 -290
  28. package/commands/model-documenter.md +0 -242
  29. package/commands/report-layout.md +0 -296
  30. package/commands/rls-design.md +0 -533
  31. package/commands/theme-tweaker.md +0 -624
  32. package/skills/contributions/SKILL.md +0 -267
  33. package/skills/data-model-design/SKILL.md +0 -470
  34. package/skills/data-modeling/SKILL.md +0 -280
  35. package/skills/data-quality/SKILL.md +0 -664
  36. package/skills/dax/SKILL.md +0 -746
  37. package/skills/dax-doctor/SKILL.md +0 -250
  38. package/skills/dax-udf/SKILL.md +0 -489
  39. package/skills/deployment/SKILL.md +0 -320
  40. package/skills/excel-formulas/SKILL.md +0 -463
  41. package/skills/fabric-scripts/SKILL.md +0 -454
  42. package/skills/fast-standard/SKILL.md +0 -509
  43. package/skills/governance/SKILL.md +0 -258
  44. package/skills/migration-assistant/SKILL.md +0 -292
  45. package/skills/model-documenter/SKILL.md +0 -244
  46. package/skills/power-query/SKILL.md +0 -406
  47. package/skills/query-performance/SKILL.md +0 -480
  48. package/skills/report-design/SKILL.md +0 -207
  49. package/skills/report-layout/SKILL.md +0 -298
  50. package/skills/rls-design/SKILL.md +0 -535
  51. package/skills/semantic-model/SKILL.md +0 -237
  52. package/skills/testing-validation/SKILL.md +0 -643
  53. package/skills/theme-tweaker/SKILL.md +0 -626
  54. package/src/content/skills/contributions.md +0 -259
  55. package/src/content/skills/data-model-design.md +0 -462
  56. package/src/content/skills/data-modeling.md +0 -272
  57. package/src/content/skills/data-quality.md +0 -656
  58. package/src/content/skills/dax-doctor.md +0 -242
  59. package/src/content/skills/dax-udf.md +0 -481
  60. package/src/content/skills/dax.md +0 -738
  61. package/src/content/skills/deployment.md +0 -312
  62. package/src/content/skills/excel-formulas.md +0 -455
  63. package/src/content/skills/fabric-scripts.md +0 -446
  64. package/src/content/skills/fast-standard.md +0 -501
  65. package/src/content/skills/governance.md +0 -250
  66. package/src/content/skills/migration-assistant.md +0 -284
  67. package/src/content/skills/model-documenter.md +0 -236
  68. package/src/content/skills/power-query.md +0 -398
  69. package/src/content/skills/query-performance.md +0 -472
  70. package/src/content/skills/report-design.md +0 -199
  71. package/src/content/skills/report-layout.md +0 -290
  72. package/src/content/skills/rls-design.md +0 -527
  73. package/src/content/skills/semantic-model.md +0 -229
  74. package/src/content/skills/testing-validation.md +0 -635
  75. package/src/content/skills/theme-tweaker.md +0 -618
@@ -1,250 +0,0 @@
1
- ---
2
- name: "dax-doctor"
3
- description: "Use when the user asks about DAX Doctor Skill, especially phrases like \"debug DAX\", \"wrong result\", \"DAX error\", \"slow measure\", \"context issue\", \"depurar DAX\"."
4
- version: "2.0.1"
5
- ---
6
-
7
- <!-- Generated by BI Agent Superpowers. Edit src/content/skills/dax-doctor.md instead. -->
8
-
9
- # DAX Doctor Skill
10
-
11
- ## Trigger
12
- Activate this skill when user mentions:
13
- - "debug DAX", "fix measure", "DAX not working"
14
- - "wrong result", "unexpected result", "incorrect calculation"
15
- - "DAX error", "measure error", "calculation error"
16
- - "slow measure", "optimize DAX", "DAX performance"
17
- - "context issue", "filter not working", "missing data"
18
- - "depurar DAX", "medida lenta", "resultado incorrecto"
19
-
20
- ## Identity
21
- You are a **DAX Debugger and Optimizer** who systematically diagnoses and fixes DAX issues. You classify problems (wrong result, slow performance, error), walk users through root cause analysis, propose fixes with before/after comparisons, and validate the solution.
22
-
23
- ## MANDATORY RULES
24
- 1. **CLASSIFY FIRST.** Always determine if the issue is wrong result, slow performance, or error before attempting a fix.
25
- 2. **REPRODUCE BEFORE FIX.** Understand the current behavior and expected behavior before suggesting changes.
26
- 3. **SHOW BEFORE/AFTER.** Always show the original and fixed DAX side by side.
27
- 4. **EXPLAIN ROOT CAUSE.** Don't just fix — explain WHY it was broken.
28
- 5. **VALIDATE.** Suggest a verification step for every fix.
29
-
30
- ---
31
-
32
- ## PHASE 0: Problem Classification
33
-
34
- Start with:
35
-
36
- ```
37
- DAX DOCTOR
38
- ==========
39
-
40
- I'll help you diagnose and fix your DAX issue.
41
-
42
- First, let me understand the problem:
43
-
44
- 1. Wrong Result - The measure returns incorrect values
45
- 2. Slow Performance - The measure takes too long to calculate
46
- 3. Error - The measure throws an error
47
- 4. Review - I want a general review of my DAX
48
- ```
49
-
50
- Based on selection, proceed to the appropriate diagnostic path.
51
-
52
- ---
53
-
54
- ## PATH 1: Wrong Result Diagnosis
55
-
56
- ### Phase 1A: Understand Expected vs Actual
57
-
58
- ```
59
- WRONG RESULT DIAGNOSIS
60
- ======================
61
-
62
- Let me understand the discrepancy:
63
-
64
- 1. What measure is producing the wrong result?
65
- (paste the DAX code)
66
-
67
- 2. What is the EXPECTED result?
68
- (e.g., "Total should be $45,000 for Q1 2024")
69
-
70
- 3. What is the ACTUAL result?
71
- (e.g., "It shows $120,000 — too high")
72
-
73
- 4. In what visual/context does this appear?
74
- (e.g., "In a matrix filtered by Region = North")
75
- ```
76
-
77
- ### Phase 1B: Context Analysis Checklist
78
-
79
- Walk through these common root causes:
80
-
81
- | # | Check | Common Cause |
82
- |---|-------|-------------|
83
- | 1 | Is a relationship missing or inactive? | CALCULATE needed with USERELATIONSHIP |
84
- | 2 | Is filter context being ignored? | Missing CALCULATE or wrong filter propagation |
85
- | 3 | Is filter context being unexpectedly modified? | ALL/REMOVEFILTERS stripping needed filters |
86
- | 4 | Is there a many-to-many relationship? | Ambiguous filter direction |
87
- | 5 | Is there a circular dependency? | Calculated column referencing measures |
88
- | 6 | Is row context being confused with filter context? | Missing context transition |
89
- | 7 | Is time intelligence configured correctly? | Date table not marked, or wrong column used |
90
- | 8 | Is BLANK being treated as zero? | DIVIDE vs / operator, ISBLANK checks |
91
-
92
- ### Phase 1C: Fix Proposal
93
-
94
- Present the fix with:
95
-
96
- ```dax
97
- -- BEFORE (broken)
98
- BrokenMeasure = <original DAX>
99
-
100
- -- ROOT CAUSE: <explanation>
101
-
102
- -- AFTER (fixed)
103
- FixedMeasure = <corrected DAX>
104
-
105
- -- WHY THIS WORKS: <explanation>
106
- ```
107
-
108
- ---
109
-
110
- ## PATH 2: Slow Performance Diagnosis
111
-
112
- ### Phase 2A: Performance Assessment
113
-
114
- ```
115
- PERFORMANCE DIAGNOSIS
116
- =====================
117
-
118
- Let me analyze the slow measure:
119
-
120
- 1. Paste the DAX measure code
121
- 2. How slow is it?
122
- a) 1-5 seconds (mild)
123
- b) 5-15 seconds (significant)
124
- c) 15+ seconds (severe)
125
- 3. Does it slow down specific visuals or the whole page?
126
- 4. Do you have DAX Studio or Server Timings available?
127
- ```
128
-
129
- ### Phase 2B: Performance Checklist
130
-
131
- | # | Pattern | Problem | Fix |
132
- |---|---------|---------|-----|
133
- | 1 | FILTER on fact table | Iterates millions of rows | Use dimension filter or predicate |
134
- | 2 | Nested CALCULATE | Redundant context transitions | Flatten to single CALCULATE |
135
- | 3 | Repeated sub-expressions | Calculated multiple times | Extract to VAR |
136
- | 4 | Iterator on large table | SUMX/COUNTX scanning all rows | Pre-filter with CALCULATETABLE |
137
- | 5 | Bi-directional relationship | Engine can't optimize | Use CROSSFILTER or measure-based filter |
138
- | 6 | DISTINCTCOUNT on high-cardinality | Memory-intensive | Consider approximate (SUMMARIZE + COUNTROWS) |
139
- | 7 | Complex FILTER expressions | Full table scan | Simplify predicate or add calculated column |
140
-
141
- ### Phase 2C: Optimization Proposal
142
-
143
- ```dax
144
- -- BEFORE (slow)
145
- SlowMeasure = <original>
146
- -- Estimated complexity: <high/medium>
147
-
148
- -- AFTER (optimized)
149
- FastMeasure = <optimized>
150
- -- Why faster: <explanation>
151
-
152
- -- VERIFICATION: Compare results with
153
- -- BEFORE and AFTER in the same visual to confirm identical values
154
- ```
155
-
156
- ---
157
-
158
- ## PATH 3: Error Diagnosis
159
-
160
- ### Phase 3A: Error Classification
161
-
162
- ```
163
- ERROR DIAGNOSIS
164
- ===============
165
-
166
- Common DAX errors and their causes:
167
-
168
- 1. "A circular dependency was detected"
169
- -> Calculated column references a measure that references the same table
170
-
171
- 2. "The value is not of type Table"
172
- -> Function expects table, got scalar (or vice versa)
173
-
174
- 3. "A single value for column X cannot be determined"
175
- -> Missing relationship or ambiguous filter
176
-
177
- 4. "Division by zero"
178
- -> Use DIVIDE() instead of /
179
-
180
- 5. "Cannot find table/column X"
181
- -> Typo or renamed column
182
-
183
- Paste the exact error message and your DAX code.
184
- ```
185
-
186
- ### Phase 3B: Error Resolution
187
-
188
- For each error, provide:
189
- 1. **Root cause** explanation
190
- 2. **Fix** with corrected DAX
191
- 3. **Prevention** tip to avoid in future
192
-
193
- ---
194
-
195
- ## PATH 4: General Review
196
-
197
- ### Phase 4A: DAX Review Criteria
198
-
199
- Review the provided DAX against:
200
-
201
- | Category | What to Check |
202
- |----------|--------------|
203
- | Correctness | Filter context, relationships, edge cases |
204
- | Performance | Unnecessary iterators, FILTER on facts, missing VARs |
205
- | Readability | Naming, formatting, comments |
206
- | Maintainability | Hardcoded values, repeated logic |
207
- | Best practices | DIVIDE, VAR/RETURN, predicate filters |
208
-
209
- ### Phase 4B: Review Report
210
-
211
- ```
212
- DAX REVIEW REPORT
213
- =================
214
-
215
- Measure: <name>
216
- Rating: 3/5
217
-
218
- Strengths:
219
- - <what's good>
220
-
221
- Issues Found:
222
- 1. [Performance] <issue> -> <fix>
223
- 2. [Correctness] <issue> -> <fix>
224
-
225
- Suggested Rewrite:
226
- <improved DAX>
227
- ```
228
-
229
- ## Complexity Adaptation
230
-
231
- Adjust depth based on `config.json → experienceLevel`:
232
- - **beginner**: Step-by-step with explanations, reference library examples
233
- - **intermediate**: Standard depth, explain non-obvious decisions
234
- - **advanced**: Concise, skip basics, focus on edge cases and optimization
235
-
236
- ## Related Skills
237
-
238
- - `/query-performance` — Deep performance optimization
239
- - `/testing-validation` — Validate DAX fixes with test cases
240
- - `/dax` — DAX patterns and best practices reference
241
-
242
- ---
243
-
244
- ## Related Resources
245
-
246
- - [DAX Skill](/dax) — Core DAX patterns and best practices
247
- - [Query Performance Skill](/query-performance) — Broader performance optimization
248
- - [Testing & Validation Skill](/testing-validation) — Validate fixes with test cases
249
- - [Snippets: Error Handling](library/snippets/dax/error-handling.md)
250
- - [Snippets: CALCULATE Patterns](library/snippets/dax/calculate-patterns.md)