What problem does it solve?
Updating a Safari web extension during development is error-prone: stale builds, duplicate extension registrations, broken native messaging, and accidental damage to the user's signed app or extension storage. This Skill provides a guarded workflow for building, reloading, and verifying the Voyager Safari extension without disturbing permissions, storage, or installed apps.
Core Features & Use Cases
- Route selection: Chooses between the temporary-extension route for TypeScript/CSS/UI changes and the containing-app route for Swift, native messaging, signing, or Sparkle changes.
- Safe build and registration: Runs
bun run build:safari, uses fixed derived-data paths to avoid disk bloat, and uses read-only pluginkit/LaunchServices checks before any targeted re-registration.
- Tiered verification: Requires evidence from build, artifact, loaded-extension, live-behavior, and state-safety checks before claiming success.
- Use Case: After editing popup CSS, run the build, reload the temporary extension in Safari, refresh the Gemini tab, and confirm the popup shows the change while existing cards and settings remain intact.
Quick Start
Use the update-safari-extension skill to rebuild the Safari extension and verify my latest popup changes in Safari.