-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Is your feature request related to a problem?
It is frustrating when typos, misspellings, or small grammatical slips sneak through code reviews and end up in user-facing strings, documentation, or comments.
Manually checking these errors and writing suggestions is very time-consuming, so reviewers have less time for the actual code review. Therefore, often no attention is paid to text quality at all.
Describe the desired solution
Please add a text-quality.yml
(or similar) reusable workflow (and companion docs) that can be dropped into any consuming repo with uses: inpsyde/reusable-workflows/.github/workflows/text-quality.yml@main
.
Suggested features:
- Fast typo scan – run Typos (https://github.com/crate-ci/typos) over the entire tree on every PR.
- AST-aware spell-check – run CSpell (https://github.com/streetsidesoftware/cspell-action) on source files to catch mistakes in identifiers, string literals, and comments while recognising domain-specific names.
- Optional grammar/style pass – expose a
RUN_GRAMMAR_JOB
boolean input that, when true, launches a second job with LanguageTool via https://github.com/reviewdog/action-languagetool (Markdown & TXT only). - Outputs – surface annotations inline on PRs and fail the job on errors so the calling repo can decide whether to block merges (continue-on-error default false).
Describe the alternatives that you have considered
Describe the alternatives that you have considered
- Vale – powerful but heavier to configure; requires organisation-wide style guides.
- Codespell – simple, but its opinionated dictionary causes more false positives in WordPress/PHP projects than Typos.
- check-spelling – great learning mode, yet adds per-repo maintenance overhead and slower first-run times.
Additional context
Below is a minimal outline that could live inside text-quality.yml
; inputs and caching are omitted for brevity (untested!):
name: text-quality
on:
workflow_call:
inputs:
RUN_GRAMMAR_JOB:
description: "Run LanguageTool grammar job"
required: false
default: false
jobs:
spelling:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos-action@v1
with:
files: "**"
write_changes: false
- uses: streetsidesoftware/cspell-action@v7
with:
files: "**/*.{php,js,ts,tsx,md}"
config: .github/cspell.json
grammar:
if: ${{ inputs.RUN_GRAMMAR_JOB == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: reviewdog/action-languagetool@v1
with:
reporter: github-pr-check
patterns: "**/*.{md,txt}"
language: en-US
Code of Conduct
- I agree to follow this project's Code of Conduct