From 1879b4fb4d5020e10fdf855854eaee500118c449 Mon Sep 17 00:00:00 2001 From: Vijit Singh Date: Thu, 18 Jun 2026 02:18:51 -0500 Subject: [PATCH] ci: spell-check site copy with codespell (closes #14) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Public-facing marketing copy had no spell check — a typo ships silently. - .codespellrc: scan the repo (skipping build output, node_modules, binaries, and the generated data/releases.json). - .codespell-ignore: project dictionary for crypto/Monero/Tari jargon (monerod, pplns, p2pool, tari, xvb, onion, stratum, xmrig, …). - ci.yml: new "spell" job runs codespell (pinned 2.4.2 via pipx). - CONTRIBUTING: document running it locally and where to allow-list terms. Optional Vale prose-lint from the issue is deferred — codespell covers the spelling acceptance; Vale can land later as a non-blocking follow-up. Verified locally: codespell clean over the whole repo; prettier/markdownlint clean; zizmor clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- .codespell-ignore | 11 +++++++++++ .codespellrc | 5 +++++ .github/workflows/ci.yml | 12 ++++++++++++ CONTRIBUTING.md | 4 ++++ 4 files changed, 32 insertions(+) create mode 100644 .codespell-ignore create mode 100644 .codespellrc diff --git a/.codespell-ignore b/.codespell-ignore new file mode 100644 index 0000000..bcea1f3 --- /dev/null +++ b/.codespell-ignore @@ -0,0 +1,11 @@ +monerod +pplns +p2pool +tari +xvb +onion +pithead +rigforge +stratum +tor +xmrig diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..32b8006 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,5 @@ +[codespell] +# Spell-check public-facing copy and docs. https://github.com/codespell-project/codespell +# Crypto/Monero/Tari jargon (XMR, monerod, PPLNS, Tari, …) lives in .codespell-ignore. +skip = .git,node_modules,public,resources,package-lock.json,data/releases.json,*.svg,*.png,*.ico,*.woff,*.woff2 +ignore-words = .codespell-ignore diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e96840..59c9add 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,3 +72,15 @@ jobs: run: npm run format:check - name: markdownlint run: npm run lint:md + + spell: + name: Spell check (codespell) + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false # zizmor: artipacked + # pipx is preinstalled on ubuntu runners. Config + dictionary: .codespellrc / .codespell-ignore. + - name: Run codespell + run: pipx run codespell==2.4.2 . diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7ddd5f5..5a36347 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,6 +35,10 @@ not in the templates. See the [README](README.md#where-the-content-lives) for th 4. Update the README or other docs for any user-facing change. +CI also runs Prettier + markdownlint (`npm run lint`) and a spell check. Run the spell check +locally with `pipx run codespell .` — domain jargon (XMR, monerod, PPLNS, Tari, …) is allow-listed +in [`.codespell-ignore`](.codespell-ignore); add new terms there if a real word is flagged. + ## Secret scanning CI runs [gitleaks](https://github.com/gitleaks/gitleaks) over the full history on every push and PR,