Skip to content

Add codespell support: expand config, fix typos - #787

Closed
yarikoptic wants to merge 7 commits into
oasis-tcs:mainfrom
yarikoptic:enh-codespell
Closed

Add codespell support: expand config, fix typos#787
yarikoptic wants to merge 7 commits into
oasis-tcs:mainfrom
yarikoptic:enh-codespell

Conversation

@yarikoptic

Copy link
Copy Markdown

Introduces automated spell-checking with codespell and fixes the typos it found.

The rudimentary config and CI workflow already on main are extended here with skip patterns for frozen/generated deliverables, a URL-preserving regex, a small whitelist of domain terms, and then all remaining hits are fixed. Repository history includes ~48 prior commits mentioning "typo"/"spell", so an automated check should pay for itself quickly.

CI workflow's permissions remains contents: read — safe to enable.

I have introduced codespell to over a hundred of projects already, mostly with positive feedback.

Summary

  • Config (.codespellrc): skip frozen v2.1 deliverables (sarif-2.1/prose/*.htm,*.json), generated v2.2 draft (sarif-2.2/prose/share/*), binary formats, and local .git-meta/; ignore URLs via regex; whitelist pres, synopsys, ned.
  • Ambiguous typos fixed manually (6 fixes) — multi-candidate typos requiring context review.
  • Non-ambiguous typos fixed via codespell -w (41 unique typos across 29 files) — recorded as a [DATALAD RUNCMD] commit for reproducibility.
  • Formatting fixup: realigned one column in minutes-template.txt after InvidualIndividual widened it.
  • Inline pragma: <!-- codespell:ignore nd --> on the line containing 2<sup>nd</sup> in the normative references, so a future genuine nd typo would still be caught elsewhere.

Codespell now passes with zero errors.

Details

Files not touched (excluded via skip)

Path Why
sarif-2.1/prose/*.htm, *.json, *.docx, *.pdf, *.zip Frozen v2.1 committee specification deliverables (already published; not editable).
sarif-2.2/prose/share/* Generated from sarif-2.2/prose/edit/src/*.md — fixes belong upstream in edit/src.
*.pdf, *.docx, *.zip, *.css Binary formats / vendor styles.
.git-meta Local scratch dir for commit / PR drafts (git-excluded).

Whitelist (ignore-words-list)

Word Reason
pres Variable name in sarif-2.2/prose/edit/bin/toccata.py, short for "present" (contrasts with past).
synopsys Company name referenced in acknowledgements.md. Also appears in citation URLs (which are covered by the URL regex).
ned Ned Freed — IETF person, author of RFC 2045/2048, cited in normative references.

Ambiguous typos fixed manually

Location Typo Chosen Rationale
meeting_minutes/220526_SARIF_TC_59.md:106 throught through "Michael leads through the reports"
meeting_minutes/230119_SARIF_TC_72.md:113 fot for "design recommendations for the TC"
meeting_minutes/240111_SARIF_TC_83.md:130 disuss discuss "All discuss the suggested name change"
meeting_minutes/250410_SARIF_TC_98.md:179 thorugh through "Walks all through the change set of 685"
meeting_minutes/240711_SARIF_TC_89.md:120 Nome None Empty section for "Review outcomes of subgroup discussions" (codespell suggested Gnome, wrong here).
meeting_minutes/260507_SARIF_TC_108:123 throught through "walked all through the precision PR"

Non-ambiguous typos (single suggestion, applied via codespell -w)

Assitant → Assistant, Invidual → Individual, Malcom → Malcolm (David Malcolm, actual name), Mircosoft → Microsoft, Uniocde → Unicode, Vulnerabiliy → Vulnerability, Whats → What's, acount → account, activies → activities, additioanl → additional, advertized → advertised, aplication → application, candiate → candidate, cannnot → cannot, capabilties → capabilities, colateral → collateral, committe → committee, coresponding → corresponding, dependant → dependent, desing → design, enabe → enable, enforcable → enforceable, essentailly → essentially, gerenated → generated, isue → issue, larg → large, mebers → members, mechanismn → mechanism, minumum → minimum, occurences → occurrences, paralle → parallel, prefered → preferred, re-used → reused, sematically → semantically, specifc → specific, suppresions → suppressions, swithcing → switching, traveral → traversal, unanimuous → unanimous, vie → via, withough → without.

Notable fixes in editable source (not just meeting minutes)

  • sarif-2.2/prose/edit/src/converters.md: sematicallysemantically
  • sarif-2.2/prose/edit/src/file-format-17-runautomationdetails-object.md: withoughwithout
  • sarif-2.2/prose/edit/src/file-format-19-toolcomponent-object.md: minumumminimum
  • sarif-2.2/prose/edit/src/file-format-27-result-object.md: enabeenable
  • sarif-2.2/prose/edit/bin/toccata.py: gerenatedgenerated (comment)
  • sarif-2.2/prose/README.md: corespondingcorresponding (2x)
  • Future.md: preferedpreferred
  • CONTRIBUTING.md: re-usedreused

Test plan

  • codespell passes with zero errors on the branch tip
  • CI codespell workflow passes on the PR

🤖 Generated with Claude Code and love to typo-free code

yarikoptic and others added 7 commits July 20, 2026 17:19
Skip:
- Frozen v2.1 committee specification deliverables
  (sarif-2.1/prose/*.htm, *.json, *.docx, *.pdf, *.zip)
- Generated v2.2 draft deliverables in sarif-2.2/prose/share/
  (regenerated from sarif-2.2/prose/edit/src)
- Binary formats (*.pdf, *.docx, *.zip) and *.css

Ignore-regex: URLs (link targets must stay verbatim; e.g. avoids
"fixing" `synopsys.com` in citation URLs).

Ignore-words-list:
- pres: variable name in toccata.py, short for "present"
- synopsys: company name referenced in acknowledgements
- ned: Ned Freed - IETF person referenced in normative references

Co-Authored-By: Claude Code 2.1.215 / Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Typos with multiple candidate corrections that codespell -w won't
touch; resolved by reading surrounding context in meeting minutes:

- throught -> through (220526_SARIF_TC_59.md:106,
  260507_SARIF_TC_108:123) - "leads through the reports",
  "walked all through the precision PR"
- fot -> for (230119_SARIF_TC_72.md:113) -
  "design recommendations for the TC"
- disuss -> discuss (240111_SARIF_TC_83.md:130) -
  "All discuss the suggested name change"
- thorugh -> through (250410_SARIF_TC_98.md:179) -
  "Walks all through the change set of 685"
- Nome -> None (240711_SARIF_TC_89.md:120) - empty section for
  "Review outcomes of subgroup discussions" (codespell suggested
  "Gnome", which is wrong here)

Also protect `<sup>nd</sup>` (as in "2nd Edition") in the normative
references with an inline `<!-- codespell:ignore nd -->` pragma so a
future genuine `nd` typo would still be caught elsewhere.

Co-Authored-By: Claude Code 2.1.215 / Claude Opus 4.7 (1M context) <noreply@anthropic.com>
.git-meta/ is a local scratch dir (git-excluded, not committed) that
holds transient commit/PR message drafts.  Codespell picks it up on
local runs and reports "typos" in the commit-message drafts.
Suppress that noise.

Co-Authored-By: Claude Code 2.1.215 / Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Single-suggestion typos across meeting minutes, source markdown, and
a helper script. Fixed:

- Assitant -> Assistant
- Invidual -> Individual
- Malcom -> Malcolm (David Malcolm - actual name)
- Mircosoft -> Microsoft
- Uniocde -> Unicode
- Vulnerabiliy -> Vulnerability
- Whats -> What's
- acount -> account
- activies -> activities
- additioanl -> additional
- advertized -> advertised
- aplication -> application
- candiate -> candidate
- cannnot -> cannot
- capabilties -> capabilities
- colateral -> collateral
- committe -> committee
- coresponding -> corresponding
- dependant -> dependent
- desing -> design
- enabe -> enable
- enforcable -> enforceable
- essentailly -> essentially
- gerenated -> generated
- isue -> issue
- larg -> large
- mebers -> members
- mechanismn -> mechanism
- minumum -> minimum
- occurences -> occurrences
- paralle -> parallel
- prefered -> preferred
- re-used -> reused
- sematically -> semantically
- specifc -> specific
- suppresions -> suppressions
- swithcing -> switching
- traveral -> traversal
- unanimuous -> unanimous
- vie -> via
- withough -> without

Co-Authored-By: Claude Code 2.1.215 / Claude Opus 4.7 (1M context) <noreply@anthropic.com>

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "uvx codespell -w",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^
Fixing "Invidual" -> "Individual" widened that field by two chars,
pushing the trailing "- Attendee" column two spaces to the right of
the other attendee rows. Restore the original column alignment.

Co-Authored-By: Claude Code 2.1.215 / Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sthagen

sthagen commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Closing without action. Reasoning: The PR looks like spam, we rejected such spellcheck "attacks" before, and the PR has no useful scope.

@sthagen sthagen closed this Aug 7, 2026
@yarikoptic

Copy link
Copy Markdown
Author

if you consider carrying out typos useful, then indeed attempt to fix them could be considered SPAM. I wonder what other contributions would fall under the same umbrella?

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.

2 participants