theme-update — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited theme-update (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Safely upgrade a Weaverse Pilot theme from its current version to a newer release. This skill walks through detection, planning, execution, and verification — never overwriting user customizations without explicit approval.
@weaverse/pilotYYYY.M.D (e.g., 2026.4.7). Older: semver (v8.1.0)node skills/theme-update/scripts/check_pilot_updates.mjs
node skills/theme-update/scripts/check_pilot_updates.mjs --target v2026.4.7Follow these phases in order. Do NOT skip steps.
package.json → get version fieldname is not @weaverse/pilot, ask the user to confirm this is a Pilot-based projectcurl -s "https://api.github.com/repos/Weaverse/pilot/releases?per_page=50"If already on latest → stop here and tell the user.
git checkout -b update/v{CURRENT}-to-v{TARGET}
git push -u origin update/v{CURRENT}-to-v{TARGET}Always work on a branch. Never update on main directly.
For each release in the update range (oldest to newest):
# Full comparison URL
https://api.github.com/repos/Weaverse/pilot/compare/v{OLD}...v{NEW}
# Raw diff
https://github.com/Weaverse/pilot/compare/v{OLD}...v{NEW}.diffcurl -sL "https://api.github.com/repos/Weaverse/pilot/tarball/v{TARGET}" | tar xz#### Auto-merge (safe to apply without asking)
package.json version bump, dependenciespackage-lock.json, bun.lockb, pnpm-lock.yaml)tsconfig.json, vite.config.ts, tailwind.config.ts — ONLY if user hasn't customized them.github/, CHANGELOG.md, LICENSE#### Needs review (show diff, get approval)
app/components/ — UI components user may have customizedapp/routes/ — route files user may have modifiedapp/lib/ — utility modulesapp/root.tsx, app/entry.client.tsx, app/entry.server.tsxapp/styles/ — CSS/Tailwind changesgit diff shows modifications from Pilot base)#### Skip (mention but don't touch)
.env, .env.example — never overwrite environment files## Update Plan: v2026.3.23 → v2026.4.7
### Auto-merge (3 files)
✅ package.json — version + dependency bumps
✅ bun.lockb — lock file update
✅ app/lib/utils.ts — new helper function added
### Needs Review (5 files)
⚠️ app/components/Header.tsx — Pilot added shopify-account web component
Your version: custom mega menu logic
Pilot change: replaced AccountButton with <shopify-account>
→ Recommend: keep your mega menu, add shopify-account separately
⚠️ app/routes/_index.tsx — performance improvements
Your version: added custom hero section
Pilot change: caching + skeleton loading
→ Recommend: apply caching, keep your hero
### New Files (2 files)
➕ app/components/ScrollReveal.tsx — new scroll animation component
➕ app/lib/reviews.ts — extracted reviews API
### Skipped (1 file)
⏭️ app/components/CombinedListings.tsx — you deleted this fileWait for user confirmation before proceeding. Ask:
"Review the plan above. Approve to continue, or tell me which files to handle differently."
Apply changes in order, one release at a time if multi-version jump:
#### 4a. Auto-merge files
# Copy new file from Pilot source
cp /tmp/pilot-reference/{FILE_PATH} {FILE_PATH}
# Or apply targeted patch
git apply --3way <patch-file>After each auto-merge, verify with git diff --stat.
#### 4b. Needs-review files
For each file:
#### 4c. Commit per release
git add -A
git commit -m "chore: update Pilot v{OLD} → v{NEW}
- [list key changes applied]
- [list files with manual merge decisions]
"If doing multi-version jump, repeat for each intermediate release.
After all changes applied:
# 1. Install dependencies
bun install # or npm install / pnpm install based on lockfile
# 2. TypeScript check
bun run typecheck
# 3. Build check
bun run buildIf build fails:
If build succeeds:
bun run dev briefly to check no runtime errors## Update Complete: v2026.3.23 → v2026.4.7
✅ 12 files auto-merged
✅ 5 files reviewed and merged
✅ 2 new files added
✅ Build passes
✅ TypeCheck passes
### New features available
- Shopify Account Web Component (<shopify-account>)
- Vite chunk splitting for better caching
- ScrollReveal component for animations
### Manual follow-up (optional)
- Configure shopify-account in your Header if you want native sign-in
- Review ScrollReveal component for use in custom sections
### Rollback
git checkout main
git branch -D update/v2026.3.23-to-v2026.4.7# If approved
git checkout main
git merge update/v{CURRENT}-to-v{TARGET}
git push origin maintypecheck + build both passv prefix (2026.4.7), GitHub tags have v prefix (v2026.4.7). Always normalize.package.json, MUST run the correct package manager (check which lockfile exists)@weaverse/hydrogen)Sometimes the ask is only "update the Weaverse SDK", not a full theme update. Verified procedure (used for a 5.5.0 → 5.15.1 client jump):
npx react-router typegen && npm run typecheck on the CURRENT version and record every error (client forks usually have pre-existing failures). After the bump, diff against this baseline — you only own the delta. Without the baseline you'll chase errors that were always there.npm view @weaverse/hydrogen@<target> peerDependencies. 5.15.x/5.16.x need @shopify/hydrogen >=2025.5, react 19, react-router 7, @shopify/remix-oxygen 3. react-error-boundary and @weaverse/schema arrive transitively — their absence in the theme's package.json is fine.errorComponent is typed FC<{ error: unknown }> (was an Error-like object). Port upstream Pilot's GenericError, which narrows at runtime (error && typeof error === "object" && "message" in error).shopify hydrogen build --codegen — typecheck alone misses bundler-level issues.npm i --package-lock-only --workspaces=false; plain npm i fails on the monorepo's catalog: protocol.pilot.weaverse.dev: merge to Weaverse/pilot main, then gh repo sync Weaverse/pilot-demo --source Weaverse/pilot — the fork carries the Oxygen deploy action and ships on sync (~1 min).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.