bigpowers 2.62.0 → 2.63.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/seed-conventions.md +33 -0
- package/.pi/skills/seed-conventions/SKILL.md +33 -0
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/scripts/verify-install.sh +60 -0
- package/skills/seed-conventions/REFERENCE.md +31 -0
- package/skills/seed-conventions/SKILL.md +2 -0
- package/skills-lock.json +1 -1
package/.pi/package.json
CHANGED
|
@@ -28,6 +28,8 @@ Ask the user these questions (one at a time, wait for each answer):
|
|
|
28
28
|
5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
|
|
29
29
|
6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
|
|
30
30
|
7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
|
|
31
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
32
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
31
33
|
|
|
32
34
|
## Generate files
|
|
33
35
|
|
|
@@ -130,3 +132,34 @@ Use the standard bigpowers CONVENTIONS.md as the base. Fill in the project-speci
|
|
|
130
132
|
## Stack profile fragments
|
|
131
133
|
|
|
132
134
|
If the user selected a stack profile, merge the matching `profiles/<name>.md` fragment into the generated `CONVENTIONS.md` under a `## Stack Conventions` section. Profiles supply language-specific commands, architecture patterns, and never-do additions.
|
|
135
|
+
|
|
136
|
+
## Local tool wiring (optional interview step 8)
|
|
137
|
+
|
|
138
|
+
Offered after the standard interview. Covers the two tools that global install (`scripts/install.sh`) structurally cannot reach because they read project-root config, not global paths.
|
|
139
|
+
|
|
140
|
+
### Cursor — project-local `.cursor/rules` symlink
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# From the project root:
|
|
144
|
+
ln -sfn <bigpowers-install-path>/.cursor/rules .cursor/rules
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Cursor reads `.cursor/rules/` from the project root. This symlink gives every project access to bigpowers skills as Cursor rules without duplicating the files. Run once per project.
|
|
148
|
+
|
|
149
|
+
### OpenCode — project-local `opencode.json` + `AGENTS.md`
|
|
150
|
+
|
|
151
|
+
`opencode.json` (project root):
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"$schema": "https://opencode.ai/config.json",
|
|
155
|
+
"instructions": [".cursor/rules/*.mdc", "AGENTS.md"]
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
OpenCode reads `opencode.json` from the project root, NOT from a global path. The `instructions` array points to the local `.cursor/rules` symlink (from the Cursor step above) and the project's `AGENTS.md`. Both must exist in the project for OpenCode to see bigpowers skills.
|
|
160
|
+
|
|
161
|
+
`AGENTS.md` is already generated by the standard interview (step 2 of Generate Files). When local tool wiring is opted in, ensure `AGENTS.md` includes the standard agent-config template header `# [Project Name] — OpenCode`.
|
|
162
|
+
|
|
163
|
+
### When to offer
|
|
164
|
+
|
|
165
|
+
Only offer local tool wiring when the user's project will be opened in Cursor or OpenCode. These tools are project-root scoped by design — no global installer can solve them. Global install (`install.sh`) already handles Claude Code, Gemini CLI, and pi globally. Do not offer for tools that read global config.
|
|
@@ -30,6 +30,8 @@ Ask the user these questions (one at a time, wait for each answer):
|
|
|
30
30
|
5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
|
|
31
31
|
6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
|
|
32
32
|
7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
|
|
33
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
34
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
33
35
|
|
|
34
36
|
## Generate files
|
|
35
37
|
|
|
@@ -132,3 +134,34 @@ Use the standard bigpowers CONVENTIONS.md as the base. Fill in the project-speci
|
|
|
132
134
|
## Stack profile fragments
|
|
133
135
|
|
|
134
136
|
If the user selected a stack profile, merge the matching `profiles/<name>.md` fragment into the generated `CONVENTIONS.md` under a `## Stack Conventions` section. Profiles supply language-specific commands, architecture patterns, and never-do additions.
|
|
137
|
+
|
|
138
|
+
## Local tool wiring (optional interview step 8)
|
|
139
|
+
|
|
140
|
+
Offered after the standard interview. Covers the two tools that global install (`scripts/install.sh`) structurally cannot reach because they read project-root config, not global paths.
|
|
141
|
+
|
|
142
|
+
### Cursor — project-local `.cursor/rules` symlink
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# From the project root:
|
|
146
|
+
ln -sfn <bigpowers-install-path>/.cursor/rules .cursor/rules
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Cursor reads `.cursor/rules/` from the project root. This symlink gives every project access to bigpowers skills as Cursor rules without duplicating the files. Run once per project.
|
|
150
|
+
|
|
151
|
+
### OpenCode — project-local `opencode.json` + `AGENTS.md`
|
|
152
|
+
|
|
153
|
+
`opencode.json` (project root):
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"$schema": "https://opencode.ai/config.json",
|
|
157
|
+
"instructions": [".cursor/rules/*.mdc", "AGENTS.md"]
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
OpenCode reads `opencode.json` from the project root, NOT from a global path. The `instructions` array points to the local `.cursor/rules` symlink (from the Cursor step above) and the project's `AGENTS.md`. Both must exist in the project for OpenCode to see bigpowers skills.
|
|
162
|
+
|
|
163
|
+
`AGENTS.md` is already generated by the standard interview (step 2 of Generate Files). When local tool wiring is opted in, ensure `AGENTS.md` includes the standard agent-config template header `# [Project Name] — OpenCode`.
|
|
164
|
+
|
|
165
|
+
### When to offer
|
|
166
|
+
|
|
167
|
+
Only offer local tool wiring when the user's project will be opened in Cursor or OpenCode. These tools are project-root scoped by design — no global installer can solve them. Global install (`install.sh`) already handles Claude Code, Gemini CLI, and pi globally. Do not offer for tools that read global config.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.63.0](https://github.com/danielvm-git/bigpowers/compare/v2.62.0...v2.63.0) (2026-07-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **e47:** cross-tool skill distribution — pi install, seed wiring, docs, verify harness ([27c68b4](https://github.com/danielvm-git/bigpowers/commit/27c68b49b698e994b783abc85c3750637061664e))
|
|
7
|
+
|
|
1
8
|
# [2.62.0](https://github.com/danielvm-git/bigpowers/compare/v2.61.4...v2.62.0) (2026-07-05)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e47s04
|
|
3
|
+
# verify-install.sh — manual assertion harness for install + seed wiring
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
+
PASS=0
|
|
8
|
+
FAIL=0
|
|
9
|
+
TMPDIR=""
|
|
10
|
+
|
|
11
|
+
cleanup() { [[ -n "$TMPDIR" && -d "$TMPDIR" ]] && rm -rf "$TMPDIR"; }
|
|
12
|
+
trap cleanup EXIT
|
|
13
|
+
|
|
14
|
+
pass() { echo " PASS $1"; PASS=$((PASS + 1)); }
|
|
15
|
+
fail() { echo " FAIL $1"; FAIL=$((FAIL + 1)); }
|
|
16
|
+
|
|
17
|
+
echo "=== install.sh --dry-run ==="
|
|
18
|
+
DRY_OUT="$("$REPO_ROOT/scripts/install.sh" --dry-run 2>&1)"
|
|
19
|
+
|
|
20
|
+
echo "$DRY_OUT" | grep -q 'pi →' && pass "install --dry-run includes pi" || fail "install --dry-run missing pi"
|
|
21
|
+
DRY_UNINSTALL="$("$REPO_ROOT/scripts/install.sh" --dry-run --uninstall 2>&1)"
|
|
22
|
+
echo "$DRY_UNINSTALL" | grep -q 'pi →' && pass "uninstall --dry-run includes pi" || fail "uninstall --dry-run missing pi"
|
|
23
|
+
echo "$DRY_OUT" | grep -qi 'opencode' && fail "install references opencode" || pass "install has no opencode reference"
|
|
24
|
+
echo "$DRY_OUT" | grep -q 'Claude Code →' && pass "install includes Claude Code" || fail "install missing Claude Code"
|
|
25
|
+
echo "$DRY_OUT" | grep -q 'Gemini CLI →' && pass "install includes Gemini CLI" || fail "install missing Gemini CLI"
|
|
26
|
+
echo "$DRY_OUT" | grep -q 'Cursor →' && pass "install includes Cursor" || fail "install missing Cursor"
|
|
27
|
+
|
|
28
|
+
for tool in "Claude Code" "pi"; do
|
|
29
|
+
# Find the skills count in the tool's section (between this tool header and next section)
|
|
30
|
+
section=$(echo "$DRY_OUT" | sed -n "/${tool} →/,/^$/p")
|
|
31
|
+
count=$(echo "$section" | grep -o '[0-9]\+ skills installed' | grep -o '[0-9]\+' || echo "0")
|
|
32
|
+
[[ "$count" -gt 0 ]] && pass "${tool}: $count skills" || fail "${tool}: 0 skills"
|
|
33
|
+
done
|
|
34
|
+
|
|
35
|
+
echo ""
|
|
36
|
+
echo "=== seed-conventions local wiring ==="
|
|
37
|
+
grep -qi 'local tool wiring' "$REPO_ROOT/skills/seed-conventions/SKILL.md" && pass "SKILL.md: local tool wiring" || fail "SKILL.md: missing local tool wiring"
|
|
38
|
+
grep -qi 'opencode.json' "$REPO_ROOT/skills/seed-conventions/REFERENCE.md" && pass "REFERENCE.md: opencode.json" || fail "REFERENCE.md: missing opencode.json"
|
|
39
|
+
grep -qi 'cursor/rules' "$REPO_ROOT/skills/seed-conventions/REFERENCE.md" && pass "REFERENCE.md: Cursor symlink" || fail "REFERENCE.md: missing Cursor symlink"
|
|
40
|
+
|
|
41
|
+
OPENCODE_JSON=$(sed -n '/```json/,/```/p' "$REPO_ROOT/skills/seed-conventions/REFERENCE.md" | grep -v '```' || true)
|
|
42
|
+
if [[ -n "$OPENCODE_JSON" ]]; then
|
|
43
|
+
TMPDIR=$(mktemp -d)
|
|
44
|
+
echo "$OPENCODE_JSON" > "$TMPDIR/test-opencode.json"
|
|
45
|
+
jq empty "$TMPDIR/test-opencode.json" 2>/dev/null && pass "opencode.json valid JSON" || fail "opencode.json NOT valid JSON"
|
|
46
|
+
else
|
|
47
|
+
fail "opencode.json template not found"
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
echo ""
|
|
51
|
+
echo "=== install.sh source ==="
|
|
52
|
+
grep -q 'install_pi()' "$REPO_ROOT/scripts/install.sh" && pass "source: install_pi()" || fail "source: missing install_pi()"
|
|
53
|
+
grep -q 'uninstall_pi()' "$REPO_ROOT/scripts/install.sh" && pass "source: uninstall_pi()" || fail "source: missing uninstall_pi()"
|
|
54
|
+
grep -q 'PI_SKILLS_DIR="$PI_CONFIG_DIR/agent/skills"' "$REPO_ROOT/scripts/install.sh" && pass "source: targets ~/.pi/agent/skills/" || fail "source: wrong pi target"
|
|
55
|
+
! grep -q 'install_opencode\|print_opencode_instructions' "$REPO_ROOT/scripts/install.sh" && pass "source: no opencode functions" || fail "source: opencode functions remain"
|
|
56
|
+
|
|
57
|
+
echo ""
|
|
58
|
+
echo "──────────────────────────────────────────"
|
|
59
|
+
echo "verify-install: $PASS passed, $FAIL failed"
|
|
60
|
+
[[ "$FAIL" -gt 0 ]] && { echo "Overall: fail"; exit 1; } || echo "Overall: pass"
|
|
@@ -61,3 +61,34 @@ Use the standard bigpowers CONVENTIONS.md as the base. Fill in the project-speci
|
|
|
61
61
|
## Stack profile fragments
|
|
62
62
|
|
|
63
63
|
If the user selected a stack profile, merge the matching `profiles/<name>.md` fragment into the generated `CONVENTIONS.md` under a `## Stack Conventions` section. Profiles supply language-specific commands, architecture patterns, and never-do additions.
|
|
64
|
+
|
|
65
|
+
## Local tool wiring (optional interview step 8)
|
|
66
|
+
|
|
67
|
+
Offered after the standard interview. Covers the two tools that global install (`scripts/install.sh`) structurally cannot reach because they read project-root config, not global paths.
|
|
68
|
+
|
|
69
|
+
### Cursor — project-local `.cursor/rules` symlink
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# From the project root:
|
|
73
|
+
ln -sfn <bigpowers-install-path>/.cursor/rules .cursor/rules
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Cursor reads `.cursor/rules/` from the project root. This symlink gives every project access to bigpowers skills as Cursor rules without duplicating the files. Run once per project.
|
|
77
|
+
|
|
78
|
+
### OpenCode — project-local `opencode.json` + `AGENTS.md`
|
|
79
|
+
|
|
80
|
+
`opencode.json` (project root):
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"$schema": "https://opencode.ai/config.json",
|
|
84
|
+
"instructions": [".cursor/rules/*.mdc", "AGENTS.md"]
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
OpenCode reads `opencode.json` from the project root, NOT from a global path. The `instructions` array points to the local `.cursor/rules` symlink (from the Cursor step above) and the project's `AGENTS.md`. Both must exist in the project for OpenCode to see bigpowers skills.
|
|
89
|
+
|
|
90
|
+
`AGENTS.md` is already generated by the standard interview (step 2 of Generate Files). When local tool wiring is opted in, ensure `AGENTS.md` includes the standard agent-config template header `# [Project Name] — OpenCode`.
|
|
91
|
+
|
|
92
|
+
### When to offer
|
|
93
|
+
|
|
94
|
+
Only offer local tool wiring when the user's project will be opened in Cursor or OpenCode. These tools are project-root scoped by design — no global installer can solve them. Global install (`install.sh`) already handles Claude Code, Gemini CLI, and pi globally. Do not offer for tools that read global config.
|
|
@@ -30,6 +30,8 @@ Ask the user these questions (one at a time, wait for each answer):
|
|
|
30
30
|
5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
|
|
31
31
|
6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
|
|
32
32
|
7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
|
|
33
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
34
|
+
8. **Local tool wiring (optional)** — "Wire bigpowers skills for project-local tools that global install can't reach? (Cursor + OpenCode only)" If yes, generate the local wiring artifacts described in [REFERENCE.md](REFERENCE.md) §Local tool wiring. If no, skip — the standard seed output is unchanged.
|
|
33
35
|
|
|
34
36
|
## Generate files
|
|
35
37
|
|
package/skills-lock.json
CHANGED
|
@@ -278,7 +278,7 @@
|
|
|
278
278
|
},
|
|
279
279
|
"seed-conventions": {
|
|
280
280
|
"description": "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project through a brief interview, and create the specs/ directory with evolved bigpowers structure (product/, tech-architecture/, verifications/, epics/archive/). Entry point for greenfield projects. Use when starting a new project from scratch, when user asks to set up AI agent conventions, or when there is no CLAUDE.md yet.",
|
|
281
|
-
"sha256": "
|
|
281
|
+
"sha256": "eb4cbca25d54fa81",
|
|
282
282
|
"path": "skills/seed-conventions/SKILL.md"
|
|
283
283
|
},
|
|
284
284
|
"session-state": {
|