bigpowers 2.45.4 → 2.45.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/.pi/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.45.4",
3
+ "version": "2.45.6",
4
4
  "description": "72 skills — 72 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -25,7 +25,7 @@ description: Benchmark-gated skill evolution — consume bigpowers-benchmark rep
25
25
 
26
26
  ## Verify
27
27
 
28
- → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
28
+ → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' skills/evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
29
29
 
30
30
  See [REFERENCE.md](REFERENCE.md) for ADR template.
31
31
 
@@ -24,7 +24,7 @@ description: Doc-grounded variant of grill-me — stress-tests plan assumptions
24
24
 
25
25
  ## Verify
26
26
 
27
- → verify: `grep -c 'https\?://' grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
27
+ → verify: `grep -c 'https\?://' skills/grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
28
28
 
29
29
  See [REFERENCE.md](REFERENCE.md) for question templates.
30
30
 
@@ -70,9 +70,9 @@ See [REFERENCE.md](REFERENCE.md)
70
70
 
71
71
  ## Verify
72
72
 
73
- → verify: `test -f publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
74
- → verify: `grep -q "name: publish-package" publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
75
- → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
73
+ → verify: `test -f skills/publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
74
+ → verify: `grep -q "name: publish-package" skills/publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
75
+ → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" skills/publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
76
76
  → verify: `grep -q "publish-package" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
77
77
 
78
78
  ---
@@ -66,4 +66,4 @@ scenarios:
66
66
 
67
67
  ## Verify
68
68
 
69
- → verify: `test -f run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' run-benchmark/SKILL.md && echo OK || echo FAIL`
69
+ → verify: `test -f skills/run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' skills/run-benchmark/SKILL.md && echo OK || echo FAIL`
@@ -48,4 +48,4 @@ Required YAML keys:
48
48
 
49
49
  Push HTML to the dashboard session dir for rich diagrams. See `start-server.sh` for `CONTENT_DIR`.
50
50
 
51
- → verify: `test -f visual-dashboard/scripts/read-specs-status.cjs && test -f visual-dashboard/scripts/cockpit.html`
51
+ → verify: `test -f skills/visual-dashboard/scripts/read-specs-status.cjs && test -f skills/visual-dashboard/scripts/cockpit.html`
@@ -99,9 +99,9 @@ Add the following to the project's documentation or CLAUDE.md after setup:
99
99
 
100
100
  ## Verify
101
101
 
102
- → verify: `test -f wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
103
- → verify: `grep -q "name: wire-ci" wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
104
- → verify: `grep -ci "template\|workflow\|validate\|dry.run" wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
102
+ → verify: `test -f skills/wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
103
+ → verify: `grep -q "name: wire-ci" skills/wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
104
+ → verify: `grep -ci "template\|workflow\|validate\|dry.run" skills/wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
105
105
  → verify: `grep -q "wire-ci" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
106
106
 
107
107
  ---
@@ -27,7 +27,7 @@ model: opus
27
27
 
28
28
  ## Verify
29
29
 
30
- → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
30
+ → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' skills/evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
31
31
 
32
32
  See [REFERENCE.md](REFERENCE.md) for ADR template.
33
33
 
@@ -26,7 +26,7 @@ model: opus
26
26
 
27
27
  ## Verify
28
28
 
29
- → verify: `grep -c 'https\?://' grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
29
+ → verify: `grep -c 'https\?://' skills/grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
30
30
 
31
31
  See [REFERENCE.md](REFERENCE.md) for question templates.
32
32
 
@@ -72,9 +72,9 @@ See [REFERENCE.md](REFERENCE.md)
72
72
 
73
73
  ## Verify
74
74
 
75
- → verify: `test -f publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
76
- → verify: `grep -q "name: publish-package" publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
77
- → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
75
+ → verify: `test -f skills/publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
76
+ → verify: `grep -q "name: publish-package" skills/publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
77
+ → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" skills/publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
78
78
  → verify: `grep -q "publish-package" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
79
79
 
80
80
  ---
@@ -68,4 +68,4 @@ scenarios:
68
68
 
69
69
  ## Verify
70
70
 
71
- → verify: `test -f run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' run-benchmark/SKILL.md && echo OK || echo FAIL`
71
+ → verify: `test -f skills/run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' skills/run-benchmark/SKILL.md && echo OK || echo FAIL`
@@ -50,4 +50,4 @@ Required YAML keys:
50
50
 
51
51
  Push HTML to the dashboard session dir for rich diagrams. See `start-server.sh` for `CONTENT_DIR`.
52
52
 
53
- → verify: `test -f visual-dashboard/scripts/read-specs-status.cjs && test -f visual-dashboard/scripts/cockpit.html`
53
+ → verify: `test -f skills/visual-dashboard/scripts/read-specs-status.cjs && test -f skills/visual-dashboard/scripts/cockpit.html`
@@ -101,9 +101,9 @@ Add the following to the project's documentation or CLAUDE.md after setup:
101
101
 
102
102
  ## Verify
103
103
 
104
- → verify: `test -f wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
105
- → verify: `grep -q "name: wire-ci" wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
106
- → verify: `grep -ci "template\|workflow\|validate\|dry.run" wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
104
+ → verify: `test -f skills/wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
105
+ → verify: `grep -q "name: wire-ci" skills/wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
106
+ → verify: `grep -ci "template\|workflow\|validate\|dry.run" skills/wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
107
107
  → verify: `grep -q "wire-ci" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
108
108
 
109
109
  ---
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [2.45.6](https://github.com/danielvm-git/bigpowers/compare/v2.45.5...v2.45.6) (2026-07-03)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **skills:** repair stale verify paths in 6 SKILL.md files after skills/ migration ([189ef29](https://github.com/danielvm-git/bigpowers/commit/189ef29da3dbca29f046a2a33bd44ff56c233835))
7
+
8
+ ## [2.45.5](https://github.com/danielvm-git/bigpowers/compare/v2.45.4...v2.45.5) (2026-07-03)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **compliance:** repair stale skill paths in 33 verification scripts after skills/ migration ([f78fe9d](https://github.com/danielvm-git/bigpowers/commit/f78fe9d955251c80b348a193900b3b61594aebf7))
14
+
1
15
  ## [2.45.4](https://github.com/danielvm-git/bigpowers/compare/v2.45.3...v2.45.4) (2026-07-03)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.45.4",
3
+ "version": "2.45.6",
4
4
  "description": "72 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -7,7 +7,7 @@ SKILLS_ROOT="$REPO_ROOT"
7
7
  [[ -d "$REPO_ROOT/skills" ]] && SKILLS_ROOT="$REPO_ROOT/skills"
8
8
 
9
9
  # Bash 3.2-compatible model mapping (no declare -A)
10
- get_model() {
10
+ model_for() {
11
11
  case "$1" in
12
12
  survey-context|verify-work|validate-fix|audit-code|enforce-first|trace-requirement|commit-message|release-branch|kickoff-branch|guard-git|hook-commits|execute-plan|organize-workspace|terse-mode|session-state|search-skills|setup-environment|reset-baseline) echo "haiku" ;;
13
13
  elaborate-spec|grill-with-docs|design-interface|plan-work|request-review|evolve-skill) echo "opus" ;;
@@ -19,7 +19,7 @@ for skill_dir in "$SKILLS_ROOT"/*/; do
19
19
  skill_md="$skill_dir/SKILL.md"
20
20
  [[ -f "$skill_md" ]] || continue
21
21
  name=$(basename "$skill_dir")
22
- model=$(get_model "$name")
22
+ model=$(model_for "$name")
23
23
  if grep -q '^model:' "$skill_md" 2>/dev/null; then
24
24
  continue
25
25
  fi
@@ -8,12 +8,12 @@ set -euo pipefail
8
8
  STATE_YAML="specs/state.yaml"
9
9
  TIMINGS_KEY="metrics.skill_timings"
10
10
 
11
- usage() {
11
+ print_usage() {
12
12
  echo "Usage: $0 start|end <skill-name>" >&2
13
13
  exit 1
14
14
  }
15
15
 
16
- [ $# -ne 2 ] && usage
16
+ [ $# -ne 2 ] && print_usage
17
17
 
18
18
  ACTION="$1"
19
19
  SKILL="$2"
@@ -69,6 +69,6 @@ with open('$STATE_YAML', 'w') as f:
69
69
  ;;
70
70
 
71
71
  *)
72
- usage
72
+ print_usage
73
73
  ;;
74
74
  esac
@@ -18,7 +18,7 @@ fi
18
18
 
19
19
  # Phase categorization — maps each skill to a lifecycle phase
20
20
  # Uses a case statement for bash 3.2 compatibility (macOS default bash lacks declare -A)
21
- get_phase() {
21
+ phase_of() {
22
22
  case "$1" in
23
23
  # Discover
24
24
  survey-context|research-first|search-skills|using-bigpowers|map-codebase|elaborate-spec|audit-plan) echo "Discover" ;;
@@ -68,7 +68,7 @@ DESC_COL_WIDTH=56
68
68
  for phase in "${PHASE_ORDER[@]}"; do
69
69
  phase_skills=()
70
70
  for name in $(jq -r '.skills | keys[]' "$LOCKFILE" | sort); do
71
- [[ "$(get_phase "$name")" == "$phase" ]] && phase_skills+=("$name")
71
+ [[ "$(phase_of "$name")" == "$phase" ]] && phase_skills+=("$name")
72
72
  done
73
73
  count=${#phase_skills[@]}
74
74
  total=$((total + count))
@@ -89,7 +89,7 @@ DESC_COL_WIDTH=56
89
89
  row=0
90
90
  for phase in "${PHASE_ORDER[@]}"; do
91
91
  for name in $(jq -r '.skills | keys[]' "$LOCKFILE" | sort); do
92
- [[ "$(get_phase "$name")" != "$phase" ]] && continue
92
+ [[ "$(phase_of "$name")" != "$phase" ]] && continue
93
93
  row=$((row + 1))
94
94
  desc=$(jq -r --arg n "$name" '.skills[$n].description // ""' "$LOCKFILE" | head -c 80)
95
95
  echo "| $row | $phase | \`$name\` | $desc | ✅ Active |"
@@ -26,6 +26,6 @@ model: opus
26
26
 
27
27
  ## Verify
28
28
 
29
- → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
29
+ → verify: `grep -c 'run-benchmark\|pass_at_k\|BASELINE-' skills/evolve-skill/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
30
30
 
31
31
  See [REFERENCE.md](REFERENCE.md) for ADR template.
@@ -25,6 +25,6 @@ model: opus
25
25
 
26
26
  ## Verify
27
27
 
28
- → verify: `grep -c 'https\?://' grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
28
+ → verify: `grep -c 'https\?://' skills/grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
29
29
 
30
30
  See [REFERENCE.md](REFERENCE.md) for question templates.
@@ -71,7 +71,7 @@ See [REFERENCE.md](REFERENCE.md)
71
71
 
72
72
  ## Verify
73
73
 
74
- → verify: `test -f publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
75
- → verify: `grep -q "name: publish-package" publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
76
- → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
74
+ → verify: `test -f skills/publish-package/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
75
+ → verify: `grep -q "name: publish-package" skills/publish-package/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
76
+ → verify: `grep -ci "npm\|crates.io\|pypi\|publish\|registry" skills/publish-package/SKILL.md | awk '{if($1>=4) print "OK: semantics"; else print "FAIL: missing"}'`
77
77
  → verify: `grep -q "publish-package" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
@@ -67,4 +67,4 @@ scenarios:
67
67
 
68
68
  ## Verify
69
69
 
70
- → verify: `test -f run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' run-benchmark/SKILL.md && echo OK || echo FAIL`
70
+ → verify: `test -f skills/run-benchmark/SKILL.md && grep -q 'pass_at_k\|pass.at.k' skills/run-benchmark/SKILL.md && echo OK || echo FAIL`
@@ -49,4 +49,4 @@ Required YAML keys:
49
49
 
50
50
  Push HTML to the dashboard session dir for rich diagrams. See `start-server.sh` for `CONTENT_DIR`.
51
51
 
52
- → verify: `test -f visual-dashboard/scripts/read-specs-status.cjs && test -f visual-dashboard/scripts/cockpit.html`
52
+ → verify: `test -f skills/visual-dashboard/scripts/read-specs-status.cjs && test -f skills/visual-dashboard/scripts/cockpit.html`
@@ -100,7 +100,7 @@ Add the following to the project's documentation or CLAUDE.md after setup:
100
100
 
101
101
  ## Verify
102
102
 
103
- → verify: `test -f wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
104
- → verify: `grep -q "name: wire-ci" wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
105
- → verify: `grep -ci "template\|workflow\|validate\|dry.run" wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
103
+ → verify: `test -f skills/wire-ci/SKILL.md && echo "OK: skill file exists" || echo "FAIL: no skill file"`
104
+ → verify: `grep -q "name: wire-ci" skills/wire-ci/SKILL.md && echo "OK: frontmatter" || echo "FAIL: frontmatter"`
105
+ → verify: `grep -ci "template\|workflow\|validate\|dry.run" skills/wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
106
106
  → verify: `grep -q "wire-ci" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
package/skills-lock.json CHANGED
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "evolve-skill": {
110
110
  "description": "Benchmark-gated skill evolution — consume bigpowers-benchmark report, propose plan-work change, edit skill via craft-skill, re-run benchmark, record ADR. Use when a skill underperforms on benchmark or stocktake finds systemic gap.",
111
- "sha256": "e2d127c4ae0b5af7",
111
+ "sha256": "d507a80d9ca3d328",
112
112
  "path": "skills/evolve-skill/SKILL.md"
113
113
  },
114
114
  "execute-plan": {
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "grill-with-docs": {
135
135
  "description": "Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API.",
136
- "sha256": "66e9e2725d3d95e9",
136
+ "sha256": "cb5dfa959ab73121",
137
137
  "path": "skills/grill-with-docs/SKILL.md"
138
138
  },
139
139
  "guard-git": {
@@ -203,7 +203,7 @@
203
203
  },
204
204
  "publish-package": {
205
205
  "description": "\"Package registry publishing for npm, crates.io, PyPI, and Homebrew. Verifies prerequisites, runs the publish command, confirms success, and surfaces actionable error hints on failure.\"",
206
- "sha256": "39f5ba9b115cca6b",
206
+ "sha256": "e55d719c51f72844",
207
207
  "path": "skills/publish-package/SKILL.md"
208
208
  },
209
209
  "quick-fix": {
@@ -238,7 +238,7 @@
238
238
  },
239
239
  "run-benchmark": {
240
240
  "description": "Run skill quality benchmarks from specs/benchmarks/ definitions and write pass@k reports. Use before and after evolve-skill to prove quality changes are improvements, not regressions.",
241
- "sha256": "e27f4e682e505b19",
241
+ "sha256": "5956b612e09de4ad",
242
242
  "path": "skills/run-benchmark/SKILL.md"
243
243
  },
244
244
  "run-evals": {
@@ -343,12 +343,12 @@
343
343
  },
344
344
  "visual-dashboard": {
345
345
  "description": "Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Persists artifacts in .bigpowers/dashboard/. Reads specs/state.yaml, release-plan.yaml, epics, and planning-status via HTTP API or opencode panel.",
346
- "sha256": "3213e18d4bde52f2",
346
+ "sha256": "24bb5eae717d0e73",
347
347
  "path": "skills/visual-dashboard/SKILL.md"
348
348
  },
349
349
  "wire-ci": {
350
350
  "description": "\"CI pipeline setup with pre-built templates and local validation. Generates GitHub Actions workflows, validates YAML syntax and permissions, supports dry-run via act/gh. The CI equivalent of wire-observability.\"",
351
- "sha256": "cc3fd8faf2686be1",
351
+ "sha256": "c27d9bfcf66d2cf6",
352
352
  "path": "skills/wire-ci/SKILL.md"
353
353
  },
354
354
  "wire-observability": {