Catch unsupported AI/science/benchmark claims before they hit your README.
python -m claimlint README.md --suggestREADME.md:2:11: [unsupported] 'proves new physics' — claims to prove new science/math
sugg: say 'proposes' or 'suggests' and state what verification is required
README.md:3:25: [overclaim] '100% accurate' — absolute-correctness claim
sugg: give measured numbers and state limitations
README.md:4:6: [needs_data] 'saves 90% compute' — quantitative claim without data
sugg: label 'early internal prototype result; requires independent validation' + link the benchmark
It flags three categories — unsupported (proves new physics / proven / solves open problems), overclaim (world's-first, guaranteed, 100% accurate, production-validated, replaces peer review), needs_data (X% savings / Nx faster without data) — and suggests safer wording. Disclaimers ("does not prove…") are not flagged. Code fences are skipped.
# .github/workflows/claimlint.yml
name: ClaimLint
on: [pull_request]
jobs:
claimlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kyal102/claimlint@v0.1.0
with:
files: "README.md docs/**/*.md"
fail_on: "unsupported,overclaim"The findings render as a job summary on every PR (screenshot-worthy), and the build fails on the categories you choose.
python -m claimlint --demo
python -m claimlint README.md --suggest
python -m claimlint README.md --comment # markdown table (PR-comment style)
python -m claimlint README.md docs/*.md --json
python -m claimlint README.md --fail-on unsupported,overclaimClaimLint flags wording, not truth. It is a heuristic linter, not a verifier; it does not judge whether a claim is actually true.
See docs/EXAMPLES.md · docs/LIMITATIONS.md. No dependencies (pure stdlib).
Part of the public ClaimGate verification-tool ecosystem: ClaimGate · ClaimLint · UnitGate · EvidencePack · ReplayGate · ClaimStack Demo. Public lite tools; the full private engine remains private.
