# Code maintenance OP-20508 - Support spell-checking of code and docs, fixing existing  typos

Project: OpenProject
Status: merged
URL: https://community.openproject.org/work_packages/OP-20508

## OPEN POINTS

_No work packages_

## Subtasks

_No work packages_

## Details

| Attribute | Value |
| --- | --- |
| Assignee | OP L2 Support |
| Accountable |  |
| Designer |  |
| Developers | Alexander Coles |
| Requires doc change | No |
| Date |  |
| Priority | Medium |
| Target versions | 18.0.0 |
| Sprint |  |
| Backlog bucket |  |
| Module |  |
| Accessibility | No |
| List |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| Work |  |
| Remaining work |  |

## Description

### Context

The codebase has accumulated spelling mistakes in comments, docs, spec descriptions, English locale strings and some identifiers. A few hide real bugs, e.g. a misspelt keyword argument or a misspelt Stimulus target declaration. There is no spellchecker, so new typos keep landing.

### Goal

- Add a [`typos`](https://github.com/crate-ci/typos) configuration (`typos.toml`) so `typos` can be run locally against the repo.
- Fix existing typos where the change cannot affect behaviour: comments, documentation, release notes, spec descriptions, local variables, private methods and English locale values (keys unchanged).
- Allow-list everything else in `typos.toml`: public methods, constants, i18n keys, database columns, CSS classes, file names, test data and non-English strings. Each entry has a short reason.
- `typos` reports no findings on the branch.

### Out-of-scope

- A CI step (e.g. `reviewdog/action-typos`) and a pre-commit hook. These come later.
- Renaming public identifiers, i18n keys, database columns or files. These are follow-up work packages.
- Fixing the behaviour bugs found along the way. Each gets its own bug work package.

### Hints for QA

- **Email reply to a locked forum topic:** no change expected (see the separate bug).
- **Changed English UI strings:** spot-check the ones touched in `en.yml`/`js-en.yml`, e.g. the virus-scanning quarantine messages, the LDAP TLS certificate help text, the accessibility mode hint, and the two-factor "contact your administrator" error. Wording should be identical apart from the spelling fix.
- **Work package table:** hierarchy drag and drop and scroll sync have local renames only; behaviour should be unchanged.
