CodeVetter · Repo Unpack · Contributor handoff
eslint/eslint
Begin with the actual implementation and nearby tests, then use architecture documentation to preserve ownership boundaries. Tests and CI were inspected, not executed; this brief provides no passing checks or exhaustive coverage assessment. Rule changes couple source, tests, documentation, and generated metadata. Pay particular attention to virtual filenames, executable configuration, cache side effects, suppression counters, and worker option transport.
- Read AGENTS.md, package.json, architecture documentation, and the affected implementation/test first; keep synchronous verification and rules free of asynchronous work, filesystem access, and console output.
- Do not treat AGENTS.md's ownership shorthand as a substitute for source: bin/eslint.js sets process.exitCode and spawns tools, while lib/cli.js itself writes reports and orchestrates suppression files.
- For a rule change, maintain its source/test/docs trio, register new rules alphabetically, use messageId and metadata schemas, and place reusable AST helpers at module scope.
- Rule edits trigger tooling for all/recommended configurations and rule type headers; rule-doc edits trigger example checks and further-reading data regeneration. Avoid hand-editing these derived outputs.
- When test execution is authorized, start with the affected file through npm run test:cli, then choose relevant lint, rule-example, type, or browser checks; full npm test adds coverage, fuzzing, consistency, and license checks.
- Verification expectations here come from inspected definitions, not executed results: c8 thresholds are configured, and the browser suite selects the Linter test file rather than the entire Node suite.
- Concurrency edits must preserve cloneability/options-module transport, atomic file assignment, ordered indexed results, worker-error cancellation, and cache updates in the controlling thread.
- GitHub issues, PRs, and comments require AI disclosure using the actual producing model; AGENTS.md also limits AI-generated PR consideration to accepted issues and expects human responses to maintainer feedback.