# Tasks: enterprise-pwa ## Scaffolding - [ ] Add `pwa` to `data:` plugin in `scripts/folder-reorg/assignment.yml`. - [ ] Create `packages/foundation/data/pwa/` skeleton (`package.json`, `README.md`, `tsconfig.lib.json`, `vite.config.ts`, `vitest.config.ts`). - [ ] Wire workspace + catalog deps: `@suaveplan/error`, `@suaveplan/opentelemetry`, `@suaveplan/types`, `tslib`, `@opentelemetry/api`, `zod`. ## Implementation - [ ] `errors/errors.ts` — `PWA_CODES`, `PwaError`, metadata table. - [ ] `schemas/schemas.ts` — Zod schemas for sync-queue entry + Web App Manifest. - [ ] `observability/observability.ts` + types. - [ ] `service-worker/service-worker.ts` — `ServiceWorkerManager` with injectable container. - [ ] `update-controller/update-controller.ts` — cross-tab reload via BroadcastChannel. - [ ] `sync-queue/memory-store.ts` + `local-storage-store.ts` + `indexeddb-store.ts`. - [ ] `sync-queue/version-migration.ts` — forward migrator registry. - [ ] `sync-queue/sync-queue.ts` — pluggable queue. - [ ] `sync-queue/background-sync.ts` — `SyncManager` bridge + visibility fallback. - [ ] `push-notifications/vapid.ts` — URL-safe base64 decoder. - [ ] `push-notifications/push-notifications.ts` — `PushNotificationManager`. - [ ] `install-prompt/install-prompt.ts` — `InstallPromptManager`. - [ ] `caching-strategies/caching-strategies.ts` — 5 strategies. - [ ] `caching-strategies/router.ts` — `Router.registerRoute()` + `handle()`. - [ ] `manifest/manifest.ts` — `ManifestBuilder`. - [ ] `index.ts` — explicit named re-exports (rule 10). ## Documentation - [ ] Sibling `.md` next to every `.ts` per CLAUDE rule (≥200 words, 6 sections). - [ ] Root `README.md` with quick-start + module links. ## Gates - [ ] `bunx turbo lint typecheck test build --filter=@suaveplan/pwa` green. - [ ] `bunx turbo test:coverage --filter=@suaveplan/pwa` ≥ 100/100/100/100. - [ ] `bun scripts/folder-reorg/generate-manifest.ts` (refresh MANIFEST). ## Finalisation - [ ] Fold `specs/pwa/spec.md` into `openspec/specs/pwa/spec.md`. - [ ] Move change to `openspec/archive/2026-05-25-enterprise-pwa/`. - [ ] Flip `STATUS.md` row from `–` to `✅` and bump counts. - [ ] Commit on `feat/migrate-pwa` with Conventional Commit + Claude co-author footer (do not push).