browser-extensionslisted
Install: claude install-skill konradcinkusz/architecture-standards
# Browser extensions: build, session handoff, packaging, stores
**Read [`references/BROWSER-EXTENSIONS.md`](references/BROWSER-EXTENSIONS.md) before applying any of this.**
That file is the standard; everything below it is a summary to help you decide
whether this skill applies and to check your work afterwards.
## What this standard covers
- Cross-browser baseline
- Session handoff
- Isolated worlds and the service worker
- Per-site adapters
- Packaging: one source, N environments
- Store submission
- Distributing builds yourself
- Mobile: there is no mobile extension
## Failure modes
| Symptom | Cause |
|---|---|
| Session handoff works in Chrome, silently fails in Firefox | No content-script fallback; Firefox lacks `externally_connectable` |
| Token expiry nonsense after idle | Stored relative `expiresIn` instead of an absolute timestamp |
| Page never sees the extension's result | Isolated-world write to `window`; use DOM dataset + re-fired CustomEvent |
| First message after idle returns `undefined` | Service worker asleep; retry with delay |
| Extension works for the dev, not for users | Production zip carries dev config, or store build points at localhost hosts |
| Reviewer rejects over permissions | Localhost entries left in `host_permissions`, or broad permissions without written justification |
| Published extension's API calls fail | Extension id never added to backend CORS allowlist |
| One site's integration silently breaks | Third-party DOM changed; no sele