@luquimbo/bi-superpowers 3.2.0 → 4.1.1

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 (91) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +28 -2
  3. package/.claude-plugin/skill-manifest.json +22 -6
  4. package/.plugin/plugin.json +1 -1
  5. package/AGENTS.md +53 -36
  6. package/CHANGELOG.md +310 -0
  7. package/README.md +77 -26
  8. package/bin/build-plugin.js +11 -4
  9. package/bin/cli.js +113 -16
  10. package/bin/commands/build-desktop.js +35 -16
  11. package/bin/commands/diff.js +31 -13
  12. package/bin/commands/install.js +7 -3
  13. package/bin/commands/lint.js +40 -26
  14. package/bin/commands/mcp-setup.js +3 -10
  15. package/bin/commands/update-check.js +403 -0
  16. package/bin/lib/generators/claude-plugin.js +162 -6
  17. package/bin/lib/generators/shared.js +29 -33
  18. package/bin/lib/mcp-config.js +168 -12
  19. package/bin/lib/skills.js +115 -27
  20. package/bin/postinstall.js +4 -2
  21. package/bin/utils/mcp-detect.js +2 -2
  22. package/commands/bi-start.md +197 -0
  23. package/commands/pbi-connect.md +43 -65
  24. package/commands/project-kickoff.md +393 -673
  25. package/commands/report-design.md +403 -0
  26. package/desktop-extension/manifest.json +3 -3
  27. package/package.json +7 -5
  28. package/skills/bi-start/SKILL.md +199 -0
  29. package/skills/bi-start/scripts/update-check.js +403 -0
  30. package/skills/pbi-connect/SKILL.md +45 -67
  31. package/skills/pbi-connect/scripts/update-check.js +403 -0
  32. package/skills/project-kickoff/SKILL.md +395 -675
  33. package/skills/project-kickoff/scripts/update-check.js +403 -0
  34. package/skills/report-design/SKILL.md +405 -0
  35. package/skills/report-design/references/cli-commands.md +184 -0
  36. package/skills/report-design/references/cli-setup.md +101 -0
  37. package/skills/report-design/references/close-write-open-pattern.md +80 -0
  38. package/skills/report-design/references/layouts/finance.md +65 -0
  39. package/skills/report-design/references/layouts/generic.md +46 -0
  40. package/skills/report-design/references/layouts/hr.md +48 -0
  41. package/skills/report-design/references/layouts/marketing.md +45 -0
  42. package/skills/report-design/references/layouts/operations.md +44 -0
  43. package/skills/report-design/references/layouts/sales.md +50 -0
  44. package/skills/report-design/references/native-visuals.md +341 -0
  45. package/skills/report-design/references/pbi-desktop-installation.md +87 -0
  46. package/skills/report-design/references/pbir-preview-activation.md +40 -0
  47. package/skills/report-design/references/slicer.md +89 -0
  48. package/skills/report-design/references/textbox.md +101 -0
  49. package/skills/report-design/references/themes/BISuperpowers.json +915 -0
  50. package/skills/report-design/references/troubleshooting.md +135 -0
  51. package/skills/report-design/references/visual-types.md +78 -0
  52. package/skills/report-design/scripts/apply-theme.js +243 -0
  53. package/skills/report-design/scripts/create-visual.js +878 -0
  54. package/skills/report-design/scripts/ensure-pbi-cli.sh +41 -0
  55. package/skills/report-design/scripts/update-check.js +403 -0
  56. package/skills/report-design/scripts/validate-pbir.js +322 -0
  57. package/src/content/base.md +12 -68
  58. package/src/content/mcp-requirements.json +0 -25
  59. package/src/content/routing.md +19 -74
  60. package/src/content/skills/bi-start.md +191 -0
  61. package/src/content/skills/pbi-connect.md +22 -65
  62. package/src/content/skills/project-kickoff.md +372 -673
  63. package/src/content/skills/report-design/SKILL.md +376 -0
  64. package/src/content/skills/report-design/references/cli-commands.md +184 -0
  65. package/src/content/skills/report-design/references/cli-setup.md +101 -0
  66. package/src/content/skills/report-design/references/close-write-open-pattern.md +80 -0
  67. package/src/content/skills/report-design/references/layouts/finance.md +65 -0
  68. package/src/content/skills/report-design/references/layouts/generic.md +46 -0
  69. package/src/content/skills/report-design/references/layouts/hr.md +48 -0
  70. package/src/content/skills/report-design/references/layouts/marketing.md +45 -0
  71. package/src/content/skills/report-design/references/layouts/operations.md +44 -0
  72. package/src/content/skills/report-design/references/layouts/sales.md +50 -0
  73. package/src/content/skills/report-design/references/native-visuals.md +341 -0
  74. package/src/content/skills/report-design/references/pbi-desktop-installation.md +87 -0
  75. package/src/content/skills/report-design/references/pbir-preview-activation.md +40 -0
  76. package/src/content/skills/report-design/references/slicer.md +89 -0
  77. package/src/content/skills/report-design/references/textbox.md +101 -0
  78. package/src/content/skills/report-design/references/themes/BISuperpowers.json +915 -0
  79. package/src/content/skills/report-design/references/troubleshooting.md +135 -0
  80. package/src/content/skills/report-design/references/visual-types.md +78 -0
  81. package/src/content/skills/report-design/scripts/apply-theme.js +243 -0
  82. package/src/content/skills/report-design/scripts/create-visual.js +878 -0
  83. package/src/content/skills/report-design/scripts/ensure-pbi-cli.sh +41 -0
  84. package/src/content/skills/report-design/scripts/validate-pbir.js +322 -0
  85. package/bin/commands/install.test.js +0 -289
  86. package/bin/commands/lint.test.js +0 -103
  87. package/bin/lib/generators/claude-plugin.test.js +0 -111
  88. package/bin/lib/mcp-config.test.js +0 -310
  89. package/bin/lib/microsoft-mcp.test.js +0 -115
  90. package/bin/utils/mcp-detect.test.js +0 -81
  91. package/bin/utils/tui.test.js +0 -127
@@ -6,18 +6,20 @@
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": "3.2.0",
9
+ "version": "4.1.1",
10
10
  "repository": "https://github.com/luquimbo/bi-superpowers"
11
11
  },
12
12
  "plugins": [
13
13
  {
14
14
  "name": "bi-superpowers",
15
- "description": "2 AI skills + Power BI Modeling and Microsoft Learn MCP servers for local Power BI Desktop workflows across 5 AI agents.",
15
+ "description": "4 AI skills + Power BI Modeling and Microsoft Learn MCP servers for local Power BI Desktop workflows across 5 AI agents.",
16
16
  "source": "./",
17
17
  "strict": false,
18
18
  "skills": [
19
+ "./skills/bi-start",
19
20
  "./skills/pbi-connect",
20
- "./skills/project-kickoff"
21
+ "./skills/project-kickoff",
22
+ "./skills/report-design"
21
23
  ]
22
24
  }
23
25
  ]
@@ -1,8 +1,34 @@
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": "3.2.0",
4
+ "version": "4.1.1",
5
5
  "author": {
6
6
  "name": "Lucas Sanchez"
7
- }
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/luquimbo/bi-superpowers.git"
11
+ },
12
+ "homepage": "https://github.com/luquimbo/bi-superpowers#readme",
13
+ "license": "MIT",
14
+ "keywords": [
15
+ "power-bi",
16
+ "excel",
17
+ "dax",
18
+ "power-query",
19
+ "mcp",
20
+ "ai-agent",
21
+ "business-intelligence",
22
+ "data-modeling",
23
+ "semantic-model",
24
+ "ibcs",
25
+ "data-visualization",
26
+ "fabric",
27
+ "tmdl",
28
+ "claude-plugin",
29
+ "claude-code",
30
+ "claude-desktop",
31
+ "mcpb",
32
+ "ai-superpowers"
33
+ ]
8
34
  }
@@ -1,23 +1,39 @@
1
1
  {
2
2
  "name": "bi-superpowers",
3
- "version": "3.2.0",
4
- "skillCount": 2,
3
+ "version": "4.1.1",
4
+ "skillCount": 4,
5
5
  "skills": [
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
+ },
6
14
  {
7
15
  "name": "pbi-connect",
8
16
  "title": "Power BI MCP Connection Skill",
9
- "description": "Use when the user asks about Power BI MCP Connection Skill, especially phrases like \"connect Power BI\", \"modeling mcp\", \"Power BI Desktop\", \"conectar Power BI\", \"can't connect to Power BI\".",
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\".",
10
18
  "category": "command",
11
- "triggerCount": 5,
19
+ "triggerCount": 15,
12
20
  "path": "skills/pbi-connect/SKILL.md"
13
21
  },
14
22
  {
15
23
  "name": "project-kickoff",
16
24
  "title": "Project Kickoff Skill",
17
- "description": "Project Kickoff Skill: Project analysis and planning.",
25
+ "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\".",
18
26
  "category": "command",
19
- "triggerCount": 0,
27
+ "triggerCount": 15,
20
28
  "path": "skills/project-kickoff/SKILL.md"
29
+ },
30
+ {
31
+ "name": "report-design",
32
+ "title": "Report Design Skill",
33
+ "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
+ "category": "command",
35
+ "triggerCount": 9,
36
+ "path": "skills/report-design/SKILL.md"
21
37
  }
22
38
  ]
23
39
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "spec": "open-plugin-spec@1",
3
3
  "name": "bi-superpowers",
4
- "version": "3.2.0",
4
+ "version": "4.1.1",
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
@@ -17,6 +17,36 @@
17
17
 
18
18
  ---
19
19
 
20
+ ## QA Codex Shortcut
21
+
22
+ When the user says `qa codex` in a new session for this repo, treat it as activating the external QA review workflow.
23
+
24
+ Role split:
25
+ - **Codex** — external QA / code reviewer
26
+ - **Claude Code** — primary implementer
27
+ - **Lucas** — bridge between both agents
28
+
29
+ Default review protocol:
30
+ 1. Read `coordination/ACTIVE_PLAN.md` first.
31
+ 2. Read `coordination/TO_CODEX_REVIEW.md` second.
32
+ 3. If `TO_CODEX_REVIEW.md` references an audit or follow-up review file, read that too.
33
+ 4. Review commits or staged diffs with focus on:
34
+ - functional bugs
35
+ - regressions
36
+ - reasonable missing tests
37
+ - drift between `src/content/...` and generated artifacts
38
+ - build/release risks
39
+ - Windows + Power BI Desktop risks
40
+ 5. Return prioritized findings first and a short summary second.
41
+
42
+ Working rules:
43
+ - Codex is a second opinion, not the implementation owner and not a release gate.
44
+ - Do not assume you saw the whole previous session; rely on the coordination `.md` files.
45
+ - If the user asks for a prompt for Claude, provide a copy-paste-ready prompt that explicitly references the coordination files above.
46
+ - This shortcut is a repo convention for future sessions, not implicit model memory.
47
+
48
+ ---
49
+
20
50
  ## Publishing to npm (for AI agents)
21
51
 
22
52
  When the user asks for things like **"publica una nueva versión"**, **"publish a patch"**, **"sube esto a npm"**, **"release v1.2.0"**, follow this flow.
@@ -79,7 +109,7 @@ The repo uses **GitHub Actions** to publish automatically. The `NPM_TOKEN` is st
79
109
 
80
110
  ---
81
111
 
82
- AI-powered toolkit for Power BI, Fabric & Excel development.
112
+ AI-powered toolkit for Power BI Desktop development across Claude Code, GitHub Copilot, Codex, Gemini CLI, and Kilo Code.
83
113
 
84
114
  Developed by **Lucas Sanchez** ([@luquimbo](https://github.com/luquimbo))
85
115
 
@@ -87,27 +117,28 @@ Developed by **Lucas Sanchez** ([@luquimbo](https://github.com/luquimbo))
87
117
 
88
118
  ## Installation
89
119
 
90
- ### Claude Code (primary — full experience)
120
+ ### Supported Coding Agents
91
121
 
92
122
  ```bash
93
123
  # 1. Install the CLI globally
94
124
  npm install -g @luquimbo/bi-superpowers
95
125
 
96
- # 2. Initialize the plugin in your project
97
- cd your-bi-project
98
- super kickoff
99
-
100
- # 3. Run Claude Code with the plugin
101
- claude --plugin-dir .
126
+ # 2. Install skills + MCPs for your coding agents
127
+ super install
102
128
  ```
103
129
 
104
- You get:
105
- - **24 skills** — activated automatically by keyword
106
- - **11 slash commands** — `/project-kickoff`, `/dax-doctor`, `/data-model-design`, etc.
107
- - **4 Microsoft MCP servers** — Power BI, Fabric, Modeling, Microsoft Learn
108
- - **Biblioteca completa** — snippets, templates, themes de Power BI
130
+ The shared v4.1.0 contract is:
131
+ - **4 skills** — `bi-start` (session opener), `project-kickoff`, `pbi-connect`, `report-design`
132
+ - **2 MCP servers** — `powerbi-modeling-mcp`, `microsoft-learn`
109
133
 
110
- Open source (MIT). Sin licencias ni keys.
134
+ Agent-specific behavior:
135
+ - **Claude Code** — `super kickoff` can also generate a project-local plugin with slash commands: `/bi-start`, `/project-kickoff`, `/pbi-connect`, `/report-design`
136
+ - **GitHub Copilot** — uses the installed skills + MCP config via natural-language prompts
137
+ - **Codex** — uses the installed skills + MCP config via natural-language prompts
138
+ - **Gemini CLI** — uses the installed skills + MCP config via natural-language prompts
139
+ - **Kilo Code** — uses the installed skills + MCP config via natural-language prompts
140
+
141
+ `/report-design` has one extra runtime prerequisite on every agent: **Windows + Power BI Desktop**. `pbi-cli-tool` is optional for model introspection only; the PBIR authoring flow is driven by the bundled Node scripts. If that Desktop stack is not available yet, start with `bi-start`, `project-kickoff`, or `pbi-connect`.
111
142
 
112
143
  ### Claude Desktop
113
144
 
@@ -116,23 +147,7 @@ super build-desktop
116
147
  # Double-click bi-superpowers.mcpb para instalar en Claude Desktop
117
148
  ```
118
149
 
119
- Los 24 skills quedan disponibles como MCP prompts.
120
-
121
- ### Other AI agents (experimental — skills only)
122
-
123
- Los 24 skills funcionan en **GitHub Copilot, Codex, Gemini CLI, Kilo Code** vía el estándar abierto Agent Skills, pero con limitaciones:
124
-
125
- - Los slash commands (`/dax-doctor`, etc.) **solo funcionan en Claude Code**. En otros agentes hay que usar lenguaje natural.
126
- - Los MCP servers **solo funcionan en agentes con soporte MCP** (Claude Code, Copilot en VS Code, Codex).
127
- - La configuración automática de MCPs Microsoft (Power BI Desktop local, Fabric auth) **solo está automatizada en el flujo de Claude Code**.
128
-
129
- Si igual querés los skills en otro agente:
130
-
131
- ```bash
132
- npx @luquimbo/bi-superpowers install
133
- ```
134
-
135
- Instala los 24 skills en `~/.agents/skills/` con symlinks a los directorios específicos de cada agente. Este comando es un bonus para usuarios avanzados; la experiencia full sigue siendo Claude Code.
150
+ Los 4 skills quedan disponibles como MCP prompts.
136
151
 
137
152
  ---
138
153
 
@@ -160,18 +175,20 @@ Instala los 24 skills en `~/.agents/skills/` con symlinks a los directorios espe
160
175
  - **No Laziness**: Fix root causes, avoid temporary patches.
161
176
  - **Minimal Impact**: Touch only what is necessary.
162
177
 
163
- ## Available Skills (2)
178
+ ## Available Skills (4)
164
179
 
165
180
  | Skill | Purpose | Trigger |
166
181
  |-------|---------|---------|
182
+ | `/bi-start` | Session opener: environment snapshot, update check, and routing to the specialist skills | "bi-start", "empezar", "start session" |
167
183
  | `/project-kickoff` | Analyze and plan BI projects | "analyze project", "new project" |
168
184
  | `/pbi-connect` | Connect to Power BI Desktop | "connect Power BI", "MCP" |
185
+ | `/report-design` | Generate PBIR report pages via bundled Node scripts | "report design", "crear reportes" |
169
186
 
170
187
  ## MCP Servers (2)
171
188
 
172
189
  | MCP | Type | Purpose |
173
190
  |-----|------|---------|
174
- | `powerbi-modeling` | stdio | Local connection to Power BI Desktop via XMLA |
191
+ | `powerbi-modeling-mcp` | stdio | Local connection to Power BI Desktop via XMLA |
175
192
  | `microsoft-learn` | http | Microsoft Learn docs in context |
176
193
 
177
194
  ---
@@ -192,9 +209,9 @@ BI Agent Superpowers generates a native Claude Code plugin from a single source
192
209
  ```
193
210
  project/
194
211
  ├── .claude-plugin/plugin.json # Plugin manifest
195
- ├── .mcp.json # Power BI + Fabric MCPs
196
- ├── commands/*.md # 11 slash commands (interactive wizards)
197
- ├── skills/*/SKILL.md # 24 skills (all discoverable)
212
+ ├── .mcp.json # Power BI Modeling + Microsoft Learn MCPs
213
+ ├── commands/*.md # 4 slash commands (bi-start, pbi-connect, project-kickoff, report-design)
214
+ ├── skills/*/SKILL.md # 4 skills (discoverable)
198
215
  ├── config.json # User preferences
199
216
  └── library/ → symlink # Snippets, templates, themes
200
217
  ```
package/CHANGELOG.md CHANGED
@@ -5,6 +5,316 @@ 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
+ ## [4.1.0] — 2026-04-21
9
+
10
+ > **First stable release — the de-facto 1.0 of `@luquimbo/bi-superpowers`.**
11
+ >
12
+ > Versions 2.x, 3.x, and 4.0.0 were iteration cycles while the plugin's
13
+ > scope, architecture, and install UX were settling. The v4.1.0 line is
14
+ > the first release the author considers ready for real use: the 4
15
+ > skills + 2 MCPs are stable, both install paths (Claude Code marketplace
16
+ > and npm + `super install`) are documented, the cross-agent autoupdate
17
+ > loop is working end-to-end, and the Opus 4.7 1M code review report
18
+ > with all its blockers + high findings is resolved in the tree. Pre-4.1
19
+ > versions on npm should be treated as pre-release history.
20
+ >
21
+ > (The version number stays on the 4.x line because npm is strictly
22
+ > monotonic and the numeric identity would be confusing to rewrite; the
23
+ > README, CHANGELOG, and this note carry the "first stable" framing.)
24
+
25
+ ### Added
26
+
27
+ - **New skill: `/bi-start`** — session-opener that every new chat conversation can
28
+ arrange around. Shows an informative menu of the 4 skills, runs the update
29
+ check, and — on Windows when a `.pbip` project is detected — offers to
30
+ connect to Power BI Desktop via MCP in one step. Designed to replace the
31
+ "but wait, which command do I type?" moment at the start of a session.
32
+ `/project-kickoff` is now reserved for brand-new BI project bootstraps.
33
+ - **Three-level auto-update architecture** (closes ROADMAP item 4):
34
+ - _Level 1 (CLI banner)_: `update-notifier@^5.1.0` wrapped in `bin/cli.js`
35
+ — every `super <cmd>` spawns a detached background check against the
36
+ npm registry (24h cache) and prints a yellow update banner at process
37
+ exit when a newer version is on npm.
38
+ - _Level 2 (cross-agent skill preamble)_: `bin/commands/update-check.js`
39
+ is a standalone Node helper with 24h cache + escalating snooze
40
+ (24h → 48h → 7d) + network fallback. The Claude Code plugin generator
41
+ prepends an "update check" preamble to every `SKILL.md` and
42
+ `commands/*.md` that instructs the agent to run the helper at the top
43
+ of each conversation and — at most once per conversation — surface a
44
+ one-line "hay bi-superpowers vX disponible" notice. Works regardless
45
+ of the agent (Claude Code, Copilot, Codex, Gemini CLI, Kilo).
46
+ - _Level 3 (Claude Code native)_: `/plugin update bi-superpowers` via
47
+ the Claude Code marketplace, documented in `README.md`. Zero-npm UX
48
+ for users who installed via the marketplace.
49
+ - **`.gitattributes`** normalizing text files to LF — fixes
50
+ `npm run format:check` on Windows working trees (the CRLF-via-autocrlf
51
+ vs. Prettier `endOfLine: "lf"` mismatch that quietly broke `prepack`
52
+ for Windows developers).
53
+ - **`apply-theme.js` test coverage** — 13 new tests across happy path,
54
+ idempotent replacement, error paths, and atomic write/backup behavior.
55
+ Was previously the most dangerous script with zero tests.
56
+ - **`update-check.js` test coverage** — 30 tests across `compareVersions`,
57
+ cache freshness, snooze state + escalation, filesystem persistence,
58
+ and end-to-end CLI behavior via `spawnSync` (no real network calls).
59
+ - **Plugin manifest enrichment** (`.claude-plugin/plugin.json`) — now
60
+ inherits `repository`, `homepage`, `license`, and `keywords` from
61
+ `package.json` so Claude Code plugin marketplace listings match the
62
+ npm package metadata.
63
+ - **Desktop extension build includes folder-based skills** — the `.mcpb`
64
+ extension produced by `super build-desktop` was silently dropping
65
+ `report-design` (the flagship skill) because the bundler only picked
66
+ up flat `.md` files. Now uses `loadSkills()` which handles both flat
67
+ and folder-based layouts. 5 regression tests.
68
+ - **Skill trigger parser extracts multiple quoted fragments per bullet** —
69
+ `project-kickoff` went from `triggerCount: 0` to `9` in
70
+ `.claude-plugin/skill-manifest.json`; `pbi-connect` from `5` to `15`;
71
+ `report-design` from `3` to `9`.
72
+ - **`validate-pbir.js` detects duplicate `visual.name` on the same page** —
73
+ PBI Desktop accepts the file, but filter/bookmark refs collide.
74
+ - **README rewrite**: dual install paths clearly segmented by audience
75
+ (Claude Code users → marketplace, everyone else → npm + `super install`),
76
+ mirrored update instructions, and OQ-1 resolution explained inline.
77
+ - **Opus 4.7 1M code review report** at
78
+ `coordination/CODE_REVIEW_OPUS_2026-04-21.md` — 3 blockers + 5 high +
79
+ 8 medium + 7 low findings across the whole repo (all resolved in this
80
+ release, except 4 mediums/3 lows explicitly deferred as product calls).
81
+
82
+ ### Changed
83
+
84
+ - **`/project-kickoff` triggers narrowed to "new project" intent** —
85
+ "empezar", "arranco", "get started", "comenzar", "qué tengo aquí"
86
+ previously all landed on `/project-kickoff`. They now route to
87
+ `/bi-start`. `/project-kickoff` keeps "nuevo proyecto", "analizar
88
+ proyecto", "bootstrap BI", "armar el modelo base", etc.
89
+ - **Galería de Visuales regenerated via `create-visual.js` end-to-end**
90
+ (ROADMAP item 2) — the 22 visuals on the theme page in
91
+ `examples/smoke-test/` are now produced by the script, not
92
+ hand-written. Both validators green (`pbi report validate` +
93
+ `node validate-pbir.js`).
94
+ - **`super upgrade`** prints a formatted "next steps" block after the
95
+ reinstall with both update paths. Also resets
96
+ `~/.bi-superpowers/update-state.json` on success so the new version
97
+ starts clean.
98
+ - **SKILL.md PHASE 4.2 contradictions fixed** — the cheatsheet no longer
99
+ recommends `lineStackedColumnComboChart` (blocked by `create-visual.js`
100
+ because Desktop renders it as an empty container), and the stale
101
+ "write visual.json with the raw typeId" fallback paragraph that
102
+ contradicted MANDATORY RULE 2 is gone.
103
+ - **Stale `pbi-cli-tool` references removed** from 5 user-facing surfaces
104
+ (`bin/postinstall.js`, `bin/commands/install.js`,
105
+ `bin/lib/generators/shared.js`, `desktop-extension/manifest.json`,
106
+ `README.md`). The skill now says "Power BI Desktop (Windows)" —
107
+ `pbi-cli-tool` is optional for model introspection only.
108
+ - **Tarball trimmed** — `files` whitelist now excludes `**/*.test.js`.
109
+ Package size: 175.8 kB → 152.4 kB (103 → 88 files).
110
+ - **`desktop-extension/manifest.json` platforms narrowed to `["win32"]`** —
111
+ the extension was declaring `darwin + linux` compatibility but its
112
+ flagship skill stops on non-Windows. Non-Windows users get the full
113
+ skill set via `npm install -g && super install` instead.
114
+ - **Visual-type count drift fixed** — the allowlist actually has 28 native
115
+ types, not 25/26/27 as variously documented across `create-visual.js`,
116
+ `create-visual.test.js`, and `SKILL.md` (4 places). All now say 28.
117
+ - **`getSkillPurpose` map pruned** — 19 dead entries for skills that never
118
+ existed in v4 (dax, power-query, dax-doctor, governance, etc.) were
119
+ removed. Parity test added so the map stays in sync with
120
+ `src/content/skills/` automatically.
121
+
122
+ ### Fixed
123
+
124
+ - **`escapePbiLiteral` now collapses newlines/tabs to single spaces** —
125
+ a `--title` containing a newline produced a malformed PBI literal.
126
+ - **`apply-theme.js --name` rejects path separators** — previously accepted
127
+ `--name "../../evil.json"` which would write outside
128
+ `StaticResources/RegisteredResources/`. Local-only issue, but still
129
+ defense-in-depth.
130
+ - **Textbox no longer double-renders `--title`** — `--title` for a textbox
131
+ is a paragraph shortcut, but the generator was also applying it as the
132
+ container title, so Desktop rendered the title twice (inner paragraph +
133
+ container chrome). Now the textbox container is always chrome-less
134
+ regardless of `--title`.
135
+ - **Textbox omits `drillFilterOtherVisuals`** — textboxes have no query;
136
+ the flag was meaningless noise in the generated `visual.json`.
137
+
138
+ ### Removed
139
+
140
+ - **19 dead `getSkillPurpose` entries** for never-shipped skills
141
+ (`dax`, `power-query`, `data-modeling`, `data-model-design`,
142
+ `excel-formulas`, `theme-tweaker`, `rls-design`, `query-performance`,
143
+ `data-quality`, `fast-standard`, `testing-validation`, `contributions`,
144
+ `dax-doctor`, `model-documenter`, `migration-assistant`, `report-layout`,
145
+ `governance`, `semantic-model`, `deployment`, `dax-udf`). Map is now
146
+ parity-tested against the actual `src/content/skills/` tree.
147
+
148
+ ### Test count
149
+
150
+ - 227 → **301** (+74 tests across 80 suites).
151
+
152
+ ### Migration
153
+
154
+ Upgrading from v4.0.x is backwards-compatible at the user level — no config
155
+ changes required. Recommended sequence:
156
+
157
+ ```bash
158
+ # Users on Claude Code marketplace:
159
+ /plugin update bi-superpowers
160
+
161
+ # Users on npm:
162
+ super upgrade
163
+ super install --yes # propagate the new skills to all agents
164
+ ```
165
+
166
+ Session-opener users: when you previously said "empezar" / "arranco" /
167
+ "get started", you now land in `/bi-start` (menu + update + connect),
168
+ which will route you to `/project-kickoff` if you actually mean to
169
+ bootstrap a new project.
170
+
171
+ ---
172
+
173
+ ## [4.0.0] — 2026-04-15
174
+
175
+ ### Breaking — `/report-design` pivoted to CLI-first architecture
176
+
177
+ The `/report-design` skill has been rewritten to orchestrate the
178
+ [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI (MIT,
179
+ by MinaSaad1) instead of hand-writing PBIR JSON. This is a **breaking
180
+ change** because students now need Python 3.10+ and `pbi-cli-tool`
181
+ installed (the skill auto-guides installation in PHASE 0).
182
+
183
+ **Why the pivot.** Smoke testing proved that Power BI Desktop does
184
+ NOT render externally-written `visual.json` files while the app is
185
+ running. The only reliable pattern is: close Desktop → write via CLI
186
+ → reopen Desktop fresh. This "close-write-open" pattern is now the
187
+ backbone of the skill. The `pbi-cli-tool` CLI handles all PBIR
188
+ JSON generation (schema versioning, binding syntax, visual types) —
189
+ removing our most fragile maintenance burden.
190
+
191
+ ### Added
192
+
193
+ - `close-write-open-pattern.md` — documents the core insight:
194
+ PBI Desktop caches the report in memory and ignores external disk
195
+ changes. Visuals must be added while Desktop is killed, then Desktop
196
+ relaunched to do a fresh disk scan.
197
+ - `cli-setup.md` — step-by-step Python + pipx + pbi-cli-tool install
198
+ - `cli-commands.md` — cheatsheet of `pbi` commands used by the skill
199
+ - `ensure-pbi-cli.sh` — idempotent install helper script
200
+ - PHASE 3 in SKILL.md now explicitly kills `PBIDesktop.exe` (with
201
+ user confirmation) before generating visuals
202
+ - PHASE 5 relaunches Desktop via `Start-Process` for fresh scan
203
+ - `examples/smoke-test/` — live test project with model + CLI-generated
204
+ visuals (excluded from npm via `files` whitelist)
205
+ - `research/` folder (gitignored) for third-party reference repos
206
+
207
+ ### Removed
208
+
209
+ - `references/primitives/*.md` (6 files) — hand-written visual JSON
210
+ templates, replaced by CLI generation
211
+ - `references/bootstrap-card.md` — bootstrap pattern, CLI handles this
212
+ - `references/file-templates.md` — PBIR file structure, CLI handles this
213
+ - `references/fluent-palette.md` — theme colors, Desktop applies Fluent
214
+ - `references/known-uncertainties.md` — schema uncertainty, CLI handles
215
+ - `scripts/validate-pbir.js` — replaced by `pbi report validate`
216
+
217
+ ### Changed
218
+
219
+ - SKILL.md completely rewritten around CLI workflow (~200 lines,
220
+ down from ~400)
221
+ - Layout files updated to use CLI visual type names (`card`,
222
+ `line_chart`, `bar_chart`, `matrix`, `table`)
223
+ - `project-kickoff.md` PHASE 7 handoff updated to mention CLI prereq
224
+ - `base.md` and `routing.md` descriptions updated
225
+ - `troubleshooting.md` rewritten for CLI-specific errors
226
+ - `report-design` added to `COMMAND_SKILLS` in the generator (now a
227
+ slash command, not just a reference skill)
228
+
229
+ ### Credits
230
+
231
+ - [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) by MinaSaad1
232
+ (MIT License) — the execution layer for PBIR report generation
233
+ - [`power-bi-agentic-development`](https://github.com/data-goblin/power-bi-agentic-development)
234
+ by Kurt Buhler (GPL-3.0) — studied as reference for workflow patterns
235
+ and PBIR mental model; no code incorporated
236
+
237
+ ---
238
+
239
+ ## [3.4.0] — 2026-04-15
240
+
241
+ ### Added
242
+
243
+ - **New skill: `/report-design`.** Authors 3 PBIR report pages directly
244
+ from a ready semantic model. Produces Pro-quality visuals — conditional
245
+ formatting, KPI cards with trend coloring, matrix with gradients,
246
+ slicers, sorted bar charts, pixel-perfect 1280×720 grid layout.
247
+ Adapts layout to domain (finance / sales / hr / operations / marketing /
248
+ otro).
249
+ - **Folder-based skill support.** The skill loader and plugin generator
250
+ now accept skills authored as a folder with `SKILL.md` + `references/`
251
+ + `scripts/` subfolders (Anthropic's skill convention). Used by
252
+ `/report-design` — the main SKILL.md is a thin orchestrator and the
253
+ agent loads PBIR templates, layouts, and troubleshooting notes on
254
+ demand from `references/`. Ships a `validate-pbir.js` helper under
255
+ `scripts/` that structurally validates a generated `.Report/` folder.
256
+ - `/project-kickoff` now ends with a handoff to `/report-design` once
257
+ the model base has 1 fact + 1 dim + 3 measures.
258
+
259
+ ### Changed
260
+
261
+ - `base.md` and `routing.md` updated to reflect the 3-skill catalog.
262
+ - The `description` field in `package.json` now reads "3 skills".
263
+
264
+ ### Notes — PBIR Preview risk
265
+
266
+ PBIR (Power BI Enhanced Report format) is a Microsoft Public Preview
267
+ feature at the time of this release. Students must activate
268
+ **File → Options → Preview features → Power BI Project (.pbip) save
269
+ format (PBIR)** in Power BI Desktop before `/report-design` can write
270
+ report files. If Microsoft ships a schema update that breaks our
271
+ templates, run `super upgrade` — we commit to keeping the plugin in
272
+ sync with PBIR changes while the feature is in preview.
273
+
274
+ The skill is intentionally conservative: it reads existing PBIR files
275
+ from the project first to learn the local schema version, and mirrors
276
+ those patterns in everything it writes. If any primitive doesn't render,
277
+ `references/troubleshooting.md` has concrete remedies.
278
+
279
+ ---
280
+
281
+ ## [3.3.0] — 2026-04-14
282
+
283
+ ### Changed
284
+
285
+ - **Dropped Fabric MCP and Remote Power BI MCP references everywhere.** The
286
+ plugin now documents only the 2 MCPs it actually ships: `powerbi-modeling-mcp`
287
+ (local, Windows) and `microsoft-learn` (HTTP, any platform). The `pbi-connect`
288
+ skill, `project-kickoff` skill, `base.md`, `routing.md`, `mcp-setup` command,
289
+ and `mcp-requirements.json` were all updated to match.
290
+ - **Fixed naming inconsistency.** `bin/lib/mcp-config.js` now writes
291
+ `powerbi-modeling-mcp` (the canonical Microsoft name) across all 5 agents,
292
+ aligned with `.mcp.json` and `bin/lib/microsoft-mcp.js`. Previously it wrote
293
+ `powerbi-modeling` (short form), which caused a naming mismatch for users
294
+ who ran both `super install` and the plugin-first flow.
295
+ - **Narrowed `routing.md` and `base.md`** to the 2-skill reality (was still
296
+ listing 24 skills from v2 architecture).
297
+
298
+ ### Added
299
+
300
+ - Tests for `bin/lib/generators/shared.js` (`parseSkillMetadata`,
301
+ `getSkillPurpose`, `generateSkillsSection`, header/footer) — 23 new tests.
302
+ - Tests for `bin/build-plugin.js` `verifyPluginOutputs` — covers the prepack
303
+ safety net.
304
+ - `.nvmrc` pinning Node 22 for contributors.
305
+
306
+ ### Notes
307
+
308
+ - Users upgrading from 3.2.x should re-run `super install` so the new
309
+ canonical server name (`powerbi-modeling-mcp`) lands in their agent
310
+ configs. The old entry will linger as dead config until cleaned manually;
311
+ accepted as soft-launch tech debt.
312
+ - Scorecards, Power BI Goals, and Dataflows Gen 2 creation are **not**
313
+ supported by the official Microsoft MCPs as of 2026-01. Those flows need
314
+ the Power BI REST API or Fabric REST API directly — outside the MCP scope.
315
+
316
+ ---
317
+
8
318
  ## [3.0.0] — 2026-04-11
9
319
 
10
320
  ### BREAKING CHANGES — massive scope reduction