bi-superpowers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.claude-plugin/marketplace.json +31 -0
  2. package/.claude-plugin/plugin.json +34 -0
  3. package/.claude-plugin/skill-manifest.json +79 -0
  4. package/.mcp.json +13 -0
  5. package/.plugin/plugin.json +14 -0
  6. package/LICENSE +21 -0
  7. package/README.md +849 -0
  8. package/bin/build-plugin.js +97 -0
  9. package/bin/cli.js +891 -0
  10. package/bin/commands/autoupdate.js +128 -0
  11. package/bin/commands/build-desktop.js +368 -0
  12. package/bin/commands/create-from-template.js +165 -0
  13. package/bin/commands/diff.js +435 -0
  14. package/bin/commands/install.js +542 -0
  15. package/bin/commands/lint.js +441 -0
  16. package/bin/commands/mcp-setup.js +255 -0
  17. package/bin/commands/session-update.js +204 -0
  18. package/bin/commands/smoke-test.js +20 -0
  19. package/bin/commands/uninstall.js +611 -0
  20. package/bin/commands/update-check.js +427 -0
  21. package/bin/commands/validate-cases.js +264 -0
  22. package/bin/commands/validate-projects.js +426 -0
  23. package/bin/commands/watch.js +251 -0
  24. package/bin/lib/agents.js +62 -0
  25. package/bin/lib/base-template-smoke.js +299 -0
  26. package/bin/lib/claude-hooks.js +160 -0
  27. package/bin/lib/generators/claude-plugin.js +529 -0
  28. package/bin/lib/generators/index.js +116 -0
  29. package/bin/lib/generators/shared.js +257 -0
  30. package/bin/lib/mcp-config.js +835 -0
  31. package/bin/lib/microsoft-mcp.js +206 -0
  32. package/bin/lib/powerbi-mcp-session.js +140 -0
  33. package/bin/lib/skills.js +164 -0
  34. package/bin/lib/template-scaffold.js +366 -0
  35. package/bin/mcp/powerbi-modeling-launcher.js +42 -0
  36. package/bin/postinstall.js +50 -0
  37. package/bin/utils/mcp-detect.js +346 -0
  38. package/bin/utils/tui.js +314 -0
  39. package/commands/bi-connect.md +520 -0
  40. package/commands/bi-dax.md +464 -0
  41. package/commands/bi-kickoff.md +550 -0
  42. package/commands/bi-modeling.md +485 -0
  43. package/commands/bi-performance.md +521 -0
  44. package/commands/bi-powerquery.md +229 -0
  45. package/commands/bi-refactor.md +249 -0
  46. package/commands/bi-scorecard.md +268 -0
  47. package/commands/bi-start.md +272 -0
  48. package/config.example.json +23 -0
  49. package/config.json +23 -0
  50. package/desktop-extension/manifest.json +30 -0
  51. package/desktop-extension/package.json +10 -0
  52. package/desktop-extension/server.js +137 -0
  53. package/package.json +94 -0
  54. package/skills/bi-connect/SKILL.md +522 -0
  55. package/skills/bi-connect/scripts/update-check.js +427 -0
  56. package/skills/bi-dax/SKILL.md +466 -0
  57. package/skills/bi-dax/scripts/update-check.js +427 -0
  58. package/skills/bi-kickoff/SKILL.md +552 -0
  59. package/skills/bi-kickoff/references/flow.html +78 -0
  60. package/skills/bi-kickoff/references/flow.md +62 -0
  61. package/skills/bi-kickoff/scripts/update-check.js +427 -0
  62. package/skills/bi-modeling/SKILL.md +487 -0
  63. package/skills/bi-modeling/scripts/update-check.js +427 -0
  64. package/skills/bi-performance/SKILL.md +523 -0
  65. package/skills/bi-performance/scripts/install-tabular-editor.ps1 +159 -0
  66. package/skills/bi-performance/scripts/run-bpa.ps1 +265 -0
  67. package/skills/bi-performance/scripts/update-check.js +427 -0
  68. package/skills/bi-powerquery/SKILL.md +231 -0
  69. package/skills/bi-powerquery/references/base-template-data-contract.md +323 -0
  70. package/skills/bi-powerquery/references/power-query-standards.md +74 -0
  71. package/skills/bi-powerquery/scripts/new-powerquery-staging.ps1 +371 -0
  72. package/skills/bi-powerquery/scripts/test-powerquery-contract.ps1 +225 -0
  73. package/skills/bi-powerquery/scripts/update-check.js +427 -0
  74. package/skills/bi-refactor/SKILL.md +251 -0
  75. package/skills/bi-refactor/references/flow.md +27 -0
  76. package/skills/bi-refactor/scripts/update-check.js +427 -0
  77. package/skills/bi-scorecard/SKILL.md +270 -0
  78. package/skills/bi-scorecard/examples/base-template-scorecard-overlay.json +82 -0
  79. package/skills/bi-scorecard/scripts/new-scorecard-blueprint-from-base-template.ps1 +124 -0
  80. package/skills/bi-scorecard/scripts/powerbi-goal-status-rules-api.ps1 +39 -0
  81. package/skills/bi-scorecard/scripts/powerbi-goal-values-api.ps1 +48 -0
  82. package/skills/bi-scorecard/scripts/powerbi-goals-api.ps1 +68 -0
  83. package/skills/bi-scorecard/scripts/powerbi-rest-common.ps1 +197 -0
  84. package/skills/bi-scorecard/scripts/powerbi-scorecards-api.ps1 +53 -0
  85. package/skills/bi-scorecard/scripts/update-check.js +427 -0
  86. package/skills/bi-start/SKILL.md +274 -0
  87. package/skills/bi-start/scripts/update-check.js +427 -0
  88. package/src/content/base.md +197 -0
  89. package/src/content/mcp-requirements.json +57 -0
  90. package/src/content/routing.md +201 -0
  91. package/src/content/skills/bi-connect.md +493 -0
  92. package/src/content/skills/bi-dax.md +437 -0
  93. package/src/content/skills/bi-kickoff/SKILL.md +523 -0
  94. package/src/content/skills/bi-kickoff/references/flow.html +78 -0
  95. package/src/content/skills/bi-kickoff/references/flow.md +62 -0
  96. package/src/content/skills/bi-modeling.md +458 -0
  97. package/src/content/skills/bi-performance/SKILL.md +494 -0
  98. package/src/content/skills/bi-performance/scripts/install-tabular-editor.ps1 +159 -0
  99. package/src/content/skills/bi-performance/scripts/run-bpa.ps1 +265 -0
  100. package/src/content/skills/bi-powerquery/SKILL.md +202 -0
  101. package/src/content/skills/bi-powerquery/references/base-template-data-contract.md +323 -0
  102. package/src/content/skills/bi-powerquery/references/power-query-standards.md +74 -0
  103. package/src/content/skills/bi-powerquery/scripts/new-powerquery-staging.ps1 +371 -0
  104. package/src/content/skills/bi-powerquery/scripts/test-powerquery-contract.ps1 +225 -0
  105. package/src/content/skills/bi-refactor/SKILL.md +222 -0
  106. package/src/content/skills/bi-refactor/references/flow.md +27 -0
  107. package/src/content/skills/bi-scorecard/SKILL.md +241 -0
  108. package/src/content/skills/bi-scorecard/examples/base-template-scorecard-blueprint.expected.json +105 -0
  109. package/src/content/skills/bi-scorecard/examples/base-template-scorecard-overlay.json +82 -0
  110. package/src/content/skills/bi-scorecard/scripts/new-scorecard-blueprint-from-base-template.ps1 +124 -0
  111. package/src/content/skills/bi-scorecard/scripts/powerbi-goal-status-rules-api.ps1 +39 -0
  112. package/src/content/skills/bi-scorecard/scripts/powerbi-goal-values-api.ps1 +48 -0
  113. package/src/content/skills/bi-scorecard/scripts/powerbi-goals-api.ps1 +68 -0
  114. package/src/content/skills/bi-scorecard/scripts/powerbi-rest-common.ps1 +197 -0
  115. package/src/content/skills/bi-scorecard/scripts/powerbi-scorecards-api.ps1 +53 -0
  116. package/src/content/skills/bi-start.md +266 -0
  117. package/templates/base-template/AGENTS.md +33 -0
  118. package/templates/base-template/base-template.Report/.platform +11 -0
  119. package/templates/base-template/base-template.Report/StaticResources/RegisteredResources/BISuperpowers.json +3888 -0
  120. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BaseThemes/CY18SU07.json +177 -0
  121. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BaseThemes/Fluent2-CY26SU03.json +4104 -0
  122. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleCityPark.json +26 -0
  123. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleDefault.json +26 -0
  124. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleNeutral.json +26 -0
  125. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleOrchid.json +26 -0
  126. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleTidal.json +26 -0
  127. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Bloom.json +139 -0
  128. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/CityPark.json +40 -0
  129. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Classroom.json +40 -0
  130. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/ColorblindSafe.json +48 -0
  131. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/CopilotDefault.json +1861 -0
  132. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Divergent.json +127 -0
  133. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Electric.json +48 -0
  134. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Frontier.json +136 -0
  135. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/HighContrast.json +40 -0
  136. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Highrise.json +41 -0
  137. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Innovate.json +227 -0
  138. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/NewExecutive.json +41 -0
  139. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Solar.json +33 -0
  140. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Storm.json +25 -0
  141. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Sunset.json +48 -0
  142. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Temperature.json +33 -0
  143. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Tidal.json +100 -0
  144. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Twilight.json +40 -0
  145. package/templates/base-template/base-template.Report/definition/bookmarks/1d40d43c7ade66e8603c.bookmark.json +2297 -0
  146. package/templates/base-template/base-template.Report/definition/bookmarks/af068ff51c0ca3089ea7.bookmark.json +2300 -0
  147. package/templates/base-template/base-template.Report/definition/bookmarks/bookmarks.json +11 -0
  148. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/page.json +130 -0
  149. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/0352fd80d074693a65db/mobile.json +11 -0
  150. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/0352fd80d074693a65db/visual.json +669 -0
  151. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/1c5a14bf493697344b68/mobile.json +11 -0
  152. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/1c5a14bf493697344b68/visual.json +723 -0
  153. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/mobile.json +11 -0
  154. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/visual.json +333 -0
  155. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/mobile.json +11 -0
  156. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/visual.json +109 -0
  157. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/55e10ac7d76a1954f94f/mobile.json +31 -0
  158. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/55e10ac7d76a1954f94f/visual.json +378 -0
  159. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/57f52ecf4490f70e4da1/mobile.json +11 -0
  160. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/57f52ecf4490f70e4da1/visual.json +175 -0
  161. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/mobile.json +11 -0
  162. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/visual.json +468 -0
  163. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/mobile.json +11 -0
  164. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/visual.json +359 -0
  165. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/749cb1388c7e0a88161c/mobile.json +11 -0
  166. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/749cb1388c7e0a88161c/visual.json +690 -0
  167. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/90677f13cea5d1275990/visual.json +17 -0
  168. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/92cf92e3da10493adb78/mobile.json +11 -0
  169. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/92cf92e3da10493adb78/visual.json +468 -0
  170. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/9fe17b1971f68443fc15/mobile.json +10 -0
  171. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/9fe17b1971f68443fc15/visual.json +328 -0
  172. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a30bd0950630ed94e8a3/mobile.json +11 -0
  173. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a30bd0950630ed94e8a3/visual.json +578 -0
  174. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/mobile.json +11 -0
  175. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/visual.json +432 -0
  176. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/mobile.json +11 -0
  177. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/visual.json +801 -0
  178. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/mobile.json +37 -0
  179. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/visual.json +1318 -0
  180. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/b529688fe5a226643322/visual.json +209 -0
  181. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/c4c6f332d05e72e2eb06/mobile.json +11 -0
  182. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/c4c6f332d05e72e2eb06/visual.json +174 -0
  183. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/mobile.json +29 -0
  184. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/visual.json +241 -0
  185. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/page.json +130 -0
  186. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/07e9c4302e29029c5462/mobile.json +11 -0
  187. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/07e9c4302e29029c5462/visual.json +690 -0
  188. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/109ceede4bc015b0c006/mobile.json +11 -0
  189. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/109ceede4bc015b0c006/visual.json +468 -0
  190. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/118257e006d472277e10/mobile.json +11 -0
  191. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/118257e006d472277e10/visual.json +359 -0
  192. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/2caf02e0137c4a1280cc/mobile.json +11 -0
  193. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/2caf02e0137c4a1280cc/visual.json +669 -0
  194. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/311e76fe3c9edad68204/mobile.json +11 -0
  195. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/311e76fe3c9edad68204/visual.json +109 -0
  196. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/31c21f8cbeb3b208940a/visual.json +209 -0
  197. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/3ab72c25062437149b03/visual.json +17 -0
  198. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5959867442abcb0ce2b3/mobile.json +11 -0
  199. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5959867442abcb0ce2b3/visual.json +788 -0
  200. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5b96e0f88d192b044a13/mobile.json +11 -0
  201. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5b96e0f88d192b044a13/visual.json +592 -0
  202. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/64e749a63d0786000e22/mobile.json +11 -0
  203. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/64e749a63d0786000e22/visual.json +468 -0
  204. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/7ae1ca604edac6586ad0/mobile.json +11 -0
  205. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/7ae1ca604edac6586ad0/visual.json +1310 -0
  206. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/840300733885141a6603/mobile.json +11 -0
  207. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/840300733885141a6603/visual.json +175 -0
  208. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/a38448cdb203279273d2/mobile.json +11 -0
  209. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/a38448cdb203279273d2/visual.json +516 -0
  210. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d1e86f213a3841d12e20/visual.json +328 -0
  211. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d4a484c1bcc8ee3075e2/mobile.json +11 -0
  212. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d4a484c1bcc8ee3075e2/visual.json +432 -0
  213. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d87cb5cf06acca19bbb5/mobile.json +11 -0
  214. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d87cb5cf06acca19bbb5/visual.json +241 -0
  215. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/e243da2677209ed69408/mobile.json +11 -0
  216. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/e243da2677209ed69408/visual.json +174 -0
  217. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/f3aaf24f5b22b67573b0/mobile.json +11 -0
  218. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/f3aaf24f5b22b67573b0/visual.json +333 -0
  219. package/templates/base-template/base-template.Report/definition/pages/pages.json +8 -0
  220. package/templates/base-template/base-template.Report/definition/report.json +89 -0
  221. package/templates/base-template/base-template.Report/definition/version.json +4 -0
  222. package/templates/base-template/base-template.Report/definition.pbir +9 -0
  223. package/templates/base-template/base-template.SemanticModel/.platform +11 -0
  224. package/templates/base-template/base-template.SemanticModel/definition/cultures/es-AR.tmdl +11185 -0
  225. package/templates/base-template/base-template.SemanticModel/definition/database.tmdl +3 -0
  226. package/templates/base-template/base-template.SemanticModel/definition/expressions.tmdl +234 -0
  227. package/templates/base-template/base-template.SemanticModel/definition/functions.tmdl +637 -0
  228. package/templates/base-template/base-template.SemanticModel/definition/model.tmdl +82 -0
  229. package/templates/base-template/base-template.SemanticModel/definition/relationships.tmdl +271 -0
  230. package/templates/base-template/base-template.SemanticModel/definition/tables/Calendario.tmdl +200 -0
  231. package/templates/base-template/base-template.SemanticModel/definition/tables/Campa/303/261as.tmdl +75 -0
  232. package/templates/base-template/base-template.SemanticModel/definition/tables/Canales.tmdl +84 -0
  233. package/templates/base-template/base-template.SemanticModel/definition/tables/Clientes.tmdl +143 -0
  234. package/templates/base-template/base-template.SemanticModel/definition/tables/Devoluciones.tmdl +95 -0
  235. package/templates/base-template/base-template.SemanticModel/definition/tables/Ejecuci/303/263n proyectos.tmdl" +130 -0
  236. package/templates/base-template/base-template.SemanticModel/definition/tables/Entregas.tmdl +122 -0
  237. package/templates/base-template/base-template.SemanticModel/definition/tables/Equipos m/303/251tricas.tmdl" +40 -0
  238. package/templates/base-template/base-template.SemanticModel/definition/tables/Equipos.tmdl +73 -0
  239. package/templates/base-template/base-template.SemanticModel/definition/tables/Horas.tmdl +122 -0
  240. package/templates/base-template/base-template.SemanticModel/definition/tables/Interacciones clientes.tmdl +146 -0
  241. package/templates/base-template/base-template.SemanticModel/definition/tables/Leads.tmdl +119 -0
  242. package/templates/base-template/base-template.SemanticModel/definition/tables/Monedas.tmdl +44 -0
  243. package/templates/base-template/base-template.SemanticModel/definition/tables/Movimientos financieros.tmdl +145 -0
  244. package/templates/base-template/base-template.SemanticModel/definition/tables/M/303/251tricas.tmdl +1294 -0
  245. package/templates/base-template/base-template.SemanticModel/definition/tables/N/303/263mina.tmdl +110 -0
  246. package/templates/base-template/base-template.SemanticModel/definition/tables/Oportunidades.tmdl +135 -0
  247. package/templates/base-template/base-template.SemanticModel/definition/tables/Presupuesto.tmdl +125 -0
  248. package/templates/base-template/base-template.SemanticModel/definition/tables/Productos.tmdl +98 -0
  249. package/templates/base-template/base-template.SemanticModel/definition/tables/Proyectos.tmdl +77 -0
  250. package/templates/base-template/base-template.SemanticModel/definition/tables/Servicios.tmdl +75 -0
  251. package/templates/base-template/base-template.SemanticModel/definition/tables/Tareas proyecto.tmdl +102 -0
  252. package/templates/base-template/base-template.SemanticModel/definition/tables/Tipo de cambio.tmdl +67 -0
  253. package/templates/base-template/base-template.SemanticModel/definition/tables/Ventas.tmdl +180 -0
  254. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux An/303/241lisis dimensiones.tmdl" +38 -0
  255. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Comparaciones.tmdl +227 -0
  256. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Compatibilidad m/303/251trica-dimensi/303/263n.tmdl" +68 -0
  257. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Modelo configuraci/303/263n.tmdl" +44 -0
  258. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Modo fechas.tmdl +36 -0
  259. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux M/303/251trica-Equipo.tmdl" +102 -0
  260. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Overrides m/303/251trica-dimensi/303/263n.tmdl" +54 -0
  261. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Per/303/255odos.tmdl" +182 -0
  262. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Rango fechas modo.tmdl +36 -0
  263. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Rango fechas.tmdl +27 -0
  264. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Vista de calendario.tmdl +30 -0
  265. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC C/303/241lculo.tmdl" +70 -0
  266. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC Eje X.tmdl +63 -0
  267. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC M/303/251trica.tmdl" +374 -0
  268. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC Tipo c/303/241lculo.tmdl" +223 -0
  269. package/templates/base-template/base-template.SemanticModel/definition/tables/_PC Dimensi/303/263n.tmdl" +98 -0
  270. package/templates/base-template/base-template.SemanticModel/definition/tables/_PC Eje X.tmdl +68 -0
  271. package/templates/base-template/base-template.SemanticModel/definition/tables//303/223rdenes servicio.tmdl" +151 -0
  272. package/templates/base-template/base-template.SemanticModel/definition.pbism +5 -0
  273. package/templates/base-template/base-template.SemanticModel/diagramLayout.json +568 -0
  274. package/templates/base-template/base-template.pbip +14 -0
  275. package/templates/base-template/template.manifest.json +41 -0
  276. package/theme/BISuperpowers.json +3888 -0
package/README.md ADDED
@@ -0,0 +1,849 @@
1
+ <div align="center">
2
+
3
+ <pre>
4
+ ██████╗ ██╗
5
+ ██╔══██╗██║
6
+ ██████╔╝██║
7
+ ██╔══██╗██║
8
+ ██████╔╝██║
9
+ ╚═════╝ ╚═╝
10
+ ███████╗██╗ ██╗██████╗ ███████╗██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ ███████╗
11
+ ██╔════╝██║ ██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗██╔════╝
12
+ ███████╗██║ ██║██████╔╝█████╗ ██████╔╝██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝███████╗
13
+ ╚════██║██║ ██║██╔═══╝ ██╔══╝ ██╔══██╗██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗╚════██║
14
+ ███████║╚██████╔╝██║ ███████╗██║ ██║██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║███████║
15
+ ╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚══════╝
16
+ </pre>
17
+
18
+ **Power BI superpowers for AI agents**
19
+
20
+ [![npm version](https://img.shields.io/npm/v/bi-superpowers)](https://www.npmjs.com/package/bi-superpowers)
21
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
22
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org)
23
+ [![Power BI](https://img.shields.io/badge/Power%20BI-Desktop-F2C811?logo=powerbi)](https://powerbi.microsoft.com)
24
+
25
+ </div>
26
+
27
+ > **Your AI assistant ships Power BI work that holds up in production.**
28
+ > 9 specialist skills, 2 official Microsoft MCP servers, one CLI.
29
+
30
+ ```bash
31
+ npm install -g bi-superpowers
32
+ super install --all --yes
33
+ ```
34
+
35
+ Restart your agent once after install. That's the whole setup.
36
+
37
+ Works with **Codex**, **Claude Code**, **GitHub Copilot**, **Gemini CLI**, and **Kilo Code** — same operating contract across every agent.
38
+
39
+ Fully open source under MIT. No account, no login, no license keys — every command works offline.
40
+
41
+ > Status: `v1.0.x` is the current stable release line. Every public slash command lives under the `/bi-*` namespace.
42
+ >
43
+ > Validation baseline: developed and stress-tested first in **Codex**. Other agents are shipped as compatibility targets unless a release note says otherwise.
44
+
45
+ ---
46
+
47
+ ## Table of Contents
48
+
49
+ - [Fundamentals](#fundamentals)
50
+ - [Install From Terminal](#install-from-terminal)
51
+ - [Ask Your Agent To Install It](#ask-your-agent-to-install-it)
52
+ - [Skills Included](#skills-included)
53
+ - [Quick Demos](#quick-demos)
54
+ - [Supported Agents](#supported-agents)
55
+ - [MCP Servers & External Tools](#mcp-servers--external-tools)
56
+ - [CLI Reference](#cli-reference)
57
+ - [Plugin File Tree](#plugin-file-tree)
58
+ - [Requirements](#requirements)
59
+ - [Updates](#updates)
60
+ - [What Ships To npm](#what-ships-to-npm)
61
+ - [Development](#development)
62
+ - [Project Validation Harness](#project-validation-harness)
63
+ - [Troubleshooting](#troubleshooting)
64
+ - [FAQ](#faq)
65
+
66
+ ---
67
+
68
+ ## Fundamentals
69
+
70
+ If you're new to AI coding agents, four words you need to know:
71
+
72
+ - **Agent** — a conversational AI assistant that reads, writes, and modifies code in your project.
73
+ - **Plugin** — an installable package that gives an agent new capabilities: specialist skills, MCP connections, configuration.
74
+ - **Skill** — a focused expert inside a plugin. Each skill owns one thing (modeling, DAX, performance).
75
+ - **MCP** — Model Context Protocol. An open standard that lets an agent talk to external tools.
76
+
77
+ BI Agent Superpowers is a plugin: 9 skills, 2 MCPs, one CLI. The agent does the typing; the skills tell it which tools, files, prerequisites, and guardrails apply to Power BI work — so it ships work that holds up in production instead of inventing DAX, PBIR, or setup steps.
78
+
79
+ ---
80
+
81
+ ## Install From Terminal
82
+
83
+ ### All Supported Agents
84
+
85
+ Use this when you want one command path for Codex and the compatibility adapters for Claude Code, GitHub Copilot, Gemini CLI, and Kilo Code.
86
+
87
+ ```bash
88
+ npm install -g bi-superpowers
89
+ super install --all --yes
90
+ ```
91
+
92
+ Restart your agent after installation so it reloads skills and MCP configuration.
93
+
94
+ ### Interactive Install
95
+
96
+ Use this when you want the installer to detect agents and ask where to install.
97
+
98
+ ```bash
99
+ npm install -g bi-superpowers
100
+ super install
101
+ ```
102
+
103
+ ### Install For One Agent Only
104
+
105
+ ```bash
106
+ # Claude Code user-level skills + MCP config
107
+ super install --agent claude-code --yes
108
+
109
+ # GitHub Copilot
110
+ super install --agent github-copilot --yes
111
+
112
+ # Codex
113
+ super install --agent codex --yes
114
+
115
+ # Gemini CLI
116
+ super install --agent gemini-cli --yes
117
+
118
+ # Kilo Code
119
+ super install --agent kilo --yes
120
+ ```
121
+
122
+ ### Claude Code Marketplace Install
123
+
124
+ If you use Claude Code, the marketplace path is the cleanest install experience for that agent. Claude Code is a compatibility target; Codex remains the primary end-to-end validation baseline.
125
+
126
+ ```text
127
+ /plugin marketplace add luquimbo/bi-superpowers
128
+ /plugin install bi-superpowers
129
+ ```
130
+
131
+ After that, start a new session and run:
132
+
133
+ ```text
134
+ /bi-start
135
+ ```
136
+
137
+ ### Advanced: Optional Local Claude Code Plugin
138
+
139
+ This is only for Claude Code users who deliberately want repo-local slash-command plugin files. Codex, GitHub Copilot, Gemini CLI, and Kilo Code should use `super install` above; do not run `super kickoff` for those agents.
140
+
141
+ Inside a Power BI project repo:
142
+
143
+ ```bash
144
+ super kickoff
145
+ ```
146
+
147
+ This generates project-local Claude Code plugin files:
148
+
149
+ - `.claude-plugin/`
150
+ - `.plugin/`
151
+ - `.mcp.json`
152
+ - `commands/`
153
+ - `skills/`
154
+ - `config.json`
155
+
156
+ Regenerate them later with:
157
+
158
+ ```bash
159
+ super recharge
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Ask Your Agent To Install It
165
+
166
+ If your agent has terminal access, paste one of these prompts.
167
+
168
+ ### Claude Code
169
+
170
+ Use the marketplace path first:
171
+
172
+ ```text
173
+ Install BI Agent Superpowers from the Claude Code marketplace.
174
+
175
+ Run these Claude Code plugin commands:
176
+
177
+ /plugin marketplace add luquimbo/bi-superpowers
178
+ /plugin install bi-superpowers
179
+
180
+ After installation, start the plugin with /bi-start and tell me if any restart or reload is needed.
181
+ ```
182
+
183
+ If you also want project-local plugin files in the current repo for Claude Code only:
184
+
185
+ ```text
186
+ Set up BI Agent Superpowers for this project as a local Claude Code plugin.
187
+
188
+ In the terminal, run:
189
+
190
+ npm install -g bi-superpowers
191
+ super kickoff
192
+
193
+ Then verify that .claude-plugin/, .plugin/, .mcp.json, commands/, skills/, and config.json were created in this repo. Do not modify unrelated files.
194
+ ```
195
+
196
+ ### GitHub Copilot
197
+
198
+ ```text
199
+ Set up BI Agent Superpowers for GitHub Copilot on this machine.
200
+
201
+ In the terminal, run:
202
+
203
+ npm install -g bi-superpowers
204
+ super install --agent github-copilot --yes
205
+
206
+ After it finishes, verify that the GitHub Copilot skills directory and MCP config were updated. Then remind me to restart VS Code or reload Copilot so it picks up the new skills and MCP servers.
207
+ ```
208
+
209
+ ### Codex
210
+
211
+ ```text
212
+ Set up BI Agent Superpowers for Codex on this machine.
213
+
214
+ In the terminal, run:
215
+
216
+ npm install -g bi-superpowers
217
+ super install --agent codex --yes
218
+
219
+ After it finishes, verify that the shared skills were installed under ~/.agents/skills and that the Codex MCP config was updated. Then summarize the installed skills and MCP servers.
220
+
221
+ Do not run super kickoff or super mcp-setup for Codex; those commands are only for optional repo-local Claude Code plugin files.
222
+ ```
223
+
224
+ ### Gemini CLI
225
+
226
+ ```text
227
+ Set up BI Agent Superpowers for Gemini CLI on this machine.
228
+
229
+ In the terminal, run:
230
+
231
+ npm install -g bi-superpowers
232
+ super install --agent gemini-cli --yes
233
+
234
+ After it finishes, verify that ~/.gemini/skills and the Gemini MCP settings were updated. Then tell me to restart Gemini CLI before using the skills.
235
+ ```
236
+
237
+ ### Kilo Code
238
+
239
+ ```text
240
+ Set up BI Agent Superpowers for Kilo Code on this machine.
241
+
242
+ In the terminal, run:
243
+
244
+ npm install -g bi-superpowers
245
+ super install --agent kilo --yes
246
+
247
+ After it finishes, verify that ~/.kilo/skills and ~/.config/kilo/kilo.jsonc were updated. Then tell me to restart Kilo Code before using the skills.
248
+ ```
249
+
250
+ ### Multi-Agent Setup
251
+
252
+ ```text
253
+ Set up BI Agent Superpowers for every supported agent installed on this machine.
254
+
255
+ In the terminal, run:
256
+
257
+ npm install -g bi-superpowers
258
+ super install --all --yes
259
+
260
+ After it finishes, summarize which agents were configured, which MCP files were written, and whether any Windows symlink fallback copied files instead of creating symlinks.
261
+ ```
262
+
263
+ ---
264
+
265
+ ## Skills Included
266
+
267
+ Nine specialist skills. Each owns one thing — and each teaches as it works: it asks in plain business language, explains the *why* before each step, defines terms on first use, and shows a worked example, so a non-technical user learns while the work gets done.
268
+
269
+ ### `/bi-start` — Session Orchestrator
270
+
271
+ Opens a clean session, checks for plugin updates, shows the skill menu, and routes the conversation to the right specialist.
272
+
273
+ Use when starting a new session, when you don't know which skill to invoke, or when you want an update check before work begins.
274
+
275
+ ### `/bi-kickoff` — Project Bootstrap
276
+
277
+ From zero to a working BI project. Bootstraps a fresh project from `base-template`, guides a short business intake, builds a domain semantic model with demo data through MCP, and keeps the project context Codex-first. For an existing PBIP/PBIX project, use `/bi-refactor` instead.
278
+
279
+ Use when starting a brand-new Power BI project or bootstrapping a model from `base-template`. For an existing project, use `/bi-refactor`.
280
+
281
+ ### `/bi-refactor` — Refactor Specialist
282
+
283
+ Cleans up an existing project. Diagnoses an existing PBIP/PBIX, proposes template-assisted fixes, and applies semantic-model cleanup through MCP — preserving report topology, never rebuilding visuals, pages, or bookmarks.
284
+
285
+ Use when modernizing an existing model, migrating it toward `base-template` patterns, or repairing model issues without touching the report layout.
286
+
287
+ ### `/bi-modeling` — Model Architect
288
+
289
+ Star schemas, relationships, TMDL. Designs and audits semantic models against a health checklist (date table, fact/dim split, relationship cardinality, hidden technical columns).
290
+
291
+ Use when designing a new model, refactoring an existing one, or running a health audit before shipping.
292
+
293
+ ### `/bi-dax` — DAX Expert
294
+
295
+ Measures that compute the right thing. Authors, debugs, and optimizes DAX — measures, calculation groups, SE/FE timing, Sallieri patterns, calculation items.
296
+
297
+ Use when writing or fixing measures, untangling time-intelligence, or chasing a slow expression with DAX Studio timings.
298
+
299
+ ### `/bi-performance` — Performance Engineer
300
+
301
+ Diagnose slow models. Fix them. Profiles refreshes and reports with Performance Analyzer, DAX Studio / VertiPaq Analyzer metrics, Tabular Editor 2, and Best Practice Analyzer.
302
+
303
+ Use when reports are slow, when refresh blows up, or when you need a defensible "this is the bottleneck" answer before optimizing.
304
+
305
+ ### `/bi-connect` — MCP Connection Specialist
306
+
307
+ Wire your agent to Power BI Desktop. Connects through the Microsoft Power BI Modeling MCP so the agent can read tables, columns, measures, and relationships, run DAX, and write user-defined functions using current Microsoft Learn syntax and DAXLIB patterns.
308
+
309
+ Use when you need live model access, want to execute DAX queries, or are authoring DAX UDFs. Model writes go through MCP; PBIP files stay as saved/exported version-control snapshots.
310
+
311
+ ### `/bi-powerquery` — Power Query Engineer
312
+
313
+ Connect real data without breaking the demo. Creates strict M staging queries for real business data and appends them to the current model's business tables using the `Data = "Demo"` / `Data = "Real"` contract.
314
+
315
+ Use when wiring real Excel/SQL/SharePoint/API data to a generated BI model, generating `*_Real` staging queries, or keeping demo rows while the report switches between demo and real data. The packaged example knows the full Andina Nexus product-and-services contract; generated projects discover destination tables from the current model instead of assuming a fixed commercial schema.
316
+
317
+ ### `/bi-scorecard` — Scorecards Specialist
318
+
319
+ Targets, goals, and check-ins in Power BI Service. Builds scorecard blueprints from the `base-template` metrics catalog, including the Andina Nexus `Dirección` executive lens and multi-team metric ownership, creates and updates scorecards and goals through REST scripts, and manages check-ins and status rules.
320
+
321
+ Use when creating Power BI Scorecards/Goals from model metrics, defining owners, cadence, targets, and status rules, or refreshing connected goal values.
322
+
323
+ The skill follows Microsoft Learn scorecard limits: no BYOK/RLS, max four subgoal levels, no publish-to-web, no SharePoint scorecard visual embed, no cross-tenant B2B sharing, no Multi-Geo, and no embedded analytics.
324
+
325
+ ## Quick Demos
326
+
327
+ ### Start A Session
328
+
329
+ ```text
330
+ /bi-start
331
+ ```
332
+
333
+ Expected result:
334
+
335
+ - update check;
336
+ - menu of 9 skills;
337
+ - environment hints;
338
+ - next-step recommendation.
339
+
340
+ ### Refactor An Existing Power BI Project
341
+
342
+ ```text
343
+ /bi-refactor
344
+ Diagnose this existing PBIP/PBIX project. Tell me what exists, what is missing, and what to clean up.
345
+ ```
346
+
347
+ Expected result:
348
+
349
+ - project map;
350
+ - risks and missing context;
351
+ - recommended cleanup path (model + measures);
352
+ - report topology preserved — no destructive rebuilds.
353
+
354
+ ### Connect To Power BI Desktop
355
+
356
+ ```text
357
+ /bi-connect
358
+ Connect to the model currently open in Power BI Desktop and list tables, measures, columns, and relationships.
359
+ ```
360
+
361
+ Expected result:
362
+
363
+ - MCP connection check;
364
+ - semantic model snapshot;
365
+ - actionable diagnostics if Desktop or MCP wiring is not ready.
366
+
367
+ ### Write A DAX UDF With DAXLIB As Reference
368
+
369
+ ```text
370
+ /bi-connect
371
+ Write a reusable DAX UDF for gross margin percentage. Use Microsoft Learn for the current UDF syntax and consult DAXLIB patterns before proposing the function.
372
+ ```
373
+
374
+ Expected result:
375
+
376
+ - current UDF syntax/preview check;
377
+ - existing function inspection when a model is connected;
378
+ - DAXLIB-aware pattern selection without vendoring external code by default;
379
+ - tested function draft and validation steps.
380
+
381
+ ## Supported Agents
382
+
383
+ | Agent | Skill install path | MCP config path | Primary usage | Validation status |
384
+ |---|---|---|---|---|
385
+ | Codex | `~/.agents/skills/` | `~/.codex/config.toml` | Natural language with skills and MCPs | Primary end-to-end test baseline |
386
+ | Claude Code | `~/.claude/skills/` or marketplace plugin | `~/.claude.json` | Slash commands and natural language | Compatibility target; not the primary end-to-end QA baseline |
387
+ | GitHub Copilot | `~/.copilot/skills/` | `~/.copilot/mcp-config.json` | Natural language with skills and MCPs | Compatibility target; not the primary end-to-end QA baseline |
388
+ | Gemini CLI | `~/.gemini/skills/` | `~/.gemini/settings.json` | Natural language | Compatibility target; not the primary end-to-end QA baseline |
389
+ | Kilo Code | `~/.kilo/skills/` | `~/.config/kilo/kilo.jsonc` | Natural language | Compatibility target; not the primary end-to-end QA baseline |
390
+
391
+ The installer always writes the universal skill copy to `~/.agents/skills/`, then links or copies agent-specific skill directories as needed.
392
+
393
+ ---
394
+
395
+ ## MCP Servers & External Tools
396
+
397
+ Two official Microsoft MCPs ship pre-wired. One open-source CLI is invoked by `/bi-performance`.
398
+
399
+ | Tool | Owner | Transport | Purpose |
400
+ |---|---|---|---|
401
+ | `powerbi-modeling-mcp` | Microsoft (official) | local stdio | Connects to Power BI Desktop through XMLA for model inspection, DAX queries, and model operations. |
402
+ | `microsoft-learn` | Microsoft (official) | HTTP | Gives the agent access to Microsoft Learn documentation in context. |
403
+ | `Tabular Editor 2 CLI` | Open-source, MIT | local CLI | Best Practice Analyzer runs for diagnostic rule checks; `/bi-performance` does not perform semantic-model or report writes. |
404
+
405
+ You can install the MCPs manually, but `super install` writes the expected MCP config for each selected agent automatically.
406
+ For Codex installs, it also pins per-tool approval gates for sensitive Power BI Modeling MCP calls: semantic-model writes and `trace_operations`, because traces can include query text and write JSON files locally. Connection discovery and DAX query/validation remain ungated by default because they do not mutate the model and are needed for smoke tests; stricter teams can still add host-level approvals for those read/query tools. Other agents rely on their own MCP permission prompts or allowlists.
407
+
408
+ For DAX user-defined functions, `/bi-connect` also points agents at DAXLIB as an upstream reference:
409
+
410
+ - https://github.com/daxlib/daxlib
411
+ - https://docs.daxlib.org/
412
+
413
+ BI Agent Superpowers does not vendor DAXLIB source code. Agents consult it as a reference and only import/adapt specific MIT-licensed functions when the user explicitly requests that.
414
+
415
+ ---
416
+
417
+ ## CLI Reference
418
+
419
+ The package exposes both `super` and `bi-superpowers`:
420
+
421
+ ```bash
422
+ super help
423
+ bi-superpowers help
424
+ ```
425
+
426
+ Common commands:
427
+
428
+ ```bash
429
+ super install # Install 9 skills + 2 MCPs for selected agents
430
+ super uninstall # Remove the skills + 2 MCPs (mirror of install)
431
+ super uninstall --dry-run # Preview what an uninstall would remove
432
+ super kickoff # Advanced: generate optional local Claude Code plugin files
433
+ super recharge # Regenerate optional local Claude Code plugin artifacts
434
+ super create-from-template # Scaffold a new PBIP project from templates/<name>/ into pbip-files/
435
+ super powers # List available skills
436
+ super scan # Compare source skills with generated artifacts
437
+ super checkup # Validate skill content
438
+ super validate-cases # List validation playbooks or print one
439
+ super smoke-test # Run the live base-template smoke test directly
440
+ super validate-projects # Validate repo fixtures + local private project refs
441
+ super build-desktop # Build the Claude Desktop .mcpb extension in the current dir
442
+ super build-desktop --output dist
443
+ super upgrade # Update the global CLI and print refresh steps
444
+ super autoupdate on # Opt-in: silent self-update on each Claude Code session
445
+ super autoupdate off # Turn the auto-update hook back off
446
+ super autoupdate status # Show whether auto-update is enabled
447
+ super help # Show full CLI help
448
+ ```
449
+
450
+ ### Auto-update (opt-in, Claude Code)
451
+
452
+ Off by default. Run `super autoupdate on` (or `super install --auto-update`) to
453
+ register a Claude Code `SessionStart` hook. From then on, each new Claude Code
454
+ session checks **at most once per hour** and, if a newer version exists, silently
455
+ upgrades via npm (`npm install -g bi-superpowers@latest`) and refreshes
456
+ your agents (`super install --all --yes`) in a detached background process — so you
457
+ never install by hand. It is npm-based, so it works even if the GitHub repo is
458
+ private. Turn it off anytime with `super autoupdate off`. Other agents (Codex,
459
+ Copilot, Gemini, Kilo) keep the notify-on-invocation flow plus manual `super upgrade`.
460
+
461
+ ### `super create-from-template`
462
+
463
+ ```bash
464
+ super create-from-template --list
465
+ super create-from-template --template base-template --name <projectName>
466
+ super create-from-template --template base-template --name <projectName> --target /path/to/project
467
+ super create-from-template --template base-template --name <projectName> --dry-run
468
+ super create-from-template --template base-template --name <projectName> --force
469
+ ```
470
+
471
+ Used by the `bi-kickoff` skill PHASE 0 Option A (start from template) so agents do not have to copy files by hand. The command copies `templates/<name>/` into `<target>/pbip-files/<projectName>.*`, renames the PBIP descriptor and the `.SemanticModel/` / `.Report/` folders, rewrites internal cross-references (`.pbip → Report.path`, `definition.pbir → datasetReference.byPath.path`), and regenerates the Fabric `logicalId` in both `.platform` files. It refuses to overwrite an existing PBIP unless `--force` is passed, skips the template's own `AGENTS.md`, skips local Desktop/editor state such as `.pbi`, `localSettings.json`, `cache.abf`, and `DAXQueries`, and when forced cleans only the destination `<projectName>.pbip`, `<projectName>.SemanticModel`, and `<projectName>.Report` paths before copying again.
472
+
473
+ The packaged template is `base-template`, the canonical dynamic-first reference for new Power BI projects. Dynamic metric format strings stay safe and unscaled for numeric visuals; compact abbreviations live in dedicated text helper measures for KPI labels.
474
+
475
+ `super mcp-setup` is intentionally not part of normal setup. It only refreshes MCP config inside an existing local Claude Code plugin created by `super kickoff`; it refuses to write repo-local config in arbitrary projects. For Codex, GitHub Copilot, Gemini CLI, Kilo Code, and normal Claude Code user-level installs, use `super install --all --yes`.
476
+
477
+ ---
478
+
479
+ ## Plugin File Tree
480
+
481
+ ### Local Claude Code Plugin
482
+
483
+ Generated by `super kickoff` or `super recharge`:
484
+
485
+ This tree is optional and Claude Code specific. It is not required for Codex, GitHub Copilot, Gemini CLI, or Kilo Code because those agents use the user-level install created by `super install`.
486
+
487
+ ```text
488
+ project/
489
+ ├─ .claude-plugin/
490
+ │ ├─ plugin.json
491
+ │ ├─ marketplace.json
492
+ │ └─ skill-manifest.json
493
+ ├─ .plugin/
494
+ │ └─ plugin.json
495
+ ├─ .mcp.json
496
+ ├─ commands/
497
+ │ ├─ bi-start.md
498
+ │ ├─ bi-kickoff.md
499
+ │ ├─ bi-connect.md
500
+ │ ├─ bi-modeling.md
501
+ │ ├─ bi-dax.md
502
+ │ ├─ bi-performance.md
503
+ │ ├─ bi-powerquery.md
504
+ │ └─ bi-scorecard.md
505
+ ├─ skills/
506
+ │ ├─ bi-start/
507
+ │ │ ├─ SKILL.md
508
+ │ │ └─ scripts/update-check.js
509
+ │ ├─ bi-kickoff/
510
+ │ │ ├─ SKILL.md
511
+ │ │ └─ scripts/update-check.js
512
+ │ ├─ bi-connect/
513
+ │ │ ├─ SKILL.md
514
+ │ │ └─ scripts/update-check.js
515
+ │ ├─ bi-powerquery/
516
+ │ │ ├─ SKILL.md
517
+ │ │ ├─ references/
518
+ │ │ └─ scripts/
519
+ │ │ ├─ update-check.js
520
+ │ │ ├─ new-powerquery-staging.ps1
521
+ │ │ └─ test-powerquery-contract.ps1
522
+ │ └─ bi-scorecard/
523
+ │ ├─ SKILL.md
524
+ │ └─ scripts/
525
+ │ ├─ update-check.js
526
+ │ ├─ powerbi-scorecards-api.ps1
527
+ │ ├─ powerbi-goals-api.ps1
528
+ │ ├─ powerbi-goal-values-api.ps1
529
+ │ ├─ powerbi-goal-status-rules-api.ps1
530
+ │ └─ new-scorecard-blueprint-from-base-template.ps1
531
+ └─ config.json
532
+ ```
533
+
534
+ ### Build Pipeline
535
+
536
+ ```mermaid
537
+ flowchart TD
538
+ A["src/content/"] --> B["npm run build:plugin"]
539
+ B --> C["commands/*.md"]
540
+ B --> D["skills/*/SKILL.md"]
541
+ B --> E[".claude-plugin/"]
542
+ B --> F[".plugin/"]
543
+ B --> G[".mcp.json"]
544
+ C --> H["Claude Code slash commands"]
545
+ D --> I["Agent skills"]
546
+ G --> J["Power BI Modeling MCP + Microsoft Learn MCP"]
547
+ ```
548
+
549
+ ---
550
+
551
+ ## Requirements
552
+
553
+ ### Base Requirements
554
+
555
+ - Node.js 18 or newer.
556
+ - At least one supported AI agent.
557
+
558
+ ### For `bi-connect`
559
+
560
+ - Windows.
561
+ - Power BI Desktop open.
562
+ - Power BI Modeling MCP available to the agent.
563
+
564
+ ## Updates
565
+
566
+ ### Claude Code Marketplace
567
+
568
+ ```text
569
+ /plugin update bi-superpowers
570
+ ```
571
+
572
+ ### npm / CLI Installs
573
+
574
+ ```bash
575
+ super upgrade
576
+ super install --all --yes
577
+ ```
578
+
579
+ If you created a project-local plugin:
580
+
581
+ ```bash
582
+ cd your-power-bi-project
583
+ super recharge
584
+ ```
585
+
586
+ `super upgrade` intentionally does not run `super install` or `super recharge` automatically. User-profile installs and project-local plugins are separate refresh targets.
587
+
588
+ On Windows, if symlink creation is not available and the installer falls back to copying skills, each re-run mirrors the managed skill directories. Removed or renamed bundled scripts are deleted from the copied install during refresh.
589
+
590
+ ---
591
+
592
+ ## What Ships To npm
593
+
594
+ The npm package includes:
595
+
596
+ ```text
597
+ bin/
598
+ .claude-plugin/
599
+ .plugin/
600
+ .mcp.json
601
+ commands/
602
+ skills/
603
+ src/content/
604
+ templates/
605
+ desktop-extension/
606
+ config.json
607
+ config.example.json
608
+ README.md
609
+ CHANGELOG.md
610
+ AGENTS.md
611
+ LICENSE
612
+ package.json
613
+ ```
614
+
615
+ The npm package does not include:
616
+
617
+ ```text
618
+ validation/
619
+ validation.local.example.json
620
+ validation.local.json
621
+ node_modules/
622
+ *.test.js
623
+ **/.pbi/localSettings.json
624
+ ```
625
+
626
+ `templates/` ships the canonical `templates/base-template/` PBIP package with `AGENTS.md`, semantic model, and report definition. It is the "template-as-reference" used by all specialist skills and the source for the `bi-kickoff` "create from template" branch invoked via `super create-from-template`, which copies `templates/base-template/` into `<user-repo>/pbip-files/<projectName>.*` with renaming, cross-reference rewriting, and regenerated logicalIds. The base template includes Power Query pre-converted currency base columns, packaged sample queries grouped under `Sample Dataset\Dimensiones` and `Sample Dataset\Hechos`, `_GC Métrica` / `_GC Tipo cálculo` calculation groups, guarded metric dispatch, metric-aware dynamic dimensions through `_PC Dimensión`, a `Equipos métricas[Equipo]` slicer for filtering the metric selector by team, multi-team metric memberships through `_Aux Métrica-Equipo`, nine Equipos (eight operating teams plus `Dirección`) for the Andina Nexus product-and-services demo company, team-specific model-view diagrams, safe unscaled numeric model formats, compact KPI label helpers, cleaned key metadata, and a `Data = "Demo"` contract on appendable business tables. Demo IDs are entity-coded text values such as `ClienteA25D`, so relationships stay on the original ID columns while real rows can append with `Data = "Real"` and their own source IDs. `/bi-powerquery` creates the user-side real staging queries; the template itself does not ship unloaded `*_Real` queries. `/bi-scorecard` uses `base-template` as a metrics-catalog reference for Service scorecards; it does not add a universal targets model to the template.
627
+ `validation/` is repo-only. It stores sanitized validation descriptors and playbooks for project QA; private project paths live in `validation.local.json`, which must never be committed.
628
+
629
+ ---
630
+
631
+ ## Development
632
+
633
+ Install dependencies:
634
+
635
+ ```bash
636
+ npm install
637
+ ```
638
+
639
+ Regenerate plugin artifacts:
640
+
641
+ ```bash
642
+ npm run build:plugin
643
+ ```
644
+
645
+ Validate locally:
646
+
647
+ ```bash
648
+ npm test
649
+ npm run lint
650
+ npm run format:check
651
+ npm pack --dry-run --ignore-scripts
652
+ ```
653
+
654
+ Source of truth:
655
+
656
+ ```text
657
+ src/content/
658
+ ```
659
+
660
+ Generated artifacts:
661
+
662
+ ```text
663
+ commands/
664
+ skills/
665
+ .claude-plugin/
666
+ .plugin/
667
+ .mcp.json
668
+ ```
669
+
670
+ Edit source files first, then regenerate generated outputs.
671
+
672
+ ---
673
+
674
+ ## Project Validation Harness
675
+
676
+ In a source checkout, the repo can validate BI Agent Superpowers against real
677
+ Power BI work without committing customer repositories.
678
+
679
+ Public fixtures live in:
680
+
681
+ ```text
682
+ templates/base-template/
683
+ ```
684
+
685
+ Sanitized validation metadata lives in:
686
+
687
+ ```text
688
+ validation/projects/
689
+ validation/cases/
690
+ ```
691
+
692
+ Private local project paths live only in:
693
+
694
+ ```text
695
+ validation.local.json
696
+ ```
697
+
698
+ That file is gitignored. Copy `validation.local.example.json` when you want to
699
+ map client projects on your own machine.
700
+ Descriptors ending in `.example.json` are templates for humans and are ignored
701
+ by validation runs, including `--strict`.
702
+
703
+ Run the structural validation:
704
+
705
+ ```bash
706
+ super validate-projects --project base-template
707
+ ```
708
+
709
+ Run every descriptor, treating skipped private projects as failures:
710
+
711
+ ```bash
712
+ super validate-projects --strict
713
+ ```
714
+
715
+ For a live Power BI Desktop smoke test of the canonical template, use
716
+ `validation/cases/base-template-smoke-test.md` after the structural validation
717
+ passes. `super smoke-test` will probe the open Desktop sessions automatically
718
+ and keep the one that matches the expected evidence, including seven metrics per
719
+ team plus weekly fact, metric, and compatible dimension coverage for the last
720
+ 720 days.
721
+
722
+ To discover the repo playbooks or print one in full:
723
+
724
+ ```bash
725
+ super validate-cases
726
+ super validate-cases --case base-template-smoke-test
727
+ ```
728
+
729
+ This command is non-destructive. It checks project paths and required files; it
730
+ does not open Power BI Desktop, edit PBIP files, or copy private repos.
731
+
732
+ ---
733
+
734
+ ## Publishing
735
+
736
+ Publishing is handled by GitHub Actions. Do not run `npm publish` locally.
737
+
738
+ Expected release flow:
739
+
740
+ ```bash
741
+ npm version patch --no-git-tag-version
742
+ npm run build:plugin
743
+ npm test
744
+ npm run lint
745
+ npm run format:check
746
+ git add package.json package-lock.json commands/ skills/ .claude-plugin/ .plugin/ .mcp.json
747
+ git commit -m "chore: release vX.Y.Z"
748
+ git tag -a vX.Y.Z -m "vX.Y.Z"
749
+ git push origin main --follow-tags
750
+ ```
751
+
752
+ The publish workflow runs on `v*` tag pushes. Manual dispatch is constrained to an already-tagged release commit on `main`.
753
+
754
+ ---
755
+
756
+ ## Troubleshooting
757
+
758
+ ### `super` is not found after npm install
759
+
760
+ Check the global package:
761
+
762
+ ```bash
763
+ npm list -g bi-superpowers
764
+ ```
765
+
766
+ Try the long binary name:
767
+
768
+ ```bash
769
+ bi-superpowers help
770
+ ```
771
+
772
+ If npm's global bin directory is not in `PATH`, fix `PATH` or use your package manager's global binary setup instructions.
773
+
774
+ ### The Agent Does Not See The Skills
775
+
776
+ 1. Restart the agent.
777
+ 2. Run `super install --all --yes` again.
778
+ 3. Check the relevant skill directory.
779
+ 4. If using a local Claude Code plugin, run `super recharge` inside that repo.
780
+
781
+ ### Power BI Desktop Does Not Connect
782
+
783
+ 1. Open Power BI Desktop.
784
+ 2. Open the target `.pbix` or PBIP project.
785
+ 3. Confirm the Power BI Modeling MCP is installed.
786
+ 4. Restart the agent after MCP installation.
787
+
788
+ ---
789
+
790
+ ## FAQ
791
+
792
+ ### Does This Replace Power BI Desktop?
793
+
794
+ No. Power BI Desktop remains the visual and report authoring tool. The plugin helps agents inspect project files and use MCPs for semantic-model work, but PBIP files are treated as version-control snapshots. Agents must not patch `.Report/**` PBIR JSON, `visual.json`, bookmarks, slicer/card settings, themes, or report resources directly.
795
+
796
+ Existing-visual dimension/measure binding changes are the only report-side exception: they may happen in Power BI Desktop manually, or through a future dedicated rebind command that proves a binding-only diff with dry-run, backup, validation, and an explicit source-to-target mapping. No safe report rebind command currently ships with this plugin, so agents must not patch PBIR JSON by hand, even for a "simple measure replacement."
797
+
798
+ Microsoft Learn's PBIP project guidance also marks `report.json`, `mobileState.json`, `semanticModelDiagramLayout.json`, and semantic-model `diagramLayout.json` as unsupported external-edit surfaces during preview. The plugin treats those files as diagnostic-only.
799
+
800
+ **Report topology is locked.** Agents must never delete, rename, move, or recreate report pages, visuals, mobile layouts, or bookmarks to make a broken report look "fixed." They must not rebuild a "minimal functional report." Any added, deleted, or renamed path under `.Report/**` is a hard stop for semantic-model skills; the correct action is to preserve the report shell and hand the visual repair back to Power BI Desktop.
801
+
802
+ ### Does It Work Outside Windows?
803
+
804
+ The CLI and several skills can run outside Windows. Workflows that depend on Power BI Desktop, especially `bi-connect`, are Windows-first.
805
+
806
+ ### Do I Need Claude Code?
807
+
808
+ No. Codex is the primary development and end-to-end validation baseline for this plugin. Claude Code has a useful compatibility path through marketplace/local plugin artifacts, but it is not the canonical test base unless a release note explicitly says that release was tested there.
809
+
810
+ ### Can I Use Only The MCP Servers?
811
+
812
+ Yes. You can install Microsoft Learn MCP and Power BI Modeling MCP manually. This repo packages them with skills and operational workflows so agents know when and how to use them.
813
+
814
+ ### Does This Send Data To A SaaS Backend?
815
+
816
+ No. The package installs local files, writes local agent config, and uses MCP servers configured on your machine. There is no BI Agent Superpowers SaaS backend.
817
+
818
+ ---
819
+
820
+ ## Contributing
821
+
822
+ Issues and pull requests are welcome:
823
+
824
+ - GitHub: https://github.com/luquimbo/bi-superpowers
825
+ - Issues: https://github.com/luquimbo/bi-superpowers/issues
826
+ - npm: https://www.npmjs.com/package/bi-superpowers
827
+
828
+ Before large changes, read:
829
+
830
+ - `AGENTS.md`
831
+ - `ARCHITECTURE.md`
832
+ - `src/content/`
833
+ - `bin/`
834
+
835
+ ---
836
+
837
+ ## License
838
+
839
+ MIT © Lucas Sanchez ([@luquimbo](https://github.com/luquimbo))
840
+
841
+ ---
842
+
843
+ <div align="center">
844
+
845
+ Open-source Power BI Desktop toolkit for AI coding agents. Built by Lucas Sanchez.
846
+
847
+ [bi-superpowers.dev](https://bi-superpowers.dev) · [npm](https://www.npmjs.com/package/bi-superpowers) · [GitHub](https://github.com/luquimbo/bi-superpowers)
848
+
849
+ </div>