What’s new here
memelint checks source-code prose against ASD-STE100, a controlled-language standard. It reports violations by rule number: STE 1.1 flags an unapproved word, STE 4.2 flags a contraction, STE 6.3 flags a sentence over 25 words. A project-level allowlist in memelint.toml covers domain terms not in the STE dictionary.
What it does
memelint parses source files with tree-sitter grammars and extracts comments, docstrings, and documentation text. It then checks that text against the ASD-STE100 Issue 9 vocabulary and rules. Six rules are currently checked:
- 1.1 unapproved word, with approved alternatives
- 1.2 approved word used in the wrong part of speech
- 1.6 word not in the dictionary and not in your word list
- 3.5
-ingform of an approved verb - 4.2 contraction
- 6.3 sentence longer than 25 words
memelint check --fix rewrites contractions automatically. --unsafe-fixes also swaps unapproved words for their STE-approved alternatives; you review the diff before committing.
Rust, Python, JavaScript, TypeScript, Go, C, Java, Nix, TOML, and Markdown grammars are compiled in. Additional tree-sitter .so grammar files (the same files Neovim uses) can be loaded from a directory. The Nix package includes each grammar that nixpkgs has. Markdown is off until [languages.markdown] has check = true.
Who it’s for
Teams that want rule-based enforcement of Simplified Technical English in their codebase’s prose. Useful when your comments, docstrings, or documentation need to follow ASD-STE100 rules, and you want violations caught in CI or locally before merge. Also helpful for projects that maintain per-project terminology lists and want unknown words flagged.
Try it
Prebuilt binaries for Linux and macOS (x86_64 and aarch64) are in the v0.0.6 release. The installer script covers both:
curl -fsSL https://memelint.sh | sh
memelint checkWith Nix flakes, no installation is needed:
nix run github:antimemes/memelint -- checkFor CI, add a workflow file at .github/workflows/memelint.yml:
name: memelint
on:
push:
branches: [main]
pull_request:
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: antimemes/memelint@latestGitHub Actions findings appear as pull request annotations. Project-specific terms go in memelint.toml at the repo root:
words = ["gantry", "sprocket"]How mature is it
Created 2026-10-13, so under a week old at the time of writing. Six releases in four days (latest v0.0.6, 2026-10-17). 37 commits in the last 90 days. One contributor. 9 stars, 0 forks. The README states the license is MIT or Apache-2.0, at your option; GitHub reports Apache-2.0. Active but very early.