@luquimbo/bi-superpowers 4.1.5 → 4.1.6
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 +16 -46
- package/CHANGELOG.md +35 -0
- package/README.md +6 -1
- package/bin/cli.js +6 -8
- package/bin/commands/build-desktop.js +37 -2
- package/bin/commands/install.js +26 -4
- package/bin/commands/mcp-setup.js +20 -30
- package/bin/commands/watch.js +1 -1
- package/bin/lib/generators/shared.js +3 -3
- 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
- package/src/content/base.md +5 -4
- package/src/content/routing.md +3 -2
|
@@ -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.6",
|
|
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.6",
|
|
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
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
## Project Entry Points
|
|
14
14
|
- `AGENTS.md` (this file)
|
|
15
|
-
- `
|
|
15
|
+
- `src/content/`
|
|
16
|
+
- `bin/`
|
|
16
17
|
- `config.json`
|
|
17
18
|
|
|
18
19
|
## Publishing to npm (for AI agents)
|
|
@@ -40,14 +41,18 @@ The repo uses **GitHub Actions** to publish automatically. The `NPM_TOKEN` is st
|
|
|
40
41
|
```
|
|
41
42
|
5. **Run the local validations** (these also run in CI, but fail fast locally):
|
|
42
43
|
```bash
|
|
44
|
+
npm test
|
|
43
45
|
npm run build:plugin
|
|
44
46
|
npm run lint
|
|
45
47
|
npm run format:check
|
|
48
|
+
npm audit --omit=dev --audit-level=moderate
|
|
49
|
+
node bin/cli.js scan --verbose
|
|
50
|
+
npm pack --dry-run --ignore-scripts
|
|
46
51
|
```
|
|
47
52
|
6. **Commit with conventional commit message:**
|
|
48
53
|
```bash
|
|
49
|
-
git add package.json package-lock.json [+
|
|
50
|
-
git commit -m "
|
|
54
|
+
git add package.json package-lock.json [+ source, docs, tests, regenerated files]
|
|
55
|
+
git commit -m "fix: describe the release change"
|
|
51
56
|
```
|
|
52
57
|
7. **Create the version tag:**
|
|
53
58
|
```bash
|
|
@@ -111,7 +116,7 @@ Agent-specific behavior:
|
|
|
111
116
|
### Claude Desktop
|
|
112
117
|
|
|
113
118
|
```bash
|
|
114
|
-
super build-desktop
|
|
119
|
+
super build-desktop --output dist
|
|
115
120
|
# Double-click bi-superpowers.mcpb para instalar en Claude Desktop
|
|
116
121
|
```
|
|
117
122
|
|
|
@@ -165,6 +170,8 @@ Los 4 skills quedan disponibles como MCP prompts.
|
|
|
165
170
|
|
|
166
171
|
BI Agent Superpowers installs skills and MCP configuration at the user level for all supported agents. It can also generate a native Claude Code plugin from the same source of truth when a user explicitly wants repo-local Claude Code plugin files.
|
|
167
172
|
|
|
173
|
+
`super mcp-setup` is local-plugin maintenance only. It must run inside a repo already initialized by `super kickoff` (detected by `.bi-superpowers.json` or `.claude-plugin/plugin.json`). Do not use it for Codex, GitHub Copilot, Gemini CLI, Kilo Code, or normal Claude Code user-level setup; use `super install --all --yes` instead.
|
|
174
|
+
|
|
168
175
|
### Output Targets
|
|
169
176
|
|
|
170
177
|
| Target | Format | Output |
|
|
@@ -181,8 +188,7 @@ project/
|
|
|
181
188
|
├── .mcp.json # Power BI Modeling + Microsoft Learn MCPs
|
|
182
189
|
├── commands/*.md # 4 slash commands (bi-start, pbi-connect, project-kickoff, report-design)
|
|
183
190
|
├── skills/*/SKILL.md # 4 skills (discoverable)
|
|
184
|
-
|
|
185
|
-
└── library/ → symlink # Snippets, templates, themes
|
|
191
|
+
└── config.json # User preferences
|
|
186
192
|
```
|
|
187
193
|
|
|
188
194
|
### Desktop Extension (generated by build-desktop)
|
|
@@ -195,51 +201,15 @@ desktop-extension/
|
|
|
195
201
|
└── skills/ # Bundled at build time
|
|
196
202
|
```
|
|
197
203
|
|
|
198
|
-
Run `
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## Library Resources
|
|
203
|
-
|
|
204
|
-
The `library/` folder contains reusable assets:
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
library/
|
|
208
|
-
├── snippets/ # Code patterns
|
|
209
|
-
│ ├── dax/ # Time intelligence, rankings, CALCULATE
|
|
210
|
-
│ ├── power-query/ # Transformations, error handling
|
|
211
|
-
│ ├── excel-formulas/ # Dynamic arrays, lookups
|
|
212
|
-
│ ├── report-design/ # Chart selection, accessibility, layouts
|
|
213
|
-
│ └── governance/ # Naming conventions, review checklists
|
|
214
|
-
├── templates/ # Project templates
|
|
215
|
-
│ ├── power-bi/
|
|
216
|
-
│ ├── excel/
|
|
217
|
-
│ └── data-models/
|
|
218
|
-
├── themes/ # Visual themes
|
|
219
|
-
│ └── power-bi/ # JSON theme files
|
|
220
|
-
└── examples/ # Reference implementations
|
|
221
|
-
├── finance-reporting/
|
|
222
|
-
├── hr-analytics/
|
|
223
|
-
├── retail-analytics/
|
|
224
|
-
├── supply-chain/
|
|
225
|
-
└── marketing-analytics/
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
Reference patterns in prompts:
|
|
229
|
-
```
|
|
230
|
-
"Using patterns from library/snippets/dax/time-intelligence.md,
|
|
231
|
-
create a rolling 12-month average measure"
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
---
|
|
204
|
+
Run `npm run build:plugin` after modifying source skills, or `super recharge` when refreshing an initialized local Claude Code plugin in a user project.
|
|
235
205
|
|
|
236
206
|
## Configuration
|
|
237
207
|
|
|
238
|
-
|
|
208
|
+
Optional project-local user preferences live in `config.json` when a local Claude Code plugin is initialized:
|
|
239
209
|
|
|
240
210
|
- This file is meant to be read by your AI tool as **context** (experience level, language, domain terms).
|
|
241
|
-
- `
|
|
242
|
-
- The CLI stores
|
|
211
|
+
- `super kickoff` creates it automatically from the package template if it doesn't exist.
|
|
212
|
+
- The CLI stores local-plugin metadata in `.bi-superpowers.json` so `super recharge` and `super mcp-setup` can refresh the initialized plugin safely.
|
|
243
213
|
|
|
244
214
|
```json
|
|
245
215
|
{
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,41 @@ All notable changes to BI Agent Superpowers will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.1.6] — 2026-04-24
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `super mcp-setup` now rejects every repo-local target, including legacy
|
|
13
|
+
`--tool cursor`, `--tool vscode`, `--tool kilocode`, `--tool open-code`, and
|
|
14
|
+
`--tool claude-code`, unless the target repo already has a BI Superpowers
|
|
15
|
+
local plugin marker from `super kickoff`.
|
|
16
|
+
- `super mcp-setup` now refuses to overwrite corrupt existing JSON configs and
|
|
17
|
+
writes through the same atomic backup path used by the user-level MCP config
|
|
18
|
+
writer.
|
|
19
|
+
- `super install` copy-mode refreshes now mirror managed skill directories, so
|
|
20
|
+
runtime scripts and references removed in a newer package cannot remain
|
|
21
|
+
installed from an older package.
|
|
22
|
+
- `super build-desktop --output <path>` now honors the documented output path.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- README, AGENTS, CLAUDE, Getting Started, Architecture, Security, Contributing,
|
|
27
|
+
and Roadmap docs now consistently describe the user-level install contract and
|
|
28
|
+
the optional local Claude Code plugin path.
|
|
29
|
+
|
|
30
|
+
## [4.1.5] — 2026-04-24
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Removed the obsolete `coordination/` QA shortcut from `AGENTS.md`.
|
|
35
|
+
- `super mcp-setup --tool claude-plugin` no longer creates `.mcp.json` in an
|
|
36
|
+
arbitrary directory without an existing local plugin marker.
|
|
37
|
+
- User-level MCP config writes validate the final path, `.tmp`, and `.bak`
|
|
38
|
+
paths before writing, rejecting pre-existing symlinks.
|
|
39
|
+
- `super upgrade` now points users to the canonical
|
|
40
|
+
`super install --all --yes` refresh command.
|
|
41
|
+
- Kilo Code path documentation now consistently uses `~/.kilo/mcp_settings.json`.
|
|
42
|
+
|
|
8
43
|
## [4.1.4] — 2026-04-24
|
|
9
44
|
|
|
10
45
|
### Fixed
|
package/README.md
CHANGED
|
@@ -394,11 +394,14 @@ super recharge # Regenerate optional local Claude Code plugin artifacts
|
|
|
394
394
|
super powers # List available skills
|
|
395
395
|
super scan # Compare source skills with generated artifacts
|
|
396
396
|
super checkup # Validate skill content
|
|
397
|
-
super build-desktop # Build the Claude Desktop .mcpb extension
|
|
397
|
+
super build-desktop # Build the Claude Desktop .mcpb extension in the current dir
|
|
398
|
+
super build-desktop --output dist
|
|
398
399
|
super upgrade # Update the global CLI and print refresh steps
|
|
399
400
|
super help # Show full CLI help
|
|
400
401
|
```
|
|
401
402
|
|
|
403
|
+
`super mcp-setup` is intentionally not part of normal setup. It only refreshes MCP config inside an existing local Claude Code plugin created by `super kickoff`; it refuses to write repo-local config in arbitrary projects. For Codex, GitHub Copilot, Gemini CLI, Kilo Code, and normal Claude Code user-level installs, use `super install --all --yes`.
|
|
404
|
+
|
|
402
405
|
---
|
|
403
406
|
|
|
404
407
|
## Plugin File Tree
|
|
@@ -539,6 +542,8 @@ super recharge
|
|
|
539
542
|
|
|
540
543
|
`super upgrade` intentionally does not run `super install` or `super recharge` automatically. User-profile installs and project-local plugins are separate refresh targets.
|
|
541
544
|
|
|
545
|
+
On Windows, if symlink creation is not available and the installer falls back to copying skills, each re-run mirrors the managed skill directories. Removed or renamed bundled scripts are deleted from the copied install during refresh.
|
|
546
|
+
|
|
542
547
|
---
|
|
543
548
|
|
|
544
549
|
## What Ships To npm
|
package/bin/cli.js
CHANGED
|
@@ -185,6 +185,7 @@ Examples:
|
|
|
185
185
|
super kickoff --dry-run # Preview local Claude Code plugin files
|
|
186
186
|
super recharge # Regenerate existing local Claude Code plugin
|
|
187
187
|
super build-desktop # Build .mcpb for Claude Desktop
|
|
188
|
+
super build-desktop --output dist
|
|
188
189
|
super mcp-setup # Existing local Claude Code plugin only
|
|
189
190
|
|
|
190
191
|
Open source — MIT licensed.
|
|
@@ -428,15 +429,12 @@ function ensurePluginTool(tools = []) {
|
|
|
428
429
|
|
|
429
430
|
/**
|
|
430
431
|
* Build the options object passed into individual generators.
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
* inside the installed npm package.
|
|
432
|
+
* `library/` is no longer shipped by this package. Keep local project
|
|
433
|
+
* library references unchanged only when the target repo provides them.
|
|
434
434
|
*/
|
|
435
435
|
function getGenerationOptions(targetDir) {
|
|
436
436
|
const usePluginRootLauncher = path.resolve(targetDir) === PACKAGE_DIR;
|
|
437
|
-
const libraryPrefix = fs.existsSync(path.join(targetDir, 'library'))
|
|
438
|
-
? 'library'
|
|
439
|
-
: path.join(PACKAGE_DIR, 'library');
|
|
437
|
+
const libraryPrefix = fs.existsSync(path.join(targetDir, 'library')) ? 'library' : null;
|
|
440
438
|
|
|
441
439
|
return {
|
|
442
440
|
packageDir: PACKAGE_DIR,
|
|
@@ -581,9 +579,9 @@ function showCompletionMessage(targetDir, tools, skillCount) {
|
|
|
581
579
|
|
|
582
580
|
To build the Desktop extension:
|
|
583
581
|
|
|
584
|
-
super build-desktop
|
|
582
|
+
super build-desktop --output dist
|
|
585
583
|
|
|
586
|
-
Then double-click bi-superpowers.mcpb to install.
|
|
584
|
+
Then double-click dist/bi-superpowers.mcpb to install.
|
|
587
585
|
|
|
588
586
|
────────────────────────────────────────────────────────────
|
|
589
587
|
|
|
@@ -100,14 +100,48 @@ function shouldSkipRuntimeFile(filePath) {
|
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
/**
|
|
104
|
+
* Parse build-desktop CLI arguments.
|
|
105
|
+
*
|
|
106
|
+
* @param {string[]} args - CLI arguments after `build-desktop`
|
|
107
|
+
* @returns {{outputDir: string}} Build options
|
|
108
|
+
*/
|
|
109
|
+
function parseArgs(args) {
|
|
110
|
+
const options = {
|
|
111
|
+
outputDir: process.cwd(),
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
for (let index = 0; index < args.length; index++) {
|
|
115
|
+
const arg = args[index];
|
|
116
|
+
|
|
117
|
+
if (arg === '--output' || arg === '-o') {
|
|
118
|
+
const value = args[++index];
|
|
119
|
+
if (!value || value.startsWith('-')) {
|
|
120
|
+
throw new Error(`${arg} requires a path`);
|
|
121
|
+
}
|
|
122
|
+
options.outputDir = path.resolve(value);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return options;
|
|
127
|
+
}
|
|
128
|
+
|
|
103
129
|
/**
|
|
104
130
|
* Build the .mcpb extension for Claude Desktop.
|
|
105
131
|
*
|
|
106
132
|
* @param {string[]} args - CLI arguments
|
|
107
133
|
* @param {Object} config - Command config from CLI
|
|
108
134
|
*/
|
|
109
|
-
function buildDesktop(
|
|
110
|
-
|
|
135
|
+
function buildDesktop(args, _config) {
|
|
136
|
+
let options;
|
|
137
|
+
try {
|
|
138
|
+
options = parseArgs(args || []);
|
|
139
|
+
} catch (err) {
|
|
140
|
+
console.error(`Error: ${err.message}`);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const outputDir = options.outputDir;
|
|
144
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
111
145
|
|
|
112
146
|
console.log(`
|
|
113
147
|
BI Agent Superpowers — Build Desktop Extension
|
|
@@ -239,3 +273,4 @@ module.exports = buildDesktop;
|
|
|
239
273
|
module.exports.bundleSkills = bundleSkills;
|
|
240
274
|
module.exports.copyRuntimeTree = copyRuntimeTree;
|
|
241
275
|
module.exports.shouldSkipRuntimeFile = shouldSkipRuntimeFile;
|
|
276
|
+
module.exports.parseArgs = parseArgs;
|
package/bin/commands/install.js
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* Everything is installed at the user level (~/) so it applies across
|
|
14
14
|
* all projects without polluting any specific repo. Skills land in
|
|
15
15
|
* ~/.agents/skills/ (universal path) and each agent's own skill dir is
|
|
16
|
-
* symlinked to that universal copy
|
|
16
|
+
* symlinked to that universal copy when possible. Copy fallback mirrors
|
|
17
|
+
* managed skill directories on every run. MCPs are written to each agent's
|
|
17
18
|
* expected config file in the format that agent requires (JSON for
|
|
18
19
|
* most, TOML for Codex) — see `lib/mcp-config.js` for details.
|
|
19
20
|
*
|
|
@@ -116,10 +117,31 @@ async function selectMultiple(rl, items, preselected = []) {
|
|
|
116
117
|
* @param {string} destDir - Destination directory
|
|
117
118
|
*/
|
|
118
119
|
function copySkillDir(srcDir, destDir) {
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
const resolvedSrc = path.resolve(srcDir);
|
|
121
|
+
const resolvedDest = path.resolve(destDir);
|
|
122
|
+
const destRoot = path.parse(resolvedDest).root;
|
|
123
|
+
|
|
124
|
+
if (
|
|
125
|
+
resolvedSrc === resolvedDest ||
|
|
126
|
+
resolvedSrc.startsWith(`${resolvedDest}${path.sep}`) ||
|
|
127
|
+
resolvedDest === destRoot
|
|
128
|
+
) {
|
|
129
|
+
throw new Error(`Refusing to mirror skill directory into unsafe target: ${destDir}`);
|
|
121
130
|
}
|
|
122
131
|
|
|
132
|
+
// Skill directories are package-managed. Remove the old managed copy first
|
|
133
|
+
// so upgrades cannot leave deleted scripts or references behind.
|
|
134
|
+
const existingDest = fs.lstatSync(destDir, { throwIfNoEntry: false });
|
|
135
|
+
if (existingDest) {
|
|
136
|
+
if (existingDest.isSymbolicLink()) {
|
|
137
|
+
fs.unlinkSync(destDir);
|
|
138
|
+
} else {
|
|
139
|
+
fs.rmSync(destDir, { recursive: true, force: true });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
144
|
+
|
|
123
145
|
const entries = fs.readdirSync(srcDir, { withFileTypes: true });
|
|
124
146
|
for (const entry of entries) {
|
|
125
147
|
const srcPath = path.join(srcDir, entry.name);
|
|
@@ -435,7 +457,7 @@ async function installCommand(args, config) {
|
|
|
435
457
|
chalk.yellow(
|
|
436
458
|
`\n ⚠ ${copyFallbacks} agente(s) usaron copia en vez de symlink ` +
|
|
437
459
|
'(probable Windows sin permisos de admin).\n' +
|
|
438
|
-
" Re-ejecutá 'super install' tras cada upgrade
|
|
460
|
+
" Re-ejecutá 'super install' tras cada upgrade; la copia se espeja y elimina runtimes viejos."
|
|
439
461
|
)
|
|
440
462
|
);
|
|
441
463
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* MCP Setup Command
|
|
3
3
|
* =================
|
|
4
4
|
* Configures the official Microsoft MCP servers for an existing project-local
|
|
5
|
-
*
|
|
5
|
+
* BI Superpowers plugin. Normal multi-agent setup is user-level via
|
|
6
|
+
* `super install --all --yes`; this command refuses arbitrary repo-local writes.
|
|
6
7
|
*
|
|
7
8
|
* Usage:
|
|
8
9
|
* super mcp-setup
|
|
@@ -20,6 +21,7 @@ const {
|
|
|
20
21
|
createMcpConfigForFormat,
|
|
21
22
|
mergeMcpConfig,
|
|
22
23
|
} = require('../lib/microsoft-mcp');
|
|
24
|
+
const { readJsonStrict, writeJson } = require('../lib/mcp-config');
|
|
23
25
|
|
|
24
26
|
const MCP_CONFIGS = {
|
|
25
27
|
'claude-plugin': {
|
|
@@ -110,21 +112,7 @@ function hasLocalPluginMarker(targetDir) {
|
|
|
110
112
|
);
|
|
111
113
|
}
|
|
112
114
|
|
|
113
|
-
function readJson(filePath) {
|
|
114
|
-
if (!fs.existsSync(filePath)) {
|
|
115
|
-
return {};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
try {
|
|
119
|
-
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
120
|
-
} catch (error) {
|
|
121
|
-
return {};
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
115
|
function writeConfig(filePath, config, dryRun) {
|
|
126
|
-
const directory = path.dirname(filePath);
|
|
127
|
-
|
|
128
116
|
if (dryRun) {
|
|
129
117
|
tui.info(`Would write: ${tui.formatPath(filePath)}`);
|
|
130
118
|
tui.muted(JSON.stringify(config, null, 2).slice(0, 220) + '...');
|
|
@@ -132,11 +120,7 @@ function writeConfig(filePath, config, dryRun) {
|
|
|
132
120
|
}
|
|
133
121
|
|
|
134
122
|
try {
|
|
135
|
-
|
|
136
|
-
fs.mkdirSync(directory, { recursive: true });
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
fs.writeFileSync(filePath, JSON.stringify(config, null, 2) + '\n');
|
|
123
|
+
writeJson(filePath, config);
|
|
140
124
|
return true;
|
|
141
125
|
} catch (error) {
|
|
142
126
|
tui.error(`Failed to write ${filePath}: ${error.message}`);
|
|
@@ -174,8 +158,8 @@ function mcpSetupCommand(args, config) {
|
|
|
174
158
|
process.exit(1);
|
|
175
159
|
}
|
|
176
160
|
|
|
177
|
-
if (
|
|
178
|
-
tui.warning('mcp-setup is only for project-local
|
|
161
|
+
if (!hasLocalPluginMarker(targetDir)) {
|
|
162
|
+
tui.warning('mcp-setup is only for existing project-local BI Superpowers plugin configs.');
|
|
179
163
|
tui.info(
|
|
180
164
|
'For Codex, GitHub Copilot, Gemini CLI, Kilo Code, and Claude Code user-level installs, run:'
|
|
181
165
|
);
|
|
@@ -184,7 +168,7 @@ function mcpSetupCommand(args, config) {
|
|
|
184
168
|
'That writes user-level skills and MCP config under your home directory without creating files in this repo.'
|
|
185
169
|
);
|
|
186
170
|
tui.info(
|
|
187
|
-
'If you intentionally need
|
|
171
|
+
'If you intentionally need local Claude Code plugin files, run `super kickoff` first, then rerun `super mcp-setup` inside that initialized repo.'
|
|
188
172
|
);
|
|
189
173
|
process.exitCode = 2;
|
|
190
174
|
return;
|
|
@@ -225,13 +209,19 @@ function mcpSetupCommand(args, config) {
|
|
|
225
209
|
configuredTools.forEach((tool) => {
|
|
226
210
|
const toolConfig = MCP_CONFIGS[tool];
|
|
227
211
|
const filePath = path.join(targetDir, toolConfig.configPath);
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
212
|
+
let ok = false;
|
|
213
|
+
|
|
214
|
+
try {
|
|
215
|
+
const existingConfig = readJsonStrict(filePath) || {};
|
|
216
|
+
const generatedConfig = createMcpConfigForFormat(toolConfig.format, {
|
|
217
|
+
packageDir: config.packageDir,
|
|
218
|
+
launcherMode: getLauncherMode(targetDir, config.packageDir, tool),
|
|
219
|
+
});
|
|
220
|
+
const mergedConfig = mergeMcpConfig(existingConfig, generatedConfig, toolConfig.format);
|
|
221
|
+
ok = writeConfig(filePath, mergedConfig, options.dryRun);
|
|
222
|
+
} catch (error) {
|
|
223
|
+
tui.error(`Failed to prepare ${filePath}: ${error.message}`);
|
|
224
|
+
}
|
|
235
225
|
|
|
236
226
|
if (ok) {
|
|
237
227
|
results.success.push(toolConfig.name);
|
package/bin/commands/watch.js
CHANGED
|
@@ -238,7 +238,7 @@ async function regenerateConfigs(targetDir, specificTool, cliModule) {
|
|
|
238
238
|
} else {
|
|
239
239
|
// Fallback: just report what would be done
|
|
240
240
|
spinner.succeed(`Would regenerate configs for: ${tools.join(', ')}`);
|
|
241
|
-
tui.muted('Note: Run "
|
|
241
|
+
tui.muted('Note: Run "super recharge" manually to apply changes');
|
|
242
242
|
}
|
|
243
243
|
} catch (error) {
|
|
244
244
|
spinner.fail(`Regeneration failed: ${error.message}`);
|
|
@@ -204,9 +204,9 @@ function getFormatFooter() {
|
|
|
204
204
|
|
|
205
205
|
## Resources
|
|
206
206
|
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
207
|
+
- Skills: \`skills/*/SKILL.md\` - BI workflow instructions
|
|
208
|
+
- Report design references: \`skills/report-design/references/\` - PBIR layouts, themes, native visuals, and troubleshooting
|
|
209
|
+
- Runtime scripts: \`skills/report-design/scripts/\` - PBIR visual, theme, and validation helpers
|
|
210
210
|
|
|
211
211
|
---
|
|
212
212
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luquimbo/bi-superpowers",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.6",
|
|
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.6"
|
|
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.6";
|
|
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.6"
|
|
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.6";
|
|
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.6"
|
|
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.6";
|
|
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.6"
|
|
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.6";
|
|
51
51
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
// Argument parsing
|
package/src/content/base.md
CHANGED
|
@@ -34,7 +34,7 @@ You are a **Business Intelligence Expert** with deep knowledge of:
|
|
|
34
34
|
2. **Show examples** - Include code samples when relevant
|
|
35
35
|
3. **Explain context** - Why something works, not just how
|
|
36
36
|
4. **Suggest improvements** - Proactively identify optimizations
|
|
37
|
-
5. **
|
|
37
|
+
5. **Verify against shipped resources** - Use bundled skill references and scripts when available; do not invent paths that are not present in the repo
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -59,13 +59,14 @@ You are a **Business Intelligence Expert** with deep knowledge of:
|
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
62
|
-
## Available Skills (
|
|
62
|
+
## Available Skills (4)
|
|
63
63
|
|
|
64
64
|
| Skill | Purpose | Trigger |
|
|
65
65
|
|-------|---------|---------|
|
|
66
|
-
| `/
|
|
66
|
+
| `/bi-start` | Open a BI session with update check, environment snapshot, and routing guidance | "bi-start", "start session", "empezar" |
|
|
67
|
+
| `/project-kickoff` | Analyze and plan a BI project before implementation | "analyze project", "new project", "kickoff" |
|
|
67
68
|
| `/pbi-connect` | Connect to Power BI Desktop via the official Modeling MCP | "connect Power BI", "MCP" |
|
|
68
|
-
| `/report-design` | Generate
|
|
69
|
+
| `/report-design` | Generate PBIR report pages via bundled Node scripts and the current `pbi-cli-tool` runtime flow | "crear reportes", "report design", "dashboard" |
|
|
69
70
|
|
|
70
71
|
---
|
|
71
72
|
|
package/src/content/routing.md
CHANGED
|
@@ -60,13 +60,14 @@ Match user message against skill triggers:
|
|
|
60
60
|
|
|
61
61
|
| Keywords | Skill |
|
|
62
62
|
|----------|-------|
|
|
63
|
-
| "
|
|
63
|
+
| "bi-start", "start session", "empezar", "what can you do here?" | `/bi-start` |
|
|
64
|
+
| "kickoff", "analyze project", "analizar proyecto", "qué tengo aquí?" | `/project-kickoff` |
|
|
64
65
|
| "connect Power BI", "MCP connection", "Power BI Desktop", "conectar Power BI", "modeling mcp" | `/pbi-connect` |
|
|
65
66
|
| "crear reportes", "armar reporte", "report design", "dashboard", "páginas del reporte", "visualizaciones" | `/report-design` |
|
|
66
67
|
|
|
67
68
|
### 5. DEFAULT BEHAVIOR
|
|
68
69
|
|
|
69
|
-
No skill activated → respond as general BI assistant using AGENTS.md context
|
|
70
|
+
No skill activated → respond as a general BI assistant using AGENTS.md context and the installed BI Superpowers skills. Do not reference `library/` snippets unless the user's project actually contains that folder.
|
|
70
71
|
|
|
71
72
|
---
|
|
72
73
|
|