@luquimbo/bi-superpowers 4.1.6 → 5.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 (78) hide show
  1. package/.claude-plugin/marketplace.json +5 -5
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.claude-plugin/skill-manifest.json +17 -17
  4. package/.plugin/plugin.json +1 -1
  5. package/AGENTS.md +34 -8
  6. package/CHANGELOG.md +32 -0
  7. package/README.md +97 -23
  8. package/bin/cli.js +6 -0
  9. package/bin/commands/diff.js +2 -2
  10. package/bin/commands/install.js +3 -3
  11. package/bin/commands/lint.js +2 -2
  12. package/bin/commands/validate-projects.js +425 -0
  13. package/bin/lib/generators/claude-plugin.js +20 -5
  14. package/bin/lib/generators/shared.js +7 -7
  15. package/bin/lib/skills.js +5 -5
  16. package/bin/postinstall.js +3 -3
  17. package/commands/{pbi-connect.md → bi-connect.md} +151 -3
  18. package/commands/{project-kickoff.md → bi-kickoff.md} +9 -9
  19. package/commands/{report-design.md → bi-report.md} +12 -12
  20. package/commands/bi-start.md +20 -20
  21. package/desktop-extension/manifest.json +1 -1
  22. package/package.json +1 -1
  23. package/skills/{pbi-connect → bi-connect}/SKILL.md +153 -5
  24. package/skills/{pbi-connect → bi-connect}/scripts/update-check.js +1 -1
  25. package/skills/{project-kickoff → bi-kickoff}/SKILL.md +11 -11
  26. package/skills/{report-design → bi-kickoff}/scripts/update-check.js +1 -1
  27. package/skills/{report-design → bi-report}/SKILL.md +14 -14
  28. package/skills/{report-design → bi-report}/references/layouts/hr.md +1 -1
  29. package/{src/content/skills/report-design → skills/bi-report}/references/native-visuals.md +1 -1
  30. package/{src/content/skills/report-design → skills/bi-report}/references/pbir-preview-activation.md +3 -3
  31. package/{src/content/skills/report-design → skills/bi-report}/references/troubleshooting.md +1 -1
  32. package/skills/{project-kickoff → bi-report}/scripts/update-check.js +1 -1
  33. package/skills/bi-start/SKILL.md +21 -21
  34. package/skills/bi-start/scripts/update-check.js +1 -1
  35. package/src/content/base.md +3 -3
  36. package/src/content/routing.md +20 -19
  37. package/src/content/skills/{pbi-connect.md → bi-connect.md} +149 -1
  38. package/src/content/skills/{project-kickoff.md → bi-kickoff.md} +8 -8
  39. package/src/content/skills/{report-design → bi-report}/SKILL.md +11 -11
  40. package/src/content/skills/{report-design → bi-report}/references/layouts/hr.md +1 -1
  41. package/{skills/report-design → src/content/skills/bi-report}/references/native-visuals.md +1 -1
  42. package/{skills/report-design → src/content/skills/bi-report}/references/pbir-preview-activation.md +3 -3
  43. package/{skills/report-design → src/content/skills/bi-report}/references/troubleshooting.md +1 -1
  44. package/src/content/skills/bi-start.md +20 -20
  45. /package/skills/{report-design → bi-report}/references/cli-commands.md +0 -0
  46. /package/skills/{report-design → bi-report}/references/cli-setup.md +0 -0
  47. /package/skills/{report-design → bi-report}/references/close-write-open-pattern.md +0 -0
  48. /package/skills/{report-design → bi-report}/references/layouts/finance.md +0 -0
  49. /package/skills/{report-design → bi-report}/references/layouts/generic.md +0 -0
  50. /package/skills/{report-design → bi-report}/references/layouts/marketing.md +0 -0
  51. /package/skills/{report-design → bi-report}/references/layouts/operations.md +0 -0
  52. /package/skills/{report-design → bi-report}/references/layouts/sales.md +0 -0
  53. /package/skills/{report-design → bi-report}/references/pbi-desktop-installation.md +0 -0
  54. /package/skills/{report-design → bi-report}/references/slicer.md +0 -0
  55. /package/skills/{report-design → bi-report}/references/textbox.md +0 -0
  56. /package/skills/{report-design → bi-report}/references/themes/BISuperpowers.json +0 -0
  57. /package/skills/{report-design → bi-report}/references/visual-types.md +0 -0
  58. /package/skills/{report-design → bi-report}/scripts/apply-theme.js +0 -0
  59. /package/skills/{report-design → bi-report}/scripts/create-visual.js +0 -0
  60. /package/skills/{report-design → bi-report}/scripts/ensure-pbi-cli.sh +0 -0
  61. /package/skills/{report-design → bi-report}/scripts/validate-pbir.js +0 -0
  62. /package/src/content/skills/{report-design → bi-report}/references/cli-commands.md +0 -0
  63. /package/src/content/skills/{report-design → bi-report}/references/cli-setup.md +0 -0
  64. /package/src/content/skills/{report-design → bi-report}/references/close-write-open-pattern.md +0 -0
  65. /package/src/content/skills/{report-design → bi-report}/references/layouts/finance.md +0 -0
  66. /package/src/content/skills/{report-design → bi-report}/references/layouts/generic.md +0 -0
  67. /package/src/content/skills/{report-design → bi-report}/references/layouts/marketing.md +0 -0
  68. /package/src/content/skills/{report-design → bi-report}/references/layouts/operations.md +0 -0
  69. /package/src/content/skills/{report-design → bi-report}/references/layouts/sales.md +0 -0
  70. /package/src/content/skills/{report-design → bi-report}/references/pbi-desktop-installation.md +0 -0
  71. /package/src/content/skills/{report-design → bi-report}/references/slicer.md +0 -0
  72. /package/src/content/skills/{report-design → bi-report}/references/textbox.md +0 -0
  73. /package/src/content/skills/{report-design → bi-report}/references/themes/BISuperpowers.json +0 -0
  74. /package/src/content/skills/{report-design → bi-report}/references/visual-types.md +0 -0
  75. /package/src/content/skills/{report-design → bi-report}/scripts/apply-theme.js +0 -0
  76. /package/src/content/skills/{report-design → bi-report}/scripts/create-visual.js +0 -0
  77. /package/src/content/skills/{report-design → bi-report}/scripts/ensure-pbi-cli.sh +0 -0
  78. /package/src/content/skills/{report-design → bi-report}/scripts/validate-pbir.js +0 -0
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "AI-powered skills for Power BI Desktop development. Works with Claude Code, GitHub Copilot, Codex, Gemini CLI, and Kilo Code.",
9
- "version": "4.1.6",
9
+ "version": "5.0.0",
10
10
  "repository": "https://github.com/luquimbo/bi-superpowers"
11
11
  },
12
12
  "plugins": [
@@ -16,10 +16,10 @@
16
16
  "source": "./",
17
17
  "strict": false,
18
18
  "skills": [
19
- "./skills/bi-start",
20
- "./skills/pbi-connect",
21
- "./skills/project-kickoff",
22
- "./skills/report-design"
19
+ "./skills/bi-connect",
20
+ "./skills/bi-kickoff",
21
+ "./skills/bi-report",
22
+ "./skills/bi-start"
23
23
  ]
24
24
  }
25
25
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bi-superpowers",
3
3
  "description": "Claude Code plugin for Power BI, Microsoft Fabric, and semantic model workflows powered by the official Microsoft MCP servers.",
4
- "version": "4.1.6",
4
+ "version": "5.0.0",
5
5
  "author": {
6
6
  "name": "Lucas Sanchez"
7
7
  },
@@ -1,39 +1,39 @@
1
1
  {
2
2
  "name": "bi-superpowers",
3
- "version": "4.1.6",
3
+ "version": "5.0.0",
4
4
  "skillCount": 4,
5
5
  "skills": [
6
6
  {
7
- "name": "bi-start",
8
- "title": "BI Start Skill",
9
- "description": "Use when the user asks about BI Start Skill, especially phrases like \"bi-start\", \"bi start\", \"/bi-start\", \"empezar\", \"comenzar\", \"arranco\".",
10
- "category": "command",
11
- "triggerCount": 22,
12
- "path": "skills/bi-start/SKILL.md"
13
- },
14
- {
15
- "name": "pbi-connect",
7
+ "name": "bi-connect",
16
8
  "title": "Power BI MCP Connection Skill",
17
- "description": "Use when the user asks about Power BI MCP Connection Skill, especially phrases like \"connect Power BI\", \"PBI connection\", \"MCP connection\", \"Power BI MCP\", \"modeling mcp\", \"Power BI Modeling MCP\".",
9
+ "description": "Use when the user asks about Power BI MCP Connection Skill, especially phrases like \"connect Power BI\", \"PBI connection\", \"MCP connection\", \"Power BI MCP\", \"DAX UDF\", \"DAX user-defined function\".",
18
10
  "category": "command",
19
- "triggerCount": 15,
20
- "path": "skills/pbi-connect/SKILL.md"
11
+ "triggerCount": 26,
12
+ "path": "skills/bi-connect/SKILL.md"
21
13
  },
22
14
  {
23
- "name": "project-kickoff",
15
+ "name": "bi-kickoff",
24
16
  "title": "Project Kickoff Skill",
25
17
  "description": "Use when the user asks about Project Kickoff Skill, especially phrases like \"I'm starting a brand-new BI project from scratch\", \"analizar proyecto\", \"analyze project\", \"project kickoff\", \"nuevo proyecto\", \"new project\".",
26
18
  "category": "command",
27
19
  "triggerCount": 15,
28
- "path": "skills/project-kickoff/SKILL.md"
20
+ "path": "skills/bi-kickoff/SKILL.md"
29
21
  },
30
22
  {
31
- "name": "report-design",
23
+ "name": "bi-report",
32
24
  "title": "Report Design Skill",
33
25
  "description": "Use when the user asks about Report Design Skill, especially phrases like \"crear reportes\", \"armar el reporte\", \"diseñar reporte\", \"report design\", \"create reports\", \"build dashboard\".",
34
26
  "category": "command",
35
27
  "triggerCount": 9,
36
- "path": "skills/report-design/SKILL.md"
28
+ "path": "skills/bi-report/SKILL.md"
29
+ },
30
+ {
31
+ "name": "bi-start",
32
+ "title": "BI Start Skill",
33
+ "description": "Use when the user asks about BI Start Skill, especially phrases like \"bi-start\", \"bi start\", \"/bi-start\", \"empezar\", \"comenzar\", \"arranco\".",
34
+ "category": "command",
35
+ "triggerCount": 22,
36
+ "path": "skills/bi-start/SKILL.md"
37
37
  }
38
38
  ]
39
39
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "spec": "open-plugin-spec@1",
3
3
  "name": "bi-superpowers",
4
- "version": "4.1.6",
4
+ "version": "5.0.0",
5
5
  "description": "Claude Code plugin for Power BI, Microsoft Fabric, and semantic model workflows powered by the official Microsoft MCP servers.",
6
6
  "author": {
7
7
  "name": "Lucas Sanchez"
package/AGENTS.md CHANGED
@@ -15,6 +15,7 @@
15
15
  - `src/content/`
16
16
  - `bin/`
17
17
  - `config.json`
18
+ - `validation/` (repo-only project validation descriptors and playbooks)
18
19
 
19
20
  ## Publishing to npm (for AI agents)
20
21
 
@@ -99,19 +100,19 @@ npm install -g @luquimbo/bi-superpowers
99
100
  super install
100
101
  ```
101
102
 
102
- The shared v4.1.x contract is:
103
- - **4 skills** — `bi-start` (session opener), `project-kickoff`, `pbi-connect`, `report-design`
103
+ The shared v5.0.x contract is:
104
+ - **4 skills** — `bi-start` (session opener), `bi-kickoff`, `bi-connect`, `bi-report`
104
105
  - **2 MCP servers** — `powerbi-modeling-mcp`, `microsoft-learn`
105
106
 
106
107
  Agent-specific behavior:
107
108
  - **All agents** — the primary install is user-level via `super install`, not repo-local.
108
- - **Claude Code** — `super kickoff` can optionally generate a project-local plugin with slash commands: `/bi-start`, `/project-kickoff`, `/pbi-connect`, `/report-design`.
109
+ - **Claude Code** — `super kickoff` can optionally generate a project-local plugin with slash commands: `/bi-start`, `/bi-kickoff`, `/bi-connect`, `/bi-report`.
109
110
  - **GitHub Copilot** — uses the installed user-level skills + MCP config via natural-language prompts.
110
111
  - **Codex** — uses the installed user-level skills + MCP config via natural-language prompts. Do not run `super kickoff` for Codex setup.
111
112
  - **Gemini CLI** — uses the installed user-level skills + MCP config via natural-language prompts.
112
113
  - **Kilo Code** — uses the installed user-level skills + MCP config via natural-language prompts.
113
114
 
114
- `/report-design` has one extra runtime prerequisite on every agent: **Windows + Power BI Desktop (standalone) + Python 3.10+ + `pipx` + `pbi-cli-tool`**. The bundled Node scripts handle visual/theme authoring, but the current flow still uses `pbi` for connect, page ops, and validate. If that stack is not available yet, start with `bi-start`, `project-kickoff`, or `pbi-connect`.
115
+ `/bi-report` has one extra runtime prerequisite on every agent: **Windows + Power BI Desktop (standalone) + Python 3.10+ + `pipx` + `pbi-cli-tool`**. The bundled Node scripts handle visual/theme authoring, but the current flow still uses `pbi` for connect, page ops, and validate. If that stack is not available yet, start with `bi-start`, `bi-kickoff`, or `bi-connect`.
115
116
 
116
117
  ### Claude Desktop
117
118
 
@@ -142,6 +143,29 @@ Los 4 skills quedan disponibles como MCP prompts.
142
143
  5. **Document Results**: Add a review section when task tracking is in scope.
143
144
  6. **Capture Lessons**: Update lessons only when the repo uses it or the user requests it.
144
145
 
146
+ ## Project Validation Harness
147
+
148
+ Use `validation/` when the user wants to test the plugin against public fixtures
149
+ or private client projects. Keep this boundary:
150
+
151
+ - `examples/smoke-test/` is the public fixture area.
152
+ - `validation/projects/*.json` stores sanitized metadata only.
153
+ - `validation/cases/*.md` stores manual validation playbooks.
154
+ - `validation.local.json` stores private local repo paths and is gitignored.
155
+ - `validation/runs/` stores local logs and is gitignored.
156
+
157
+ Never copy customer repositories, `.pbix`, Excel files, credentials,
158
+ screenshots with private data, or private Git remotes into this public repo. Run
159
+ structural checks with:
160
+
161
+ ```bash
162
+ super validate-projects --project super-test
163
+ super validate-projects --strict
164
+ ```
165
+
166
+ MCP-backed validation still happens in the external client repo or public
167
+ fixture; this repo records only sanitized evidence and repeatable checks.
168
+
145
169
  ## Core Principles
146
170
 
147
171
  - **Simplicity First**: Minimal, clear changes.
@@ -153,9 +177,9 @@ Los 4 skills quedan disponibles como MCP prompts.
153
177
  | Skill | Purpose | Trigger |
154
178
  |-------|---------|---------|
155
179
  | `/bi-start` | Session opener: environment snapshot, update check, and routing to the specialist skills | "bi-start", "empezar", "start session" |
156
- | `/project-kickoff` | Analyze and plan BI projects | "analyze project", "new project" |
157
- | `/pbi-connect` | Connect to Power BI Desktop | "connect Power BI", "MCP" |
158
- | `/report-design` | Generate PBIR report pages via bundled Node scripts | "report design", "crear reportes" |
180
+ | `/bi-kickoff` | Analyze and plan BI projects | "analyze project", "new project" |
181
+ | `/bi-connect` | Connect to Power BI Desktop and guide DAX UDF authoring with Microsoft Learn + DAXLIB references | "connect Power BI", "MCP", "DAX UDF", "DAXLIB" |
182
+ | `/bi-report` | Generate PBIR report pages via bundled Node scripts | "report design", "crear reportes" |
159
183
 
160
184
  ## MCP Servers (2)
161
185
 
@@ -186,7 +210,7 @@ BI Agent Superpowers installs skills and MCP configuration at the user level for
186
210
  project/
187
211
  ├── .claude-plugin/plugin.json # Plugin manifest
188
212
  ├── .mcp.json # Power BI Modeling + Microsoft Learn MCPs
189
- ├── commands/*.md # 4 slash commands (bi-start, pbi-connect, project-kickoff, report-design)
213
+ ├── commands/*.md # 4 slash commands (bi-start, bi-connect, bi-kickoff, bi-report)
190
214
  ├── skills/*/SKILL.md # 4 skills (discoverable)
191
215
  └── config.json # User preferences
192
216
  ```
@@ -265,6 +289,8 @@ Connect AI assistants directly to Power BI and Excel:
265
289
  | MCP Protocol | https://modelcontextprotocol.io |
266
290
  | Power BI Docs | https://docs.microsoft.com/power-bi |
267
291
  | DAX Guide | https://dax.guide |
292
+ | DAX UDF Docs | https://learn.microsoft.com/en-us/dax/best-practices/dax-user-defined-functions |
293
+ | DAXLIB | https://github.com/daxlib/daxlib |
268
294
 
269
295
  ---
270
296
 
package/CHANGELOG.md CHANGED
@@ -5,6 +5,38 @@ All notable changes to BI Agent Superpowers will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ## [5.0.0] — 2026-04-28
11
+
12
+ ### Breaking
13
+
14
+ - Standardized all public slash commands under the `/bi-*` namespace:
15
+ `/project-kickoff` is now `/bi-kickoff`, `/pbi-connect` is now
16
+ `/bi-connect`, and `/report-design` is now `/bi-report`.
17
+ - Regenerated the Claude Code plugin commands, user-level skills, skill
18
+ manifests, docs, and validation fixtures for the new command names.
19
+
20
+ ### Added
21
+
22
+ - Added the project validation harness and public `super validate-projects`
23
+ QA command for checking the bundled smoke project plus private client
24
+ descriptors without vendoring client repositories.
25
+ - `bi-connect` now includes a DAX UDF wiki that tells installed agents to use
26
+ Microsoft Learn for current UDF syntax and DAXLIB as an upstream reference for
27
+ reusable function patterns, without vendoring DAXLIB source by default.
28
+
29
+ ### Fixed
30
+
31
+ - `super validate-projects` now fails fast when `validation/projects` is missing,
32
+ so running it from the wrong directory cannot false-green with `0 checked`.
33
+ - Generated command and skill edit comments now point folder-based skills at the
34
+ real source path, for example `src/content/skills/bi-report/SKILL.md`.
35
+ - README update instructions use a neutral project placeholder and the BI Report
36
+ runtime table-of-contents anchor now matches the heading.
37
+ - Historical changelog entries were restored to the command and file names that
38
+ actually shipped in those older releases.
39
+
8
40
  ## [4.1.6] — 2026-04-24
9
41
 
10
42
  ### Fixed
package/README.md CHANGED
@@ -16,7 +16,7 @@ This is not a loose prompt pack. It is a reproducible Power BI agent layer:
16
16
  - **1 CLI** (`super`) for install, updates, local plugin generation, checks, and regeneration.
17
17
  - **Claude Code plugin artifacts** with slash commands, discoverable skills, and MCP configuration.
18
18
 
19
- > Status: `v4.1.x` is the first stable release line. Treat it as the practical 1.0 of the project, even though the npm version remains 4.x for monotonic versioning.
19
+ > Status: `v5.0.x` is the current stable release line. The v5 line standardizes every public slash command under the `/bi-*` namespace.
20
20
 
21
21
  ---
22
22
 
@@ -32,10 +32,11 @@ This is not a loose prompt pack. It is a reproducible Power BI agent layer:
32
32
  - [CLI Reference](#cli-reference)
33
33
  - [Plugin File Tree](#plugin-file-tree)
34
34
  - [Requirements](#requirements)
35
- - [Report Design Runtime](#report-design-runtime)
35
+ - [BI Report Runtime](#bi-report-runtime)
36
36
  - [Updates](#updates)
37
37
  - [What Ships To npm](#what-ships-to-npm)
38
38
  - [Development](#development)
39
+ - [Project Validation Harness](#project-validation-harness)
39
40
  - [Troubleshooting](#troubleshooting)
40
41
  - [FAQ](#faq)
41
42
 
@@ -258,7 +259,7 @@ Use it when:
258
259
  - you do not know which skill to invoke;
259
260
  - you want the agent to check update status before work begins.
260
261
 
261
- ### `project-kickoff`
262
+ ### `bi-kickoff`
262
263
 
263
264
  Project analysis and planning skill. It inspects a BI project, explains what exists, identifies gaps, and creates a sensible plan for the next work cycle.
264
265
 
@@ -268,7 +269,7 @@ Use it when:
268
269
  - starting a new PBIP project;
269
270
  - asking an agent to understand project structure before editing.
270
271
 
271
- ### `pbi-connect`
272
+ ### `bi-connect`
272
273
 
273
274
  Power BI Desktop connection skill. It helps the agent connect to the open Power BI Desktop model through the Microsoft Power BI Modeling MCP.
274
275
 
@@ -277,8 +278,9 @@ Use it when:
277
278
  - you need to list tables, columns, measures, or relationships;
278
279
  - you want to execute DAX queries;
279
280
  - you want the agent to inspect or modify the semantic model through Desktop.
281
+ - you want to write or review DAX user-defined functions using current Microsoft Learn syntax and DAXLIB patterns.
280
282
 
281
- ### `report-design`
283
+ ### `bi-report`
282
284
 
283
285
  PBIR report generation skill. It turns a ready semantic model into Power BI report pages using bundled Node scripts, PBIR references, visual allowlists, layouts, themes, and validation.
284
286
 
@@ -310,7 +312,7 @@ Expected result:
310
312
  ### Analyze A Power BI Project
311
313
 
312
314
  ```text
313
- /project-kickoff
315
+ /bi-kickoff
314
316
  Analyze this Power BI repo. Tell me what exists, what is missing, and what plan we should follow.
315
317
  ```
316
318
 
@@ -319,12 +321,12 @@ Expected result:
319
321
  - project map;
320
322
  - risks and missing context;
321
323
  - recommended implementation path;
322
- - handoff to `pbi-connect` or `report-design` when appropriate.
324
+ - handoff to `bi-connect` or `bi-report` when appropriate.
323
325
 
324
326
  ### Connect To Power BI Desktop
325
327
 
326
328
  ```text
327
- /pbi-connect
329
+ /bi-connect
328
330
  Connect to the model currently open in Power BI Desktop and list tables, measures, columns, and relationships.
329
331
  ```
330
332
 
@@ -334,10 +336,24 @@ Expected result:
334
336
  - semantic model snapshot;
335
337
  - actionable diagnostics if Desktop or MCP wiring is not ready.
336
338
 
339
+ ### Write A DAX UDF With DAXLIB As Reference
340
+
341
+ ```text
342
+ /bi-connect
343
+ 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.
344
+ ```
345
+
346
+ Expected result:
347
+
348
+ - current UDF syntax/preview check;
349
+ - existing function inspection when a model is connected;
350
+ - DAXLIB-aware pattern selection without vendoring external code by default;
351
+ - tested function draft and validation steps.
352
+
337
353
  ### Generate A Report Page
338
354
 
339
355
  ```text
340
- /report-design
356
+ /bi-report
341
357
  Create an executive sales page with KPI cards, monthly trend, product ranking, and a slicer panel.
342
358
  ```
343
359
 
@@ -374,6 +390,14 @@ The installer always writes the universal skill copy to `~/.agents/skills/`, the
374
390
 
375
391
  You can install these MCPs manually, but `super install` writes the expected MCP config for each selected agent automatically.
376
392
 
393
+ For DAX user-defined functions, `bi-connect` also points agents at DAXLIB as an upstream reference:
394
+
395
+ - https://github.com/daxlib/daxlib
396
+ - https://docs.daxlib.org/
397
+ - https://github.com/daxlib
398
+
399
+ BI Agent Superpowers does not vendor DAXLIB source code. Agents should consult it as a reference and only import/adapt specific MIT-licensed functions when the user explicitly requests that.
400
+
377
401
  ---
378
402
 
379
403
  ## CLI Reference
@@ -394,6 +418,7 @@ super recharge # Regenerate optional local Claude Code plugin artifacts
394
418
  super powers # List available skills
395
419
  super scan # Compare source skills with generated artifacts
396
420
  super checkup # Validate skill content
421
+ super validate-projects # Validate repo fixtures + local private project refs
397
422
  super build-desktop # Build the Claude Desktop .mcpb extension in the current dir
398
423
  super build-desktop --output dist
399
424
  super upgrade # Update the global CLI and print refresh steps
@@ -423,20 +448,20 @@ project/
423
448
  ├─ .mcp.json
424
449
  ├─ commands/
425
450
  │ ├─ bi-start.md
426
- │ ├─ project-kickoff.md
427
- │ ├─ pbi-connect.md
428
- │ └─ report-design.md
451
+ │ ├─ bi-kickoff.md
452
+ │ ├─ bi-connect.md
453
+ │ └─ bi-report.md
429
454
  ├─ skills/
430
455
  │ ├─ bi-start/
431
456
  │ │ ├─ SKILL.md
432
457
  │ │ └─ scripts/update-check.js
433
- │ ├─ project-kickoff/
458
+ │ ├─ bi-kickoff/
434
459
  │ │ ├─ SKILL.md
435
460
  │ │ └─ scripts/update-check.js
436
- │ ├─ pbi-connect/
461
+ │ ├─ bi-connect/
437
462
  │ │ ├─ SKILL.md
438
463
  │ │ └─ scripts/update-check.js
439
- │ └─ report-design/
464
+ │ └─ bi-report/
440
465
  │ ├─ SKILL.md
441
466
  │ ├─ scripts/
442
467
  │ │ ├─ apply-theme.js
@@ -479,13 +504,13 @@ flowchart TD
479
504
  - Node.js 18 or newer.
480
505
  - At least one supported AI agent.
481
506
 
482
- ### For `pbi-connect`
507
+ ### For `bi-connect`
483
508
 
484
509
  - Windows.
485
510
  - Power BI Desktop open.
486
511
  - Power BI Modeling MCP available to the agent.
487
512
 
488
- ### For `report-design`
513
+ ### For `bi-report`
489
514
 
490
515
  - Windows.
491
516
  - Power BI Desktop standalone, not the Microsoft Store build.
@@ -496,9 +521,9 @@ flowchart TD
496
521
 
497
522
  ---
498
523
 
499
- ## Report Design Runtime
524
+ ## BI Report Runtime
500
525
 
501
- `report-design` uses bundled Node scripts for PBIR visual and theme authoring:
526
+ `bi-report` uses bundled Node scripts for PBIR visual and theme authoring:
502
527
 
503
528
  - `create-visual.js`
504
529
  - `apply-theme.js`
@@ -514,7 +539,7 @@ It still uses `pbi-cli-tool` for the current runtime flow:
514
539
  - `pbi report list-pages`
515
540
  - `pbi report validate`
516
541
 
517
- This means `pbi-cli-tool` is not optional for `report-design` today.
542
+ This means `pbi-cli-tool` is not optional for `bi-report` today.
518
543
 
519
544
  ---
520
545
 
@@ -571,12 +596,17 @@ package.json
571
596
  The npm package does not include:
572
597
 
573
598
  ```text
599
+ docs/superpowers/
574
600
  examples/smoke-test/
601
+ validation/
602
+ validation.local.example.json
603
+ validation.local.json
575
604
  node_modules/
576
605
  *.test.js
577
606
  ```
578
607
 
579
608
  `examples/smoke-test/` is intentionally repo-only. It is used for QA and manual validation, not for user installs.
609
+ `validation/` is also 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.
580
610
 
581
611
  ---
582
612
 
@@ -623,6 +653,50 @@ Edit source files first, then regenerate generated outputs.
623
653
 
624
654
  ---
625
655
 
656
+ ## Project Validation Harness
657
+
658
+ In a source checkout, the repo can validate BI Agent Superpowers against real
659
+ Power BI work without committing customer repositories.
660
+
661
+ Public fixtures live in:
662
+
663
+ ```text
664
+ examples/smoke-test/
665
+ ```
666
+
667
+ Sanitized validation metadata lives in:
668
+
669
+ ```text
670
+ validation/projects/
671
+ validation/cases/
672
+ ```
673
+
674
+ Private local project paths live only in:
675
+
676
+ ```text
677
+ validation.local.json
678
+ ```
679
+
680
+ That file is gitignored. Copy `validation.local.example.json` when you want to
681
+ map client projects on your own machine.
682
+
683
+ Run the structural validation:
684
+
685
+ ```bash
686
+ super validate-projects --project super-test
687
+ ```
688
+
689
+ Run every descriptor, treating skipped private projects as failures:
690
+
691
+ ```bash
692
+ super validate-projects --strict
693
+ ```
694
+
695
+ This command is non-destructive. It checks project paths and required files; it
696
+ does not open Power BI Desktop, edit PBIP files, or copy private repos.
697
+
698
+ ---
699
+
626
700
  ## Publishing
627
701
 
628
702
  Publishing is handled by GitHub Actions. Do not run `npm publish` locally.
@@ -677,7 +751,7 @@ If npm's global bin directory is not in `PATH`, fix `PATH` or use your package m
677
751
  3. Confirm the Power BI Modeling MCP is installed.
678
752
  4. Restart the agent after MCP installation.
679
753
 
680
- ### `report-design` Stops Because Power BI Desktop Is The Microsoft Store Build
754
+ ### `bi-report` Stops Because Power BI Desktop Is The Microsoft Store Build
681
755
 
682
756
  Install the standalone Power BI Desktop build. The Store build can block flows required by CLI/MCP tooling.
683
757
 
@@ -702,7 +776,7 @@ No. Power BI Desktop remains the visual/runtime verification tool. The plugin he
702
776
 
703
777
  ### Does It Work Outside Windows?
704
778
 
705
- The CLI and several skills can run outside Windows. Workflows that depend on Power BI Desktop, especially `pbi-connect` and `report-design`, are Windows-first.
779
+ The CLI and several skills can run outside Windows. Workflows that depend on Power BI Desktop, especially `bi-connect` and `bi-report`, are Windows-first.
706
780
 
707
781
  ### Do I Need Claude Code?
708
782
 
@@ -710,7 +784,7 @@ No. Claude Code has the richest plugin/slash-command experience, but the npm ins
710
784
 
711
785
  ### Do I Need `pbi-cli-tool`?
712
786
 
713
- For `report-design`, yes. For `bi-start`, `project-kickoff`, and `pbi-connect`, not necessarily.
787
+ For `bi-report`, yes. For `bi-start`, `bi-kickoff`, and `bi-connect`, not necessarily.
714
788
 
715
789
  ### Can I Use Only The MCP Servers?
716
790
 
package/bin/cli.js CHANGED
@@ -45,6 +45,7 @@ let watchCommand;
45
45
  let mcpSetupCommand;
46
46
  let buildDesktopCommand;
47
47
  let installCommand;
48
+ let validateProjectsCommand;
48
49
  let tui;
49
50
  try {
50
51
  lintCommand = require('./commands/lint'); // checkup: skill file validation
@@ -53,6 +54,7 @@ try {
53
54
  mcpSetupCommand = require('./commands/mcp-setup'); // MCP server configuration
54
55
  buildDesktopCommand = require('./commands/build-desktop'); // .mcpb for Claude Desktop
55
56
  installCommand = require('./commands/install'); // multi-agent skill + MCP installer
57
+ validateProjectsCommand = require('./commands/validate-projects'); // repo/project validation harness
56
58
  tui = require('./utils/tui'); // colors, tables, boxes for CLI output
57
59
  } catch (_) {
58
60
  // Expected during `npm install` — modules become available after deps are linked.
@@ -171,6 +173,7 @@ Developer tools:
171
173
  checkup [file] Lint/validate skill source files
172
174
  scan Diff between source skills and generated plugin
173
175
  sentinel Watch skill sources and auto-regenerate
176
+ validate-projects Validate public fixtures + local private project references
174
177
 
175
178
  Options:
176
179
  --dry-run Preview changes without writing files (kickoff, recharge)
@@ -187,6 +190,7 @@ Examples:
187
190
  super build-desktop # Build .mcpb for Claude Desktop
188
191
  super build-desktop --output dist
189
192
  super mcp-setup # Existing local Claude Code plugin only
193
+ super validate-projects # Developer QA against validation/ descriptors
190
194
 
191
195
  Open source — MIT licensed.
192
196
  Documentation: https://github.com/luquimbo/bi-superpowers
@@ -757,6 +761,7 @@ const runDiff = createCommandWrapper(diffCommand, 'Diff');
757
761
  const runMcpSetup = createCommandWrapper(mcpSetupCommand, 'MCP setup');
758
762
  const runBuildDesktop = createCommandWrapper(buildDesktopCommand, 'Build Desktop');
759
763
  const runInstall = createCommandWrapper(installCommand, 'Install');
764
+ const runValidateProjects = createCommandWrapper(validateProjectsCommand, 'Validate projects');
760
765
 
761
766
  // Register wrapper-based commands into the command map (phase 2).
762
767
  commands.install = runInstall;
@@ -766,6 +771,7 @@ commands.sentinel = runWatch;
766
771
  commands['mcp-setup'] = runMcpSetup;
767
772
  commands.mcp = runMcpSetup;
768
773
  commands['build-desktop'] = runBuildDesktop;
774
+ commands['validate-projects'] = runValidateProjects;
769
775
  commands.lint = runLint;
770
776
  commands.diff = runDiff;
771
777
  commands.watch = runWatch;
@@ -331,8 +331,8 @@ function diffCommand(args, config) {
331
331
  let skillFiles = [];
332
332
 
333
333
  if (options.skill) {
334
- // normalizeSkillName accepts `dax`, `dax.md`, `report-design`, or
335
- // `report-design/SKILL.md` and returns the canonical skill name.
334
+ // normalizeSkillName accepts `dax`, `dax.md`, `bi-report`, or
335
+ // `bi-report/SKILL.md` and returns the canonical skill name.
336
336
  const skill = skillsByName.get(normalizeSkillName(options.skill));
337
337
  if (skill) {
338
338
  skillFiles = [skill.path];
@@ -496,11 +496,11 @@ async function installCommand(args, config) {
496
496
  '\n' +
497
497
  chalk.gray(' /bi-start — Arrancar una sesión: menú + update + conexión') +
498
498
  '\n' +
499
- chalk.gray(' /project-kickoff — Analizá tu proyecto BI (proyecto nuevo)') +
499
+ chalk.gray(' /bi-kickoff — Analizá tu proyecto BI (proyecto nuevo)') +
500
500
  '\n' +
501
- chalk.gray(' /pbi-connect — Conectá tu agente a Power BI Desktop') +
501
+ chalk.gray(' /bi-connect — Conectá Power BI + guía UDF DAX') +
502
502
  '\n' +
503
- chalk.gray(' /report-design — Generá reportes PBIR para Power BI Desktop (Windows)'),
503
+ chalk.gray(' /bi-report — Generá reportes PBIR para Power BI Desktop (Windows)'),
504
504
  {
505
505
  padding: 1,
506
506
  margin: { top: 1 },
@@ -366,7 +366,7 @@ function lintCommand(args, config) {
366
366
  // Determine which files to lint. Use the shared skill loader so we
367
367
  // catch both flat (`<name>.md`) and folder-based (`<name>/SKILL.md`)
368
368
  // skills — a previous version filtered with `f.endsWith('.md')` and
369
- // silently skipped every folder-based skill (e.g. `report-design`).
369
+ // silently skipped every folder-based skill (e.g. `bi-report`).
370
370
  const allSkills = readSkillDirectory(skillsDir);
371
371
  const skillsByName = new Map(allSkills.map((s) => [s.name, s]));
372
372
  let filesToLint = [];
@@ -379,7 +379,7 @@ function lintCommand(args, config) {
379
379
  return f;
380
380
  }
381
381
  // Look up by skill name. normalizeSkillName accepts `dax`,
382
- // `dax.md`, `report-design`, or `report-design/SKILL.md`.
382
+ // `dax.md`, `bi-report`, or `bi-report/SKILL.md`.
383
383
  const skill = skillsByName.get(normalizeSkillName(f));
384
384
  if (skill) return skill.path;
385
385