nodejs/node

15 years of accumulated convention discipline, enforced today only by editorial review and 'a missing test silently fails to fire'.

Narrative
Catches conventions your pipeline assumes but doesn't verify
Rules
86
Last revalidated
Engineering reference
README on GitHub · .alint.yml

Why this matters

nodejs/node is the canonical mature C++/JS hybrid mega-repo — 15 years of accumulated convention discipline, with structural validation scattered across the broadest surface alint has linted in any case study: a 1,700-line Makefile, 25 GitHub Actions workflows, 27 in-tree custom eslint rules, 7 per-tier eslint partials, a vendored Google cpplint fork, a remark-lint pipeline, ruff, yamllint, lint-md, lint-pr-url, lint-readme-lists, lint-sh, find-inactive-collaborators — and an unwritten test/parallel/test-*.{js,mjs,cjs} discovery filename grammar enforced statically by exactly nothing.

This is the canonical “conventions without checks” repo. The discipline is real; the enforcement is institutional knowledge.

Headline catch

The two most alint-shaped surfaces in node’s 15-year-old structural-validation surface are enforced statically by nothing.

  1. test/parallel/test-*.{js,mjs,cjs} discovery grammar. tools/test.py globs for test-*.{js,mjs,cjs} to discover regression tests. A misnamed file (tst-foo.js, text-foo.js, Test-Foo.js) silently drops out of the test run. The only feedback today is a missing test failing to fire when an intentionally-broken regression test goes silent. alint encodes the grammar as a 6-line filename_regex rule.

  2. doc/changelogs/CHANGELOG_V<MAJOR>.md per-major-version convention. 27 changelog files at clone time. Editorial review of the release-prep PR catches typos today; a hand-edited CHANGELOG_v27.md (lowercase) or CHANGELOG_V27 (no extension) could merge accidentally without alint’s filename_regex rule.

Maturity is the hard test. node has every conceivable convention pinned somewhere — and alint expresses the 43% that’s structural cleanly without overstepping.

Where alint earns its keep here

Future story angles

The factual engineering writeup (tooling inventory, mapping table, gap catalogue, validation status footer) lives in the public alint repo at github.com/asamarts/alint/tree/main/examples/nodejs-node/README.md.