# Contributor handoff — microsoft/playwright

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

# Contributor handoff — microsoft/playwright

Scanned commit b630e71fcda7885885c459bcbb88e5bfa7c0a1ac (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Start with the owning package and follow the relevant client/protocol/server or runner/worker boundary. Preserve generated-source ownership, dependency rules, and platform-specific behavior. Tests and CI were inspected, not executed, and this inventory is bounded rather than exhaustive. The commands below are future validation pointers; the current read-only investigation did not run them.
- Read package.json, CONTRIBUTING.md, CLAUDE.md, and the owning package manifest first: browser API work belongs primarily in playwright-core, runner work in playwright, with Node.js >=20 and npm workspaces. — [package.json#L11-12](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L11-L12) [package.json#L54-56](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L54-L56) [CONTRIBUTING.md#L18-40](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CONTRIBUTING.md#L18-L40) [CLAUDE.md#L3-9](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CLAUDE.md#L3-L9)
- Preserve client/server import separation and inspect DEPS.list before moving code; actual client dependency declarations allow shared protocol/isomorphic utilities rather than server implementations. — [CLAUDE.md#L86-91](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CLAUDE.md#L86-L91) [packages/playwright-core/src/client/DEPS.list#L1-9](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/DEPS.list#L1-L9) [packages/playwright-core/src/server/DEPS.list#L1-19](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/DEPS.list#L1-L19)
- Edit API documentation and protocol schemas as source inputs rather than treating generated types/channels/validators as independent implementations; generator checks may write files. — [CONTRIBUTING.md#L38-53](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CONTRIBUTING.md#L38-L53) [packages/protocol/spec/browserType.yml#L24-41](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/protocol/spec/browserType.yml#L24-L41) [utils/generate_channels.js#L469-488](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/utils/generate_channels.js#L469-L488)
- Place page interaction tests with pageTest fixtures, browser/context lifecycle tests with browserTest, runner tests with playwright-test fixtures, and agent-tool tests with MCP fixtures. — [CLAUDE.md#L75-84](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CLAUDE.md#L75-L84) [tests/page/locator-click.spec.ts#L18-24](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/tests/page/locator-click.spec.ts#L18-L24) [tests/library/browsercontext-storage-state.spec.ts#L18-25](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/tests/library/browsercontext-storage-state.spec.ts#L18-L25)
- For later authorized validation, use filtered ctest for Chromium browser behavior, ttest for runner changes, and ctest-mcp for agent tools; broaden to other affected engines after the focused check. Tests and CI in this report were inspected, not executed. — [package.json#L19-34](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L19-L34) [CLAUDE.md#L66-73](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CLAUDE.md#L66-L73) [.github/actions/run-test/action.yml#L57-73](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/.github/actions/run-test/action.yml#L57-L73)
- Use root build/lint scripts when execution is authorized, but do not assume a watcher is running; tsconfig uses strict checking and excludes generated lib directories, extension code, and tool skills from its package compilation scope. — [package.json#L35-45](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L35-L45) [CLAUDE.md#L36-53](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CLAUDE.md#L36-L53) [tsconfig.json#L27-47](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/tsconfig.json#L27-L47)
- Treat storage edits as coordinated client, dispatcher, server, and injected-script changes; preserve optional collection flags, initial/API/reuse branches, intercepted navigation, and page/interceptor cleanup. — [packages/playwright-core/src/client/browserContext.ts#L471-483](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/browserContext.ts#L471-L483) [packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L336-341](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L336-L341) [packages/playwright-core/src/server/browserContext.ts#L670-727](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserContext.ts#L670-L727) [packages/injected/src/storageScript.ts#L173-193](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/injected/src/storageScript.ts#L173-L193)
- Keep tests hermetic and cross-platform, inspect fixme/skip and CI trigger conditions before describing coverage, and follow the documented linked-issue/approval policy before submitting upstream contributions. — [CONTRIBUTING.md#L5-16](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CONTRIBUTING.md#L5-L16) [CONTRIBUTING.md#L57-79](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/CONTRIBUTING.md#L57-L79) [tests/library/browsercontext-storage-state.spec.ts#L119-120](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/tests/library/browsercontext-storage-state.spec.ts#L119-L120) [.github/workflows/tests_primary.yml#L8-20](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/.github/workflows/tests_primary.yml#L8-L20)

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)
