verifylisted
Install: claude install-skill app-vitals/shipwright
# Verify — project override for this repository
This repo ships its own headless Chromium. **Do not fall back to "I can't test this locally,
trust CI"** for a change on a browser-testable surface here. That framing is wrong in this
repository, and using it hides regressions until after a PR is open.
## The rule
Before claiming a change is unverifiable locally, check which case you are in:
| Situation | What to do |
|---|---|
| The change touches a browser-testable surface **in this repo** | Verify it locally with `launchBrowser()`. Do not defer to CI. |
| The executing environment genuinely lacks the capability | Say so explicitly, name the missing capability, then fall back to CI. |
| The change is in **another repo** without this capability | Fall back to CI — this skill's guarantee is repo-local. |
"Genuinely lacks the capability" means Playwright's chromium-headless-shell is not installed —
e.g. non-agent-image local dev where `bun install` did not pull browsers. It does **not** mean
"running headless", "no display", or "in a container". Those are all supported.
## The local-verification path
`launchBrowser()` lives in [`agent/src/browser.ts`](../../../agent/src/browser.ts) (added in
PW-1.2). It returns a Playwright `Browser` already configured for this repo's restricted
container `securityContext` — headless, `chromiumSandbox: false`, and
`--no-sandbox --disable-setuid-sandbox`. You do not need to configure any of that yourself.
```ts
import { launchBrowser } fro