@luquimbo/bi-superpowers 4.1.1 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.1",
9
+ "version": "4.1.2",
10
10
  "repository": "https://github.com/luquimbo/bi-superpowers"
11
11
  },
12
12
  "plugins": [
@@ -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.1",
4
+ "version": "4.1.2",
5
5
  "author": {
6
6
  "name": "Lucas Sanchez"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bi-superpowers",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "skillCount": 4,
5
5
  "skills": [
6
6
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "spec": "open-plugin-spec@1",
3
3
  "name": "bi-superpowers",
4
- "version": "4.1.1",
4
+ "version": "4.1.2",
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
@@ -56,8 +56,7 @@ When the user asks for things like **"publica una nueva versión"**, **"publish
56
56
  The repo uses **GitHub Actions** to publish automatically. The `NPM_TOKEN` is stored as a GitHub Secret — never commit it to the repo or use it locally for publishes. The workflow at `.github/workflows/publish.yml` triggers on:
57
57
 
58
58
  1. **Tag push** (`v*`) — preferred, triggered by pushing a version tag
59
- 2. **GitHub release published** — manual via web UI
60
- 3. **Manual workflow dispatch** — via Actions tab
59
+ 2. **Manual workflow dispatch** — via Actions tab, only from `main` on the already-tagged release commit
61
60
 
62
61
  ### Standard publish flow (do this when asked)
63
62
 
@@ -84,7 +83,7 @@ The repo uses **GitHub Actions** to publish automatically. The `NPM_TOKEN` is st
84
83
  ```
85
84
  7. **Create the version tag:**
86
85
  ```bash
87
- git tag vX.Y.Z
86
+ git tag -a vX.Y.Z -m "vX.Y.Z"
88
87
  ```
89
88
  8. **Push commits and tag together:**
90
89
  ```bash
@@ -127,7 +126,7 @@ npm install -g @luquimbo/bi-superpowers
127
126
  super install
128
127
  ```
129
128
 
130
- The shared v4.1.0 contract is:
129
+ The shared v4.1.x contract is:
131
130
  - **4 skills** — `bi-start` (session opener), `project-kickoff`, `pbi-connect`, `report-design`
132
131
  - **2 MCP servers** — `powerbi-modeling-mcp`, `microsoft-learn`
133
132
 
@@ -138,7 +137,7 @@ Agent-specific behavior:
138
137
  - **Gemini CLI** — uses the installed skills + MCP config via natural-language prompts
139
138
  - **Kilo Code** — uses the installed skills + MCP config via natural-language prompts
140
139
 
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`.
140
+ `/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`.
142
141
 
143
142
  ### Claude Desktop
144
143
 
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Toolkit open-source para trabajar con **Power BI Desktop** desde Claude Code, GitHub Copilot, Codex, Gemini CLI y Kilo Code.
9
9
 
10
- > **Estado:** `v4.1.0` — **primera versión estable**. Incluye 4 skills (`/bi-start` + 3 especialistas) y 2 MCP servers oficiales de Microsoft. `/report-design` genera PBIR via scripts Node propios (no depende de `pbi-cli-tool` para authoring Windows + Power BI Desktop sí sigue siendo requisito runtime).
10
+ > **Estado:** `v4.1.x` — **primera versión estable**. Incluye 4 skills (`/bi-start` + 3 especialistas) y 2 MCP servers oficiales de Microsoft. `/report-design` usa scripts Node propios para visuales/theme, pero hoy todavía requiere `pbi-cli-tool` para connect, page ops y validate, además de Windows + Power BI Desktop.
11
11
  >
12
12
  > _Nota de versionado_: las versiones 2.x, 3.x y 4.0.0 fueron iteraciones mientras el alcance y la arquitectura del plugin se estaban asentando. **Tratá a v4.1.x como si fuera la 1.0** del producto — es el primer release que el autor considera listo para uso real. El numeral se queda en la línea 4.x porque npm es estrictamente monotónico (no se puede bajar el número), pero la madurez del producto arranca acá.
13
13
 
@@ -28,7 +28,7 @@ Dentro de Claude Code, ejecutá:
28
28
 
29
29
  Eso instala el plugin completo (4 skills + 2 MCPs) en el perfil de Claude Code. Después podés actualizar con `/plugin update bi-superpowers` directamente desde Claude Code — sin pasar por npm.
30
30
 
31
- Si también querés el plugin local de proyecto (con slash commands `/project-kickoff`, `/pbi-connect`, `/report-design` en un repo específico), corré `super kickoff` dentro del repo — requiere haber instalado la CLI via el otro path (abajo).
31
+ Si también querés el plugin local de proyecto (con slash commands `/bi-start`, `/project-kickoff`, `/pbi-connect`, `/report-design` en un repo específico), corré `super kickoff` dentro del repo — requiere haber instalado la CLI via el otro path (abajo).
32
32
 
33
33
  ### 👉 Otros agentes — Copilot, Codex, Gemini CLI, Kilo Code (o multi-agente)
34
34
 
@@ -66,7 +66,7 @@ Reiniciá tu agente AI y ya tenés bi-superpowers funcionando.
66
66
 
67
67
  Si no sabés por dónde empezar, decile a tu agente `/bi-start` — te muestra los 4 skills, chequea updates, y rutea al que necesites. `/project-kickoff` está reservado para cuando arrancás un proyecto BI desde cero.
68
68
 
69
- `report-design` requiere **Windows + Power BI Desktop** (standalone, no la versión de Microsoft Store). Los scripts Node son portables, pero el ciclo de verificación (relaunch, render) necesita Desktop. `pbi-cli-tool` es opcional y solo se usa para introspección del modelo (preferido: Microsoft Modeling MCP cuando está disponible).
69
+ `report-design` requiere **Windows + Power BI Desktop** (standalone, no la versión de Microsoft Store) **+ Python 3.10+ + `pipx` + `pbi-cli-tool`**. Los scripts Node hacen el authoring de visuales/theme, pero el skill todavía usa `pbi` para connect, add-page/list-pages y validate.
70
70
 
71
71
  ### 2 MCP Servers (oficiales de Microsoft)
72
72
 
@@ -118,23 +118,28 @@ Dentro de Claude Code:
118
118
 
119
119
  Eso trae la última versión publicada en el marketplace. Cero interacción con npm.
120
120
 
121
- ### npm (todos los otros agentes)
121
+ ### npm / CLI-managed installs
122
122
 
123
123
  ```bash
124
124
  # 1. Actualizá la CLI a la última versión
125
125
  super upgrade
126
126
 
127
- # 2. Refrescá skills + MCPs en tus agentes (no se hace automático, es un paso separado)
127
+ # 2. Si instalaste skills en el perfil del agente, propagá la nueva versión
128
128
  super install --yes
129
+
130
+ # 3. Si además generaste un plugin local con super kickoff, regeneralo en ese repo
131
+ super recharge
129
132
  ```
130
133
 
131
- `super upgrade` reinstala el paquete global y al final te imprime un recordatorio con este segundo paso. No lo hace automático a propósito: los usuarios que solo quieren actualizar la CLI (p.ej. desarrollando local) pueden saltarlo.
134
+ `super upgrade` reinstala el paquete global y al final te imprime un recordatorio con los refresh paths relevantes. No los hace automáticos a propósito: hay usuarios que solo quieren actualizar la CLI (p.ej. desarrollando local) y no propagar todavía el cambio a todos sus agentes o plugins locales.
132
135
 
133
136
  Equivalente manual si `super upgrade` falla:
134
137
 
135
138
  ```bash
136
139
  npm install -g @luquimbo/bi-superpowers@latest
137
140
  super install --yes
141
+ # y, si tenés un plugin local en este repo/proyecto:
142
+ super recharge
138
143
  ```
139
144
 
140
145
  ---
@@ -162,7 +167,7 @@ Si ya instalaste los MCPs por alguno de estos caminos, no necesitás correr `sup
162
167
 
163
168
  - **Node.js ≥ 18**
164
169
  - **Power BI Desktop en Windows** (standalone, no Microsoft Store) para workflows locales contra Desktop (`powerbi-modeling-mcp` y `report-design`)
165
- - **Python 3.10+**, **`pipx`** y **`pbi-cli-tool`** son **opcionales** — solo hacen falta para introspección del modelo via XMLA cuando el Microsoft Modeling MCP no está disponible. Para authoring de visuales, `report-design` usa scripts Node propios y no depende de esa cadena.
170
+ - **Python 3.10+**, **`pipx`** y **`pbi-cli-tool`** son requeridos para `/report-design` hoy. Los scripts Node hacen el authoring de visuales/theme, pero el flujo completo sigue usando `pbi` para connect, page ops y validate.
166
171
  - Al menos uno de: Claude Code, GitHub Copilot, Codex, Gemini CLI, Kilo Code
167
172
 
168
173
  ---
@@ -174,7 +179,7 @@ super install # Instalá 4 skills + 2 MCPs en tus agentes AI
174
179
  super kickoff # Generá el plugin local de Claude Code con slash commands
175
180
  super recharge # Regenerá el plugin tras editar skills fuente
176
181
  super powers # Listá skills disponibles
177
- super upgrade # Actualizá la CLI a la última versión + imprime recordatorio de `super install`
182
+ super upgrade # Actualizá la CLI + recordatorio de /plugin update, super install o super recharge
178
183
  super help # Ayuda completa
179
184
  ```
180
185
 
package/bin/cli.js CHANGED
@@ -49,7 +49,7 @@ try {
49
49
  message:
50
50
  'Update available {currentVersion} → {latestVersion}\n' +
51
51
  'Run {updateCommand} to update,\n' +
52
- 'then `super install --yes` to propagate the new skills.',
52
+ 'then refresh your install path (`/plugin update bi-superpowers`, `super install --yes`, or run `super recharge` inside each repo where you used `super kickoff`).',
53
53
  });
54
54
  } catch (_) {
55
55
  // update-notifier not available during npm install phase, or network
@@ -619,9 +619,10 @@ function getUpgradeCommand(userAgent) {
619
619
  /**
620
620
  * `super upgrade` — reinstall the package at the latest version.
621
621
  *
622
- * After the reinstall, prints a "next steps" block with both update paths
623
- * (Claude Code `/plugin update` vs npm-based `super install --yes`) so
624
- * users know how to propagate the new skills into their agents. We
622
+ * After the reinstall, prints a "next steps" block with the refresh paths
623
+ * for marketplace installs, user-profile installs, and project-local
624
+ * plugins generated by `super kickoff`, so users know how to propagate
625
+ * the new skills into their agents. We
625
626
  * intentionally don't auto-chain into `super install`:
626
627
  * - Claude Code users who installed via the plugin marketplace refresh
627
628
  * from inside Claude Code (`/plugin update bi-superpowers`), they don't
@@ -648,6 +649,24 @@ function resetUpdateCheckStateAfterUpgrade(homeDir) {
648
649
  }
649
650
  }
650
651
 
652
+ function getUpgradeRefreshSteps() {
653
+ return [
654
+ {
655
+ label: 'Claude Code (installed via marketplace):',
656
+ command: '/plugin update bi-superpowers',
657
+ },
658
+ {
659
+ label: 'Skills installed in your user profile (npm + super install):',
660
+ command: 'super install --yes',
661
+ },
662
+ {
663
+ label:
664
+ 'Project-local Claude Code plugin (run inside each repo where you used super kickoff):',
665
+ command: 'super recharge',
666
+ },
667
+ ];
668
+ }
669
+
651
670
  function updatePackage() {
652
671
  console.log(`Updating ${PACKAGE_NAME}...\n`);
653
672
 
@@ -662,12 +681,11 @@ function updatePackage() {
662
681
  resetUpdateCheckStateAfterUpgrade(require('os').homedir());
663
682
 
664
683
  console.log('\nNext step — refresh the skills + MCPs in your agents:\n');
665
- console.log(' Claude Code (installed via marketplace):');
666
- console.log(' /plugin update bi-superpowers');
667
- console.log('');
668
- console.log(' Any other install path (npm + super install):');
669
- console.log(' super install --yes');
670
- console.log('');
684
+ for (const step of getUpgradeRefreshSteps()) {
685
+ console.log(` ${step.label}`);
686
+ console.log(` ${step.command}`);
687
+ console.log('');
688
+ }
671
689
  console.log(
672
690
  'If you only wanted the CLI updated (e.g. developing locally), you can skip the above.'
673
691
  );
@@ -803,6 +821,7 @@ module.exports = {
803
821
  loadToolConfig,
804
822
  saveToolConfig,
805
823
  getUpgradeCommand,
824
+ getUpgradeRefreshSteps,
806
825
  resetUpdateCheckStateAfterUpgrade,
807
826
  AI_TOOLS,
808
827
  SKILLS_DIR,
@@ -150,7 +150,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
150
150
 
151
151
  - Empty output or \`UPTODATE\` — proceed with the skill silently. No message.
152
152
  - \`UPDATE_AVAILABLE <installed> <latest>\` — tell the user exactly once this conversation, before diving into the skill:
153
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con \`super upgrade\` (o \`/plugin update bi-superpowers\` en Claude Code) cuando te venga bien."
153
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con \`super upgrade\` (o \`/plugin update bi-superpowers\` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con \`super kickoff\`, después corré \`super recharge\` en ese repo."
154
154
 
155
155
  Then continue with the skill below.
156
156
  - \`SNOOZED <iso>\` — proceed silently.
@@ -55,7 +55,7 @@ Interpret the single-line output:
55
55
  ```bash
56
56
  super upgrade
57
57
  ```
58
- After it finishes, remind: _"Corré `super install --yes` cuando puedas para propagar las skills nuevas a tus agentes."_
58
+ After it finishes, remind: _"Si instalaste skills en el perfil del agente, corré `super install --yes`. Si además usás un plugin local generado con `super kickoff`, corré `super recharge` dentro de ese repo."_
59
59
 
60
60
  On `no` — respect it, continue to PHASE 1 silently. The update-state.json already tracks the user's snooze per `update-check.js` semantics.
61
61
 
@@ -180,7 +180,7 @@ Stop. Don't hover. The user will tell you what they want next.
180
180
  - **Project analysis or setup**: that's `/project-kickoff`. If the user says "analizar mi proyecto", "armar el modelo base", "arrancar uno nuevo desde cero", delegate.
181
181
  - **MCP wiring details**: that's `/pbi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
182
182
  - **Report authoring**: that's `/report-design`. Same pattern.
183
- - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual npm install + subsequent `super install --yes` chain is owned by `/bin/cli.js`.
183
+ - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --yes`, o `super recharge`) is owned by `/bin/cli.js`.
184
184
 
185
185
  ## Related Skills
186
186
 
@@ -15,7 +15,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
15
15
 
16
16
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
17
17
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
18
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
18
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
19
19
 
20
20
  Then continue with the skill below.
21
21
  - `SNOOZED <iso>` — proceed silently.
@@ -15,7 +15,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
15
15
 
16
16
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
17
17
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
18
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
18
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
19
19
 
20
20
  Then continue with the skill below.
21
21
  - `SNOOZED <iso>` — proceed silently.
@@ -592,11 +592,11 @@ Once the model has at least 1 fact, 1 dim, and 3 measures in place, propose movi
592
592
 
593
593
  El siguiente paso lógico es armar los 3 reportes con `/report-design`. Ese skill va a:
594
594
  1. Usar el dominio que ya definimos ({domain})
595
- 2. Inspeccionar tu modelo vía el pbi CLI para las medidas/dimensiones exactas
596
- 3. Generar 3 páginas con visuales vía CLI (card, line, bar, matrix)
595
+ 2. Inspeccionar tu modelo vía el Modeling MCP (o `pbi-cli-tool` si hace falta) para las medidas/dimensiones exactas
596
+ 3. Generar 3 páginas con scripts Node + comandos `pbi report` (card, line, bar, matrix)
597
597
  4. Cerrar y reabrir PBI Desktop para que renderice
598
598
 
599
- Requisito: necesitás pbi-cli-tool instalado (si no lo tenés el skill te guía).
599
+ Requisito: necesitás Windows + Power BI Desktop + Python 3.10+ + `pipx` + `pbi-cli-tool` (si te falta algo, el skill te guía).
600
600
 
601
601
  ¿Arrancamos con /report-design, o preferís agregar más medidas al modelo primero?
602
602
  ```
@@ -608,7 +608,7 @@ If the user opts for reports, load `/report-design` and let it run. If they want
608
608
  ## What this skill does NOT do
609
609
 
610
610
  - **No scoring / benchmarking** of an existing model. For that, the user can ask "audit this model" separately.
611
- - **Report authoring** is delegated to `/report-design` which orchestrates the `pbi-cli-tool` CLI — don't write `.Report/` files from here.
611
+ - **Report authoring** is delegated to `/report-design` which uses bundled Node scripts plus the `pbi` CLI runtime flow — don't write `.Report/` files from here.
612
612
 
613
613
  ---
614
614
 
@@ -15,7 +15,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
15
15
 
16
16
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
17
17
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
18
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
18
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
19
19
 
20
20
  Then continue with the skill below.
21
21
  - `SNOOZED <iso>` — proceed silently.
@@ -36,13 +36,13 @@ Activate this skill when the user mentions:
36
36
  - Explicit invocation: `/report-design`
37
37
 
38
38
  ## Identity
39
- You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author PBIR via **bundled Node scripts** — not via `pbi-cli-tool` upstream:
39
+ You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author the PBIR visual/theme layer via **bundled Node scripts** — not via the old `pbi visual` / `pbi report set-theme` path:
40
40
 
41
41
  - `scripts/create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (allowlist-driven, validated). **This replaces `pbi visual add` + `pbi visual bind`.**
42
42
  - `scripts/apply-theme.js` — registers a custom theme with the canonical `report.json` shape. **This replaces `pbi report set-theme`** (which writes invalid metadata for PBI Desktop March 2026).
43
43
  - `scripts/validate-pbir.js` — allowlist + bind-role validator. **Complements `pbi report validate`**, which passes `valid: True` even on non-native types like `stackedBarChart`.
44
44
 
45
- The `pbi-cli-tool` (MIT, by MinaSaad1) is kept around for **one purpose only**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`). Prefer the Microsoft Modeling MCP when available — same capability, better integrated.
45
+ The `pbi-cli-tool` (MIT, by MinaSaad1) is still required today for **three parts of the flow**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`), report page management (`pbi report add-page`, `pbi report list-pages`), and schema validation (`pbi report validate`). Prefer the Microsoft Modeling MCP when available for the introspection part — same capability, better integrated.
46
46
 
47
47
  Full rationale: `references/native-visuals.md` → section "Lo que este skill YA no hace via CLI".
48
48
 
@@ -368,8 +368,8 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
368
368
  **References** (`references/`):
369
369
  - `native-visuals.md` — **canonical reference**: 28 native visualTypes, their roles, shape canonical, copy-paste examples (read this before authoring)
370
370
  - `pbi-desktop-installation.md` — why the standalone installer build is required (not Microsoft Store), install + uninstall steps
371
- - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (only needed for model introspection via XMLA; scripts don't require it)
372
- - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (mostly `pbi connect` / `pbi measure list` for model introspection; authoring commands are superseded by the Node scripts)
371
+ - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (required because this skill still uses `pbi` for connect, page operations, and validation)
372
+ - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (`pbi connect`, `pbi measure list`, `pbi report add-page`, `pbi report list-pages`, `pbi report validate`)
373
373
  - `textbox.md` — historical manual-write pattern for textboxes (superseded by `create-visual.js --type textbox`; kept for reference)
374
374
  - `slicer.md` — historical manual-write pattern for slicers (superseded by `create-visual.js --type slicer --slicer-mode ...`; kept for reference)
375
375
  - `close-write-open-pattern.md` — why and how to handle the Desktop restart cycle
@@ -383,7 +383,7 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
383
383
  - `layouts/generic.md` — fallback 3-page composition
384
384
 
385
385
  **Scripts** (`scripts/`):
386
- - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (only needed for model introspection via XMLA)
386
+ - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (required for this skill's current runtime flow)
387
387
  - `apply-theme.js` — registers a custom PBIR theme with the canonical shape Desktop accepts (replaces the broken `pbi report set-theme` in PBI Desktop March 2026)
388
388
  - `create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (replaces `pbi visual add` + `pbi visual bind`; enforces allowlist)
389
389
  - `validate-pbir.js` — allowlist + role-checks validator that catches non-native visualTypes and missing/invalid bindings (complements `pbi report validate`)
@@ -400,4 +400,4 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
400
400
 
401
401
  ## Credit
402
402
 
403
- This skill orchestrates the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License). The CLI does the heavy lifting of PBIR JSON generation; we handle the teaching journey, planning, and Desktop lifecycle.
403
+ This skill integrates with the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License) for model introspection, page operations, and schema validation. Visual and theme authoring are handled by the bundled Node scripts; we orchestrate the teaching journey, planning, and Desktop lifecycle.
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@luquimbo/bi-superpowers",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "description": "Open-source Power BI Desktop toolkit for Claude Code, GitHub Copilot, Codex, Gemini CLI, and Kilo Code. Ships 4 skills and 2 official Microsoft MCP servers.",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {
7
- "bi-superpowers": "bin/cli.js"
7
+ "bi-superpowers": "bin/cli.js",
8
+ "super": "bin/cli.js"
8
9
  },
9
10
  "scripts": {
10
11
  "build:plugin": "node bin/build-plugin.js",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "bi-start"
3
3
  description: "Use when the user asks about BI Start Skill, especially phrases like \"bi-start\", \"bi start\", \"/bi-start\", \"empezar\", \"comenzar\", \"arranco\"."
4
- version: "4.1.1"
4
+ version: "4.1.2"
5
5
  ---
6
6
 
7
7
  <!-- Generated by BI Agent Superpowers. Edit src/content/skills/bi-start.md instead. -->
@@ -57,7 +57,7 @@ Interpret the single-line output:
57
57
  ```bash
58
58
  super upgrade
59
59
  ```
60
- After it finishes, remind: _"Corré `super install --yes` cuando puedas para propagar las skills nuevas a tus agentes."_
60
+ After it finishes, remind: _"Si instalaste skills en el perfil del agente, corré `super install --yes`. Si además usás un plugin local generado con `super kickoff`, corré `super recharge` dentro de ese repo."_
61
61
 
62
62
  On `no` — respect it, continue to PHASE 1 silently. The update-state.json already tracks the user's snooze per `update-check.js` semantics.
63
63
 
@@ -182,7 +182,7 @@ Stop. Don't hover. The user will tell you what they want next.
182
182
  - **Project analysis or setup**: that's `/project-kickoff`. If the user says "analizar mi proyecto", "armar el modelo base", "arrancar uno nuevo desde cero", delegate.
183
183
  - **MCP wiring details**: that's `/pbi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
184
184
  - **Report authoring**: that's `/report-design`. Same pattern.
185
- - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual npm install + subsequent `super install --yes` chain is owned by `/bin/cli.js`.
185
+ - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --yes`, o `super recharge`) is owned by `/bin/cli.js`.
186
186
 
187
187
  ## Related Skills
188
188
 
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
47
47
  // Rewritten at generation time when this helper is copied into
48
48
  // `skills/<name>/scripts/update-check.js`. In the canonical source under
49
49
  // `bin/commands/`, it stays null and we fall back to package.json.
50
- const BUNDLED_INSTALLED_VERSION = "4.1.1";
50
+ const BUNDLED_INSTALLED_VERSION = "4.1.2";
51
51
 
52
52
  // ---------------------------------------------------------------------------
53
53
  // Argument parsing
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "pbi-connect"
3
3
  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\"."
4
- version: "4.1.1"
4
+ version: "4.1.2"
5
5
  ---
6
6
 
7
7
  <!-- Generated by BI Agent Superpowers. Edit src/content/skills/pbi-connect.md instead. -->
@@ -17,7 +17,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
17
17
 
18
18
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
19
19
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
20
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
20
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
21
21
 
22
22
  Then continue with the skill below.
23
23
  - `SNOOZED <iso>` — proceed silently.
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
47
47
  // Rewritten at generation time when this helper is copied into
48
48
  // `skills/<name>/scripts/update-check.js`. In the canonical source under
49
49
  // `bin/commands/`, it stays null and we fall back to package.json.
50
- const BUNDLED_INSTALLED_VERSION = "4.1.1";
50
+ const BUNDLED_INSTALLED_VERSION = "4.1.2";
51
51
 
52
52
  // ---------------------------------------------------------------------------
53
53
  // Argument parsing
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "project-kickoff"
3
3
  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\"."
4
- version: "4.1.1"
4
+ version: "4.1.2"
5
5
  ---
6
6
 
7
7
  <!-- Generated by BI Agent Superpowers. Edit src/content/skills/project-kickoff.md instead. -->
@@ -17,7 +17,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
17
17
 
18
18
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
19
19
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
20
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
20
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
21
21
 
22
22
  Then continue with the skill below.
23
23
  - `SNOOZED <iso>` — proceed silently.
@@ -594,11 +594,11 @@ Once the model has at least 1 fact, 1 dim, and 3 measures in place, propose movi
594
594
 
595
595
  El siguiente paso lógico es armar los 3 reportes con `/report-design`. Ese skill va a:
596
596
  1. Usar el dominio que ya definimos ({domain})
597
- 2. Inspeccionar tu modelo vía el pbi CLI para las medidas/dimensiones exactas
598
- 3. Generar 3 páginas con visuales vía CLI (card, line, bar, matrix)
597
+ 2. Inspeccionar tu modelo vía el Modeling MCP (o `pbi-cli-tool` si hace falta) para las medidas/dimensiones exactas
598
+ 3. Generar 3 páginas con scripts Node + comandos `pbi report` (card, line, bar, matrix)
599
599
  4. Cerrar y reabrir PBI Desktop para que renderice
600
600
 
601
- Requisito: necesitás pbi-cli-tool instalado (si no lo tenés el skill te guía).
601
+ Requisito: necesitás Windows + Power BI Desktop + Python 3.10+ + `pipx` + `pbi-cli-tool` (si te falta algo, el skill te guía).
602
602
 
603
603
  ¿Arrancamos con /report-design, o preferís agregar más medidas al modelo primero?
604
604
  ```
@@ -610,7 +610,7 @@ If the user opts for reports, load `/report-design` and let it run. If they want
610
610
  ## What this skill does NOT do
611
611
 
612
612
  - **No scoring / benchmarking** of an existing model. For that, the user can ask "audit this model" separately.
613
- - **Report authoring** is delegated to `/report-design` which orchestrates the `pbi-cli-tool` CLI — don't write `.Report/` files from here.
613
+ - **Report authoring** is delegated to `/report-design` which uses bundled Node scripts plus the `pbi` CLI runtime flow — don't write `.Report/` files from here.
614
614
 
615
615
  ---
616
616
 
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
47
47
  // Rewritten at generation time when this helper is copied into
48
48
  // `skills/<name>/scripts/update-check.js`. In the canonical source under
49
49
  // `bin/commands/`, it stays null and we fall back to package.json.
50
- const BUNDLED_INSTALLED_VERSION = "4.1.1";
50
+ const BUNDLED_INSTALLED_VERSION = "4.1.2";
51
51
 
52
52
  // ---------------------------------------------------------------------------
53
53
  // Argument parsing
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "report-design"
3
3
  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\"."
4
- version: "4.1.1"
4
+ version: "4.1.2"
5
5
  ---
6
6
 
7
7
  <!-- Generated by BI Agent Superpowers. Edit src/content/skills/report-design.md instead. -->
@@ -17,7 +17,7 @@ node "{skillBundleDir}/scripts/update-check.js" --silent-if-uptodate --silent-if
17
17
 
18
18
  - Empty output or `UPTODATE` — proceed with the skill silently. No message.
19
19
  - `UPDATE_AVAILABLE <installed> <latest>` — tell the user exactly once this conversation, before diving into the skill:
20
- > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien."
20
+ > "Hay **bi-superpowers v{latest}** disponible (estás en v{installed}). Actualizá con `super upgrade` (o `/plugin update bi-superpowers` en Claude Code) cuando te venga bien. Si estás usando un plugin local generado con `super kickoff`, después corré `super recharge` en ese repo."
21
21
 
22
22
  Then continue with the skill below.
23
23
  - `SNOOZED <iso>` — proceed silently.
@@ -38,13 +38,13 @@ Activate this skill when the user mentions:
38
38
  - Explicit invocation: `/report-design`
39
39
 
40
40
  ## Identity
41
- You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author PBIR via **bundled Node scripts** — not via `pbi-cli-tool` upstream:
41
+ You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author the PBIR visual/theme layer via **bundled Node scripts** — not via the old `pbi visual` / `pbi report set-theme` path:
42
42
 
43
43
  - `scripts/create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (allowlist-driven, validated). **This replaces `pbi visual add` + `pbi visual bind`.**
44
44
  - `scripts/apply-theme.js` — registers a custom theme with the canonical `report.json` shape. **This replaces `pbi report set-theme`** (which writes invalid metadata for PBI Desktop March 2026).
45
45
  - `scripts/validate-pbir.js` — allowlist + bind-role validator. **Complements `pbi report validate`**, which passes `valid: True` even on non-native types like `stackedBarChart`.
46
46
 
47
- The `pbi-cli-tool` (MIT, by MinaSaad1) is kept around for **one purpose only**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`). Prefer the Microsoft Modeling MCP when available — same capability, better integrated.
47
+ The `pbi-cli-tool` (MIT, by MinaSaad1) is still required today for **three parts of the flow**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`), report page management (`pbi report add-page`, `pbi report list-pages`), and schema validation (`pbi report validate`). Prefer the Microsoft Modeling MCP when available for the introspection part — same capability, better integrated.
48
48
 
49
49
  Full rationale: `references/native-visuals.md` → section "Lo que este skill YA no hace via CLI".
50
50
 
@@ -370,8 +370,8 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
370
370
  **References** (`references/`):
371
371
  - `native-visuals.md` — **canonical reference**: 28 native visualTypes, their roles, shape canonical, copy-paste examples (read this before authoring)
372
372
  - `pbi-desktop-installation.md` — why the standalone installer build is required (not Microsoft Store), install + uninstall steps
373
- - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (only needed for model introspection via XMLA; scripts don't require it)
374
- - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (mostly `pbi connect` / `pbi measure list` for model introspection; authoring commands are superseded by the Node scripts)
373
+ - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (required because this skill still uses `pbi` for connect, page operations, and validation)
374
+ - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (`pbi connect`, `pbi measure list`, `pbi report add-page`, `pbi report list-pages`, `pbi report validate`)
375
375
  - `textbox.md` — historical manual-write pattern for textboxes (superseded by `create-visual.js --type textbox`; kept for reference)
376
376
  - `slicer.md` — historical manual-write pattern for slicers (superseded by `create-visual.js --type slicer --slicer-mode ...`; kept for reference)
377
377
  - `close-write-open-pattern.md` — why and how to handle the Desktop restart cycle
@@ -385,7 +385,7 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
385
385
  - `layouts/generic.md` — fallback 3-page composition
386
386
 
387
387
  **Scripts** (`scripts/`):
388
- - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (only needed for model introspection via XMLA)
388
+ - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (required for this skill's current runtime flow)
389
389
  - `apply-theme.js` — registers a custom PBIR theme with the canonical shape Desktop accepts (replaces the broken `pbi report set-theme` in PBI Desktop March 2026)
390
390
  - `create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (replaces `pbi visual add` + `pbi visual bind`; enforces allowlist)
391
391
  - `validate-pbir.js` — allowlist + role-checks validator that catches non-native visualTypes and missing/invalid bindings (complements `pbi report validate`)
@@ -402,4 +402,4 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
402
402
 
403
403
  ## Credit
404
404
 
405
- This skill orchestrates the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License). The CLI does the heavy lifting of PBIR JSON generation; we handle the teaching journey, planning, and Desktop lifecycle.
405
+ This skill integrates with the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License) for model introspection, page operations, and schema validation. Visual and theme authoring are handled by the bundled Node scripts; we orchestrate the teaching journey, planning, and Desktop lifecycle.
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
47
47
  // Rewritten at generation time when this helper is copied into
48
48
  // `skills/<name>/scripts/update-check.js`. In the canonical source under
49
49
  // `bin/commands/`, it stays null and we fall back to package.json.
50
- const BUNDLED_INSTALLED_VERSION = "4.1.1";
50
+ const BUNDLED_INSTALLED_VERSION = "4.1.2";
51
51
 
52
52
  // ---------------------------------------------------------------------------
53
53
  // Argument parsing
@@ -49,7 +49,7 @@ Interpret the single-line output:
49
49
  ```bash
50
50
  super upgrade
51
51
  ```
52
- After it finishes, remind: _"Corré `super install --yes` cuando puedas para propagar las skills nuevas a tus agentes."_
52
+ After it finishes, remind: _"Si instalaste skills en el perfil del agente, corré `super install --yes`. Si además usás un plugin local generado con `super kickoff`, corré `super recharge` dentro de ese repo."_
53
53
 
54
54
  On `no` — respect it, continue to PHASE 1 silently. The update-state.json already tracks the user's snooze per `update-check.js` semantics.
55
55
 
@@ -174,7 +174,7 @@ Stop. Don't hover. The user will tell you what they want next.
174
174
  - **Project analysis or setup**: that's `/project-kickoff`. If the user says "analizar mi proyecto", "armar el modelo base", "arrancar uno nuevo desde cero", delegate.
175
175
  - **MCP wiring details**: that's `/pbi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
176
176
  - **Report authoring**: that's `/report-design`. Same pattern.
177
- - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual npm install + subsequent `super install --yes` chain is owned by `/bin/cli.js`.
177
+ - **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --yes`, o `super recharge`) is owned by `/bin/cli.js`.
178
178
 
179
179
  ## Related Skills
180
180
 
@@ -565,11 +565,11 @@ Once the model has at least 1 fact, 1 dim, and 3 measures in place, propose movi
565
565
 
566
566
  El siguiente paso lógico es armar los 3 reportes con `/report-design`. Ese skill va a:
567
567
  1. Usar el dominio que ya definimos ({domain})
568
- 2. Inspeccionar tu modelo vía el pbi CLI para las medidas/dimensiones exactas
569
- 3. Generar 3 páginas con visuales vía CLI (card, line, bar, matrix)
568
+ 2. Inspeccionar tu modelo vía el Modeling MCP (o `pbi-cli-tool` si hace falta) para las medidas/dimensiones exactas
569
+ 3. Generar 3 páginas con scripts Node + comandos `pbi report` (card, line, bar, matrix)
570
570
  4. Cerrar y reabrir PBI Desktop para que renderice
571
571
 
572
- Requisito: necesitás pbi-cli-tool instalado (si no lo tenés el skill te guía).
572
+ Requisito: necesitás Windows + Power BI Desktop + Python 3.10+ + `pipx` + `pbi-cli-tool` (si te falta algo, el skill te guía).
573
573
 
574
574
  ¿Arrancamos con /report-design, o preferís agregar más medidas al modelo primero?
575
575
  ```
@@ -581,7 +581,7 @@ If the user opts for reports, load `/report-design` and let it run. If they want
581
581
  ## What this skill does NOT do
582
582
 
583
583
  - **No scoring / benchmarking** of an existing model. For that, the user can ask "audit this model" separately.
584
- - **Report authoring** is delegated to `/report-design` which orchestrates the `pbi-cli-tool` CLI — don't write `.Report/` files from here.
584
+ - **Report authoring** is delegated to `/report-design` which uses bundled Node scripts plus the `pbi` CLI runtime flow — don't write `.Report/` files from here.
585
585
 
586
586
  ---
587
587
 
@@ -9,13 +9,13 @@ Activate this skill when the user mentions:
9
9
  - Explicit invocation: `/report-design`
10
10
 
11
11
  ## Identity
12
- You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author PBIR via **bundled Node scripts** — not via `pbi-cli-tool` upstream:
12
+ You are **BI Report Architect**, an orchestrator that turns a finished semantic model into a Power BI report. You author the PBIR visual/theme layer via **bundled Node scripts** — not via the old `pbi visual` / `pbi report set-theme` path:
13
13
 
14
14
  - `scripts/create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (allowlist-driven, validated). **This replaces `pbi visual add` + `pbi visual bind`.**
15
15
  - `scripts/apply-theme.js` — registers a custom theme with the canonical `report.json` shape. **This replaces `pbi report set-theme`** (which writes invalid metadata for PBI Desktop March 2026).
16
16
  - `scripts/validate-pbir.js` — allowlist + bind-role validator. **Complements `pbi report validate`**, which passes `valid: True` even on non-native types like `stackedBarChart`.
17
17
 
18
- The `pbi-cli-tool` (MIT, by MinaSaad1) is kept around for **one purpose only**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`). Prefer the Microsoft Modeling MCP when available — same capability, better integrated.
18
+ The `pbi-cli-tool` (MIT, by MinaSaad1) is still required today for **three parts of the flow**: model introspection via XMLA (`pbi connect`, `pbi measure list`, `pbi table list`, `pbi column list`), report page management (`pbi report add-page`, `pbi report list-pages`), and schema validation (`pbi report validate`). Prefer the Microsoft Modeling MCP when available for the introspection part — same capability, better integrated.
19
19
 
20
20
  Full rationale: `references/native-visuals.md` → section "Lo que este skill YA no hace via CLI".
21
21
 
@@ -341,8 +341,8 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
341
341
  **References** (`references/`):
342
342
  - `native-visuals.md` — **canonical reference**: 28 native visualTypes, their roles, shape canonical, copy-paste examples (read this before authoring)
343
343
  - `pbi-desktop-installation.md` — why the standalone installer build is required (not Microsoft Store), install + uninstall steps
344
- - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (only needed for model introspection via XMLA; scripts don't require it)
345
- - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (mostly `pbi connect` / `pbi measure list` for model introspection; authoring commands are superseded by the Node scripts)
344
+ - `cli-setup.md` — how to install Python + pipx + pbi-cli-tool + pywin32 (required because this skill still uses `pbi` for connect, page operations, and validation)
345
+ - `cli-commands.md` — cheatsheet of the `pbi` commands still used by this skill (`pbi connect`, `pbi measure list`, `pbi report add-page`, `pbi report list-pages`, `pbi report validate`)
346
346
  - `textbox.md` — historical manual-write pattern for textboxes (superseded by `create-visual.js --type textbox`; kept for reference)
347
347
  - `slicer.md` — historical manual-write pattern for slicers (superseded by `create-visual.js --type slicer --slicer-mode ...`; kept for reference)
348
348
  - `close-write-open-pattern.md` — why and how to handle the Desktop restart cycle
@@ -356,7 +356,7 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
356
356
  - `layouts/generic.md` — fallback 3-page composition
357
357
 
358
358
  **Scripts** (`scripts/`):
359
- - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (only needed for model introspection via XMLA)
359
+ - `ensure-pbi-cli.sh` — idempotent installer for the pbi-cli-tool (required for this skill's current runtime flow)
360
360
  - `apply-theme.js` — registers a custom PBIR theme with the canonical shape Desktop accepts (replaces the broken `pbi report set-theme` in PBI Desktop March 2026)
361
361
  - `create-visual.js` — creates any of the 28 native PBI visualTypes with a canonical `visual.json` shape (replaces `pbi visual add` + `pbi visual bind`; enforces allowlist)
362
362
  - `validate-pbir.js` — allowlist + role-checks validator that catches non-native visualTypes and missing/invalid bindings (complements `pbi report validate`)
@@ -373,4 +373,4 @@ Cuando guardes desde Desktop, commiteá el .pbip a git para versionar.
373
373
 
374
374
  ## Credit
375
375
 
376
- This skill orchestrates the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License). The CLI does the heavy lifting of PBIR JSON generation; we handle the teaching journey, planning, and Desktop lifecycle.
376
+ This skill integrates with the [`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI by MinaSaad1 (MIT License) for model introspection, page operations, and schema validation. Visual and theme authoring are handled by the bundled Node scripts; we orchestrate the teaching journey, planning, and Desktop lifecycle.