eslint/eslint

Measured from a full clone on 2026-08-30, three years of authorship history. Every number here comes from npx ancient-code . and can be reproduced with it.

How many people understand each part?

2 of 25 modules depend on one person

risk

Is there a safety net for changes?

tests run in CI and live in a central test directory; tying them to individual modules would need a coverage run

ok

How much scaffolding did nobody remove?

43 in source, 399 in tests (kept, not work), 6 untouched for 3+ years, 304 external issues to check

watch

Does it build from scratch?

1 gap that makes the build less reproducible (no lockfile)

watch

Is the documentation real?

2 day-one questions are unanswered: how to restore a backup; where the secrets live and how to rotate them

watch

Who holds the keys?

answered by a person, not by a scanner

not measured
25modules read
2with knowledge concentrated
43fences in source
399in tests, where a closed issue means keep
8.2years, the oldest

Where knowledge is concentrated

Read from who changed what, not from a staffing plan. Contributors are labelled, not named: this is about how knowledge is spread, never about a person.

ModuleChangesPeopleReading
packages/js 97 14 risk

one person made 63% of the changes

lib/mcp 2 1 risk

one person has ever touched it

Scaffolding nobody removed

Code written because of an external problem, oldest first, from the source only. A comment in a test that links to an issue is usually the regression test for that bug, so a closed issue there is a reason to keep the test, not to remove it. This project has 399 of those and they are not listed here.

UntouchedWhereRecorded reason
6.3 yr bin/eslint.js:29

Note: See - https://github.com/nodejs/node/blob/master/doc/api/process.md#processstdin - https://github.com/nodejs/node/blob/master/doc/api/

github:nodejs/node#7439
5.0 yr lib/linter/linter.js:68

eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 * @te

github:jsdoc-type-pratt-parser/jsdoc-type-pratt-parser#4
5.0 yr lib/linter/linter.js:73

eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577

github:jsdoc-type-pratt-parser/jsdoc-type-pratt-parser#4
4.3 yr docs/src/assets/js/focus-visible.js:276

It is important to wrap all references to global window and document in these checks to support server-side rendering use cases @see https:/

github:WICG/focus-visible#199
1.8 yr lib/shared/text-table.js:5

This modification addresses a performance issue reported in https://github.com/eslint/eslint/issues/18709

github:eslint/eslint#18709
1.4 yr Makefile.js:775

Check if id is present in title @param {string} id id to check for @returns {boolean} true if present @private @todo Will remove this check

unmarked
1.4 yr webpack.config.js:35

We want to remove `transform-unicode-regex` convert because of https://github.com/eslint/eslint/pull/12662.

github:eslint/eslint#12662
1.4 yr lib/shared/runtime-info.js:174

Indicate intent for imports, remove ambiguity for Knip (see: https://github.com/eslint/eslint/pull/18005#discussion_r1484422616)

github:eslint/eslint#18005
1.4 yr lib/rules/comma-dangle.js:288

Extend the range of the fix to include surrounding tokens to ensure that the element after which the comma is removed stays _last_. This int

github:eslint/eslint#15660
1.4 yr lib/rules/comma-dangle.js:350

Extend the range of the fix to include surrounding tokens to ensure that the element after which the comma is inserted stays _last_. This in

github:eslint/eslint#15660
1.4 yr lib/rules/func-call-spacing.js:176

Only autofix if there is no newline https://github.com/eslint/eslint/issues/7787

github:eslint/eslint#7787
1.4 yr lib/rules/func-call-spacing.js:216

Only autofix if there is no newline https://github.com/eslint/eslint/issues/7787 But if `?.` exists, it doesn't hide no-unexpected-multiline

github:eslint/eslint#7787

The same report, on your own repository

npx ancient-code .

Everything on this page came out of that one command, run against a full clone. It is free and open source, it needs no account, and your code never leaves your machine.

How to run it Ancient Code on GitHub This repository