chrome-extension-architect

Design Chrome Manifest V3 extension architectures with least-privilege permissions.

Updated Mar 25, 2026
One-click install
npx skills add https://github.com/involvex/skills --skill chrome-extension-architect
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: chrome-extension-architect
Source: https://github.com/involvex/skills/tree/main/skills/chrome-extension-architect
Command: npx skills add https://github.com/involvex/skills --skill chrome-extension-architect

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides an expert architecture and debugging playbook for building privacy-first Chrome Manifest V3 extensions that avoid common MV3 pitfalls, minimize permission scope, and ensure reliable state persistence despite service worker termination.

Core Features & Use Cases

  • Side panel architecture: Guidance for chrome.sidePanel integration, per-tab panel paths, layout awareness, and differences versus popups.
  • Service worker lifecycle & debugging: Patterns to avoid lost globals, register listeners top-level, use storage-backed state, and trace wake/suspend cycles.
  • Permissions & privacy audits: Least-privilege permission proposals, host permission minimization, optional permission flows, and privacy warning text for high-impact permissions.
  • Storage & persistence strategy: Decision tree covering chrome.storage.local, sync, session, and IndexedDB with best practices and cleanup policies.
  • Cross-browser compatibility: Feature detection for Chrome, Firefox, and Safari, webextension-polyfill recommendations, and fallback UI approaches.
  • Templates & checklists: Manifest examples, messaging patterns, debugging checklist, and sample code snippets for common extension patterns.

Quick Start

Use the chrome-extension-architect skill to design a privacy-first Chrome MV3 side panel with least-privilege permissions, storage-backed persistence, and a service worker lifecycle plan.

Frequently Asked Questions about chrome-extension-architect

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I keep state persisted when a Chrome MV3 service worker terminates?▼

To keep state persisted when a Chrome MV3 service worker terminates, use storage-backed state mechanisms like chrome.storage.local or IndexedDB rather than in-memory globals. This ensures data survives wake and suspend cycles.

How do I design a Chrome extension side panel instead of a popup?▼

Designing a Chrome extension side panel involves integrating chrome.sidePanel, configuring per-tab panel paths, and managing layout awareness. Side panels offer persistent UI compared to transient popups.

What is the best way to minimize permissions for a privacy-first Chrome extension?▼

The best way to minimize permissions for a privacy-first Chrome extension is applying least-privilege proposals, reducing host_permissions, and implementing optional permission flows to request access only when needed.

Does Chrome Manifest V3 side panel architecture work with Firefox and Safari?▼

Chrome Manifest V3 side panel architecture supports Firefox and Safari through feature detection, webextension-polyfill recommendations, and fallback UI approaches to ensure cross-browser sidebar compatibility.

Why does my Chrome MV3 service worker lose global variables?▼

A Chrome MV3 service worker loses global variables because the browser terminates the worker to save resources. Registering listeners at the top level and using chrome.storage.session prevents lost state.

When do I need IndexedDB instead of chrome.storage.local for extension persistence?▼

You need IndexedDB instead of chrome.storage.local for extension persistence when handling complex structured data or large payloads, while local storage suits simpler key-value state and cleanup policies.