@luquimbo/bi-superpowers 5.0.0 → 5.0.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.
- package/.claude-plugin/marketplace.json +5 -3
- package/.claude-plugin/plugin.json +1 -1
- package/.claude-plugin/skill-manifest.json +23 -7
- package/.plugin/plugin.json +1 -1
- package/AGENTS.md +123 -25
- package/CHANGELOG.md +459 -16
- package/README.md +28 -113
- package/bin/cli.js +1 -1
- package/bin/commands/diff.js +2 -2
- package/bin/commands/install.js +58 -45
- package/bin/commands/lint.js +2 -2
- package/bin/commands/validate-projects.js +1 -1
- package/bin/lib/generators/claude-plugin.js +14 -5
- package/bin/lib/generators/shared.js +9 -5
- package/bin/lib/mcp-config.js +22 -2
- package/bin/lib/skills.js +8 -8
- package/bin/mcp/powerbi-modeling-launcher.js +8 -4
- package/bin/postinstall.js +14 -12
- package/bin/utils/mcp-detect.js +11 -11
- package/commands/bi-connect.md +34 -17
- package/commands/bi-dax.md +385 -0
- package/commands/bi-kickoff.md +75 -44
- package/commands/bi-modeling.md +395 -0
- package/commands/bi-performance.md +455 -0
- package/commands/bi-start.md +30 -18
- package/desktop-extension/manifest.json +2 -2
- package/package.json +3 -2
- package/skills/bi-connect/SKILL.md +34 -17
- package/skills/bi-connect/scripts/update-check.js +1 -1
- package/skills/bi-dax/SKILL.md +387 -0
- package/skills/{bi-report → bi-dax}/scripts/update-check.js +1 -1
- package/skills/bi-kickoff/SKILL.md +75 -44
- package/skills/bi-kickoff/scripts/update-check.js +1 -1
- package/skills/bi-modeling/SKILL.md +397 -0
- package/skills/bi-modeling/scripts/update-check.js +403 -0
- package/skills/bi-performance/SKILL.md +457 -0
- package/skills/bi-performance/scripts/install-tabular-editor.ps1 +90 -0
- package/skills/bi-performance/scripts/run-bpa.ps1 +161 -0
- package/skills/bi-performance/scripts/update-check.js +403 -0
- package/skills/bi-start/SKILL.md +31 -19
- package/skills/bi-start/scripts/update-check.js +1 -1
- package/src/content/base.md +13 -8
- package/src/content/routing.md +1 -5
- package/src/content/skills/bi-connect.md +32 -15
- package/src/content/skills/bi-dax.md +358 -0
- package/src/content/skills/bi-kickoff.md +73 -42
- package/src/content/skills/bi-modeling.md +368 -0
- package/src/content/skills/bi-performance/SKILL.md +428 -0
- package/src/content/skills/bi-performance/scripts/install-tabular-editor.ps1 +90 -0
- package/src/content/skills/bi-performance/scripts/run-bpa.ps1 +161 -0
- package/src/content/skills/bi-start.md +30 -18
- package/theme/BISuperpowers.json +3888 -0
- package/commands/bi-report.md +0 -403
- package/skills/bi-report/SKILL.md +0 -405
- package/skills/bi-report/references/cli-commands.md +0 -184
- package/skills/bi-report/references/cli-setup.md +0 -101
- package/skills/bi-report/references/close-write-open-pattern.md +0 -80
- package/skills/bi-report/references/layouts/finance.md +0 -65
- package/skills/bi-report/references/layouts/generic.md +0 -46
- package/skills/bi-report/references/layouts/hr.md +0 -48
- package/skills/bi-report/references/layouts/marketing.md +0 -45
- package/skills/bi-report/references/layouts/operations.md +0 -44
- package/skills/bi-report/references/layouts/sales.md +0 -50
- package/skills/bi-report/references/native-visuals.md +0 -341
- package/skills/bi-report/references/pbi-desktop-installation.md +0 -87
- package/skills/bi-report/references/pbir-preview-activation.md +0 -40
- package/skills/bi-report/references/slicer.md +0 -89
- package/skills/bi-report/references/textbox.md +0 -101
- package/skills/bi-report/references/themes/BISuperpowers.json +0 -915
- package/skills/bi-report/references/troubleshooting.md +0 -135
- package/skills/bi-report/references/visual-types.md +0 -78
- package/skills/bi-report/scripts/apply-theme.js +0 -243
- package/skills/bi-report/scripts/create-visual.js +0 -942
- package/skills/bi-report/scripts/ensure-pbi-cli.sh +0 -41
- package/skills/bi-report/scripts/validate-pbir.js +0 -351
- package/src/content/skills/bi-report/SKILL.md +0 -376
- package/src/content/skills/bi-report/references/cli-commands.md +0 -184
- package/src/content/skills/bi-report/references/cli-setup.md +0 -101
- package/src/content/skills/bi-report/references/close-write-open-pattern.md +0 -80
- package/src/content/skills/bi-report/references/layouts/finance.md +0 -65
- package/src/content/skills/bi-report/references/layouts/generic.md +0 -46
- package/src/content/skills/bi-report/references/layouts/hr.md +0 -48
- package/src/content/skills/bi-report/references/layouts/marketing.md +0 -45
- package/src/content/skills/bi-report/references/layouts/operations.md +0 -44
- package/src/content/skills/bi-report/references/layouts/sales.md +0 -50
- package/src/content/skills/bi-report/references/native-visuals.md +0 -341
- package/src/content/skills/bi-report/references/pbi-desktop-installation.md +0 -87
- package/src/content/skills/bi-report/references/pbir-preview-activation.md +0 -40
- package/src/content/skills/bi-report/references/slicer.md +0 -89
- package/src/content/skills/bi-report/references/textbox.md +0 -101
- package/src/content/skills/bi-report/references/themes/BISuperpowers.json +0 -915
- package/src/content/skills/bi-report/references/troubleshooting.md +0 -135
- package/src/content/skills/bi-report/references/visual-types.md +0 -78
- package/src/content/skills/bi-report/scripts/apply-theme.js +0 -243
- package/src/content/skills/bi-report/scripts/create-visual.js +0 -942
- package/src/content/skills/bi-report/scripts/ensure-pbi-cli.sh +0 -41
- package/src/content/skills/bi-report/scripts/validate-pbir.js +0 -351
package/CHANGELOG.md
CHANGED
|
@@ -7,13 +7,456 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Fixed — 2026-05-08 (release readiness review)
|
|
11
|
+
|
|
12
|
+
- Updated all template-reference guidance to match the current smoke-test
|
|
13
|
+
template: `Métricas` is the dedicated metrics table, measure display folders
|
|
14
|
+
are one-level (`Auxiliar`, fact-table folders, `Ratios`), base currency flows
|
|
15
|
+
through `MonedaBase` + `Modelo Configuración[ValorTexto]`, and exchange rates
|
|
16
|
+
use `Tipo de cambio[TipoCambioBase]`.
|
|
17
|
+
- Tightened the PBIR field-swap exception wording so agents cannot interpret it
|
|
18
|
+
as permission to hand-patch `visual.json`; only the dedicated plugin command
|
|
19
|
+
may update data-binding nodes, with dry-run, backup, and validation.
|
|
20
|
+
- Changed the Tabular Editor helper scripts so BPA runs do not silently install
|
|
21
|
+
TE2. Installation now requires explicit `-Install` / `-InstallTabularEditor`
|
|
22
|
+
after user consent, supports `GITHUB_TOKEN` for GitHub API limits, and fails
|
|
23
|
+
instead of guessing when multiple active Power BI Desktop workspaces are
|
|
24
|
+
reachable.
|
|
25
|
+
- Updated public package metadata and CLI install summaries from the old
|
|
26
|
+
"3 skills" wording to the current 6-skill contract.
|
|
27
|
+
|
|
28
|
+
### Changed — 2026-05-08 (skill rules: PBIP read-only + template-as-reference)
|
|
29
|
+
|
|
30
|
+
- Cemented two cross-cutting invariants across all 6 skills (`bi-start`,
|
|
31
|
+
`bi-kickoff`, `bi-modeling`, `bi-dax`, `bi-performance`, `bi-connect`):
|
|
32
|
+
- **PBIP files are read-only**, with the single allowed exception being
|
|
33
|
+
the plugin-owned field-swap/rebind command that replaces source
|
|
34
|
+
fields/measures with target fields/measures in *existing template visuals*
|
|
35
|
+
(preserving visual type, layout, formatting, interactions, IDs, theme, and
|
|
36
|
+
bookmarks).
|
|
37
|
+
- **Template is the reference**: skills replicate the BISuperpowers
|
|
38
|
+
smoke-test template's patterns (Auto Date/Time off, marked Date Table,
|
|
39
|
+
`Métricas` measure table, one-level display folders, Sallieri period
|
|
40
|
+
comparison via `Aux Comparaciones`, parameterizable currency via
|
|
41
|
+
`MonedaBase` + `Modelo Configuración` + `Tipo de cambio`, dynamic
|
|
42
|
+
dimensions via `Aux Dimensiones ventas` field parameters,
|
|
43
|
+
calculation-group time intelligence, IBCS-aligned theme) in new projects
|
|
44
|
+
and audit/migrate existing projects toward them.
|
|
45
|
+
- Added "Template Patterns to Replicate" sections to `/bi-modeling` and
|
|
46
|
+
"Template DAX Patterns to Replicate" to `/bi-dax` with concrete pattern
|
|
47
|
+
references and an audit checklist for existing projects.
|
|
48
|
+
- Surfaced both invariants at the top of `AGENTS.md` (Project Overrides).
|
|
49
|
+
|
|
50
|
+
### Fixed — 2026-05-08 (slash commands for new skills)
|
|
51
|
+
|
|
52
|
+
- `COMMAND_SKILLS` in `bin/lib/generators/claude-plugin.js` was missing
|
|
53
|
+
`bi-modeling`, `bi-dax`, and `bi-performance`, so the build was emitting
|
|
54
|
+
Claude Code slash-command files only for the 3 original skills. Fixed —
|
|
55
|
+
all 6 skills now generate `commands/<name>.md`.
|
|
56
|
+
|
|
57
|
+
### Fixed — 2026-05-08 (docs accuracy: skill counts and retired references)
|
|
58
|
+
|
|
59
|
+
- README.md, AGENTS.md, GETTING-STARTED.md, ARCHITECTURE.md updated from
|
|
60
|
+
"3 / 4 skills" to **6 skills**. Removed lingering references to the
|
|
61
|
+
retired `leverio-workflow` skill from GETTING-STARTED.md and
|
|
62
|
+
ARCHITECTURE.md (skill list and generated tree).
|
|
63
|
+
|
|
64
|
+
### Changed — 2026-05-08 (template display folders)
|
|
65
|
+
|
|
66
|
+
- Flattened template measure display folders to one level: `Auxiliar` for helper
|
|
67
|
+
measures, `Ventas` for fact-table measures, and `Ratios` for percentage and
|
|
68
|
+
average calculations. Removed nested display-folder paths from the semantic
|
|
69
|
+
model.
|
|
70
|
+
|
|
71
|
+
### Changed — 2026-05-08 (template currency symbols)
|
|
72
|
+
|
|
73
|
+
- Changed the template USD display symbol from `$US` to `$` and simplified the
|
|
74
|
+
currency formatting UDFs so monetary formats and compact labels render the
|
|
75
|
+
selected `Monedas[Símbolo]` directly.
|
|
76
|
+
|
|
77
|
+
### Changed — 2026-05-08 (template sample dataset queries)
|
|
78
|
+
|
|
79
|
+
- Migrated the smoke-test template sample dataset tables (`Ventas`,
|
|
80
|
+
`Clientes`, `Productos`, `Canales`, `Monedas`, and `Tipo de cambio`) from DAX
|
|
81
|
+
calculated tables to Power Query/M partitions so learners see the star-schema
|
|
82
|
+
sample data as loaded query data. Semantic helper tables remain in DAX where
|
|
83
|
+
they model template behavior rather than source data.
|
|
84
|
+
|
|
85
|
+
### Added — 2026-05-08 (bi-performance skill + Tabular Editor 2 integration)
|
|
86
|
+
|
|
87
|
+
- New `/bi-performance` specialist skill: holistic performance diagnostician
|
|
88
|
+
with the discipline "measure first, optimize second". Routes by symptom
|
|
89
|
+
(slow page, slow measure, slow refresh, large model, capacity pressure)
|
|
90
|
+
through dedicated phases for Performance Analyzer, DAX query timing
|
|
91
|
+
(Storage Engine vs Formula Engine split), VertiPaq audit via `INFO.*` DMVs,
|
|
92
|
+
refresh diagnostics (incremental refresh patterns), and Fabric Capacity
|
|
93
|
+
Metrics. Includes an Anti-patterns table and Healthy Performance Targets
|
|
94
|
+
reference (page load, query duration, refresh, model size, capacity CU).
|
|
95
|
+
- **Tabular Editor 2 integration**: bundled `scripts/install-tabular-editor.ps1`
|
|
96
|
+
detects or installs TE2 (free, MIT) to `%LOCALAPPDATA%\TabularEditor\` with
|
|
97
|
+
detect-then-prompt UX (never silent-install). `scripts/run-bpa.ps1` runs
|
|
98
|
+
Microsoft's Best Practice Analyzer rules against the open Desktop instance,
|
|
99
|
+
auto-detecting the AS port from `msmdsrv.port.txt` and caching the rules
|
|
100
|
+
JSON for 7 days. `/bi-modeling` references this integration as an optional
|
|
101
|
+
deeper audit layer.
|
|
102
|
+
- Updated `/bi-start` menu to show all 5 specialist skills.
|
|
103
|
+
|
|
104
|
+
### Added — 2026-05-08 (bi-dax skill)
|
|
105
|
+
|
|
106
|
+
- New `/bi-dax` skill: DAX authoring, debugging, and optimization. Covers
|
|
107
|
+
variables, DIVIDE, BLANK propagation, filter context teaching, Storage Engine
|
|
108
|
+
vs. Formula Engine, calculation groups (standard time intelligence items,
|
|
109
|
+
ordinal, double-application guard), advanced patterns (Sallieri period
|
|
110
|
+
comparison, dynamic field parameters, currency conversion, semi-additive
|
|
111
|
+
measures, RANKX), performance anti-patterns, and live model introspection via
|
|
112
|
+
`INFO.*` DMVs. Validates every non-trivial formula with `dax_query_operations`
|
|
113
|
+
before committing. Writes all measures through the Power BI Modeling MCP.
|
|
114
|
+
- Updated `/bi-start` menu to show all 4 specialist skills.
|
|
115
|
+
|
|
116
|
+
### Added — 2026-05-08 (bi-modeling skill)
|
|
117
|
+
|
|
118
|
+
- New `/bi-modeling` skill: Power BI semantic model design, audit, and DAX
|
|
119
|
+
authoring. Covers star schema design (grain → fact → dimensions → relationships
|
|
120
|
+
→ first measure slice), model health audits with CRÍTICO/ADVERTENCIA/INFO
|
|
121
|
+
severity tiers, targeted modeling tasks, DAX pattern reference, and an
|
|
122
|
+
anti-patterns table. Operates exclusively through the Power BI Modeling MCP;
|
|
123
|
+
enforces Auto Date/Time disablement, Date Table marking, and
|
|
124
|
+
`discourageImplicitMeasures` on every model it touches.
|
|
125
|
+
- Updated `/bi-start` menu to show all 3 specialist skills
|
|
126
|
+
(`bi-kickoff`, `bi-modeling`, `bi-connect`).
|
|
127
|
+
|
|
128
|
+
### Changed — 2026-05-08 (template base currency parameter)
|
|
129
|
+
|
|
130
|
+
- Added a `MonedaBase` Power Query parameter to the smoke-test template and
|
|
131
|
+
made it the single source for both model base currency and default
|
|
132
|
+
visualization currency. Currency conversion now reads exchange rates against
|
|
133
|
+
the configured base currency instead of treating `USD` as an untracked DAX
|
|
134
|
+
convention.
|
|
135
|
+
|
|
136
|
+
### Changed — 2026-05-08 (template currency conversion)
|
|
137
|
+
|
|
138
|
+
- Aligned the smoke-test template currency model with the Sallieri pattern:
|
|
139
|
+
`Monedas` is now a pure currency selector, `Tipo de cambio` owns date-level
|
|
140
|
+
exchange rates, and the conversion and format UDFs use the Sallieri USD
|
|
141
|
+
short-circuit, blank handling, same-currency short-circuit, `Monetaria` flag,
|
|
142
|
+
and `$US` formatting behavior.
|
|
143
|
+
|
|
144
|
+
### Changed — 2026-05-08 (Git coaching in BI workflows)
|
|
145
|
+
|
|
146
|
+
- Clarified the agent convention that Power BI users should be coached toward
|
|
147
|
+
developer-grade Git habits: after meaningful saved Desktop changes, agents
|
|
148
|
+
should review diffs, explain the snapshot, recommend a commit, and offer to
|
|
149
|
+
create it automatically when the repo is clean and verified.
|
|
150
|
+
|
|
151
|
+
### Removed — 2026-05-08 (repo workflow skill)
|
|
152
|
+
|
|
153
|
+
- Removed `leverio-workflow` from the shipped plugin contract. The five-file
|
|
154
|
+
project workflow remains an internal maintainer convention for this repo, but
|
|
155
|
+
the public plugin now ships only the three BI skills: `bi-start`,
|
|
156
|
+
`bi-kickoff`, and `bi-connect`.
|
|
157
|
+
|
|
158
|
+
### Added — 2026-05-07 (canonical theme source)
|
|
159
|
+
|
|
160
|
+
- Added `theme/BISuperpowers.json` as the canonical source of truth for the
|
|
161
|
+
Power BI JSON theme, separate from the PBIP copy that Desktop can overwrite.
|
|
162
|
+
Theme changes should be edited here and then copied into the PBIP location
|
|
163
|
+
when deploying to Desktop.
|
|
164
|
+
- Included `theme/` in the npm package so the canonical theme source ships with
|
|
165
|
+
the CLI.
|
|
166
|
+
- Corrected semantic colors to Tremor values: `good: #22C55E`, `bad: #EF4444`,
|
|
167
|
+
`neutral: #6B7280`; also updated `kpi.goodColor` and
|
|
168
|
+
`waterfallChart.increaseFill` to match.
|
|
169
|
+
- Corrected `callout` font size from 32 → 20 pt and font face to DIN; `title`
|
|
170
|
+
font face from DIN → Segoe UI Semibold at 10 pt.
|
|
171
|
+
- Corrected `cardVisual.referenceLabelValue.valueFontSize` from 8 → 10 pt.
|
|
172
|
+
- Set `cardVisual.padding` to `6/3/6/3` (was `0/0/0/0`).
|
|
173
|
+
|
|
174
|
+
### Changed — 2026-05-06 (PBIR field-swap exception)
|
|
175
|
+
|
|
176
|
+
- Refined the PBIP artifact editing rule: the only report-side exception is a
|
|
177
|
+
plugin-owned field-swap/rebind command for existing template visuals. It may
|
|
178
|
+
write PBIR only for data binding nodes (`projections`, `prototypeQuery`, query
|
|
179
|
+
refs, field parameters, and sort/filter field references when required), with
|
|
180
|
+
dry-run, backup, validation, and explicit source-to-target mapping. Bookmarks,
|
|
181
|
+
layout, formatting, interactions, IDs, theme, slicer/card settings, and other
|
|
182
|
+
report artifacts remain protected from ad hoc JSON edits.
|
|
183
|
+
|
|
184
|
+
### Fixed — 2026-05-06 (bi-kickoff MCP write rule)
|
|
185
|
+
|
|
186
|
+
- Tightened `bi-kickoff` so a missing Modeling MCP means connect first or stop;
|
|
187
|
+
it must not be interpreted as permission to fall back to direct TMDL/PBIP
|
|
188
|
+
file edits.
|
|
189
|
+
|
|
190
|
+
### Changed — 2026-05-06 (PBIP artifact editing rule)
|
|
191
|
+
|
|
192
|
+
- Codified the post-`bi-report` rule that PBIP files are version-control
|
|
193
|
+
snapshots, not an agent authoring surface. Semantic-model changes must go
|
|
194
|
+
through the Power BI Modeling MCP; report and visual changes are manual Power
|
|
195
|
+
BI Desktop work. Agents must not patch PBIR `.Report/**` JSON, visual
|
|
196
|
+
bindings, slicer/card settings, themes, or report resources directly.
|
|
197
|
+
- Added the only planned exception: a future plugin-owned field-swap/rebind
|
|
198
|
+
action for template adaptation. It must replace fields in existing visuals
|
|
199
|
+
through an explicit mapping and preserve visual type, layout, formatting,
|
|
200
|
+
interactions, IDs, and theme; agents still must not improvise JSON patches.
|
|
201
|
+
|
|
202
|
+
### Changed — 2026-05-06 (template period comparison queries)
|
|
203
|
+
|
|
204
|
+
- Updated the smoke-test template semantic model with the Sallieri period
|
|
205
|
+
comparison query tables (`Calendar`, `Calendar Type`, `Calendar Periods`,
|
|
206
|
+
`Calendar Comparisons`, `Calendar Axes`, and `Modelo Configuración`) so the
|
|
207
|
+
fixture can exercise the same comparison-period logic as the client model.
|
|
208
|
+
|
|
209
|
+
### Removed — 2026-05-05 (retired report authoring skill)
|
|
210
|
+
|
|
211
|
+
- Removed the retired PBIR report-authoring skill from package source,
|
|
212
|
+
generated skills, slash commands, manifests, validation cases, and public
|
|
213
|
+
docs. The local user-level copy is intentionally left outside the package so
|
|
214
|
+
this repository no longer installs or ships that workflow.
|
|
215
|
+
|
|
216
|
+
### Fixed — 2026-05-04 (validate-pbir tabOrder false-positive)
|
|
217
|
+
|
|
218
|
+
- **`validate-pbir.js` `position-number` rule** loosened to match Power BI
|
|
219
|
+
Desktop's actual save behavior: `tabOrder` is now optional. Desktop
|
|
220
|
+
omits `tabOrder` from the `position` block on visuals it considers
|
|
221
|
+
non-interactive (cards, decorative elements). The validator
|
|
222
|
+
previously required it, producing 9 false-positive errors per save
|
|
223
|
+
cycle on the smoke-test template. New behavior: required fields are
|
|
224
|
+
`x, y, z, height, width`; `tabOrder` is required to be a finite
|
|
225
|
+
number ONLY when present. Two new test cases lock in the contract
|
|
226
|
+
(`absent tabOrder is valid`, `present-but-non-finite tabOrder is
|
|
227
|
+
still an error`). Smoke test goes from 10 errors → 0 errors.
|
|
228
|
+
|
|
229
|
+
### Added — Session G 2026-05-03 (Semantic-model deep audit, "best template in the world")
|
|
230
|
+
|
|
231
|
+
- **`retired-report-skill` MANDATORY RULES 18-20** codifying the three highest-impact
|
|
232
|
+
cleanups every pro template must ship with:
|
|
233
|
+
- **RULE 18 — Disable Auto Date/Time**: model annotation
|
|
234
|
+
`__PBI_TimeIntelligenceEnabled = 0` + cascade-delete every
|
|
235
|
+
`LocalDateTable_*` and `DateTableTemplate_*`. The lab template carried
|
|
236
|
+
8 phantom tables (~64 junk columns + 7 phantom relationships).
|
|
237
|
+
Verified via `INFO.ANNOTATIONS()` DMV (TMDL export hides the
|
|
238
|
+
annotation but the DMV proves it).
|
|
239
|
+
- **RULE 19 — Mark real calendar as Date Table**: one MCP call
|
|
240
|
+
(`table_operations.MarkAsDateTable` on `Calendario.Fecha`); without
|
|
241
|
+
it, Time Intelligence (`DATEADD`, `SAMEPERIODLASTYEAR`, calculation
|
|
242
|
+
groups using DATEADD) silently returns wrong results.
|
|
243
|
+
- **RULE 20 — Every dimension gets a user hierarchy**: drill-down is
|
|
244
|
+
a free Power BI feature that turns flat field lists into explorable
|
|
245
|
+
models. Created `Jerarquía de fechas / productos / geográfica /
|
|
246
|
+
canales` in the lab template (Año→Trimestre→Año mes→Semana→Fecha,
|
|
247
|
+
Categoría→Subcategoría→Producto, País→Segmento→Cliente, Tipo de
|
|
248
|
+
canal→Canal).
|
|
249
|
+
|
|
250
|
+
### Changed — Lab smoke test (template.pbip) Session G
|
|
251
|
+
|
|
252
|
+
- **Auto Date/Time disabled** model-wide. 8 phantom tables removed
|
|
253
|
+
(`DateTableTemplate_c35f5a13` + 7 `LocalDateTable_*`), 7 phantom
|
|
254
|
+
relationships gone, ~940 net lines deleted from TMDL on disk.
|
|
255
|
+
- **`Calendario` marked as Date Table** with `Fecha` as the date column.
|
|
256
|
+
- **`Métrica Seleccionada` → `Métrica seleccionada`** (consistency with
|
|
257
|
+
the rest of the model's Sentence-case capitalization).
|
|
258
|
+
- **`Calendario[Año mes]`** now has explicit `sortByColumn: 'Orden año
|
|
259
|
+
mes'` (was relying on lexicographic order — bug-prone).
|
|
260
|
+
- **`Calendario[Semana]`** had a spurious `formatString: 0` left over from
|
|
261
|
+
when it was an Int64 — removed (the column has been a String "S48
|
|
262
|
+
(24/12)" since the user-friendly labels rework).
|
|
263
|
+
- **`Ventas[VentaId]`** flipped from `summarizeBy: count` to
|
|
264
|
+
`summarizeBy: none` (defensive; the table is already hidden but the ID
|
|
265
|
+
shouldn't be summable in any code path).
|
|
266
|
+
- **Audit verdict on legacy `Aux Métricas` columns** (Monetaria,
|
|
267
|
+
Acumulado, Media móvil, Tipo de métrica, Agregación predeterminada,
|
|
268
|
+
Base acumulable, Descripción): kept. They are hidden, don't degrade
|
|
269
|
+
performance (≤6 unique values), document Salieri's design intent, and
|
|
270
|
+
remain available for future calculation groups. `Permite promedio` and
|
|
271
|
+
`Permite acumulado` confirmed in active use by the `Aux Vista del
|
|
272
|
+
valor` calculation group.
|
|
273
|
+
|
|
274
|
+
### Added — Session F continuation 2026-05-02 PM (Field Parameters + UDF refactor)
|
|
275
|
+
|
|
276
|
+
- **`retired-report-skill` MANDATORY RULES 15-17**: field-parameter binding contract,
|
|
277
|
+
`__HasCalendarAxis` enumeration rule for router measures, and
|
|
278
|
+
dynamic-format-string contract via `formatStringExpression`.
|
|
279
|
+
- **New reference doc** `src/content/skills/retired-report-skill/references/field-parameters.md`:
|
|
280
|
+
TMDL `kind:2` ParameterMetadata + NAMEOF pattern, visual.json
|
|
281
|
+
`fieldParameters[]` projection sibling, end-to-end calculated-table →
|
|
282
|
+
Field-Parameter conversion checklist, and seven failure modes
|
|
283
|
+
catalogued from the lab debugging session.
|
|
284
|
+
- **New reference doc** `src/content/skills/retired-report-skill/references/dynamic-axis-measures.md`:
|
|
285
|
+
`__HasCalendarAxis` ISINSCOPE pattern, `FormatStringExpression` via
|
|
286
|
+
selector-table format column, period-aware `CalendarContext()` usage,
|
|
287
|
+
and end-to-end checklist for shipping a router measure.
|
|
288
|
+
- **New helper script**
|
|
289
|
+
`src/content/skills/retired-report-skill/scripts/save-powerbi-window.ps1`:
|
|
290
|
+
programmatic `Ctrl+S` send to the active PBI Desktop window. Mirrors
|
|
291
|
+
Codex's flow via Win32 SetForegroundWindow + wscript.shell SendKeys
|
|
292
|
+
"^s". Use BEFORE any `taskkill` when there are uncommitted MCP model
|
|
293
|
+
edits — otherwise they are silently lost.
|
|
294
|
+
- **`bi-connect` MANDATORY RULE 8**: "MCP MODEL EDITS ARE IN-MEMORY ONLY
|
|
295
|
+
— SAVE BEFORE CLOSE." Codifies the Codex pattern: either ask the
|
|
296
|
+
user for `Ctrl+S` confirmation or drive save via the new helper.
|
|
297
|
+
`taskkill /F /IM PBIDesktop.exe` without a prior save discards every
|
|
298
|
+
MCP edit silently.
|
|
299
|
+
- **`retired-report-skill` MANDATORY RULE 3 (extended)**: companion save-before-close
|
|
300
|
+
rule for mixed cycles. Order of operations: (1) MCP edits, (2) save,
|
|
301
|
+
(3) taskkill, (4) edit visual.json, (5) relaunch.
|
|
302
|
+
|
|
303
|
+
### Changed — lab smoke test (template.pbip)
|
|
304
|
+
|
|
305
|
+
- **`Aux Ejes temporales` is now a real Field Parameter** (`kind: 2`
|
|
306
|
+
ParameterMetadata + NAMEOF references to `Calendario[Fecha / Semana /
|
|
307
|
+
Mes / Trimestre / Año]`). Slicer-driven dynamic axis works on the
|
|
308
|
+
Evolución page line chart and pivot table. Same pattern as Salieri's
|
|
309
|
+
`Calendar Axes`.
|
|
310
|
+
- **`Calendario` columns now display user-friendly labels in their
|
|
311
|
+
ORIGINAL columns** (no `Etiqueta` suffix per Lucas's preference):
|
|
312
|
+
`Fecha` formatString "ddd d/M" → "mar 5/12"; `Mes` value "Ene '26"
|
|
313
|
+
sorted by `Orden año mes`; `Trimestre` value "Q1 '26" sorted by new
|
|
314
|
+
`Trimestre Orden` column; `Semana` value "S48 (24/12)" with the
|
|
315
|
+
Monday-of-week date, sorted by new `Semana Orden` column.
|
|
316
|
+
- **Two new UDFs** in template's model:
|
|
317
|
+
- `FormatoMetricaSeleccionada()` — returns the format string
|
|
318
|
+
configured for the selected metric (`SELECTEDVALUE('Aux Métricas'[Formato], "#,0")`).
|
|
319
|
+
Used as `formatStringExpression` on `Actual`, `Anterior`, `Variación`.
|
|
320
|
+
- `EjeCalendarioEnContexto()` — TRUE if any `Calendario` column is in
|
|
321
|
+
scope (Fecha / Año / Trimestre / Mes / Año mes / Semana). Centralized
|
|
322
|
+
so adding a new calendar column is one edit, not N.
|
|
323
|
+
- **Router measures `Actual` / `Anterior` refactored** to call the two
|
|
324
|
+
new UDFs instead of inlining the ISINSCOPE chain and the
|
|
325
|
+
`SELECTEDVALUE([Formato])`. Less code duplication; one point of
|
|
326
|
+
change for future granularities.
|
|
327
|
+
|
|
328
|
+
### Changed
|
|
329
|
+
|
|
330
|
+
- **Lab smoke test — auxiliary tables renamed for clarity** (Session F continuation,
|
|
331
|
+
2026-05-02). Eight model tables renamed via the `powerbi-modeling-mcp` `Rename`
|
|
332
|
+
operation (auto-updates DAX expressions and relationships) plus a JSON-aware
|
|
333
|
+
bulk replace across all PBIR `definition/**.json` files (224 `Entity` refs +
|
|
334
|
+
236 qualified `queryRef`/`metadata` refs). Renames:
|
|
335
|
+
- `Comparaciones` → `Aux Comparaciones`
|
|
336
|
+
- `Períodos` → `Aux Períodos`
|
|
337
|
+
- `Vista de calendario` → `Aux Vista de calendario`
|
|
338
|
+
- `Ejes temporales` → `Aux Ejes temporales`
|
|
339
|
+
- `Vista del valor` → `Aux Vista del valor`
|
|
340
|
+
- `Vista temporal` → `Aux Vista temporal`
|
|
341
|
+
- `Métricas` → `Aux Métricas` (heart of the model — 26 measures, central selector)
|
|
342
|
+
- `TipoCambio` → `Tipo de cambio` (cosmetic; spaces are friendlier)
|
|
343
|
+
|
|
344
|
+
Convention: every disconnected/auxiliary selector or catalog table now
|
|
345
|
+
carries an `Aux ` prefix so they group together in the PBI Desktop Fields
|
|
346
|
+
pane and are visually distinct from real fact/dim tables (`Ventas`,
|
|
347
|
+
`Productos`, `Clientes`, `Canales`, `Fecha`, `Monedas`). DAX measures still
|
|
348
|
+
live inside `Aux Métricas` — the rename does not separate them.
|
|
349
|
+
|
|
350
|
+
Verified end-to-end: model DAX (`CALCULATE([Actual], 'Aux Comparaciones'[Comparación EN] = …)`)
|
|
351
|
+
returns expected values; visual rendering confirmed via
|
|
352
|
+
`capture-powerbi-window.ps1` after reopen.
|
|
353
|
+
|
|
354
|
+
### Added
|
|
355
|
+
|
|
356
|
+
- **`retired-report-skill` repair tooling**: new `scripts/repair-pbir-layout.js` script.
|
|
357
|
+
Page-scoped, dry-run by default, classifies slicers (normal / off-canvas /
|
|
358
|
+
parked at `9000,9000`) and repairs only clearly broken slicers into a
|
|
359
|
+
deterministic top filter bar. Preserves bindings, objects, selection mode,
|
|
360
|
+
z-order, and tabOrder. 600+ lines of tests covering classification,
|
|
361
|
+
dry-run vs write modes, and cross-page issue isolation.
|
|
362
|
+
- **`validate-pbir.js` page-scoped + Git-aware modes**: `--page <name|displayName>`
|
|
363
|
+
filters to a single page; `--changed-only` validates only visual files
|
|
364
|
+
changed against `HEAD` in a Git worktree. New JSON output shape with
|
|
365
|
+
`summary.errors`, `summary.warnings`, and `issues[]`. Existing full-report
|
|
366
|
+
behavior unchanged when both flags are absent.
|
|
367
|
+
- **PBIP-native template lab** (smoke test): rewrote `BISuperpowers.json`
|
|
368
|
+
theme (+3500 lines of authentic tokens), added
|
|
369
|
+
`references/reference-report-benchmark.md`, expanded
|
|
370
|
+
`references/layouts/sales.md`, and added
|
|
371
|
+
`scripts/capture-powerbi-window.ps1` for benchmark screenshots.
|
|
372
|
+
- **Per-tool approval gates for Codex**: `~/.codex/config.toml` writer now
|
|
373
|
+
emits `[mcp_servers.powerbi-modeling-mcp.tools.<op>] approval_mode = "approve"`
|
|
374
|
+
for every write operation in `CODEX_POWERBI_WRITE_TOOLS`. Re-install dedup
|
|
375
|
+
pattern updated to also strip child sections.
|
|
376
|
+
|
|
377
|
+
### Changed
|
|
378
|
+
|
|
379
|
+
- **Power BI Modeling MCP launcher** now spawns the official Microsoft
|
|
380
|
+
executable with `--readwrite --skip-confirmation` (previously `--start`).
|
|
381
|
+
The Codex-side per-tool approval is now the only gate that prompts the
|
|
382
|
+
user, so the MCP-level confirmation can be skipped safely.
|
|
383
|
+
- **Smoke test fixture renamed**: `examples/smoke-test/pbip-files/super-test.pbip`
|
|
384
|
+
is now `template.pbip`; `validation/projects/super-test.json` is now
|
|
385
|
+
`validation/projects/template.json`. CLI examples and docs updated to match.
|
|
386
|
+
- **Documentation realignment**: `AGENTS.md`, `CLAUDE.md`, `README.md`, and
|
|
387
|
+
`ROADMAP.md` now position **Codex as the primary end-to-end validation
|
|
388
|
+
baseline**. Other agents (Claude Code, GitHub Copilot, Gemini CLI, Kilo Code,
|
|
389
|
+
Claude Desktop) are documented as compatibility targets.
|
|
390
|
+
- **Single-session dev workflow** is now the default convention. The
|
|
391
|
+
`obra/superpowers` worktrees convention is preserved in `ROADMAP.md` for
|
|
392
|
+
emergency-only use.
|
|
393
|
+
- **Documentation maintenance contract** (this commit forward): every commit
|
|
394
|
+
must review and update `CHANGELOG.md` (Unreleased), `ROADMAP.md` (session
|
|
395
|
+
log + DONE items), `AGENTS.md`, `CLAUDE.md`, and `README.md` where
|
|
396
|
+
relevant. See "Documentation Maintenance" in `AGENTS.md`.
|
|
397
|
+
- **Atomic commits strategy + push policy** (this commit forward): the agent
|
|
398
|
+
commits autonomously when a coherent unit lands clean (tests/lint/format
|
|
399
|
+
green, docs contract honored). The agent NEVER pushes without explicit
|
|
400
|
+
user authorization — commits accumulate locally and the agent asks
|
|
401
|
+
_"Hay N commits listos para pushear, ¿pusheo?"_. Full strategy +
|
|
402
|
+
anti-triggers documented in `AGENTS.md` → "Atomic Commits Strategy".
|
|
403
|
+
|
|
404
|
+
#### retired-report-skill skill — Refe pages debugging + new MANDATORY RULES (Session F)
|
|
405
|
+
|
|
406
|
+
- **Three new MANDATORY RULES on `retired-report-skill` SKILL.md**:
|
|
407
|
+
- **R12** — check `report.json` settings before first run;
|
|
408
|
+
`hideVisualContainerHeader: true` plus the Salieri-parity baseline.
|
|
409
|
+
- **R13** — filter literals must match the locale of the target column
|
|
410
|
+
(Comparaciones[Comparación] vs Comparaciones[Comparación EN]).
|
|
411
|
+
- **R14** — time axes use Fecha[Fecha] (daily) or Fecha[Año mes]
|
|
412
|
+
(monthly); never Fecha[Semana] (week-of-year integers lose chronology
|
|
413
|
+
and crash across year boundaries).
|
|
414
|
+
- **New reference** `src/content/skills/retired-report-skill/references/generic-template-pages.md`:
|
|
415
|
+
three tested page compositions (Resumen Ejecutivo, Comparativa de
|
|
416
|
+
Períodos, Tendencias de Métricas) with full layout coordinates,
|
|
417
|
+
visual types, container titles, and `--bind` field maps. Plus a
|
|
418
|
+
7-pitfall "Common gotchas" section captured during Refe-pages debugging.
|
|
419
|
+
|
|
420
|
+
#### Lab smoke test — Refe pages improved + 2 new generic-template pages
|
|
421
|
+
|
|
422
|
+
Worked exclusively in `examples/smoke-test/pbip-files/template.pbip`. Six
|
|
423
|
+
focused commits, all validated visually via `capture-powerbi-window.ps1`
|
|
424
|
+
after each close-write-open cycle.
|
|
425
|
+
|
|
426
|
+
- **`92415ae`** — `report.json` settings aligned to Salieri reference
|
|
427
|
+
(`hideVisualContainerHeader: true` + 2 related), and
|
|
428
|
+
`visualContainerObjects.title` blocks stripped from all 14 cardVisuals
|
|
429
|
+
on the two Refe pages so the new setting takes effect.
|
|
430
|
+
- **`f1d413d`** — Refe KPI card filters repointed from
|
|
431
|
+
`Comparaciones[Comparación]` (Spanish, never matched the English
|
|
432
|
+
literals Codex passed) to `Comparaciones[Comparación EN]`. Two
|
|
433
|
+
"This quarter" cards had a "This month" filter literal — copy-paste
|
|
434
|
+
bug, fixed.
|
|
435
|
+
- **`10c1d89`** — Refe Metrics Trends time axis: line chart Category
|
|
436
|
+
`Fecha[Semana]` → `Fecha[Fecha]`; pivot Columns `Fecha[Semana]` →
|
|
437
|
+
`Fecha[Año mes]`. Replaces illegible 1-52 week-number labels with
|
|
438
|
+
smooth daily trend + chronological month columns.
|
|
439
|
+
- **(new page)** `resumen_ejecutivo` — 13-visual generic Executive
|
|
440
|
+
Summary page authored end-to-end via `create-visual.js`. 5-card KPI
|
|
441
|
+
band + main row + detail row (mix donut + variation by category +
|
|
442
|
+
top clients).
|
|
443
|
+
- **(new page)** `comparativa` — 12-visual generic Period Comparison
|
|
444
|
+
page. multiRowCard period-title labels + 4 variation KPIs +
|
|
445
|
+
lineClusteredColumnComboChart + waterfallChart + pivot matrix +
|
|
446
|
+
variation-by-product bar chart.
|
|
447
|
+
- Pages.json updated to 6 pages: `resumen_ejecutivo` (active),
|
|
448
|
+
`6a4808bb8bb9166f49ff` (Refe Metrics, improved),
|
|
449
|
+
`2be0c041e797b796d115` (Refe Ventas, improved), `comparativa`,
|
|
450
|
+
`sales_trends` (Codex from-scratch, untouched), `ventas` (Codex
|
|
451
|
+
from-scratch, untouched). Codex's pages preserved for the
|
|
452
|
+
Codex-vs-Claude design eval Lucas requested.
|
|
10
453
|
## [5.0.0] — 2026-04-28
|
|
11
454
|
|
|
12
455
|
### Breaking
|
|
13
456
|
|
|
14
457
|
- Standardized all public slash commands under the `/bi-*` namespace:
|
|
15
458
|
`/project-kickoff` is now `/bi-kickoff`, `/pbi-connect` is now
|
|
16
|
-
`/bi-connect`, and `/report-
|
|
459
|
+
`/bi-connect`, and `/retired-report-skill` is now `/retired-report-skill`.
|
|
17
460
|
- Regenerated the Claude Code plugin commands, user-level skills, skill
|
|
18
461
|
manifests, docs, and validation fixtures for the new command names.
|
|
19
462
|
|
|
@@ -31,7 +474,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
31
474
|
- `super validate-projects` now fails fast when `validation/projects` is missing,
|
|
32
475
|
so running it from the wrong directory cannot false-green with `0 checked`.
|
|
33
476
|
- Generated command and skill edit comments now point folder-based skills at the
|
|
34
|
-
real source path, for example `src/content/skills/
|
|
477
|
+
real source path, for example `src/content/skills/retired-report-skill/SKILL.md`.
|
|
35
478
|
- README update instructions use a neutral project placeholder and the BI Report
|
|
36
479
|
runtime table-of-contents anchor now matches the heading.
|
|
37
480
|
- Historical changelog entries were restored to the command and file names that
|
|
@@ -93,19 +536,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
93
536
|
### Fixed
|
|
94
537
|
|
|
95
538
|
- Claude Desktop `.mcpb` builds now bundle folder-based skills as `skills/<name>/SKILL.md`
|
|
96
|
-
and include `report-
|
|
539
|
+
and include `retired-report-skill` runtime `references/` plus `scripts/` assets, so installed
|
|
97
540
|
Desktop prompts no longer point at missing files.
|
|
98
541
|
- `super scan` now compares source skills against the actual generated Claude Code command
|
|
99
542
|
output, including frontmatter and update-check preamble, eliminating permanent false drift.
|
|
100
|
-
- `report-
|
|
543
|
+
- `retired-report-skill` `create-visual.js` now rejects path traversal in `--name` and non-finite
|
|
101
544
|
numeric placement flags before writing `visual.json`.
|
|
102
|
-
- `report-
|
|
545
|
+
- `retired-report-skill` `validate-pbir.js` now flags non-finite `position` values.
|
|
103
546
|
- Claude Desktop setup instructions and postinstall output use the canonical
|
|
104
547
|
`powerbi-modeling-mcp` server key.
|
|
105
548
|
- `super sentinel` now watches folder-based skill trees, including `SKILL.md`, `references/`,
|
|
106
549
|
and runtime scripts, and regenerates through the same versioned generator path as
|
|
107
550
|
`super recharge`.
|
|
108
|
-
- Removed stale conditional-formatting release wording from `report-
|
|
551
|
+
- Removed stale conditional-formatting release wording from `retired-report-skill` source docs.
|
|
109
552
|
|
|
110
553
|
### Changed
|
|
111
554
|
|
|
@@ -169,13 +612,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
169
612
|
npm package metadata.
|
|
170
613
|
- **Desktop extension build includes folder-based skills** — the `.mcpb`
|
|
171
614
|
extension produced by `super build-desktop` was silently dropping
|
|
172
|
-
`report-
|
|
615
|
+
`retired-report-skill` (the flagship skill) because the bundler only picked
|
|
173
616
|
up flat `.md` files. Now uses `loadSkills()` which handles both flat
|
|
174
617
|
and folder-based layouts. 5 regression tests.
|
|
175
618
|
- **Skill trigger parser extracts multiple quoted fragments per bullet** —
|
|
176
619
|
`project-kickoff` went from `triggerCount: 0` to `9` in
|
|
177
620
|
`.claude-plugin/skill-manifest.json`; `pbi-connect` from `5` to `15`;
|
|
178
|
-
`report-
|
|
621
|
+
`retired-report-skill` from `3` to `9`.
|
|
179
622
|
- **`validate-pbir.js` detects duplicate `visual.name` on the same page** —
|
|
180
623
|
PBI Desktop accepts the file, but filter/bookmark refs collide.
|
|
181
624
|
- **README rewrite**: dual install paths clearly segmented by audience
|
|
@@ -278,9 +721,9 @@ bootstrap a new project.
|
|
|
278
721
|
|
|
279
722
|
## [4.0.0] — 2026-04-15
|
|
280
723
|
|
|
281
|
-
### Breaking — `/report-
|
|
724
|
+
### Breaking — `/retired-report-skill` pivoted to CLI-first architecture
|
|
282
725
|
|
|
283
|
-
The `/report-
|
|
726
|
+
The `/retired-report-skill` skill has been rewritten to orchestrate the
|
|
284
727
|
[`pbi-cli-tool`](https://github.com/MinaSaad1/pbi-cli) CLI (MIT,
|
|
285
728
|
by MinaSaad1) instead of hand-writing PBIR JSON. This is a **breaking
|
|
286
729
|
change** because students now need Python 3.10+ and `pbi-cli-tool`
|
|
@@ -329,7 +772,7 @@ removing our most fragile maintenance burden.
|
|
|
329
772
|
- `project-kickoff.md` PHASE 7 handoff updated to mention CLI prereq
|
|
330
773
|
- `base.md` and `routing.md` descriptions updated
|
|
331
774
|
- `troubleshooting.md` rewritten for CLI-specific errors
|
|
332
|
-
- `report-
|
|
775
|
+
- `retired-report-skill` added to `COMMAND_SKILLS` in the generator (now a
|
|
333
776
|
slash command, not just a reference skill)
|
|
334
777
|
|
|
335
778
|
### Credits
|
|
@@ -346,7 +789,7 @@ removing our most fragile maintenance burden.
|
|
|
346
789
|
|
|
347
790
|
### Added
|
|
348
791
|
|
|
349
|
-
- **New skill: `/report-
|
|
792
|
+
- **New skill: `/retired-report-skill`.** Authors 3 PBIR report pages directly
|
|
350
793
|
from a ready semantic model. Produces Pro-quality visuals — conditional
|
|
351
794
|
formatting, KPI cards with trend coloring, matrix with gradients,
|
|
352
795
|
slicers, sorted bar charts, pixel-perfect 1280×720 grid layout.
|
|
@@ -355,11 +798,11 @@ removing our most fragile maintenance burden.
|
|
|
355
798
|
- **Folder-based skill support.** The skill loader and plugin generator
|
|
356
799
|
now accept skills authored as a folder with `SKILL.md` + `references/`
|
|
357
800
|
+ `scripts/` subfolders (Anthropic's skill convention). Used by
|
|
358
|
-
`/report-
|
|
801
|
+
`/retired-report-skill` — the main SKILL.md is a thin orchestrator and the
|
|
359
802
|
agent loads PBIR templates, layouts, and troubleshooting notes on
|
|
360
803
|
demand from `references/`. Ships a `validate-pbir.js` helper under
|
|
361
804
|
`scripts/` that structurally validates a generated `.Report/` folder.
|
|
362
|
-
- `/project-kickoff` now ends with a handoff to `/report-
|
|
805
|
+
- `/project-kickoff` now ends with a handoff to `/retired-report-skill` once
|
|
363
806
|
the model base has 1 fact + 1 dim + 3 measures.
|
|
364
807
|
|
|
365
808
|
### Changed
|
|
@@ -372,7 +815,7 @@ removing our most fragile maintenance burden.
|
|
|
372
815
|
PBIR (Power BI Enhanced Report format) is a Microsoft Public Preview
|
|
373
816
|
feature at the time of this release. Students must activate
|
|
374
817
|
**File → Options → Preview features → Power BI Project (.pbip) save
|
|
375
|
-
format (PBIR)** in Power BI Desktop before `/report-
|
|
818
|
+
format (PBIR)** in Power BI Desktop before `/retired-report-skill` can write
|
|
376
819
|
report files. If Microsoft ships a schema update that breaks our
|
|
377
820
|
templates, run `super upgrade` — we commit to keeping the plugin in
|
|
378
821
|
sync with PBIR changes while the feature is in preview.
|
|
@@ -429,7 +872,7 @@ The plugin has been simplified to its core: **Power BI Desktop local development
|
|
|
429
872
|
|
|
430
873
|
#### Removed skills (22)
|
|
431
874
|
|
|
432
|
-
`contributions`, `data-model-design`, `data-modeling`, `data-quality`, `dax`, `dax-doctor`, `dax-udf`, `deployment`, `excel-formulas`, `fabric-scripts`, `fast-standard`, `governance`, `migration-assistant`, `model-documenter`, `power-query`, `query-performance`, `report-
|
|
875
|
+
`contributions`, `data-model-design`, `data-modeling`, `data-quality`, `dax`, `dax-doctor`, `dax-udf`, `deployment`, `excel-formulas`, `fabric-scripts`, `fast-standard`, `governance`, `migration-assistant`, `model-documenter`, `power-query`, `query-performance`, `retired-report-skill`, `report-layout`, `rls-design`, `semantic-model`, `testing-validation`, `theme-tweaker`.
|
|
433
876
|
|
|
434
877
|
#### Kept skills (2)
|
|
435
878
|
|