CodeVetter · Repo Unpack · Contributor handoff
babel/babel
Begin changes in the owning package and follow its public API into implementation and fixture runners. The repository expects built lib artifacts for many tests, and its configuration deliberately separates source builds from test compilation. Tests and CI were inspected, not executed; any future checks require execution authorization and must produce their own outcomes. This brief is bounded, and historical comments or documentation should be checked against current manifests and workflows.
- Read package.json, the affected package manifest, CONTRIBUTING.md, and local AGENTS.md first; the latter documents specific disclosure and wording requirements for LLM-generated PR descriptions.
- Use the pinned Yarn version and package engine ranges: core and CLI require Node ^22.18.0 or >=24.11.0, which is more precise than CONTRIBUTING.md's broad minimum.
- Keep implementation edits in owning src files and account for built lib artifacts: parser and CLI runners consume compiled code, and root tsconfig.json declares itself generator-produced.
- Before changing transform semantics, read config/full.ts and transformation/index.ts together: reversed preset expansion, explicit-plugin priority, merged visitors, and lifecycle hooks determine execution order.
- When execution is authorized, begin with a narrow package Jest selector such as yarn jest babel-cli; repository test/lint targets and CI were inspected here, not executed or reported as passing.
- Regression fixtures distinguish input/output snapshots, expected errors, and preferred semantic exec.js assertions; OVERWRITE=true deliberately rewrites fixtures and should be used with reviewed expectations.
- Preserve isolation from the monorepo build config: babel.config.ts rejects ordinary test loading, and ESLint's parser disables babelrc, root config, and browserslist config discovery.
- Check behavior flags against current CI rather than copying historical examples: CONTRIBUTING.md still documents BABEL_8_BREAKING, while CI has BABEL_9_BREAKING variants; formatting uses two spaces, double quotes, and source/test trailing-comma overrides.