@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
@@ -14,18 +14,24 @@ Also activate:
14
14
  - When the user seems lost about which skill to invoke (e.g. says "no sé qué usar").
15
15
 
16
16
  ## Identity
17
- 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.
17
+ 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.
18
18
 
19
19
  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.
20
20
 
21
21
  ## MANDATORY RULES
22
22
 
23
23
  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.
24
- 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.
24
+ 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.
25
25
  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.
26
26
  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".
27
- 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.
27
+ 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.
28
28
  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.
29
+ 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.
30
+
31
+ 8. **PLUGIN-WIDE INVARIANTS TO SURFACE WHEN ROUTING:**
32
+ - **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.
33
+ - **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.
34
+ 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.
29
35
 
30
36
  ---
31
37
 
@@ -67,8 +73,8 @@ Do these detections in order:
67
73
  ```bash
68
74
  node -e "console.log(process.platform)"
69
75
  ```
70
- - `win32` → full workflow available.
71
- - `darwin` / `linux` → limited (bi-report + local Modeling MCP don't work).
76
+ - `win32` → Desktop workflows available.
77
+ - `darwin` / `linux` → Desktop workflows unavailable. Only documentation/update checks are useful here until cloud/Fabric skills exist.
72
78
 
73
79
  2. **Project context** (CWD-based):
74
80
  - `./pbip-files/*.pbip` present? → `$hasPbip = true`.
@@ -95,7 +101,7 @@ Example on macOS:
95
101
 
96
102
  ```
97
103
  📍 macOS · sin .pbip en CWD
98
- Power BI Desktop no corre en macOS — los skills que requieren Desktop quedan limitados.
104
+ Power BI Desktop no corre en macOS — los specialist skills actuales requieren Windows + Desktop.
99
105
  ```
100
106
 
101
107
  Keep it 3-4 lines. The point is situational awareness, not a status page.
@@ -104,20 +110,22 @@ Keep it 3-4 lines. The point is situational awareness, not a status page.
104
110
 
105
111
  ## PHASE 2: Skills menu (informativo)
106
112
 
107
- 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?".
113
+ 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?".
108
114
 
109
115
  ```
110
- Ya estás en `/bi-start` (session opener). Los 3 specialist skills disponibles son:
116
+ Ya estás en `/bi-start` (session opener). Los 5 specialist skills de BI disponibles son:
111
117
 
112
- /bi-kickoff Arrancar un proyecto BI nuevo (crea AGENTS.md, plantea modelo) · Win / Mac / Linux (parcial fuera de Win)
113
- /bi-connect Conectar el agente a Power BI Desktop vía MCP · Windows
114
- /bi-report Generar las páginas PBIR desde el modelo · Windows + PBI Desktop
118
+ /bi-kickoff Arrancar un proyecto BI nuevo (crea AGENTS.md, plantea modelo) · Windows + PBI Desktop
119
+ /bi-modeling Diseñar, auditar y mejorar modelos semánticos (star schema, DAX) · Windows + PBI Desktop
120
+ /bi-dax Escribir, debuguear y optimizar medidas DAX y grupos de cálculo · Windows + PBI Desktop
121
+ /bi-performance Profilar y optimizar performance (DAX timing, VertiPaq, BPA, refresh) · Windows + PBI Desktop
122
+ /bi-connect Conectar el agente a Power BI Desktop vía MCP · Windows
115
123
 
116
124
  Invocá el que necesites con /<nombre>, o decime en lenguaje natural lo que querés
117
- hacer (ej: "crear reportes", "conectar Power BI", "arranco proyecto nuevo") y te ruteo.
125
+ hacer (ej: "conectar Power BI", "arranco proyecto nuevo", "auditar el modelo", "modelo lento", "optimizar medida DAX") y te ruteo.
118
126
  ```
119
127
 
120
- 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."_
128
+ 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."_
121
129
 
122
130
  ---
123
131
 
@@ -145,7 +153,7 @@ Offer once:
145
153
  > _"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`)"_
146
154
 
147
155
  - `sí`:
148
- 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`):
156
+ 1. Launch Desktop with the project's .pbip using the standalone install path:
149
157
  ```bash
150
158
  powershell -Command "Start-Process -FilePath 'C:\Program Files\Microsoft Power BI Desktop\bin\PBIDesktop.exe' -ArgumentList '\"<absolute-path-to.pbip>\"'"
151
159
  ```
@@ -155,7 +163,7 @@ Offer once:
155
163
  - `no` → continue to PHASE 4.
156
164
 
157
165
  On macOS/Linux, skip Case B and Case C — mention once:
158
- > _"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)."_
166
+ > _"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."_
159
167
 
160
168
  ---
161
169
 
@@ -163,7 +171,7 @@ On macOS/Linux, skip Case B and Case C — mention once:
163
171
 
164
172
  If you got here without dispatching, close with:
165
173
 
166
- > _"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."_
174
+ > _"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."_
167
175
 
168
176
  Stop. Don't hover. The user will tell you what they want next.
169
177
 
@@ -172,15 +180,19 @@ Stop. Don't hover. The user will tell you what they want next.
172
180
  ## What this skill does NOT do
173
181
 
174
182
  - **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.
183
+ - **Semantic model design and audits**: that's `/bi-modeling`. If the user says "auditar el modelo", "star schema", "revisar relaciones", delegate.
184
+ - **Advanced DAX, debugging, calculation groups**: that's `/bi-dax`. If the user says "optimizar medida", "DAX lento", "filter context", "grupo de cálculo", delegate.
185
+ - **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.
175
186
  - **MCP wiring details**: that's `/bi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
176
- - **Report authoring**: that's `/bi-report`. Same pattern.
177
187
  - **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`.
178
188
 
179
189
  ## Related Skills
180
190
 
181
191
  - `/bi-kickoff` — when it's a brand-new project that needs `AGENTS.md` + model scaffolding.
192
+ - `/bi-modeling` — when the user needs to design, audit, or extend a semantic model.
193
+ - `/bi-dax` — when the user needs to write, debug, or optimize DAX measures or calculation groups.
194
+ - `/bi-performance` — when the user needs profiling, model size audit, BPA, or refresh diagnostics.
182
195
  - `/bi-connect` — when you need the agent talking to PBI Desktop via MCP.
183
- - `/bi-report` — when you're generating report pages via the bundled Node scripts.
184
196
 
185
197
  ## Bundle contents
186
198
 
@@ -0,0 +1,33 @@
1
+ # AGENTS.md — Instrucciones para agentes de IA en este proyecto Power BI
2
+
3
+ ## Regla crítica 1: siempre usar el Power BI MCP para escribir
4
+
5
+ Cuando crees o modifiques medidas DAX, tablas, columnas, relaciones o cualquier elemento del modelo semántico, DEBES usar el servidor MCP de Power BI Desktop. NO edites archivos TMDL (`.tmdl`, `.tmd`) directamente. Esos archivos los gestiona el motor tabular. Editarlos a mano basado en tu conocimiento de entrenamiento es propenso a errores y probablemente rompa el modelo.
6
+
7
+ ## Regla crítica 2: verificar la conexión MCP al iniciar sesión
8
+
9
+ Antes de hacer cualquier cambio al proyecto, verifica que el MCP de Power BI Desktop esté conectado a una instancia abierta. Si no lo está, avisa al usuario para que abra el archivo `.pbip` en Power BI Desktop primero.
10
+
11
+ ## Regla crítica 3: los archivos TMDL son SOLO LECTURA
12
+
13
+ Puedes LEER archivos TMDL para entender la estructura del modelo, las relaciones, las medidas. Es a veces más rápido que consultar por MCP. Pero NUNCA ESCRIBAS en esos archivos.
14
+
15
+ ## Regla crítica 4: consultar Microsoft Learn MCP para documentación técnica
16
+
17
+ Cuando el usuario pregunte sobre funciones DAX, propiedades de Power BI, conectores o capacidades de Fabric, consulta el Microsoft Learn MCP antes de responder. No respondas de memoria sobre temas donde la documentación puede haber cambiado desde tu fecha de corte de entrenamiento. Si el Learn MCP no está disponible, avisa al usuario antes de responder.
18
+
19
+ ## Regla crítica 5: flujo completo
20
+
21
+ Escribir via MCP. Leer via archivos. Versionar via Git. Después de cambios significativos, sugiere al usuario hacer un commit.
22
+
23
+ ## Estructura del proyecto
24
+
25
+ La carpeta raíz del proyecto es un repositorio Git independiente.
26
+
27
+ - Archivo `/sales-template.pbip`: archivo del proyecto Power BI (renombralo al nombre de tu proyecto si lo adaptás)
28
+ - Carpeta `/sales-template.SemanticModel/`: definición del modelo (archivos TMDL, **SOLO LECTURA para agentes**)
29
+ - Carpeta `/sales-template.Report/`: definición del reporte (**SOLO LECTURA para agentes**)
30
+
31
+ Si renombrás los archivos `template.*` para tu proyecto, actualizá también las referencias internas:
32
+ - `<tu-proyecto>.pbip` → campo `artifacts[0].report.path` apunta a `<tu-proyecto>.Report`
33
+ - `<tu-proyecto>.Report/definition.pbir` → campo `datasetReference.byPath.path` apunta a `../<tu-proyecto>.SemanticModel`
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json",
3
+ "metadata": {
4
+ "type": "Report",
5
+ "displayName": "sales-template"
6
+ },
7
+ "config": {
8
+ "version": "2.0",
9
+ "logicalId": "04b20925-5d76-439b-98f1-a45b9ad6ea5d"
10
+ }
11
+ }