CodeVetter · Repo Unpack · Contributor handoff
angular/angular
Begin with repository conventions and the BUILD.bazel nearest the requested change, then trace the affected subsystem across its interfaces. Favor package-local edits and preserve public API, stability, platform, and message-protocol contracts. Tests and CI were inspected, not executed; future execution requires authorization compatible with the active task. This inventory and investigation are bounded, so recheck current source rather than assuming exhaustive coverage.
- Read AGENTS.md and the linked build, coding, and commit documentation first; the repository specifies pnpm and pnpm bazel test //target.
- New tests should follow the repository's zoneless Act, Wait, Assert convention with fixture.whenStable(), avoiding manual fixture.detectChanges(); useAutoTick and timeout are the documented timing helpers.
- Preserve formatting rules including a 100-column width, two-space indentation, single quotes, no bracket spacing, and trailing commas; HTML uses the Angular parser outside test paths.
- Respect public API boundaries: main and documented testing entrypoints are supported, while underscore/ɵ/ɵɵ members, compiler-generated contents, and core/primitives are excluded; public changes require golden review.
- For HTTP changes, read client.ts, provider.ts, backend.ts, fetch.ts, and xsrf.ts together; the smallest declared HTTP suites are pnpm bazel test //packages/common/http/test:test and //packages/common/http/test:test_web.
- For adev content or route changes, inspect routes.ts, navigation.utils.ts, ContentLoader, DocsComponent, and DocViewer; route smoke tests validate path shape and component loading but do not prove complete prerender success.
- For DevTools settings format changes, retain chronological migrations in applyMigrations; V1-to-V2 renames profiling and active-tab keys before writing the latest version back through ApplicationOperations.
- For startup or SSR changes, preserve asynchronous initializer ordering, PendingTasks cleanup, and the requirement for a server BootstrapContext; renderApplication waits for stability and always destroys its platform.
- Tests and CI were inspected, not executed. The documented future checks are separated across framework, integration, DevTools, adev, VS Code, and Zone.js jobs; their source declarations provide no evidence that this checkout passes.
- The build entrypoint performs snapshot builds and package-builder removes and copies generated directories; do not invoke pnpm build as an exploratory read-only check.
- Local downstream testing has documented traps: disable the Angular CLI disk cache when using locally built packages and invoke the CLI with preserve-symlinks flags so linked package resolution remains correct.
- Preserve workspace dependency behavior: pnpm disables hoisting and automatic peer installation to align its node_modules layout and dependency placeholders with Bazel rules_js.