Spelling
Finds misspellings in identifiers, comments and documentation, where a typo becomes a public API or a search miss.
Sub-techniques
2
| ID | Name | Description |
|---|---|---|
V1003.001 | Identifier typo detection | Split camelCase and snake_case identifiers and flag known misspellings. |
V1003.002 | Prose spell check | Dictionary check over docs and comments with a project word list. |
Craft it
- Start with a low false-positive tool (typos or codespell) on the whole tree.
- Add an allow-list file for domain words instead of disabling the check.
- Run it in pre-commit and in CI with autofix locally.
Reverse engineer it
Signs that a codebase already runs this technique, and where to read how it is configured.
- _typos.toml, .codespellrc or cspell.json in the repository.
- A codespell or typos hook in .pre-commit-config.yaml.
Where the scanned repositories configure it:
.github/workflows/*.ymlin 15 repositories.pre-commit-config.yamlin 11 repositoriespyproject.tomlin 10 repositories.codespellrcin 5 repositoriesMakefilein 3 repositoriestox.iniin 1 repositories
Detected by the scanner as: Spelling (typos in identifiers, comments and docs.)
Procedure examples
repositories that run it, most-starred first
| Repository | Tools | Runs in | Evidence |
|---|---|---|---|
| TheAlgorithms/Python | codespell |
pre-commit, ci | .pre-commit-config.yaml ci (pre-commit.ci) |
| langflow-ai/langflow | codespell |
local | Makefile target codespell (line 194) |
| home-assistant/core | codespell |
pre-commit | .pre-commit-config.yaml hooks.codespell |
| pallets/flask | codespell |
pre-commit, ci, local | .github/workflows/pre-commit.yaml jobs.main.steps[4] |
| browser-use/browser-use | codespell |
pre-commit, ci | .github/workflows/lint.yml jobs.lint-style.steps[4] |
| apache/airflow | codespell |
pre-commit | .pre-commit-config.yaml hooks.codespell |
| gofiber/fiber | codespell |
ci | .github/workflows/spell-check.yml jobs.cspell.steps[4] (Run codespell) |
| Aider-AI/aider | codespell |
pre-commit, ci | .github/workflows/pre-commit.yml jobs.pre-commit.steps[4] (Run pre-commit hooks) |
| openai/codex | codespell |
ci | .github/workflows/codespell.yml jobs.codespell.steps[2] (Codespell) |
| celery/celery | codespell |
pre-commit, ci | .github/workflows/linter.yml jobs.linter.steps[1] (Run pre-commit) |
| pydantic/pydantic | codespell |
pre-commit, ci, local | .github/workflows/ci.yml jobs.lint.steps[3] |
| jj-vcs/jj | codespell |
ci | .github/workflows/ci.yml jobs.check-codespell.steps[3] (Run Codespell) |
| sgl-project/sglang | codespell |
pre-commit, ci | .github/workflows/lint.yml jobs.lint.steps[6] (Run pre-commit checks) |
| oraios/serena | codespell |
ci | .github/workflows/codespell.yml jobs.codespell.steps[2] (Codespell) |
| langfuse/langfuse | codespell |
ci | .github/workflows/codespell.yml jobs.codespell.steps[1] (Codespell) |
| bytedance/trae-agent | codespell |
pre-commit, ci, local | .github/workflows/pre-commit.yml jobs.pre-commit.steps[4] (Run pre-commit hooks) |
| bytedance/sonic | codespell |
ci | .github/workflows/lint.yml jobs.misc.steps[1] (spell check) |
| LMCache/LMCache | codespell |
pre-commit, ci | .github/workflows/code_quality_checks.yml jobs.pre-commit.steps[4] (Run code ... |
| open-telemetry/opentelemetry-python | codespell |
ci, local | .github/workflows/misc.yml jobs.spellcheck.steps[3] (Run tests) |