forrtproject.github.io icon indicating copy to clipboard operation
forrtproject.github.io copied to clipboard

Add automated spell-check with codespell on PRs

Open Copilot opened this issue 3 months ago β€’ 96 comments

Implements automated spell-checking on pull requests that comments with potential typos and supports easy whitelisting.

Implementation

Workflow (.github/workflows/spell-check.yaml)

  • Triggers on PR open/sync/reopen
  • Runs codespell via Python script
  • Posts/updates comment with findings

Configuration

  • .codespellrc - Skips themes, translations, PDFs, data files; ignores URLs/HTML comments
  • .codespell-ignore.txt - Whitelist for project terms, names, technical jargon (~60 entries)

Script (scripts/spell_check/check_spelling.py)

  • Scans content/, scripts/, .github/, root docs
  • Parses codespell output into grouped markdown tables
  • Outputs via GITHUB_OUTPUT for Actions integration

Usage

Add legitimate terms to .codespell-ignore.txt:

# Author names
Kathawalla
Gilad

# Technical terms
preregistration
metascience

Currently detects 145 potential issues across the repository (mostly legitimate typos in content files).

Original prompt

This section details on the original issue you should resolve

<issue_title>Add automated spell-check</issue_title> <issue_description>Add a spell-check that comments a list of potential typos on an issue and allows for easy whitelisting (e.g using codespell)</issue_description>

Comments on the Issue (you are @copilot in this section)

  • Fixes forrtproject/forrtproject.github.io#464

πŸ’‘ You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot avatar Oct 27 '25 13:10 Copilot

πŸ“ Spell Check Results

Found 146 potential spelling issue(s) in this PR:

πŸ“„ CONTRIBUTING.md

Line Issue
59 foward ==> forward

πŸ“„ content/OS-developing-world/OS-developing-world.md

Line Issue
73 inclusing ==> including

πŸ“„ content/about/partnerships/partnerships.md

Line Issue
212 AREN’s ==> aren’t
212 advocay ==> advocacy

πŸ“„ content/awop/index.md

Line Issue
5 Priviledge ==> Privilege

πŸ“„ content/coc.md

Line Issue
29 accessibilty ==> accessibility

πŸ“„ content/contributor-analysis/index.Rmd

Line Issue
77 unncessary ==> unnecessary

πŸ“„ content/contributor-analysis/network-graph.Rmd

Line Issue
87 unncessary ==> unnecessary
174 patter ==> pattern

πŸ“„ content/dei/2-intro-text.md

Line Issue
74 calender ==> calendar

πŸ“„ content/educators-corner/005-remote-teaching-platform/index.md

Line Issue
38 commend ==> comment, command

πŸ“„ content/educators-corner/010-Neurodiversity/index.md

Line Issue
59 ons ==> owns

πŸ“„ content/glossary/english/literature_review.md

Line Issue
50 ublication ==> publication
50 Yau ==> You, Yaw

πŸ“„ content/glossary/english/plan_s.md

Line Issue
4 commited ==> committed

πŸ“„ content/glossary/english/pro.md

Line Issue
4 publically ==> publicly

πŸ“„ content/glossary/english/research_protocol.md

Line Issue
4 publically ==> publicly

πŸ“„ content/glossary/english/type_i_error.md

Line Issue
4 occured ==> occurred

πŸ“„ content/glossary/english/zenodo.md

Line Issue
27 wont ==> won't
45 ublication ==> publication
45 Yau ==> You, Yaw

πŸ“„ content/glossary/references/index.md

Line Issue
19 Udo ==> Undo, Sudo, Judo, Ado, Udon, Ufo
238 Soler ==> Solver, Solar, Solely
371 Ans ==> And
411 Ned ==> Need, End, Nod
419 ABl ==> able
429 Homogenous ==> Homogeneous
573 Carmel ==> Caramel
575 ABl ==> able
575 Carmel ==> Caramel
581 ABl ==> able
599 ABl ==> able
599 ABl ==> able
603 ABl ==> able
603 ABl ==> able
607 ABl ==> able
607 ABl ==> able
609 ABl ==> able
609 ABl ==> able
611 ABl ==> able
611 ABl ==> able
634 Initative ==> Initiative, Imitative
713 ABl ==> able
717 ABl ==> able
717 Carmel ==> Caramel
757 ABl ==> able
767 ABl ==> able
791 Carmel ==> Caramel
796 Loder ==> Loader
994 Initative ==> Initiative, Imitative
1024 Yau ==> You, Yaw

πŸ“„ content/glossary/vbeta/plan-s.md

Line Issue
3 commited ==> committed

πŸ“„ content/glossary/vbeta/pro-peer-review-openness-initiative.md

Line Issue
3 publically ==> publicly

πŸ“„ content/glossary/vbeta/references/index.md

Line Issue
19 Udo ==> Undo, Sudo, Judo, Ado, Udon, Ufo
238 Soler ==> Solver, Solar, Solely
371 Ans ==> And
411 Ned ==> Need, End, Nod
419 ABl ==> able
429 Homogenous ==> Homogeneous
573 Carmel ==> Caramel
575 ABl ==> able
575 Carmel ==> Caramel
581 ABl ==> able
599 ABl ==> able
599 ABl ==> able
603 ABl ==> able
603 ABl ==> able
607 ABl ==> able
607 ABl ==> able
609 ABl ==> able
609 ABl ==> able
611 ABl ==> able
611 ABl ==> able
634 Initative ==> Initiative, Imitative
713 ABl ==> able
717 ABl ==> able
717 Carmel ==> Caramel
757 ABl ==> able
767 ABl ==> able
791 Carmel ==> Caramel
796 Loder ==> Loader
994 Initative ==> Initiative, Imitative
1024 Yau ==> You, Yaw

πŸ“„ content/glossary/vbeta/research-protocol.md

Line Issue
3 publically ==> publicly

πŸ“„ content/glossary/vbeta/type-i-error.md

Line Issue
3 occured ==> occurred

πŸ“„ content/lesson-plans/nd-lessons-plans.md

Line Issue
137 tru ==> through, true
143 Furthemore ==> Furthermore

πŸ“„ content/neurodiversity-lessonbank/_index.md

Line Issue
62 ND ==> AND, 2ND
64 ND ==> AND, 2ND

πŸ“„ content/neurodiversity-lessonbank/community-psychology-diversity/index.md

Line Issue
93 ND ==> AND, 2ND
93 ND ==> AND, 2ND
93 ND ==> AND, 2ND

πŸ“„ content/neurodiversity-lessonbank/implicit_bias/index.md

Line Issue
46 ND ==> AND, 2ND
53 ND ==> AND, 2ND
61 ND ==> AND, 2ND

πŸ“„ content/neurodiversity-lessonbank/masterstools/index.md

Line Issue
26 Opression ==> Oppression

πŸ“„ content/neurodiversity/neurodiversity.md

Line Issue
95 homogenous ==> homogeneous
95 homogenous ==> homogeneous
275 ND ==> AND, 2ND

πŸ“„ content/positive-changes-replication-crisis/positive-changes-replication-crisis.md

Line Issue
91 Didactical ==> Didactic
113 Vizualization ==> Visualization, Virtualization
137 Cummulative ==> Cumulative

πŸ“„ content/publications/publications.md

Line Issue
362 ist ==> is, it, its, it's, sit, list
362 sie ==> size, sigh, side

πŸ“„ content/replication-hub/fred_data_curators_role/index.md

Line Issue
68 Autor ==> Author

πŸ“„ content/reversals/reversals.md

Line Issue
177 ist ==> is, it, its, it's, sit, list
412 ist ==> is, it, its, it's, sit, list
420 Sherif ==> Sheriff
420 Sherif ==> Sheriff
420 Sherif ==> Sheriff
420 Sherif ==> Sheriff
511 ist ==> is, it, its, it's, sit, list
963 openess ==> openness
963 speach ==> speech
1530 percieved ==> perceived
1530 percieved ==> perceived
1530 percieved ==> perceived
1530 percieved ==> perceived
1530 percieved ==> perceived
1530 percieved ==> perceived
1862 fomr ==> from, form
2277 ist ==> is, it, its, it's, sit, list
2277 repid ==> rapid
2288 ist ==> is, it, its, it's, sit, list
2288 repid ==> rapid
2288 ist ==> is, it, its, it's, sit, list
2288 repid ==> rapid
2625 ist ==> is, it, its, it's, sit, list
2916 aer ==> are
2917 aer ==> are
2935 Shepperd ==> Shepherd
2937 Shepperd ==> Shepherd
2970 aer ==> are
2979 aer ==> are
3182 aer ==> are
3182 aer ==> are
3233 OT ==> TO, OF, OR, NOT, IT
3380 Loades ==> Loads, Loaded
3382 Loades ==> Loads, Loaded
3513 Buss ==> Bus
3691 Nam ==> Name
3785 ist ==> is, it, its, it's, sit, list
3785 repid ==> rapid
3956 Soler ==> Solver, Solar, Solely
3958 Soler ==> Solver, Solar, Solely

πŸ“„ content/summaries/summaries.py

Line Issue
64 encoutering ==> encountering

ℹ️ How to address these issues:

  1. Fix the typo: If it's a genuine typo, please correct it.
  2. Add to whitelist: If it's a valid word (e.g., a name, technical term), add it to .codespell-ignore.txt
  3. False positive: If this is a false positive, please report it in the PR comments.

πŸ€– This check was performed by codespell

github-actions[bot] avatar Oct 27 '25 13:10 github-actions[bot]

:thumbsup: All image files/references (if any) are in webp format, in line with our policy.

github-actions[bot] avatar Oct 27 '25 13:10 github-actions[bot]

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 27 '25 13:10 LukasWallrich

Once #462 is merged, the latest version of some files will always be in the build-resources branch. That should be pulled into the check, merged in a way that prioritises these files? Otherwise old versions in main will generate false positives

LukasWallrich avatar Oct 27 '25 14:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 27 '25 14:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 27 '25 20:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 28 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 28 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 28 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 28 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 20:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 20:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 21:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 21:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 21:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 21:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 29 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 12:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 16:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 19:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 22:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 23:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 30 '25 23:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 31 '25 16:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 31 '25 17:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 31 '25 17:10 LukasWallrich

βœ… This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org

LukasWallrich avatar Oct 31 '25 18:10 LukasWallrich