Quality Gates
Every commit and CI run passes through layered quality checks.
Pipeline Order
- lint — ESLint + manifest permission linter
- typecheck — TypeScript (
tsc --noemit) - test — unit tests
- build — full extension build
No package is allowed to skip typecheck in CI.
Commands
| Command | What it checks |
|---|---|
pnpm build:chrome | Full Chrome extension build |
pnpm build:firefox | Full Firefox extension build |
pnpm lint | Manifest lint + ESLint + TypeScript |
pnpm lint:manifest-permissions | Manifest permission policy only |
pnpm lint:ts | TypeScript type checking |
pnpm format | Prettier auto-format |
pnpm quality:check | Full CI gate: format + lint + typecheck + test |
Manifest Compliance
repo-manifest-lint runs as part of pnpm lint. It enforces:
- Privileged permissions (
tabs,cookies, etc.) must be inoptional_permissions - Host permissions must be
optional_host_permissions
Violations fail the build.