bigpowers 2.83.1 → 2.83.3
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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [2.83.3](https://github.com/danielvm-git/bigpowers/compare/v2.83.2...v2.83.3) (2026-07-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **install:** stop spinner cleanly instead of freezing on sync ([f3589d9](https://github.com/danielvm-git/bigpowers/commit/f3589d9d97f843211f147b30223cdfa3b85483ae))
|
|
7
|
+
|
|
8
|
+
## [2.83.2](https://github.com/danielvm-git/bigpowers/compare/v2.83.1...v2.83.2) (2026-07-24)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **install:** stop setup from running dev-maintenance regen ([2d89ee2](https://github.com/danielvm-git/bigpowers/commit/2d89ee26a71b9004cf69ad25ce55a9f5b0699018))
|
|
14
|
+
|
|
1
15
|
## [2.83.1](https://github.com/danielvm-git/bigpowers/compare/v2.83.0...v2.83.1) (2026-07-24)
|
|
2
16
|
|
|
3
17
|
|
package/bin/setup.js
CHANGED
|
@@ -250,13 +250,14 @@ async function main() {
|
|
|
250
250
|
await sleep(100);
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
s.
|
|
253
|
+
s.stop('Syncing skills...');
|
|
254
254
|
try {
|
|
255
|
-
runInherited('bash scripts/sync-skills.sh');
|
|
255
|
+
runInherited('bash scripts/sync-skills.sh --distribute-only');
|
|
256
256
|
} catch {
|
|
257
|
-
|
|
257
|
+
console.error(c.red('Sync failed.'));
|
|
258
258
|
process.exit(1);
|
|
259
259
|
}
|
|
260
|
+
s.start('Installing to selected tools...');
|
|
260
261
|
|
|
261
262
|
const results = [];
|
|
262
263
|
for (const toolId of selectedTools) {
|
package/package.json
CHANGED
|
Binary file
|
package/scripts/sync-skills.sh
CHANGED
|
@@ -17,25 +17,33 @@
|
|
|
17
17
|
# Run this after adding or updating any skill. Symlinks carry changes through automatically.
|
|
18
18
|
#
|
|
19
19
|
# Flags:
|
|
20
|
-
# --okf
|
|
21
|
-
# --opencode <p>
|
|
20
|
+
# --okf Generate specs/skills-wiki/ OKF concept bundle from SKILL.md frontmatter
|
|
21
|
+
# --opencode <p> Sync to bigpowers-opencode repo
|
|
22
|
+
# --distribute-only Render skills to target tool directories only — skip
|
|
23
|
+
# lockfile/index/README/reference-table/OKF-wiki regen.
|
|
24
|
+
# Used by bin/setup.js: end-user installs never carry
|
|
25
|
+
# specs/ or docs/ (see .npmignore), so that dev-only
|
|
26
|
+
# maintenance step has nothing to operate on.
|
|
22
27
|
set -euo pipefail
|
|
23
28
|
source "$(dirname "${BASH_SOURCE[0]}")/lib/python-env.sh"
|
|
24
29
|
|
|
25
30
|
OKF_MODE=0
|
|
26
31
|
OPN_TARGET=""
|
|
32
|
+
DISTRIBUTE_ONLY=0
|
|
27
33
|
|
|
28
34
|
for arg in "$@"; do
|
|
29
35
|
case "$arg" in
|
|
30
36
|
--okf) OKF_MODE=1 ;;
|
|
31
37
|
--opencode=*) OPN_TARGET="${arg#*=}" ;;
|
|
32
38
|
--opencode) shift; OPN_TARGET="$1" ;;
|
|
39
|
+
--distribute-only) DISTRIBUTE_ONLY=1 ;;
|
|
33
40
|
--help|-h)
|
|
34
|
-
echo "Usage: sync-skills.sh [--okf] [--opencode <path>]"
|
|
41
|
+
echo "Usage: sync-skills.sh [--okf] [--opencode <path>] [--distribute-only]"
|
|
35
42
|
echo ""
|
|
36
|
-
echo " --okf
|
|
37
|
-
echo " --opencode
|
|
38
|
-
echo " --
|
|
43
|
+
echo " --okf Generate specs/skills-wiki/ OKF concept bundle"
|
|
44
|
+
echo " --opencode Sync skills to bigpowers-opencode repo"
|
|
45
|
+
echo " --distribute-only Render skills only — skip dev-maintenance regen"
|
|
46
|
+
echo " --help Show this message"
|
|
39
47
|
exit 0
|
|
40
48
|
;;
|
|
41
49
|
*) echo "sync-skills: unknown flag: $arg" >&2; exit 2 ;;
|
|
@@ -96,5 +104,10 @@ if [[ "$OKF_MODE" -eq 1 ]]; then
|
|
|
96
104
|
bash "$REPO_ROOT/scripts/okf-post-sync.sh"
|
|
97
105
|
fi
|
|
98
106
|
|
|
107
|
+
if [[ "$DISTRIBUTE_ONLY" -eq 1 ]]; then
|
|
108
|
+
echo "sync-skills: $skill_count skills synced (--distribute-only: dev-maintenance regen skipped)"
|
|
109
|
+
exit 0
|
|
110
|
+
fi
|
|
111
|
+
|
|
99
112
|
sync_post_run "$skill_count" "$opencode_count"
|
|
100
113
|
exit 0
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: BUG-2026-07-24-installer-runs-dev-maintenance-pipeline
|
|
3
|
+
# Regression test: bigpowers setup must not run bigpowers' own dev-maintenance
|
|
4
|
+
# regen (lockfile, SKILL-INDEX, OKF wikis) against an end-user install.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
8
|
+
PASS=0
|
|
9
|
+
FAIL=0
|
|
10
|
+
|
|
11
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
12
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
13
|
+
|
|
14
|
+
echo "=== test-install-distribute-only.sh ==="
|
|
15
|
+
|
|
16
|
+
SYNC_SH="$REPO_ROOT/scripts/sync-skills.sh"
|
|
17
|
+
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
18
|
+
|
|
19
|
+
grep -q -- '--distribute-only' "$SYNC_SH" && pass 'sync-skills.sh: --distribute-only flag defined' \
|
|
20
|
+
|| fail 'sync-skills.sh: missing --distribute-only flag'
|
|
21
|
+
grep -q "sync-skills.sh --distribute-only" "$SETUP_JS" && pass 'setup.js: invokes sync-skills.sh with --distribute-only' \
|
|
22
|
+
|| fail 'setup.js: does not pass --distribute-only'
|
|
23
|
+
|
|
24
|
+
hash_of() { [[ -f "$1" ]] && shasum -a 256 "$1" | awk '{print $1}' || echo "absent"; }
|
|
25
|
+
listing_of() { [[ -d "$1" ]] && (find "$1" -maxdepth 1 -type f | sort) || echo "absent"; }
|
|
26
|
+
|
|
27
|
+
LOCK_BEFORE=$(hash_of "$REPO_ROOT/skills-lock.json")
|
|
28
|
+
INDEX_BEFORE=$(hash_of "$REPO_ROOT/SKILL-INDEX.md")
|
|
29
|
+
SEARCH_INDEX_BEFORE=$(hash_of "$REPO_ROOT/specs/SKILL-SEARCH-INDEX_LATEST.md")
|
|
30
|
+
EPICS_WIKI_BEFORE=$(listing_of "$REPO_ROOT/specs/epics-wiki")
|
|
31
|
+
|
|
32
|
+
OUT="$(cd "$REPO_ROOT" && bash scripts/sync-skills.sh --distribute-only 2>&1)"
|
|
33
|
+
echo "$OUT" | grep -q -- '--distribute-only: dev-maintenance regen skipped' \
|
|
34
|
+
&& pass 'sync-skills.sh --distribute-only: confirmation message printed' \
|
|
35
|
+
|| fail 'sync-skills.sh --distribute-only: missing confirmation message'
|
|
36
|
+
echo "$OUT" | grep -q 'Generating OKF wikis' \
|
|
37
|
+
&& fail 'sync-skills.sh --distribute-only: still generated OKF wikis' \
|
|
38
|
+
|| pass 'sync-skills.sh --distribute-only: no OKF wiki generation'
|
|
39
|
+
echo "$OUT" | grep -q 'regenerate-lockfile' \
|
|
40
|
+
&& fail 'sync-skills.sh --distribute-only: still regenerated lockfile' \
|
|
41
|
+
|| pass 'sync-skills.sh --distribute-only: no lockfile regen'
|
|
42
|
+
|
|
43
|
+
[[ "$(hash_of "$REPO_ROOT/skills-lock.json")" == "$LOCK_BEFORE" ]] \
|
|
44
|
+
&& pass 'skills-lock.json untouched' || fail 'skills-lock.json was modified'
|
|
45
|
+
[[ "$(hash_of "$REPO_ROOT/SKILL-INDEX.md")" == "$INDEX_BEFORE" ]] \
|
|
46
|
+
&& pass 'SKILL-INDEX.md untouched' || fail 'SKILL-INDEX.md was modified'
|
|
47
|
+
[[ "$(hash_of "$REPO_ROOT/specs/SKILL-SEARCH-INDEX_LATEST.md")" == "$SEARCH_INDEX_BEFORE" ]] \
|
|
48
|
+
&& pass 'SKILL-SEARCH-INDEX_LATEST.md untouched' || fail 'SKILL-SEARCH-INDEX_LATEST.md was modified'
|
|
49
|
+
[[ "$(listing_of "$REPO_ROOT/specs/epics-wiki")" == "$EPICS_WIKI_BEFORE" ]] \
|
|
50
|
+
&& pass 'specs/epics-wiki/ untouched' || fail 'specs/epics-wiki/ was modified'
|
|
51
|
+
|
|
52
|
+
[[ -f "$REPO_ROOT/.cursor/rules/fix-bug.mdc" ]] && pass 'skills still distributed (.cursor/rules populated)' \
|
|
53
|
+
|| fail 'skill distribution did not run'
|
|
54
|
+
|
|
55
|
+
bash -n "$SYNC_SH" && pass 'bash -n sync-skills.sh' || fail 'bash -n sync-skills.sh'
|
|
56
|
+
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
57
|
+
|
|
58
|
+
echo "test-install-distribute-only: $PASS passed, $FAIL failed"
|
|
59
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|