bigpowers 2.88.5 → 2.88.7

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.88.5",
3
+ "version": "2.88.7",
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
  "gemini-extension"
package/.pi/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.88.5",
3
+ "version": "2.88.7",
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,17 @@
1
+ ## [2.88.7](https://github.com/danielvm-git/bigpowers/compare/v2.88.6...v2.88.7) (2026-09-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **scripts:** resolve repo root in projects without skills/ ([093fef7](https://github.com/danielvm-git/bigpowers/commit/093fef72eb9f3be4c8cc61431df421752ed1ed44)), closes [#130](https://github.com/danielvm-git/bigpowers/issues/130)
7
+
8
+ ## [2.88.6](https://github.com/danielvm-git/bigpowers/compare/v2.88.5...v2.88.6) (2026-09-13)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **ci:** install website deps before docs-base-path gate ([4a94f72](https://github.com/danielvm-git/bigpowers/commit/4a94f720bb5ca1b158f1196b43c39a890812093a))
14
+
1
15
  ## [2.88.5](https://github.com/danielvm-git/bigpowers/compare/v2.88.4...v2.88.5) (2026-09-13)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.88.5",
3
+ "version": "2.88.7",
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": {
@@ -67,6 +67,7 @@ GOLDEN_GATES=(
67
67
  "project-runtime:bash scripts/test-project-runtime.sh:false"
68
68
  "omp-extension:bash scripts/validate-omp-extension.sh:false"
69
69
  "mcp-package:bash scripts/validate-mcp-package.sh:false"
70
+ "docs-base-path:bash scripts/validate-docs-base-path.sh:false"
70
71
  "import-boundaries:bash scripts/check-import-boundaries.sh:false"
71
72
  "skill-catalog:bash scripts/validate-skill-catalog.sh:false"
72
73
  "specs-parse:bash scripts/validate-specs-yaml.sh:false"
@@ -16,7 +16,9 @@ resolve_repo_root() {
16
16
  # Library is at REPO/scripts/lib/skill-common.sh → two levels up
17
17
  local repo_candidate
18
18
  repo_candidate="$(cd "$lib_dir/../.." 2>/dev/null && pwd)"
19
- if [ -n "$repo_candidate" ] && [ -d "$repo_candidate/skills" ]; then
19
+ if [ -n "$repo_candidate" ] && {
20
+ [ -d "$repo_candidate/scripts/lib" ] || [ -d "$repo_candidate/skills" ]
21
+ }; then
20
22
  REPO_ROOT="$repo_candidate"
21
23
  else
22
24
  repo_candidate="$(cd "$lib_dir/.." 2>/dev/null && pwd)"
@@ -31,7 +31,9 @@ def resolve_repo_root():
31
31
  lib_dir = os.path.dirname(os.path.abspath(__file__))
32
32
  # scripts/lib/srp-engine.py -> two levels up is REPO_ROOT
33
33
  repo_candidate = os.path.dirname(os.path.dirname(lib_dir))
34
- if os.path.isdir(os.path.join(repo_candidate, "skills")):
34
+ if os.path.isdir(os.path.join(repo_candidate, "scripts", "lib")) or os.path.isdir(
35
+ os.path.join(repo_candidate, "skills")
36
+ ):
35
37
  return repo_candidate
36
38
  return os.path.dirname(lib_dir)
37
39
 
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env bash
2
+ # Regression test for resolve_repo_root() in consumer layouts without skills/.
3
+ # See: https://github.com/danielvm-git/bigpowers/issues/130
4
+ set -euo pipefail
5
+
6
+ TA_PASS=0
7
+ TA_FAIL=0
8
+ TA_TMPDIR=""
9
+
10
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/test-assertions.sh"
11
+ trap ta_cleanup EXIT
12
+
13
+ echo "=== test-resolve-repo-root.sh ==="
14
+
15
+ # Consumer project: scripts/lib present, no local skills/ directory.
16
+ TA_TMPDIR="$(mktemp -d)"
17
+ mkdir -p "$TA_TMPDIR/scripts/lib"
18
+ cp "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh" "$TA_TMPDIR/scripts/lib/"
19
+
20
+ set +e
21
+ out=$(bash -c "source '$TA_TMPDIR/scripts/lib/skill-common.sh' && resolve_repo_root && printf '%s|%s' \"\$REPO_ROOT\" \"\$SKILLS_ROOT\"")
22
+ rc=$?
23
+ set -e
24
+
25
+ if [[ $rc -ne 0 ]]; then
26
+ ta_fail "consumer layout: resolve_repo_root exited $rc"
27
+ elif [[ "$out" == "$TA_TMPDIR|$TA_TMPDIR" ]]; then
28
+ ta_pass "consumer layout without skills/ resolves repo root (not scripts/)"
29
+ else
30
+ ta_fail "consumer layout: expected REPO_ROOT=$TA_TMPDIR, got: $out"
31
+ fi
32
+
33
+ # bigpowers repo: skills/ and scripts/lib both present.
34
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
35
+ resolve_repo_root
36
+ expected_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
37
+ if [[ "$REPO_ROOT" == "$expected_root" && -d "$REPO_ROOT/skills" ]]; then
38
+ ta_pass "bigpowers repo resolves REPO_ROOT with skills/"
39
+ else
40
+ ta_fail "bigpowers repo: REPO_ROOT=$REPO_ROOT expected=$expected_root"
41
+ fi
42
+
43
+ echo "=== $TA_PASS passed, $TA_FAIL failed ==="
44
+ [[ "$TA_FAIL" -eq 0 ]]
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env bash
2
+ # story: e33s02
3
+ # Docs site base-path guard — generated content must include /bigpowers prefix
4
+ # for GitHub Pages (see BUG-2026-09-13, #127).
5
+ set -euo pipefail
6
+
7
+ REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
8
+ WEBSITE="$REPO_ROOT/website"
9
+ SITE_BASE="/bigpowers"
10
+ ERRORS=0
11
+
12
+ fail() {
13
+ echo "FAIL: $*"
14
+ ERRORS=$((ERRORS + 1))
15
+ }
16
+
17
+ pass() {
18
+ echo "ok : $*"
19
+ }
20
+
21
+ ensure_website_deps() {
22
+ if [[ -d "$WEBSITE/node_modules/astro" ]]; then
23
+ return 0
24
+ fi
25
+ if ! command -v npm >/dev/null 2>&1; then
26
+ fail "npm unavailable and website/node_modules missing — cannot run build check"
27
+ return 1
28
+ fi
29
+ echo "info: installing website deps (golden-suite only installs repo root npm ci)"
30
+ if ! (cd "$WEBSITE" && npm ci >/dev/null 2>&1); then
31
+ fail "website npm ci failed — cannot run build check"
32
+ return 1
33
+ fi
34
+ pass "website deps installed for build check"
35
+ }
36
+
37
+ INDEX_MDX="$WEBSITE/src/content/docs/index.mdx"
38
+ LLMS_TXT="$WEBSITE/public/llms.txt"
39
+
40
+ echo "--- [docs] generated landing hero link ---"
41
+ if [[ ! -f "$INDEX_MDX" ]]; then
42
+ fail "missing $INDEX_MDX — run cd website && npm run generate"
43
+ elif grep -q "link: ${SITE_BASE}/skills/" "$INDEX_MDX"; then
44
+ pass "hero Browse skills link includes SITE_BASE"
45
+ else
46
+ fail "hero link missing ${SITE_BASE}/skills/ prefix in index.mdx"
47
+ fi
48
+
49
+ echo "--- [docs] no root-absolute skill links in landing page ---"
50
+ if [[ -f "$INDEX_MDX" ]] && grep -E '\]\(/skills/' "$INDEX_MDX" >/dev/null 2>&1; then
51
+ fail "index.mdx still contains root-absolute /skills/ links"
52
+ else
53
+ pass "index.mdx skill links are base-prefixed or absent"
54
+ fi
55
+
56
+ echo "--- [docs] llms.txt URL shape ---"
57
+ if [[ ! -f "$LLMS_TXT" ]]; then
58
+ fail "missing $LLMS_TXT — run cd website && npm run generate"
59
+ elif grep -q '/bigpowers/bigpowers/' "$LLMS_TXT"; then
60
+ fail "llms.txt double-prefixes SITE_BASE in URLs"
61
+ else
62
+ pass "llms.txt has no /bigpowers/bigpowers/ double prefix"
63
+ fi
64
+
65
+ echo "--- [docs] production build hero href ---"
66
+ if ! command -v npm >/dev/null 2>&1; then
67
+ echo "warn: npm unavailable — skipping dist/index.html check"
68
+ elif ensure_website_deps; then
69
+ BUILD_ERR=$(mktemp)
70
+ if (cd "$WEBSITE" && npm run build >/dev/null 2>"$BUILD_ERR"); then
71
+ if grep -q 'href="/bigpowers/skills/"' "$WEBSITE/dist/index.html" 2>/dev/null; then
72
+ pass "dist/index.html hero href includes /bigpowers/skills/"
73
+ else
74
+ fail "dist/index.html missing href=\"/bigpowers/skills/\" for Browse skills"
75
+ fi
76
+ else
77
+ fail "website build failed — $(head -3 "$BUILD_ERR" 2>/dev/null | tr '\n' ' ')"
78
+ fi
79
+ rm -f "$BUILD_ERR"
80
+ fi
81
+
82
+ echo "---"
83
+ if [[ "$ERRORS" -eq 0 ]]; then
84
+ echo "Docs base-path validation passed"
85
+ else
86
+ echo "Docs base-path validation FAILED ($ERRORS error(s))"
87
+ exit 1
88
+ fi