# Contributor handoff — puppeteer/puppeteer

> Canonical page: https://codevetter.com/unpack/puppeteer/agent-handoff

# Contributor handoff — puppeteer/puppeteer

Scanned commit 2e45a3af43231cd658285e4da5e7f53e40f24edf (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed; this handoff is a source-based starting point with bounded coverage. Begin in the owning package and trace the public abstraction through its protocol or Node implementation before editing. Preserve browser-runtime compatibility, asynchronous cleanup, generated documentation conventions, and expectation semantics. Future verification commands require an execution-authorized task and the repository verification skill.
- Read package.json and the owning manifest first: root test/build scripts delegate through Wireit, and workspace builds include dependency builds rather than only the named package. — [package.json#L9-L41](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/package.json#L9-L41) [package.json#L139-L151](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/package.json#L139-L151) [docs/contributing.md#L51-L62](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/docs/contributing.md#L51-L62)
- Launch changes should be reviewed across PuppeteerNode, ChromeLauncher, and BrowserLauncher; temporary profiles are cleaned separately from caller-owned Chrome profiles. — [packages/puppeteer-core/src/node/PuppeteerNode.ts#L139-L162](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/PuppeteerNode.ts#L139-L162) [packages/puppeteer-core/src/node/ChromeLauncher.ts#L106-L148](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/ChromeLauncher.ts#L106-L148) [packages/puppeteer-core/src/node/ChromeLauncher.ts#L154-L165](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/ChromeLauncher.ts#L154-L165) [packages/puppeteer-core/src/node/BrowserLauncher.ts#L187-L237](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/BrowserLauncher.ts#L187-L237)
- Public API edits require TSDoc with @public/@internal tags; docs/api Markdown is generated and should not be edited manually, and CI checks regenerated-document differences. — [docs/contributing.md#L193-L209](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/docs/contributing.md#L193-L209) [.github/workflows/ci.yml#L57-L69](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L57-L69)
- Preserve strict TypeScript checks and established formatting: noImplicitOverride/noUncheckedIndexedAccess are enabled; Prettier uses single quotes, no bracket spaces, trailing commas, and unparenthesized single arrow parameters. — [tsconfig.base.json#L13-L29](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tsconfig.base.json#L13-L29) [prettier.config.js#L9-L15](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/prettier.config.js#L9-L15)
- Before future execution, read puppeteer-verification: it prescribes temporary .only markers for focused Chrome/Firefox tests, npm run unit for units, and npm run build; its npm run format recommendation performs automatic mutations. — [.agents/skills/puppeteer-verification/SKILL.md#L8-L19](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.agents/skills/puppeteer-verification/SKILL.md#L8-L19) [package.json#L87-L98](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/package.json#L87-L98)
- Tests and CI in this investigation were only inspected: suite definitions and expected FAIL/SKIP entries must be considered before treating a future runner success as feature coverage. — [test/TestSuites.json#L2-L34](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/TestSuites.json#L2-L34) [test/TestExpectations.json#L1-L42](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/TestExpectations.json#L1-L42) [tools/mocha-runner/README.md#L44-L53](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/README.md#L44-L53)
- Do not assume CDP/BiDi parity: Firefox defaults to BiDi, Chrome defaults to CDP, and URL allowlist/blocklist configuration is explicitly rejected for BiDi. — [docs/webdriver-bidi.md#L11-L18](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/docs/webdriver-bidi.md#L11-L18) [packages/puppeteer-core/src/common/BrowserConnector.ts#L32-L46](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/common/BrowserConnector.ts#L32-L46)
- Installation edits need coordinated review of provider fallback, custom executable metadata, incomplete-install detection, extraction backends, and optional peer dependencies; browser-package tests themselves include a download script. — [packages/browsers/src/install.ts#L186-L198](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/src/install.ts#L186-L198) [packages/browsers/src/install.ts#L455-L478](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/src/install.ts#L455-L478) [packages/browsers/src/fileUtil.ts#L201-L218](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/src/fileUtil.ts#L201-L218) [packages/browsers/package.json#L54-L64](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/package.json#L54-L64) [packages/browsers/package.json#L89-L99](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/package.json#L89-L99)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
