Skip to content

ci: catch typos with cspell, and fix the five it found - #8404

Merged
alexander-akait merged 1 commit into
mainfrom
docs/spellcheck-ci
Sep 13, 2026
Merged

alexander-akait merged 1 commit into
mainfrom
docs/spellcheck-ci

Conversation

@alexander-akait

Copy link
Copy Markdown
Member

Summary

Nothing on this site checks spelling. lint:prose runs vale with proselint and Speciesism, and neither has a dictionary, so a misspelling is only ever caught by a reader who reports it. That is why refrence has been sitting in the TypeScript guide since at least June: #8259 fixes exactly that word and has been blocked on an EasyCLA email mismatch through three requests. This adds the check webpack/webpack already runs, with a word list seeded from the site's own vocabulary, wired into lint and into the lint CI job. Refs #8259, Closes #8259 if you prefer to take it this way.

What it found, all five fixed here:

word where
refrence guides/typescript.mdx — the #8259 word
Concatinating configuration/extending-configurations.mdx, in a heading
nummber api/stats.mdx
testLolcalStorage src/utilities/test-local-storage.js
scollbar cypress/support/commands.js

Three misspellings are deliberate and stay: cosnole in the development guide (it is the error the source-map section teaches you to read), prefx in the loader options example (it is the validation error being demonstrated), and Occurence, because webpack 1 really did ship OccurenceOrderPlugin under that spelling. Each gets a cspell:ignore in its own file rather than a dictionary entry, so the same word anywhere else is still an error.

Two notes for review:

  • Fixing the Concatinating heading changes its anchor to #concatenating-rules-and-plugins. Nothing in the repo links to the old one — the only hit is generated _content.json — but an external link to the misspelled anchor would break. Happy to drop that hunk if you would rather keep the URL.
  • awesome-webpack.mdx is in ignorePaths. It is a directory of third-party project and maintainer names and contributed 160 of the 311 unknown words on its own; checking it would mean a word list of mostly people's names. Contributor frontmatter is skipped by regex for the same reason.

The run is clean: 368 files, 0 issues. Searching turned up no doubled words anywhere in src/content, and no other misspellings. It did turn up British spellings in current docs (behaviour, customise, recognise, analysable, neighbour) which I left alone and added to the word list — they are a style choice rather than typos, two of them sit in headings with live anchors, and several more are inside quoted CLI output or blog posts. Worth a separate pass if you want the site standardised on American English.

What kind of change does this PR introduce?

ci

Did you add tests for your changes?

No test files — the check itself is the test, and it runs in the lint job on every pull request.

Does this PR introduce a breaking change?

No, with the anchor caveat noted above.

If relevant, what needs to be documented once your changes are merged or what have you already documented?

n/a — contributors adding a genuinely new word add it to cspell.json, or use a file-local cspell:ignore when it is local to one page.

Use of AI

AI was used. Claude Code ran cspell across the repository, triaged every unknown word by hand against its surrounding context to separate real typos from vocabulary, deliberate misspellings and third-party names, and wrote the configuration and fixes; I reviewed the word list and the fixes before pushing.


Generated by Claude Code

The site had no spellchecker: vale runs proselint and Speciesism, neither of
which checks spelling, so a misspelling only ever got caught by a reader. That
is why refrence sat in the TypeScript guide for months while the PR fixing it
waited on a CLA.

Adds cspell with a word list covering the site's vocabulary, wires it into the
lint script and the lint CI job, and fixes what it found: refrence, a
Concatinating heading, nummber, testLolcalStorage and scollbar. The deliberate
misspellings that teach something -- cosnole in the development guide, prefx in
the loader options example, and webpack 1's real OccurenceOrderPlugin -- get a
file-local cspell:ignore instead of a dictionary entry, so the same word
elsewhere is still an error.
@vercel

vercel Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webpack-js-org Ready Ready Preview Sep 13, 2026 4:56pm UTC

Request Review

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcspell@​10.3.19810010096100

View full report

@alexander-akait
alexander-akait merged commit 0ba16ba into main Sep 13, 2026
12 checks passed
@alexander-akait
alexander-akait deleted the docs/spellcheck-ci branch September 13, 2026 17:01

This branch was successfully deployed

1 active deployment
Preview — 7f65d846 Deployed Sep 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant