CodeVetter · Repo Unpack · Contributor handoff
parcel-bundler/parcel
Start from the relevant product boundary and follow its requests before changing shared graph or cache machinery. Repository scripts, package ownership, Flow annotations, generated declarations, and native prerequisites shape implementation work. Tests and CI were inspected, not executed, and the inventory and investigation are bounded rather than exhaustive. Future agents should preserve that distinction and obtain runtime evidence only when execution is authorized.
- For lifecycle or CLI work, read cli.js, Parcel.js, and resolveOptions.js first; CONTRIBUTING explicitly points newcomers to Parcel.js, and CLI option defaults are translated before the core instance is constructed.
- Use the repository's Yarn 4.9.1/node-modules setup and existing scripts; source/lib manifest pairs and build-ts scripts distinguish editable sources from built packages and generated TypeScript declarations.
- Follow Flow-oriented source conventions, @parcel/eslint-config, and Prettier's single quotes, omitted bracket spacing, LF endings, and trailing commas; Lerna uses independent package versions, and CONTRIBUTING says not to modify package versioning.
- Graph changes require reading symbol propagation and bundler architecture alongside implementation: docs explain down/up symbol passes and per-target ideal graphs, while BundleGraph.fromAssetGraph retargets dependencies based on symbol data.
- Preserve worker ownership and serialized watch scheduling: Parcel ends a farm it creates but only disposes references for a supplied farm; the corresponding tests assert both behaviors and shared-reference cleanup.
- During authorized plugin development, CONTRIBUTING recommends --no-cache or shouldDisableCache to avoid stale local results; compatibility loading separately checks engines.parcel unless SKIP_PLUGIN_COMPATIBILITY_CHECK is set.
- Tests and CI were inspected, not executed. Once execution is authorized, choose the relevant Mocha suite first, then the existing test:unit or integration workspace scripts as appropriate; CI requires native builds and includes lint, Flow, and declaration checks.
- Treat build and utility execution as potentially mutating: configurable cache/watch/output paths cross filesystem boundaries, CLI autoinstall can spawn package installation, and create-parcel performs Git initialization and an initial commit.