bigpowers 2.87.0 → 2.87.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/.pi/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.87.0",
3
+ "version": "2.87.1",
4
4
  "description": "81 skills — 73 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "keywords": [
6
6
  "pi-package"
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [2.87.1](https://github.com/danielvm-git/bigpowers/compare/v2.87.0...v2.87.1) (2026-07-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **cli:** make bigpowers update self-update global package ([67f38f6](https://github.com/danielvm-git/bigpowers/commit/67f38f6e8dcf650732de01c87bf58aac0e20c52c))
7
+
1
8
  # [2.87.0](https://github.com/danielvm-git/bigpowers/compare/v2.86.8...v2.87.0) (2026-07-29)
2
9
 
3
10
 
package/README.md CHANGED
@@ -43,15 +43,17 @@ After installing, ask your agent to run the `using-bigpowers` skill — it is th
43
43
 
44
44
  ```bash
45
45
  # Global install (no lifecycle scripts — npm v10+ safe)
46
- npm install -g bigpowers
46
+ npm install -g bigpowers@latest
47
47
  bigpowers setup # runs sync + install, links skills to your tools
48
48
 
49
- # Or one-shot with npx
50
- npx bigpowers setup
49
+ # Or one-shot with npx (always fetches the newest release)
50
+ npx bigpowers@latest setup
51
51
  ```
52
52
 
53
53
  Both commands sync skill artifacts and link them to Claude Code, Gemini CLI, and Cursor (see [Prerequisites](#-prerequisites)).
54
54
 
55
+ > **Always pin `@latest`.** With bigpowers already installed globally, a bare `npx bigpowers setup` reuses the stale global binary and `npm update -g bigpowers` doesn't reliably cross to the newest release. `npm install -g bigpowers@latest` and `npx bigpowers@latest setup` force a registry fetch every time.
56
+
55
57
  ### Interactive Installer
56
58
 
57
59
  The `npx bigpowers setup` command launches an interactive menu where you can:
@@ -269,10 +271,11 @@ Or add manually to `.claude/settings.json`:
269
271
  **npm install:**
270
272
 
271
273
  ```bash
272
- npm update -g bigpowers
273
- bigpowers update # re-sync and refresh symlinks
274
+ bigpowers update # fetches bigpowers@latest (global installs), then re-syncs + refreshes symlinks
274
275
  ```
275
276
 
277
+ `bigpowers update` now runs `npm install -g bigpowers@latest` for you when bigpowers is installed globally, so running it alone is enough to reach the newest release. Prefer to do it by hand? `npm install -g bigpowers@latest && bigpowers update`. (Avoid `npm update -g bigpowers` — it does not reliably cross to `@latest`.)
278
+
276
279
  **git clone:**
277
280
 
278
281
  ```bash
@@ -301,9 +304,9 @@ bash scripts/install.sh --uninstall
301
304
  ### Reinstall
302
305
 
303
306
  ```bash
304
- npx bigpowers setup
307
+ npx bigpowers@latest setup
305
308
  # or, if installed globally:
306
- bigpowers setup
309
+ bigpowers update
307
310
  ```
308
311
 
309
312
  ---
package/bin/bigpowers.js CHANGED
@@ -29,6 +29,43 @@ function run(cmd, cwd = ROOT) {
29
29
  }
30
30
  }
31
31
 
32
+ // True when this copy runs from the global npm install (not a git clone or npx temp dir).
33
+ function isGlobalInstall() {
34
+ try {
35
+ const globalRoot = execSync('npm root -g', { encoding: 'utf8' }).trim();
36
+ return globalRoot && ROOT.startsWith(globalRoot);
37
+ } catch {
38
+ return false;
39
+ }
40
+ }
41
+
42
+ // `bigpowers update` used to only re-sync the already-installed files, so it never fetched
43
+ // a newer release. When we're the global install, pull the latest from npm first; the reinstall
44
+ // overwrites ROOT in place, so the setup.js required afterwards is the freshly installed one.
45
+ function selfUpdateGlobalPackage() {
46
+ if (!isGlobalInstall()) {
47
+ console.log('bigpowers: not a global npm install — skipping package self-update.');
48
+ console.log(' git clone → `git pull && npm run sync && bash scripts/install.sh`');
49
+ console.log(' one-shot → `npx bigpowers@latest setup`');
50
+ return;
51
+ }
52
+ console.log('bigpowers: fetching the latest release from npm (npm install -g bigpowers@latest)...');
53
+ try {
54
+ execSync('npm install -g bigpowers@latest', { stdio: 'inherit' });
55
+ } catch {
56
+ console.error('bigpowers: `npm install -g bigpowers@latest` failed — re-syncing the installed version instead.');
57
+ }
58
+ }
59
+
60
+ // Best-effort registry check; silent on any failure so offline/slow networks never block a command.
61
+ function latestPublishedVersion() {
62
+ try {
63
+ return execSync('npm view bigpowers version', { encoding: 'utf8', timeout: 4000 }).trim();
64
+ } catch {
65
+ return null;
66
+ }
67
+ }
68
+
32
69
  const cmd = process.argv[2];
33
70
 
34
71
  if (cmd === 'setup' || cmd === 'install') {
@@ -39,7 +76,8 @@ if (cmd === 'setup' || cmd === 'install') {
39
76
  }
40
77
 
41
78
  if (cmd === 'update') {
42
- // Delegate to interactive installer (same as setup)
79
+ // Pull the newest release first (global installs), then re-sync + refresh symlinks.
80
+ selfUpdateGlobalPackage();
43
81
  const setupScript = path.join(ROOT, 'bin', 'setup.js');
44
82
  require(setupScript);
45
83
  return;
@@ -51,6 +89,11 @@ if (cmd === 'status') {
51
89
  .filter(d => fs.lstatSync(path.join(os.homedir(), '.claude', 'skills', d)).isSymbolicLink())
52
90
  .length;
53
91
  console.log(`bigpowers v${pkg.version} — ${count} skills installed`);
92
+ const latest = latestPublishedVersion();
93
+ if (latest && latest !== pkg.version) {
94
+ console.log(`\n⬆️ A newer release is available: v${latest} (you have v${pkg.version}).`);
95
+ console.log(' Upgrade: npm install -g bigpowers@latest && bigpowers update');
96
+ }
54
97
  } else {
55
98
  console.log('bigpowers not installed. Run: bigpowers setup');
56
99
  }
@@ -63,8 +106,8 @@ bigpowers — agent skills for spec-driven, test-first development
63
106
 
64
107
  Commands:
65
108
  bigpowers setup Install skills into ~/.claude/skills/
66
- bigpowers update Re-run sync and install (after npm update -g bigpowers)
67
- bigpowers status Show installed version and skill count
109
+ bigpowers update Fetch the latest release (global installs) + re-sync and refresh symlinks
110
+ bigpowers status Show installed version and skill count (warns if a newer release exists)
68
111
  bigpowers help This message
69
112
  `);
70
113
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.87.0",
3
+ "version": "2.87.1",
4
4
  "description": "73 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {