@luquimbo/bi-superpowers 5.0.0 → 5.0.2

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 (196) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.claude-plugin/skill-manifest.json +23 -7
  4. package/.plugin/plugin.json +1 -1
  5. package/AGENTS.md +124 -26
  6. package/CHANGELOG.md +494 -16
  7. package/README.md +33 -117
  8. package/bin/cli.js +1 -1
  9. package/bin/commands/diff.js +2 -2
  10. package/bin/commands/install.js +58 -45
  11. package/bin/commands/lint.js +2 -2
  12. package/bin/commands/validate-projects.js +1 -1
  13. package/bin/lib/generators/claude-plugin.js +14 -5
  14. package/bin/lib/generators/shared.js +9 -5
  15. package/bin/lib/mcp-config.js +22 -2
  16. package/bin/lib/skills.js +8 -8
  17. package/bin/mcp/powerbi-modeling-launcher.js +8 -4
  18. package/bin/postinstall.js +14 -12
  19. package/bin/utils/mcp-detect.js +11 -11
  20. package/commands/bi-connect.md +34 -17
  21. package/commands/bi-dax.md +385 -0
  22. package/commands/bi-kickoff.md +75 -44
  23. package/commands/bi-modeling.md +395 -0
  24. package/commands/bi-performance.md +455 -0
  25. package/commands/bi-start.md +30 -18
  26. package/desktop-extension/manifest.json +2 -2
  27. package/package.json +6 -3
  28. package/skills/bi-connect/SKILL.md +34 -17
  29. package/skills/bi-connect/scripts/update-check.js +1 -1
  30. package/skills/bi-dax/SKILL.md +387 -0
  31. package/skills/{bi-report → bi-dax}/scripts/update-check.js +1 -1
  32. package/skills/bi-kickoff/SKILL.md +75 -44
  33. package/skills/bi-kickoff/scripts/update-check.js +1 -1
  34. package/skills/bi-modeling/SKILL.md +397 -0
  35. package/skills/bi-modeling/scripts/update-check.js +403 -0
  36. package/skills/bi-performance/SKILL.md +457 -0
  37. package/skills/bi-performance/scripts/install-tabular-editor.ps1 +90 -0
  38. package/skills/bi-performance/scripts/run-bpa.ps1 +161 -0
  39. package/skills/bi-performance/scripts/update-check.js +403 -0
  40. package/skills/bi-start/SKILL.md +31 -19
  41. package/skills/bi-start/scripts/update-check.js +1 -1
  42. package/src/content/base.md +13 -8
  43. package/src/content/routing.md +1 -5
  44. package/src/content/skills/bi-connect.md +32 -15
  45. package/src/content/skills/bi-dax.md +358 -0
  46. package/src/content/skills/bi-kickoff.md +73 -42
  47. package/src/content/skills/bi-modeling.md +368 -0
  48. package/src/content/skills/bi-performance/SKILL.md +428 -0
  49. package/src/content/skills/bi-performance/scripts/install-tabular-editor.ps1 +90 -0
  50. package/src/content/skills/bi-performance/scripts/run-bpa.ps1 +161 -0
  51. package/src/content/skills/bi-start.md +30 -18
  52. package/templates/sales/AGENTS.md +33 -0
  53. package/templates/sales/sales-template.Report/.platform +11 -0
  54. package/templates/sales/sales-template.Report/StaticResources/RegisteredResources/BISuperpowers.json +3888 -0
  55. package/templates/sales/sales-template.Report/StaticResources/SharedResources/BaseThemes/Fluent2-CY26SU03.json +4104 -0
  56. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/page.json +123 -0
  57. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/10420560e5b8c5235857/visual.json +16 -0
  58. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/2181c54a94f0c67abb2d/visual.json +283 -0
  59. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/24eba6a7af0b59974ef5/visual.json +703 -0
  60. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/26db24c91e5b615a5c29/mobile.json +11 -0
  61. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/26db24c91e5b615a5c29/visual.json +528 -0
  62. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/2ec652d0956901dd2afd/mobile.json +11 -0
  63. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/2ec652d0956901dd2afd/visual.json +324 -0
  64. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/45dda4e0b159becf2dcd/mobile.json +11 -0
  65. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/45dda4e0b159becf2dcd/visual.json +359 -0
  66. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/4ca8800cf1539ad423f2/visual.json +468 -0
  67. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/4f5704218eb88f7cdff6/mobile.json +29 -0
  68. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/4f5704218eb88f7cdff6/visual.json +241 -0
  69. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/54d3fdbedbbb863a9d7a/visual.json +575 -0
  70. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/68043403e96ca8ed23e8/visual.json +575 -0
  71. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/80b54a678ef36a250994/visual.json +351 -0
  72. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/814f624b6056dc4c8de5/mobile.json +11 -0
  73. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/814f624b6056dc4c8de5/visual.json +421 -0
  74. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/85e1cc13559f4e107ede/visual.json +681 -0
  75. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/8686961b837e855963fe/mobile.json +11 -0
  76. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/8686961b837e855963fe/visual.json +720 -0
  77. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/8d302c5b7e87e8cb57bb/visual.json +590 -0
  78. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/a02c5b30f2e757637d78/mobile.json +11 -0
  79. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/a02c5b30f2e757637d78/visual.json +102 -0
  80. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/a405d29e7744c770d445/visual.json +575 -0
  81. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/b0dc2036d3cf2baafb35/mobile.json +11 -0
  82. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/b0dc2036d3cf2baafb35/visual.json +333 -0
  83. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/cdd696baaf3b80b326f8/mobile.json +11 -0
  84. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/cdd696baaf3b80b326f8/visual.json +468 -0
  85. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/ff77ca1bafff5bfe5044/mobile.json +11 -0
  86. package/templates/sales/sales-template.Report/definition/pages/017e2c84c7dc89f26e57/visuals/ff77ca1bafff5bfe5044/visual.json +523 -0
  87. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/page.json +130 -0
  88. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/0352fd80d074693a65db/visual.json +681 -0
  89. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/1c5a14bf493697344b68/visual.json +351 -0
  90. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/mobile.json +11 -0
  91. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/visual.json +333 -0
  92. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/mobile.json +11 -0
  93. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/visual.json +102 -0
  94. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/mobile.json +11 -0
  95. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/visual.json +468 -0
  96. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/mobile.json +11 -0
  97. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/visual.json +359 -0
  98. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/749cb1388c7e0a88161c/visual.json +685 -0
  99. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/85090dcdf75ac2487d1e/visual.json +283 -0
  100. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/92cf92e3da10493adb78/visual.json +468 -0
  101. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a30bd0950630ed94e8a3/visual.json +590 -0
  102. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/mobile.json +11 -0
  103. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/visual.json +528 -0
  104. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a90aaa3e3117494f18f8/mobile.json +11 -0
  105. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a90aaa3e3117494f18f8/visual.json +523 -0
  106. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/mobile.json +11 -0
  107. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/visual.json +720 -0
  108. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/mobile.json +37 -0
  109. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/visual.json +1230 -0
  110. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/b06ef80aa78cabcef8a6/mobile.json +11 -0
  111. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/b06ef80aa78cabcef8a6/visual.json +324 -0
  112. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/d97979633a91e041107e/mobile.json +11 -0
  113. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/d97979633a91e041107e/visual.json +421 -0
  114. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/mobile.json +29 -0
  115. package/templates/sales/sales-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/visual.json +241 -0
  116. package/templates/sales/sales-template.Report/definition/pages/pages.json +8 -0
  117. package/templates/sales/sales-template.Report/definition/report.json +89 -0
  118. package/templates/sales/sales-template.Report/definition/version.json +4 -0
  119. package/templates/sales/sales-template.Report/definition.pbir +9 -0
  120. package/templates/sales/sales-template.SemanticModel/.pbi/editorSettings.json +8 -0
  121. package/templates/sales/sales-template.SemanticModel/.platform +11 -0
  122. package/templates/sales/sales-template.SemanticModel/DAXQueries/.pbi/daxQueries.json +9 -0
  123. package/templates/sales/sales-template.SemanticModel/DAXQueries/Calendar445MonthNr.dax +0 -0
  124. package/templates/sales/sales-template.SemanticModel/DAXQueries/Consulta 1.dax +6 -0
  125. package/templates/sales/sales-template.SemanticModel/DAXQueries/Consulta 2.dax +32 -0
  126. package/templates/sales/sales-template.SemanticModel/definition/cultures/es-AR.tmdl +7324 -0
  127. package/templates/sales/sales-template.SemanticModel/definition/database.tmdl +3 -0
  128. package/templates/sales/sales-template.SemanticModel/definition/expressions.tmdl +233 -0
  129. package/templates/sales/sales-template.SemanticModel/definition/functions.tmdl +247 -0
  130. package/templates/sales/sales-template.SemanticModel/definition/model.tmdl +46 -0
  131. package/templates/sales/sales-template.SemanticModel/definition/relationships.tmdl +16 -0
  132. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Comparaciones.tmdl +194 -0
  133. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Dimensiones ventas.tmdl +71 -0
  134. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Ejes temporales.tmdl +67 -0
  135. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Per/303/255odos.tmdl" +318 -0
  136. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Vista de calendario.tmdl +36 -0
  137. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Vista del valor.tmdl +87 -0
  138. package/templates/sales/sales-template.SemanticModel/definition/tables/Aux Vista temporal.tmdl +62 -0
  139. package/templates/sales/sales-template.SemanticModel/definition/tables/Calendario.tmdl +198 -0
  140. package/templates/sales/sales-template.SemanticModel/definition/tables/Canales.tmdl +59 -0
  141. package/templates/sales/sales-template.SemanticModel/definition/tables/Clientes.tmdl +120 -0
  142. package/templates/sales/sales-template.SemanticModel/definition/tables/Modelo Configuraci/303/263n.tmdl" +48 -0
  143. package/templates/sales/sales-template.SemanticModel/definition/tables/Monedas.tmdl +43 -0
  144. package/templates/sales/sales-template.SemanticModel/definition/tables/M/303/251tricas.tmdl +553 -0
  145. package/templates/sales/sales-template.SemanticModel/definition/tables/Productos.tmdl +73 -0
  146. package/templates/sales/sales-template.SemanticModel/definition/tables/Tipo de cambio.tmdl +66 -0
  147. package/templates/sales/sales-template.SemanticModel/definition/tables/Ventas.tmdl +133 -0
  148. package/templates/sales/sales-template.SemanticModel/definition.pbism +5 -0
  149. package/templates/sales/sales-template.SemanticModel/diagramLayout.json +239 -0
  150. package/templates/sales/sales-template.pbip +14 -0
  151. package/theme/BISuperpowers.json +3888 -0
  152. package/commands/bi-report.md +0 -403
  153. package/skills/bi-report/SKILL.md +0 -405
  154. package/skills/bi-report/references/cli-commands.md +0 -184
  155. package/skills/bi-report/references/cli-setup.md +0 -101
  156. package/skills/bi-report/references/close-write-open-pattern.md +0 -80
  157. package/skills/bi-report/references/layouts/finance.md +0 -65
  158. package/skills/bi-report/references/layouts/generic.md +0 -46
  159. package/skills/bi-report/references/layouts/hr.md +0 -48
  160. package/skills/bi-report/references/layouts/marketing.md +0 -45
  161. package/skills/bi-report/references/layouts/operations.md +0 -44
  162. package/skills/bi-report/references/layouts/sales.md +0 -50
  163. package/skills/bi-report/references/native-visuals.md +0 -341
  164. package/skills/bi-report/references/pbi-desktop-installation.md +0 -87
  165. package/skills/bi-report/references/pbir-preview-activation.md +0 -40
  166. package/skills/bi-report/references/slicer.md +0 -89
  167. package/skills/bi-report/references/textbox.md +0 -101
  168. package/skills/bi-report/references/themes/BISuperpowers.json +0 -915
  169. package/skills/bi-report/references/troubleshooting.md +0 -135
  170. package/skills/bi-report/references/visual-types.md +0 -78
  171. package/skills/bi-report/scripts/apply-theme.js +0 -243
  172. package/skills/bi-report/scripts/create-visual.js +0 -942
  173. package/skills/bi-report/scripts/ensure-pbi-cli.sh +0 -41
  174. package/skills/bi-report/scripts/validate-pbir.js +0 -351
  175. package/src/content/skills/bi-report/SKILL.md +0 -376
  176. package/src/content/skills/bi-report/references/cli-commands.md +0 -184
  177. package/src/content/skills/bi-report/references/cli-setup.md +0 -101
  178. package/src/content/skills/bi-report/references/close-write-open-pattern.md +0 -80
  179. package/src/content/skills/bi-report/references/layouts/finance.md +0 -65
  180. package/src/content/skills/bi-report/references/layouts/generic.md +0 -46
  181. package/src/content/skills/bi-report/references/layouts/hr.md +0 -48
  182. package/src/content/skills/bi-report/references/layouts/marketing.md +0 -45
  183. package/src/content/skills/bi-report/references/layouts/operations.md +0 -44
  184. package/src/content/skills/bi-report/references/layouts/sales.md +0 -50
  185. package/src/content/skills/bi-report/references/native-visuals.md +0 -341
  186. package/src/content/skills/bi-report/references/pbi-desktop-installation.md +0 -87
  187. package/src/content/skills/bi-report/references/pbir-preview-activation.md +0 -40
  188. package/src/content/skills/bi-report/references/slicer.md +0 -89
  189. package/src/content/skills/bi-report/references/textbox.md +0 -101
  190. package/src/content/skills/bi-report/references/themes/BISuperpowers.json +0 -915
  191. package/src/content/skills/bi-report/references/troubleshooting.md +0 -135
  192. package/src/content/skills/bi-report/references/visual-types.md +0 -78
  193. package/src/content/skills/bi-report/scripts/apply-theme.js +0 -243
  194. package/src/content/skills/bi-report/scripts/create-visual.js +0 -942
  195. package/src/content/skills/bi-report/scripts/ensure-pbi-cli.sh +0 -41
  196. package/src/content/skills/bi-report/scripts/validate-pbir.js +0 -351
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "bi-start"
3
3
  description: "Use when the user asks about BI Start Skill, especially phrases like \"bi-start\", \"bi start\", \"/bi-start\", \"empezar\", \"comenzar\", \"arranco\"."
4
- version: "5.0.0"
4
+ version: "5.0.2"
5
5
  ---
6
6
 
7
7
  <!-- Generated by BI Agent Superpowers. Edit src/content/skills/bi-start.md instead. -->
@@ -22,18 +22,24 @@ Also activate:
22
22
  - When the user seems lost about which skill to invoke (e.g. says "no sé qué usar").
23
23
 
24
24
  ## Identity
25
- You are **BI Session Orchestrator**. Your job is to welcome the user at the start of a chat session, show them the available skills, check for updates, and — if Power BI Desktop is involved — offer to connect right away. You are **not** a project analyst (that's `/bi-kickoff`), **not** a connection specialist (that's `/bi-connect`), and **not** a report author (that's `/bi-report`). You are the front desk.
25
+ You are **BI Session Orchestrator**. Your job is to welcome the user at the start of a chat session, show them the available skills, check for updates, and — if Power BI Desktop is involved — offer to connect right away. You are **not** a project analyst (that's `/bi-kickoff`) and **not** a connection specialist (that's `/bi-connect`). You are the front desk.
26
26
 
27
27
  You are the session-opener, **not** the project-opener. If the user's intent is clearly "I'm creating a brand-new BI project from scratch", delegate to `/bi-kickoff`. Otherwise, this skill is the right home for general-purpose entry, discovery, environment checks, and pointing the user at the right specialist.
28
28
 
29
29
  ## MANDATORY RULES
30
30
 
31
31
  1. **ONE QUESTION AT A TIME.** Only ask when you need a decision from the user (update yes/no, connect yes/no). Never stack multiple questions.
32
- 2. **INFORMATIVE MENU — DON'T FORCE A CHOICE.** You are already inside `/bi-start`. Show the **3 specialist skills** as a table with 1-line descriptions. The user decides organically either by invoking `/<skill>` or by describing what they want. Do NOT say "pick 1, 2, or 3" — that's quiz-style and annoying for returning users.
32
+ 2. **INFORMATIVE MENU — DON'T FORCE A CHOICE.** You are already inside `/bi-start`. Show the **5 BI specialist skills** as a table with 1-line descriptions. The user decides organically either by invoking `/<skill>` or by describing what they want. Do NOT say "pick 1 or 2" — that's quiz-style and annoying for returning users.
33
33
  3. **PROACTIVE ON UPDATE + CONNECT.** When you detect (a) an available update or (b) Power BI Desktop running without a configured MCP, **ask once** and then dispatch the action yourself. Don't force the user to remember the exact command.
34
34
  4. **SAFE DEFAULTS ON SAY-NOTHING.** If the user greets you and then goes silent, show the menu and stop. Don't auto-dispatch anything without an explicit "sí" / "yes".
35
- 5. **OS-AWARE, NOT OS-GATING.** Works on any OS. Mark Windows-only skills clearly. On macOS/Linux, `/bi-kickoff` still has partial value (writes `AGENTS.md` and stops); mention that honestly instead of refusing.
35
+ 5. **WINDOWS DESKTOP ONLY FOR CURRENT BI WORKFLOWS.** The current BI specialist skills require Windows + Power BI Desktop. On macOS/Linux, do not offer partial local Desktop workflows; explain the limitation and mention that future cloud/Fabric skills may work cross-platform when they do not depend on Desktop.
36
36
  6. **DELEGATE CLEANLY.** When dispatching to another skill, say "dispatching /X" so the user sees the hand-off, then stop being the orchestrator for this turn. If they come back with "estoy en X, ahora qué", you can re-orient.
37
+ 7. **TEACHER POSTURE BY DEFAULT.** Even in routing, frame the plugin as a learning companion: the specialist skills teach DAX and modeling while they build, calibrated to the user's level.
38
+
39
+ 8. **PLUGIN-WIDE INVARIANTS TO SURFACE WHEN ROUTING:**
40
+ - **PBIP files are read-only.** Every specialist skill enforces this. The single allowed report-side mutation is the plugin-owned field-swap/rebind command for existing template visuals. Agents never patch PBIR JSON by hand.
41
+ - **Template is the reference.** All specialist skills replicate the BISuperpowers smoke-test template's current patterns (Auto Date/Time off, marked Date Table, `Métricas` table, one-level measure display folders, Sallieri period comparison, parameterizable currency, field parameters, calculation groups, IBCS theme) by default — in new projects and existing ones.
42
+ If a user asks you (the orchestrator) to "just edit the .tmdl" or "I'll skip the Aux tables", remind them once and route to the specialist anyway. The specialists won't comply, and that's by design.
37
43
 
38
44
  ---
39
45
 
@@ -75,8 +81,8 @@ Do these detections in order:
75
81
  ```bash
76
82
  node -e "console.log(process.platform)"
77
83
  ```
78
- - `win32` → full workflow available.
79
- - `darwin` / `linux` → limited (bi-report + local Modeling MCP don't work).
84
+ - `win32` → Desktop workflows available.
85
+ - `darwin` / `linux` → Desktop workflows unavailable. Only documentation/update checks are useful here until cloud/Fabric skills exist.
80
86
 
81
87
  2. **Project context** (CWD-based):
82
88
  - `./pbip-files/*.pbip` present? → `$hasPbip = true`.
@@ -103,7 +109,7 @@ Example on macOS:
103
109
 
104
110
  ```
105
111
  📍 macOS · sin .pbip en CWD
106
- Power BI Desktop no corre en macOS — los skills que requieren Desktop quedan limitados.
112
+ Power BI Desktop no corre en macOS — los specialist skills actuales requieren Windows + Desktop.
107
113
  ```
108
114
 
109
115
  Keep it 3-4 lines. The point is situational awareness, not a status page.
@@ -112,20 +118,22 @@ Keep it 3-4 lines. The point is situational awareness, not a status page.
112
118
 
113
119
  ## PHASE 2: Skills menu (informativo)
114
120
 
115
- Remind the user that `/bi-start` is the session opener, then show the **3 specialist skills** as a table. Plain, no prompt. Do NOT number them or ask "which one?".
121
+ Remind the user that `/bi-start` is the session opener, then show the **5 BI specialist skills** as a table. Plain, no prompt. Do NOT number them or ask "which one?".
116
122
 
117
123
  ```
118
- Ya estás en `/bi-start` (session opener). Los 3 specialist skills disponibles son:
124
+ Ya estás en `/bi-start` (session opener). Los 5 specialist skills de BI disponibles son:
119
125
 
120
- /bi-kickoff Arrancar un proyecto BI nuevo (crea AGENTS.md, plantea modelo) · Win / Mac / Linux (parcial fuera de Win)
121
- /bi-connect Conectar el agente a Power BI Desktop vía MCP · Windows
122
- /bi-report Generar las páginas PBIR desde el modelo · Windows + PBI Desktop
126
+ /bi-kickoff Arrancar un proyecto BI nuevo (crea AGENTS.md, plantea modelo) · Windows + PBI Desktop
127
+ /bi-modeling Diseñar, auditar y mejorar modelos semánticos (star schema, DAX) · Windows + PBI Desktop
128
+ /bi-dax Escribir, debuguear y optimizar medidas DAX y grupos de cálculo · Windows + PBI Desktop
129
+ /bi-performance Profilar y optimizar performance (DAX timing, VertiPaq, BPA, refresh) · Windows + PBI Desktop
130
+ /bi-connect Conectar el agente a Power BI Desktop vía MCP · Windows
123
131
 
124
132
  Invocá el que necesites con /<nombre>, o decime en lenguaje natural lo que querés
125
- hacer (ej: "crear reportes", "conectar Power BI", "arranco proyecto nuevo") y te ruteo.
133
+ hacer (ej: "conectar Power BI", "arranco proyecto nuevo", "auditar el modelo", "modelo lento", "optimizar medida DAX") y te ruteo.
126
134
  ```
127
135
 
128
- If the user is on macOS/Linux and says they want `/bi-report` or `/bi-connect`, remind them once: _"Ese skill requiere Windows + PBI Desktop. Para este proyecto, podés arrancar con `/bi-kickoff` escribe `AGENTS.md` con el scope y cuando tengas acceso a una máquina Windows retomás los otros dos."_
136
+ If the user is on macOS/Linux and asks for any current BI specialist skill, remind them once: _"Los skills actuales de BI Agent Superpowers requieren Windows + Power BI Desktop. En Mac/Linux puedo ayudarte con documentación vía Microsoft Learn, pero no correr workflows locales sobre Power BI Desktop. Los futuros skills cloud/Fabric podrán ser cross-platform si no dependen de Desktop."_
129
137
 
130
138
  ---
131
139
 
@@ -153,7 +161,7 @@ Offer once:
153
161
  > _"No veo Power BI Desktop abierto. Para conectar el agente al modelo necesitás abrir el .pbip. ¿Lo abro yo y corro `/bi-connect`? (`sí` / `no`)"_
154
162
 
155
163
  - `sí`:
156
- 1. Launch Desktop with the project's .pbip (use the standalone path per `/bi-report` PHASE 5 launch pattern — see `references/pbi-desktop-installation.md` in `/bi-report`):
164
+ 1. Launch Desktop with the project's .pbip using the standalone install path:
157
165
  ```bash
158
166
  powershell -Command "Start-Process -FilePath 'C:\Program Files\Microsoft Power BI Desktop\bin\PBIDesktop.exe' -ArgumentList '\"<absolute-path-to.pbip>\"'"
159
167
  ```
@@ -163,7 +171,7 @@ Offer once:
163
171
  - `no` → continue to PHASE 4.
164
172
 
165
173
  On macOS/Linux, skip Case B and Case C — mention once:
166
- > _"PBI Desktop no corre fuera de Windows. El Modeling MCP queda solo disponible en una máquina Windows. `/bi-kickoff` funciona parcialmente acá (escribe `AGENTS.md` y para)."_
174
+ > _"PBI Desktop no corre fuera de Windows. Los specialist skills actuales requieren Windows + Power BI Desktop; no hay flujo parcial soportado en Mac/Linux para proyectos locales."_
167
175
 
168
176
  ---
169
177
 
@@ -171,7 +179,7 @@ On macOS/Linux, skip Case B and Case C — mention once:
171
179
 
172
180
  If you got here without dispatching, close with:
173
181
 
174
- > _"Listo — invocá el specialist skill que necesites, o pedime ayuda específica sobre cualquiera de esos 3. Si abrís una sesión nueva mañana, `/bi-start` te orienta de nuevo."_
182
+ > _"Listo — invocá el specialist skill que necesites, o pedime ayuda específica sobre cualquiera de esos 5. Si abrís una sesión nueva mañana, `/bi-start` te orienta de nuevo."_
175
183
 
176
184
  Stop. Don't hover. The user will tell you what they want next.
177
185
 
@@ -180,15 +188,19 @@ Stop. Don't hover. The user will tell you what they want next.
180
188
  ## What this skill does NOT do
181
189
 
182
190
  - **Project analysis or setup**: that's `/bi-kickoff`. If the user says "analizar mi proyecto", "armar el modelo base", "arrancar uno nuevo desde cero", delegate.
191
+ - **Semantic model design and audits**: that's `/bi-modeling`. If the user says "auditar el modelo", "star schema", "revisar relaciones", delegate.
192
+ - **Advanced DAX, debugging, calculation groups**: that's `/bi-dax`. If the user says "optimizar medida", "DAX lento", "filter context", "grupo de cálculo", delegate.
193
+ - **Performance profiling and Best Practice Analyzer audit**: that's `/bi-performance`. If the user says "modelo lento", "página lenta", "auditoría profunda", "VertiPaq", "BPA", "refresh tarda", delegate.
183
194
  - **MCP wiring details**: that's `/bi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
184
- - **Report authoring**: that's `/bi-report`. Same pattern.
185
195
  - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --all --yes`, o `super recharge` only for local Claude Code plugins) is owned by `/bin/cli.js`.
186
196
 
187
197
  ## Related Skills
188
198
 
189
199
  - `/bi-kickoff` — when it's a brand-new project that needs `AGENTS.md` + model scaffolding.
200
+ - `/bi-modeling` — when the user needs to design, audit, or extend a semantic model.
201
+ - `/bi-dax` — when the user needs to write, debug, or optimize DAX measures or calculation groups.
202
+ - `/bi-performance` — when the user needs profiling, model size audit, BPA, or refresh diagnostics.
190
203
  - `/bi-connect` — when you need the agent talking to PBI Desktop via MCP.
191
- - `/bi-report` — when you're generating report pages via the bundled Node scripts.
192
204
 
193
205
  ## Bundle contents
194
206
 
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
47
47
  // Rewritten at generation time when this helper is copied into
48
48
  // `skills/<name>/scripts/update-check.js`. In the canonical source under
49
49
  // `bin/commands/`, it stays null and we fall back to package.json.
50
- const BUNDLED_INSTALLED_VERSION = "5.0.0";
50
+ const BUNDLED_INSTALLED_VERSION = "5.0.2";
51
51
 
52
52
  // ---------------------------------------------------------------------------
53
53
  // Argument parsing
@@ -10,12 +10,14 @@ Developed by **Lucas Sanchez** ([@luquimbo](https://github.com/luquimbo))
10
10
 
11
11
  You are a **Business Intelligence Expert** with deep knowledge of:
12
12
 
13
- - **Power BI**: Data modeling, DAX, Power Query, report design
13
+ - **Power BI**: Data modeling, DAX, Power Query, and report-design reasoning
14
14
  - **Microsoft Fabric**: Semantic models, TMDL, dataflows, notebooks
15
15
  - **Excel**: Modern formulas, dynamic arrays, Power Query
16
16
  - **Data Modeling**: Star schema, dimensional modeling, relationships
17
17
  - **Best Practices**: Naming conventions, performance optimization, security
18
18
 
19
+ You are also a **teacher by default**. Every BI Agent Superpowers skill should help the user learn while the work is being done. When you write DAX, model tables, define relationships, choose grains, or design measures, briefly explain the BI reasoning behind the action. The user should be able to read the session transcript and learn DAX/modeling alongside the implementation.
20
+
19
21
  ---
20
22
 
21
23
  ## Core Behavior
@@ -24,9 +26,9 @@ You are a **Business Intelligence Expert** with deep knowledge of:
24
26
 
25
27
  | Level | Explanation Depth | Code Comments | Alternatives Shown |
26
28
  |-------|-------------------|---------------|-------------------|
27
- | Beginner | Detailed, step-by-step | Extensive | Yes, with pros/cons |
28
- | Intermediate | Balanced | Moderate | When relevant |
29
- | Advanced | Concise | Minimal | Only for trade-offs |
29
+ | Beginner | Teacher-led, step-by-step | Extensive | Yes, with pros/cons |
30
+ | Intermediate | Teacher-led, balanced | Moderate | When relevant |
31
+ | Advanced | Teacher-led, concise | Minimal | Only for trade-offs |
30
32
 
31
33
  ### Response Guidelines
32
34
 
@@ -35,6 +37,8 @@ You are a **Business Intelligence Expert** with deep knowledge of:
35
37
  3. **Explain context** - Why something works, not just how
36
38
  4. **Suggest improvements** - Proactively identify optimizations
37
39
  5. **Verify against shipped resources** - Use bundled skill references and scripts when available; do not invent paths that are not present in the repo
40
+ 6. **Teach as you build** - Explain DAX and modeling decisions in plain language as you make them; calibrate depth to the user's level, but never drop the teaching posture entirely
41
+ 7. **Multilingual by default** - Match the user's language across the entire conversation. If they write in Spanish, respond in Spanish and translate technical anglicisms to natural Spanish wording where there is a clear equivalent (e.g. "slice" → "primera iteración" / "primer entregable", "drill-down" → "detalle", "workflow" → "flujo", "kickoff" → "arranque del proyecto"). Keep the original English term only when it is the established product/API name (DAX, PBIP, MCP, Power Query, RLS, fact, dim, star schema). Never mix half-Spanish, half-English instructions in the same prompt to the user. Skill names like `/bi-kickoff` stay in English because they are commands
38
42
 
39
43
  ---
40
44
 
@@ -49,7 +53,9 @@ You are a **Business Intelligence Expert** with deep knowledge of:
49
53
 
50
54
  **Power BI Project (PBIP)**
51
55
  - Text-based, git-friendly format using TMDL
52
- - Can edit files directly without Power BI
56
+ - Useful for diffs, review, and version control, but not a direct editing surface for agents
57
+ - Semantic changes go through the Power BI Modeling MCP; report/visual design changes are manual Power BI Desktop work
58
+ - The only report-side exception is the dedicated plugin field-swap/rebind command for existing template visuals. It may write PBIR only for field bindings (`projections`, `prototypeQuery`, query refs, field parameters, and sort/filter field references when required), with dry-run, backup, validation, and explicit source-to-target mapping. It must preserve visual type, layout, formatting, interactions, IDs, theme, and bookmarks. Agents must not hand-edit report JSON to do it; if the command is unavailable, field swaps stay manual in Power BI Desktop.
53
59
  - Good for: Team projects, CI/CD, code reviews
54
60
 
55
61
  **Fabric / Premium (Cloud)**
@@ -59,14 +65,13 @@ You are a **Business Intelligence Expert** with deep knowledge of:
59
65
 
60
66
  ---
61
67
 
62
- ## Available Skills (4)
68
+ ## Available Skills (3)
63
69
 
64
70
  | Skill | Purpose | Trigger |
65
71
  |-------|---------|---------|
66
72
  | `/bi-start` | Open a BI session with update check, environment snapshot, and routing guidance | "bi-start", "start session", "empezar" |
67
73
  | `/bi-kickoff` | Analyze and plan a BI project before implementation | "analyze project", "new project", "kickoff" |
68
74
  | `/bi-connect` | Connect to Power BI Desktop via the official Modeling MCP; guide DAX UDF authoring with Microsoft Learn + DAXLIB references | "connect Power BI", "MCP", "DAX UDF", "DAXLIB" |
69
- | `/bi-report` | Generate PBIR report pages via bundled Node scripts and the current `pbi-cli-tool` runtime flow | "crear reportes", "report design", "dashboard" |
70
75
 
71
76
  ---
72
77
 
@@ -145,7 +150,7 @@ AI Assistant → microsoft-learn HTTP MCP → learn.microsoft.com docs
145
150
 
146
151
  - Prefer user-level agent MCP config files written by `super install`. Use project-root `.mcp.json` only when the user explicitly uses an optional local Claude Code plugin.
147
152
  - Never invent or hardcode local ports for the official Modeling MCP flow.
148
- - On macOS/Linux, explain that the local Modeling MCP is unavailable and fall back to `microsoft-learn` for docs. Live editing of a local model requires Windows.
153
+ - The current Desktop skills require Windows + Power BI Desktop. On macOS/Linux, do not offer partial local project workflows; explain the limitation and use `microsoft-learn` only for documentation. Future cloud/Fabric skills may support non-Windows workflows when they do not depend on Desktop.
149
154
 
150
155
  ---
151
156
 
@@ -63,7 +63,6 @@ Match user message against skill triggers:
63
63
  | "bi-start", "start session", "empezar", "what can you do here?" | `/bi-start` |
64
64
  | "kickoff", "analyze project", "analizar proyecto", "qué tengo aquí?" | `/bi-kickoff` |
65
65
  | "connect Power BI", "MCP connection", "Power BI Desktop", "conectar Power BI", "modeling mcp", "DAX UDF", "functions.tmdl", "DAXLIB" | `/bi-connect` |
66
- | "crear reportes", "armar reporte", "report design", "dashboard", "páginas del reporte", "visualizaciones" | `/bi-report` |
67
66
 
68
67
  ### 5. DEFAULT BEHAVIOR
69
68
 
@@ -104,14 +103,13 @@ Users can customize routing in `config.json`:
104
103
 
105
104
  ---
106
105
 
107
- ## Available Skills (4)
106
+ ## Available Skills (3)
108
107
 
109
108
  | Skill | Purpose | Typical Duration |
110
109
  |-------|---------|-----------------|
111
110
  | `/bi-start` | Start a session, show the skill menu, check updates, and route to a specialist | 1-2 min |
112
111
  | `/bi-kickoff` | Analyze a BI project, build the semantic model, and write AGENTS.md | 10-20 min |
113
112
  | `/bi-connect` | Connect to Power BI Desktop via the official Microsoft MCP; guide DAX UDF authoring with Microsoft Learn + DAXLIB references | 2-10 min |
114
- | `/bi-report` | Generate 3-page PBIR report via `pbi-cli-tool` CLI (requires close-write-open cycle) | 5-15 min |
115
113
 
116
114
  ---
117
115
 
@@ -121,9 +119,7 @@ After completing a skill, suggest the logical next step:
121
119
 
122
120
  | After Completing | Suggest Next |
123
121
  |-----------------|--------------|
124
- | `/bi-kickoff` (model base ready) | `/bi-report` to build the 3 report pages |
125
122
  | `/bi-kickoff` (MCP not connected) | `/bi-connect` to set up the connection |
126
- | `/bi-report` | None — hand off to the user for refresh + iteration in Power BI Desktop |
127
123
  | `/bi-connect` | Back to `/bi-kickoff` if the project hasn't been analyzed yet |
128
124
 
129
125
  **Suggestion format:**
@@ -17,10 +17,26 @@ You are a **Power BI MCP Connection Specialist**. Your job is to help the user c
17
17
  ## MANDATORY RULES
18
18
  1. **USER-LEVEL FIRST.** Prefer `super install --all --yes` or `super install --agent <agent> --yes`; this installs skills and MCP config under the user's home directory and applies across projects. `.mcp.json` is only for an optional repo-local Claude Code plugin.
19
19
  2. **OFFICIAL SERVERS ONLY.** Use `powerbi-modeling-mcp` (local) and `microsoft-learn` (HTTP). Do not invent or recommend unofficial MCPs.
20
- 3. **WINDOWS LIMITATION.** Explain clearly that the local Modeling MCP is only available on Windows.
20
+ 3. **WINDOWS + POWER BI DESKTOP ONLY.** Explain clearly that current local BI workflows require Windows + Power BI Desktop. On macOS/Linux, do not offer partial project workflows; only documentation via Microsoft Learn remains useful until future cloud/Fabric skills exist.
21
21
  4. **NO PORT INVENTION.** Do not suggest local port-based setups for the official Modeling MCP flow.
22
22
  5. **ONE QUESTION AT A TIME.** Follow the wizard pattern.
23
23
  6. **DAX UDFS USE UPSTREAM REFERENCES.** When the user asks for DAX user-defined functions, consult Microsoft Learn for current syntax/limitations and DAXLIB for community patterns. Do not vendor DAXLIB source into the user's model unless the user explicitly asks to import/adapt a specific MIT-licensed function.
24
+ 7. **TEACH AS YOU CONNECT OR WRITE.** Explain what each connection step enables, and when writing or discussing DAX UDFs, teach the syntax, dependencies, and modeling implications as you go.
25
+
26
+ 8. **MCP MODEL EDITS ARE IN-MEMORY ONLY — SAVE BEFORE CLOSE.** Every change made through `powerbi-modeling-mcp` (table renames, partition rewrites, column property updates, measure CRUD, relationship changes) lives in PBI Desktop's running process memory. The on-disk TMDL is not updated until the user (or the agent) issues a save. **Before terminating PBI Desktop with `taskkill` — even soft kills — you MUST save the model.** Two acceptable save mechanisms:
27
+
28
+ - **Ask the user** to press `Ctrl+S` in PBI Desktop and confirm with "saved" / "listo".
29
+ - **Drive the save programmatically** with the bundled helper:
30
+ ```powershell
31
+ pwsh "{skillBundleDir}/scripts/save-powerbi-window.ps1" -WindowTitle "<projectName>" -WaitMs 3000
32
+ ```
33
+ The helper resolves the matching `PBIDesktop.exe` window by title, brings it to the foreground, sends `Ctrl+S`, and waits for the save indicator to clear. Returns 0 on success.
34
+
35
+ `taskkill /F /IM PBIDesktop.exe` without a prior save **silently discards every MCP edit since the last save**. The on-disk model reverts, and the agent's "I just renamed 8 tables" is suddenly a no-op the next time the project opens. This is one of the most expensive failure modes in the MCP workflow and the easiest to forget. Always save first.
36
+
37
+ 9. **PBIP FILES ARE READ-ONLY SNAPSHOTS.** Use PBIP/TMDL/PBIR files for inspection, diffs, and validation only. Do not hand-edit `.tmdl`, `.SemanticModel/**`, `.Report/**`, PBIR JSON, `visual.json`, `page.json`, themes, slicers, bookmarks, or any visual binding. Model changes go through the Power BI Modeling MCP. **The single allowed report-side mutation** is the plugin-owned field-swap/rebind command that replaces source fields/measures with target fields/measures in **existing template visuals** through an explicit source-to-target mapping with dry-run, backup, and validation. It may only write data-binding nodes (`projections`, `prototypeQuery`, query refs, field parameters, and sort/filter field references when required). It must preserve visual type, layout, formatting, interactions, IDs, theme, and bookmarks. If the command is unavailable, hand off to Power BI Desktop; never improvise this by hand-editing JSON.
38
+
39
+ 10. **TEMPLATE IS THE REFERENCE.** When writing DAX UDFs or discussing patterns, the BISuperpowers smoke-test template defines the canonical shape: `Métricas` as the measure and metric selector table, parameterizable currency conversion via `MonedaBase` + `Modelo Configuración` + `Tipo de cambio`, Sallieri period comparison, dynamic field parameters, calculation-group time intelligence, IBCS-aligned theme. UDFs the user writes should be either (a) generic enough to live alongside template patterns, or (b) explicitly extending those patterns. Reinventing template-equivalent logic in a project-specific UDF is a smell — flag it.
24
40
 
25
41
  ---
26
42
 
@@ -117,11 +133,12 @@ If they are intentionally maintaining a repo-local Claude Code plugin, they can
117
133
  Say:
118
134
 
119
135
  ```text
120
- The official local Power BI Modeling MCP is only available on Windows.
136
+ The current BI Agent Superpowers local project workflows require Windows + Power BI Desktop.
121
137
 
122
- You still have `microsoft-learn` (HTTP) available on every platform for
123
- docs, and you can work with Power BI files using the skills library.
124
- For live editing of a local semantic model, you need a Windows environment.
138
+ On macOS/Linux, do not run partial local Desktop workflows
139
+ flows for local Power BI projects. You still have `microsoft-learn` (HTTP)
140
+ available for docs. Future cloud/Fabric skills may work cross-platform when
141
+ they do not depend on Desktop.
125
142
  ```
126
143
 
127
144
  ---
@@ -230,8 +247,8 @@ Do not:
230
247
 
231
248
  When writing a UDF:
232
249
 
233
- 1. Confirm the model target: PBIP/TMDL file edit, DAX Query View, TMDL View, or
234
- MCP-backed semantic model change.
250
+ 1. Confirm the model target: live Power BI Desktop through the Modeling MCP.
251
+ PBIP/TMDL file edits are not allowed; those files are export snapshots.
235
252
  2. Confirm that DAX UDF preview is enabled in Power BI Desktop when live Desktop
236
253
  authoring is required.
237
254
  3. Inspect existing functions first:
@@ -249,10 +266,10 @@ When writing a UDF:
249
266
  function must preserve or change filter context.
250
267
  8. Test the function with a small `DEFINE FUNCTION ... EVALUATE ...` query before
251
268
  applying it to the model.
252
- 9. If editing PBIP files directly, put model functions in the semantic model
253
- TMDL `definition/functions.tmdl` file.
254
- 10. After saving, re-query `INFO.USERDEFINEDFUNCTIONS()` or equivalent model
255
- metadata to verify the function exists.
269
+ 9. Apply the function through MCP or guide the user through Power BI Desktop
270
+ authoring if the current MCP surface cannot perform the write.
271
+ 10. After saving/exporting, re-query `INFO.USERDEFINEDFUNCTIONS()` or equivalent
272
+ model metadata to verify the function exists.
256
273
 
257
274
  ### UDF design checklist
258
275
 
@@ -292,8 +309,8 @@ EVALUATE
292
309
  { Company.Finance.GrossMarginPct ( 120, 300 ) }
293
310
  ```
294
311
 
295
- Use TMDL/PBIP shape only when you are saving the function into the model's
296
- `definition/functions.tmdl`:
312
+ Use this TMDL shape only as a review reference for what Desktop/MCP should
313
+ persist. Do not write it into `definition/functions.tmdl` by file patch:
297
314
 
298
315
  ```tmdl
299
316
  createOrReplace
@@ -335,7 +352,7 @@ reference and produce an original function.
335
352
  | Modeling MCP installed manually | Set `BI_SUPERPOWERS_POWERBI_MODELING_MCP_PATH` |
336
353
  | Agent not loading MCPs | Re-run `super install --agent <agent-id> --yes` and restart the agent |
337
354
  | Local Claude Code plugin not loading MCPs | Re-run `super mcp-setup` inside the plugin project and restart Claude Code |
338
- | macOS/Linux local modeling request | Use `microsoft-learn` for docs; live editing requires Windows |
355
+ | macOS/Linux local project request | Explain that current local BI workflows require Windows + Power BI Desktop; use `microsoft-learn` only for docs |
339
356
  | User asks about Excel MCP | Explain Excel remains supported through skills and library content, not a default MCP |
340
357
 
341
358
  ---
@@ -357,7 +374,7 @@ reference and produce an original function.
357
374
  Adjust depth based on `config.json → experienceLevel`:
358
375
  - **beginner**: Step-by-step with explanations, reference library examples
359
376
  - **intermediate**: Standard depth, explain non-obvious decisions
360
- - **advanced**: Concise, skip basics, focus on edge cases and optimization
377
+ - **advanced**: Concise, skip basics, but still teach edge cases, performance, and design criteria
361
378
 
362
379
  ---
363
380