@luquimbo/bi-superpowers 4.1.4 → 4.1.5
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 +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.claude-plugin/skill-manifest.json +1 -1
- package/.plugin/plugin.json +1 -1
- package/AGENTS.md +0 -32
- package/CHANGELOG.md +5 -6
- package/README.md +0 -1
- package/bin/cli.js +1 -1
- package/bin/commands/mcp-setup.js +7 -7
- package/bin/lib/mcp-config.js +10 -7
- package/package.json +1 -1
- package/skills/bi-start/SKILL.md +1 -1
- package/skills/bi-start/scripts/update-check.js +1 -1
- package/skills/pbi-connect/SKILL.md +1 -1
- package/skills/pbi-connect/scripts/update-check.js +1 -1
- package/skills/project-kickoff/SKILL.md +1 -1
- package/skills/project-kickoff/scripts/update-check.js +1 -1
- package/skills/report-design/SKILL.md +1 -1
- package/skills/report-design/scripts/update-check.js +1 -1
|
@@ -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.
|
|
9
|
+
"version": "4.1.5",
|
|
10
10
|
"repository": "https://github.com/luquimbo/bi-superpowers"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
package/.plugin/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"spec": "open-plugin-spec@1",
|
|
3
3
|
"name": "bi-superpowers",
|
|
4
|
-
"version": "4.1.
|
|
4
|
+
"version": "4.1.5",
|
|
5
5
|
"description": "Claude Code plugin for Power BI, Microsoft Fabric, and semantic model workflows powered by the official Microsoft MCP servers.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Lucas Sanchez"
|
package/AGENTS.md
CHANGED
|
@@ -15,38 +15,6 @@
|
|
|
15
15
|
- `library/`
|
|
16
16
|
- `config.json`
|
|
17
17
|
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## QA Codex Shortcut
|
|
21
|
-
|
|
22
|
-
When the user says `qa codex` in a new session for this repo, treat it as activating the external QA review workflow.
|
|
23
|
-
|
|
24
|
-
Role split:
|
|
25
|
-
- **Codex** — external QA / code reviewer
|
|
26
|
-
- **Claude Code** — primary implementer
|
|
27
|
-
- **Lucas** — bridge between both agents
|
|
28
|
-
|
|
29
|
-
Default review protocol:
|
|
30
|
-
1. Read `coordination/ACTIVE_PLAN.md` first.
|
|
31
|
-
2. Read `coordination/TO_CODEX_REVIEW.md` second.
|
|
32
|
-
3. If `TO_CODEX_REVIEW.md` references an audit or follow-up review file, read that too.
|
|
33
|
-
4. Review commits or staged diffs with focus on:
|
|
34
|
-
- functional bugs
|
|
35
|
-
- regressions
|
|
36
|
-
- reasonable missing tests
|
|
37
|
-
- drift between `src/content/...` and generated artifacts
|
|
38
|
-
- build/release risks
|
|
39
|
-
- Windows + Power BI Desktop risks
|
|
40
|
-
5. Return prioritized findings first and a short summary second.
|
|
41
|
-
|
|
42
|
-
Working rules:
|
|
43
|
-
- Codex is a second opinion, not the implementation owner and not a release gate.
|
|
44
|
-
- Do not assume you saw the whole previous session; rely on the coordination `.md` files.
|
|
45
|
-
- If the user asks for a prompt for Claude, provide a copy-paste-ready prompt that explicitly references the coordination files above.
|
|
46
|
-
- This shortcut is a repo convention for future sessions, not implicit model memory.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
18
|
## Publishing to npm (for AI agents)
|
|
51
19
|
|
|
52
20
|
When the user asks for things like **"publica una nueva versión"**, **"publish a patch"**, **"sube esto a npm"**, **"release v1.2.0"**, follow this flow.
|
package/CHANGELOG.md
CHANGED
|
@@ -114,10 +114,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
114
114
|
- **README rewrite**: dual install paths clearly segmented by audience
|
|
115
115
|
(Claude Code users → marketplace, everyone else → npm + `super install`),
|
|
116
116
|
mirrored update instructions, and OQ-1 resolution explained inline.
|
|
117
|
-
- **Opus 4.7 1M code review
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
release, except 4 mediums/3 lows explicitly deferred as product calls).
|
|
117
|
+
- **Opus 4.7 1M code review pass** — 3 blockers + 5 high + 8 medium +
|
|
118
|
+
7 low findings across the whole repo (all resolved in this release,
|
|
119
|
+
except 4 mediums/3 lows explicitly deferred as product calls).
|
|
121
120
|
|
|
122
121
|
### Changed
|
|
123
122
|
|
|
@@ -200,7 +199,7 @@ changes required. Recommended sequence:
|
|
|
200
199
|
|
|
201
200
|
# Users on npm:
|
|
202
201
|
super upgrade
|
|
203
|
-
super install --yes # propagate the new skills to all agents
|
|
202
|
+
super install --all --yes # propagate the new skills to all agents
|
|
204
203
|
```
|
|
205
204
|
|
|
206
205
|
Session-opener users: when you previously said "empezar" / "arranco" /
|
|
@@ -388,7 +387,7 @@ The plugin has been simplified to its core: **Power BI Desktop local development
|
|
|
388
387
|
- GitHub Copilot → `~/.copilot/mcp-config.json` (`servers` JSON)
|
|
389
388
|
- Codex → `~/.codex/config.toml` (TOML `[mcp_servers.*]`)
|
|
390
389
|
- Gemini CLI → `~/.gemini/settings.json` (`mcpServers` with `httpUrl`)
|
|
391
|
-
- Kilo Code → `~/.
|
|
390
|
+
- Kilo Code → `~/.kilo/mcp_settings.json` (`mcpServers` JSON)
|
|
392
391
|
|
|
393
392
|
New module: `bin/lib/mcp-config.js` with per-agent writers and tests.
|
|
394
393
|
|
package/README.md
CHANGED
package/bin/cli.js
CHANGED
|
@@ -168,7 +168,13 @@ function mcpSetupCommand(args, config) {
|
|
|
168
168
|
);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
if (
|
|
171
|
+
if (options.tool && !MCP_CONFIGS[options.tool]) {
|
|
172
|
+
tui.error(`Unknown tool: ${options.tool}`);
|
|
173
|
+
tui.info(`Available tools: ${Object.keys(MCP_CONFIGS).join(', ')}`);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if ((!options.tool || options.tool === 'claude-plugin') && !hasLocalPluginMarker(targetDir)) {
|
|
172
178
|
tui.warning('mcp-setup is only for project-local Claude Code plugin configs.');
|
|
173
179
|
tui.info(
|
|
174
180
|
'For Codex, GitHub Copilot, Gemini CLI, Kilo Code, and Claude Code user-level installs, run:'
|
|
@@ -187,12 +193,6 @@ function mcpSetupCommand(args, config) {
|
|
|
187
193
|
let configuredTools = loadConfiguredTools(targetDir);
|
|
188
194
|
|
|
189
195
|
if (options.tool) {
|
|
190
|
-
if (!MCP_CONFIGS[options.tool]) {
|
|
191
|
-
tui.error(`Unknown tool: ${options.tool}`);
|
|
192
|
-
tui.info(`Available tools: ${Object.keys(MCP_CONFIGS).join(', ')}`);
|
|
193
|
-
process.exit(1);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
196
|
configuredTools = [options.tool];
|
|
197
197
|
}
|
|
198
198
|
|
package/bin/lib/mcp-config.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* | GitHub Copilot | ~/.copilot/mcp-config.json | JSON servers |
|
|
16
16
|
* | Codex | ~/.codex/config.toml | TOML mcp_servers |
|
|
17
17
|
* | Gemini CLI | ~/.gemini/settings.json | JSON mcpServers |
|
|
18
|
-
* | Kilo Code | ~/.
|
|
18
|
+
* | Kilo Code | ~/.kilo/mcp_settings.json | JSON mcpServers |
|
|
19
19
|
*
|
|
20
20
|
* The launcher path for the Power BI Modeling MCP is resolved to an
|
|
21
21
|
* absolute path at install time so it works in agents that don't
|
|
@@ -121,10 +121,9 @@ function assertNotSymlink(filePath) {
|
|
|
121
121
|
*
|
|
122
122
|
* Known Windows gap: this uses `lstatSync().isSymbolicLink()`. NTFS
|
|
123
123
|
* junctions are NOT classified as symlinks by Node, so a junction at
|
|
124
|
-
* `~/.copilot` would pass this check.
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* for this commit.
|
|
124
|
+
* `~/.copilot` would pass this check. Addressing that needs
|
|
125
|
+
* `fs.readlinkSync` with reparse-point inspection and is tracked as
|
|
126
|
+
* a separate hardening task.
|
|
128
127
|
*
|
|
129
128
|
* @throws {Error} if any ancestor of filePath (up to home) is a symlink
|
|
130
129
|
*/
|
|
@@ -194,6 +193,11 @@ function assertPathSafeForWrite(filePath) {
|
|
|
194
193
|
*/
|
|
195
194
|
function writeFileAtomic(filePath, content) {
|
|
196
195
|
assertPathSafeForWrite(filePath);
|
|
196
|
+
const tmpPath = `${filePath}.tmp`;
|
|
197
|
+
const backupPath = `${filePath}.bak`;
|
|
198
|
+
assertPathSafeForWrite(tmpPath);
|
|
199
|
+
assertPathSafeForWrite(backupPath);
|
|
200
|
+
|
|
197
201
|
const dir = path.dirname(filePath);
|
|
198
202
|
if (!fs.existsSync(dir)) {
|
|
199
203
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -201,7 +205,7 @@ function writeFileAtomic(filePath, content) {
|
|
|
201
205
|
|
|
202
206
|
if (fs.existsSync(filePath)) {
|
|
203
207
|
try {
|
|
204
|
-
fs.copyFileSync(filePath,
|
|
208
|
+
fs.copyFileSync(filePath, backupPath);
|
|
205
209
|
} catch (err) {
|
|
206
210
|
throw new Error(
|
|
207
211
|
`Could not back up ${filePath} before writing: ${err.message}. ` +
|
|
@@ -210,7 +214,6 @@ function writeFileAtomic(filePath, content) {
|
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
|
|
213
|
-
const tmpPath = `${filePath}.tmp`;
|
|
214
217
|
try {
|
|
215
218
|
fs.writeFileSync(tmpPath, content);
|
|
216
219
|
fs.renameSync(tmpPath, filePath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luquimbo/bi-superpowers",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.5",
|
|
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": {
|
package/skills/bi-start/SKILL.md
CHANGED
|
@@ -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.
|
|
4
|
+
version: "4.1.5"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/bi-start.md instead. -->
|
|
@@ -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.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.5";
|
|
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.
|
|
4
|
+
version: "4.1.5"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/pbi-connect.md instead. -->
|
|
@@ -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.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.5";
|
|
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.
|
|
4
|
+
version: "4.1.5"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/project-kickoff.md instead. -->
|
|
@@ -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.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.5";
|
|
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.
|
|
4
|
+
version: "4.1.5"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/report-design.md instead. -->
|
|
@@ -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.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.5";
|
|
51
51
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
// Argument parsing
|