bigpowers 2.22.0 → 2.23.0
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 +1 -1
- package/.pi/prompts/research-first.md +23 -2
- package/.pi/skills/research-first/SKILL.md +23 -2
- package/CHANGELOG.md +7 -0
- package/SKILL-INDEX.md +1 -1
- package/package.json +1 -1
- package/research-first/SKILL.md +23 -2
- package/scripts/bp-opensrc-check.sh +64 -0
- package/skills-lock.json +1 -1
package/.pi/package.json
CHANGED
|
@@ -11,8 +11,29 @@ description: Look-before-build — search registries, repo, existing skills, and
|
|
|
11
11
|
|
|
12
12
|
1. Read `specs/product/SCOPE_LATEST.yaml`, `specs/release-plan.yaml + epic shards`, and the current task statement.
|
|
13
13
|
2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.
|
|
14
|
-
3.
|
|
15
|
-
4.
|
|
14
|
+
3. **Check opensrc cache** — if the task integrates an external library, run `bash scripts/bp-opensrc-check.sh` (or `npx opensrc search <pkg>`) to find locally-cached source. Read the `src/` directory for API shapes before writing any integration code.
|
|
15
|
+
4. For each candidate: note name, URL/path, fit (adopt | extend | compose | build).
|
|
16
|
+
5. Append `## Prior Art` to `requirements/SCOPE_LATEST.yaml` notes or the active epic story.
|
|
17
|
+
|
|
18
|
+
## opensrc Integration
|
|
19
|
+
|
|
20
|
+
`opensrc` is a local cache of 200+ open-source repos and npm/PyPI packages. Query it before building any external integration to avoid re-inventing documented API shapes.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Check if a package is cached
|
|
24
|
+
npx opensrc search <package-name>
|
|
25
|
+
|
|
26
|
+
# Or use the bundled helper (checks all deps from package.json or requirements.txt)
|
|
27
|
+
bash scripts/bp-opensrc-check.sh [package.json|requirements.txt]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If opensrc finds a match, read its `src/` or source directory and append findings to the **Prior Art** section:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
opensrc: found <pkg> v<version> — exports <key classes/functions>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If opensrc is not installed or the package is not cached, fall through to web docs normally.
|
|
16
37
|
|
|
17
38
|
## Outcome matrix
|
|
18
39
|
|
|
@@ -13,8 +13,29 @@ model: sonnet
|
|
|
13
13
|
|
|
14
14
|
1. Read `specs/product/SCOPE_LATEST.yaml`, `specs/release-plan.yaml + epic shards`, and the current task statement.
|
|
15
15
|
2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.
|
|
16
|
-
3.
|
|
17
|
-
4.
|
|
16
|
+
3. **Check opensrc cache** — if the task integrates an external library, run `bash scripts/bp-opensrc-check.sh` (or `npx opensrc search <pkg>`) to find locally-cached source. Read the `src/` directory for API shapes before writing any integration code.
|
|
17
|
+
4. For each candidate: note name, URL/path, fit (adopt | extend | compose | build).
|
|
18
|
+
5. Append `## Prior Art` to `requirements/SCOPE_LATEST.yaml` notes or the active epic story.
|
|
19
|
+
|
|
20
|
+
## opensrc Integration
|
|
21
|
+
|
|
22
|
+
`opensrc` is a local cache of 200+ open-source repos and npm/PyPI packages. Query it before building any external integration to avoid re-inventing documented API shapes.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Check if a package is cached
|
|
26
|
+
npx opensrc search <package-name>
|
|
27
|
+
|
|
28
|
+
# Or use the bundled helper (checks all deps from package.json or requirements.txt)
|
|
29
|
+
bash scripts/bp-opensrc-check.sh [package.json|requirements.txt]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If opensrc finds a match, read its `src/` or source directory and append findings to the **Prior Art** section:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
opensrc: found <pkg> v<version> — exports <key classes/functions>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If opensrc is not installed or the package is not cached, fall through to web docs normally.
|
|
18
39
|
|
|
19
40
|
## Outcome matrix
|
|
20
41
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.23.0](https://github.com/danielvm-git/bigpowers/compare/v2.22.0...v2.23.0) (2026-06-22)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **research-first:** add opensrc cache check before building ([9921db6](https://github.com/danielvm-git/bigpowers/commit/9921db68c05b914da8e924a3fbba0d03e6e9dd35))
|
|
7
|
+
|
|
1
8
|
# [2.22.0](https://github.com/danielvm-git/bigpowers/compare/v2.21.0...v2.22.0) (2026-06-22)
|
|
2
9
|
|
|
3
10
|
|
package/SKILL-INDEX.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> **DO NOT EDIT** — This file is auto-generated by `scripts/generate-skill-index.sh`.
|
|
4
4
|
> Edit `SKILL.md` source files or `skills-lock.json` instead. Run `bash scripts/sync-skills.sh` to regenerate.
|
|
5
5
|
|
|
6
|
-
**Generated:** 2026-06-22T02:
|
|
6
|
+
**Generated:** 2026-06-22T02:23:04Z
|
|
7
7
|
**Skills:** 68
|
|
8
8
|
|
|
9
9
|
---
|
package/package.json
CHANGED
package/research-first/SKILL.md
CHANGED
|
@@ -12,8 +12,29 @@ model: sonnet
|
|
|
12
12
|
|
|
13
13
|
1. Read `specs/product/SCOPE_LATEST.yaml`, `specs/release-plan.yaml + epic shards`, and the current task statement.
|
|
14
14
|
2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.
|
|
15
|
-
3.
|
|
16
|
-
4.
|
|
15
|
+
3. **Check opensrc cache** — if the task integrates an external library, run `bash scripts/bp-opensrc-check.sh` (or `npx opensrc search <pkg>`) to find locally-cached source. Read the `src/` directory for API shapes before writing any integration code.
|
|
16
|
+
4. For each candidate: note name, URL/path, fit (adopt | extend | compose | build).
|
|
17
|
+
5. Append `## Prior Art` to `requirements/SCOPE_LATEST.yaml` notes or the active epic story.
|
|
18
|
+
|
|
19
|
+
## opensrc Integration
|
|
20
|
+
|
|
21
|
+
`opensrc` is a local cache of 200+ open-source repos and npm/PyPI packages. Query it before building any external integration to avoid re-inventing documented API shapes.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Check if a package is cached
|
|
25
|
+
npx opensrc search <package-name>
|
|
26
|
+
|
|
27
|
+
# Or use the bundled helper (checks all deps from package.json or requirements.txt)
|
|
28
|
+
bash scripts/bp-opensrc-check.sh [package.json|requirements.txt]
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If opensrc finds a match, read its `src/` or source directory and append findings to the **Prior Art** section:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
opensrc: found <pkg> v<version> — exports <key classes/functions>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If opensrc is not installed or the package is not cached, fall through to web docs normally.
|
|
17
38
|
|
|
18
39
|
## Outcome matrix
|
|
19
40
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# bp-opensrc-check.sh — Check project dependencies against the local opensrc cache.
|
|
3
|
+
# Usage: bash scripts/bp-opensrc-check.sh [package.json|requirements.txt]
|
|
4
|
+
# Output: one line per dependency — FOUND or NOT CACHED, with local path when found.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
INPUT="${1:-package.json}"
|
|
8
|
+
|
|
9
|
+
if ! command -v npx >/dev/null 2>&1; then
|
|
10
|
+
echo "SKIP: npx not found — opensrc requires Node.js" >&2
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
if ! npx opensrc --version >/dev/null 2>&1; then
|
|
15
|
+
echo "SKIP: opensrc not installed — run: npm install -g opensrc" >&2
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
extract_deps() {
|
|
20
|
+
local file="$1"
|
|
21
|
+
case "$file" in
|
|
22
|
+
*.json)
|
|
23
|
+
python3 -c "
|
|
24
|
+
import json, sys
|
|
25
|
+
data = json.load(open('$file'))
|
|
26
|
+
deps = list(data.get('dependencies', {}).keys()) + list(data.get('devDependencies', {}).keys())
|
|
27
|
+
print('\n'.join(deps))
|
|
28
|
+
" 2>/dev/null || true
|
|
29
|
+
;;
|
|
30
|
+
requirements*.txt)
|
|
31
|
+
grep -v '^#' "$file" | grep -v '^$' | sed 's/[>=<!].*//' | tr -d ' ' || true
|
|
32
|
+
;;
|
|
33
|
+
*)
|
|
34
|
+
echo "WARN: unsupported file type: $file — pass package.json or requirements.txt" >&2
|
|
35
|
+
exit 1
|
|
36
|
+
;;
|
|
37
|
+
esac
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if [ ! -f "$INPUT" ]; then
|
|
41
|
+
echo "WARN: $INPUT not found" >&2
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
echo "opensrc cache check: $INPUT"
|
|
46
|
+
echo "---"
|
|
47
|
+
|
|
48
|
+
FOUND=0
|
|
49
|
+
MISSING=0
|
|
50
|
+
|
|
51
|
+
while IFS= read -r dep; do
|
|
52
|
+
[ -z "$dep" ] && continue
|
|
53
|
+
result=$(npx opensrc search "$dep" 2>/dev/null | head -1 || true)
|
|
54
|
+
if [ -n "$result" ]; then
|
|
55
|
+
echo "FOUND $dep — $result"
|
|
56
|
+
FOUND=$((FOUND + 1))
|
|
57
|
+
else
|
|
58
|
+
echo "NOT CACHED $dep"
|
|
59
|
+
MISSING=$((MISSING + 1))
|
|
60
|
+
fi
|
|
61
|
+
done < <(extract_deps "$INPUT")
|
|
62
|
+
|
|
63
|
+
echo "---"
|
|
64
|
+
echo "Summary: $FOUND cached, $MISSING not cached"
|
package/skills-lock.json
CHANGED
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
"research-first": {
|
|
215
215
|
"description": "Look-before-build — search registries, repo, existing skills, and web for prior art before implementing. Appends Prior Art to the spec. Use after survey-context and before elaborate-spec, when adding dependencies, or when the task may already be solved.",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "8c6928fce1c896b8",
|
|
217
217
|
"path": "research-first/SKILL.md"
|
|
218
218
|
},
|
|
219
219
|
"reset-baseline": {
|