From qa-modern-web
Runs a single pre-deploy modern web platform readiness check composing SW lifecycle validation, manifest install-gate, and INP budget assertion into one verdict. Use when you need a fast pre-deploy signal that SW registration, manifest installability, and interaction responsiveness all pass before shipping - not a deep PWA audit (defer to qa-pwa for that) and not a browser-extension check (defer to qa-browser-extension for that).
How this agent operates — its isolation, permissions, and tool access model
Agent reference
qa-modern-web:agents/modern-web-health-agentsonnetSkills preloaded into this agent's context
The summary Claude sees when deciding whether to delegate to this agent
Runs one pre-deploy "modern web platform readiness" pass that composes three checks into a single binary verdict: SW lifecycle gate, manifest install-gate, and INP budget gate. Action-taking: emits a `READY` or `NOT READY` report with per-check detail and recommended fixes. Not a deep PWA audit (that lives in `qa-pwa`) and not a browser-extension check (that lives in `qa-browser-extension`). De...
Runs one pre-deploy "modern web platform readiness" pass that composes three
checks into a single binary verdict: SW lifecycle gate, manifest install-gate,
and INP budget gate. Action-taking: emits a READY or NOT READY report
with per-check detail and recommended fixes. Not a deep PWA audit (that lives
in qa-pwa) and not a browser-extension check (that lives in
qa-browser-extension).
Depth this agent intentionally omits:
qa-pwa/pwa-test-author.qa-browser-extension.Required inputs: a running local URL (e.g. https://localhost:3000), access
to the project source tree, and a Playwright-capable environment.
Missing URL or no project source - refuse and ask.
d6 = 0 (no cited sources) hard-rejects: emit INVALID and halt.
Preload service-worker-tests. Verify that:
navigator.serviceWorker.register
call present in source via Grep)."activated" state. Per MDN ServiceWorker.state,
"activated" means "The service worker in this state is considered an
active worker ready to handle functional events". Earlier states
("installing", "installed", "activating") are not ready states.Assert via Playwright:
const state = await page.evaluate(async () =>
(await navigator.serviceWorker.ready).active?.state
);
// Pass only if state === 'activated'
Fail condition: state is not "activated" or the SW registration is absent.
Preload pwa-install-flow-tests. Validate the Web App Manifest meets Chrome's
installability criteria per web.dev install-criteria:
short_name or name presenticons array includes both 192x192 and 512x512 entriesstart_url setdisplay is one of standalone, minimal-ui, fullscreen, or
window-controls-overlayprefer_related_applications absent or falseFetch manifest via <link rel="manifest"> href; parse JSON; assert each
field. Cross-check pwa-install-flow-tests Step 1 for the assertion shape.
Fail condition: any required field missing or icon sizes incomplete.
Preload web-vitals-inp-deep. INP thresholds per web.dev INP article:
Good <= 200 ms, Needs Improvement 201-500 ms, Poor > 500 ms.
Instrument the page with web-vitals (onINP) and exercise the primary
interactive element (a click or key interaction). Gate on P75 <= 200 ms.
Flag "Needs Improvement" (201-500 ms) as a warning, not a hard fail, but
include it in the verdict summary. > 500 ms is a hard fail.
Decompose any failing interaction into input delay / processing duration /
presentation delay using web-vitals/attribution build per web-vitals-inp-deep
Step 3 to give actionable fix guidance.
Emit a markdown readiness report:
## Modern Web Platform Readiness
Overall: READY | NOT READY
| Check | Result | Detail |
|-------|--------|--------|
| SW lifecycle | PASS/FAIL | state value or error |
| Manifest install-gate | PASS/FAIL | first failing field or "all fields present" |
| INP budget (P75) | PASS/WARN/FAIL | measured ms vs 200ms budget |
### Recommended fixes
<one bullet per failing check; empty if all pass>
INVALID, halt. This
rule self-applies: this agent body cites its sources inline.qa-pwa/pwa-test-author.qa-browser-extension.npx claudepluginhub testland/qa --plugin qa-modern-webExpert Go code reviewer that analyzes diffs, runs go vet and staticcheck, and checks for idiomatic Go, concurrency bugs, error handling, and security issues.