Awesome Reviewers checks + prompts

Type checking

Proves call sites and data shapes agree across modules: wrong types, unhandled null or None, signatures broken by a change.

V1006 technique
tactic Static analysis
106 of 256 scanned repositories run it (41%)

Sub-techniques

3

IDNameDescription
V1006.001Gradual typingType-check annotated code first and tighten strictness per module.
V1006.002Strict modeDisallow implicit any, untyped definitions and unchecked optional access.
V1006.003Compiler as checkerIn compiled languages the build is the type check; a failing build is this check failing.

Craft it

  1. Run the checker in non-strict mode on the whole repository to get a baseline.
  2. Turn on strict flags for new and frequently changed modules first.
  3. Run it in CI as its own job so type errors are not hidden in test failures.

Reverse engineer it

Signs that a codebase already runs this technique, and where to read how it is configured.

  • [tool.mypy] or pyrightconfig.json, tsconfig.json with strict flags.
  • A tsc --noEmit, mypy or pyright step in CI or a typecheck script.

Where the scanned repositories configure it:

  • package.json in 80 repositories
  • .github/workflows/*.yml in 74 repositories
  • pyproject.toml in 17 repositories
  • Makefile in 12 repositories
  • .pre-commit-config.yaml in 9 repositories
  • mypy.ini in 4 repositories

Detected by the scanner as: Type checking (wrong types, unhandled null or none, call signatures broken across modules.)

Open-source packages

3

Tools seen in scans

by repositories that run them

ToolReposCommand seenRuns inDocs
tsc 117 tsc --noEmit pre-commit, ci, local docs
mypy 35 mypy pre-commit, ci, local docs
cargo-check 21 cargo check ci, local docs
pyright 16 pyright pre-commit, ci, local docs

Procedure examples

repositories that run it, most-starred first; 40 of 106

RepositoryToolsRuns inEvidence
freeCodeCamp/freeCodeCamp tsc local api/package.json scripts.build
facebook/react cargo-check ci .github/workflows/compiler_rust.yml jobs.rust.steps[6]
nousresearch/hermes-agent tsc local tests-js/package.json scripts.typecheck
microsoft/vscode tsc ci, local .github/workflows/pr.yml jobs.compile.steps[9] (Type check /build/ scripts)
vercel/next.js tsc local package.json scripts.test-types
facebook/react-native tsc ci, local .github/workflows/test-all.yml jobs.lint.steps[7] (TypeScript (legacy deep im...
electron/electron tsc local package.json scripts.tsc
langflow-ai/langflow mypy ci .github/workflows/lint-py.yml jobs.lint.steps[3] (Run Mypy)
angular/angular tsc ci, local .github/workflows/ci.yml jobs.lint.steps[7] (Confirm code builds with typescr...
mui/material-ui tsc local docs/package.json scripts.typescript
ant-design/ant-design tsc local package.json scripts.lint
mermaid-js/mermaid tsc local package.json scripts.build:types:watch
fastapi/fastapi mypy pre-commit, ci .github/workflows/pre-commit.yml jobs.pre-commit.steps[10]
home-assistant/core mypy ci .github/workflows/ci.yaml jobs.mypy.steps[5] (Run mypy (fully))
infiniflow/ragflow tsc local web/package.json scripts.type-check
earendil-works/pi tsc pre-commit, ci, local .github/workflows/build-binaries.yml jobs.publish-npm.steps[7] (Check)
oven-sh/bun cargo-check, tsc ci, local .github/workflows/rust-lints.yml jobs.clippy.steps[3] (cargo check --all-targ...
python/cpython mypy ci .github/workflows/mypy.yml jobs.mypy.steps[4]
microsoft/playwright tsc ci, local .github/workflows/infra.yml jobs.doc-and-lint.steps[5]
pallets/flask mypy ci, local .github/workflows/tests.yaml jobs.typing.steps[4]
unionlabs/union tsc local docs/package.json scripts.typecheck
vitejs/vite tsc ci, local .github/workflows/ci.yml jobs.lint.steps[5] (Typecheck)
nestjs/nest tsc local package.json scripts.build
browser-use/browser-use pyright pre-commit, ci .github/workflows/lint.yml jobs.lint-style.steps[4]
grafana/grafana tsc pre-commit, ci, local .github/workflows/frontend-lint.yml jobs.lint-frontend-typecheck.steps[3]
lobehub/lobe-chat tsc local package.json scripts.type-check:tsc
google-gemini/gemini-cli tsc ci, local .github/workflows/ci.yml jobs.lint.steps[13] (Run typecheck)
nuxt/nuxt tsc local package.json scripts.test
warpdotdev/warp cargo-check ci .github/workflows/ci.yml jobs.check-eval-compilation.steps[2] (Verify compila...
remix-run/react-router tsc local integration/package.json scripts.typecheck
aaif-goose/goose cargo-check, tsc ci, local .github/workflows/ci.yml jobs.rust-check-wasm.steps[3] (Check wasm32 build)
prettier/prettier tsc ci, local .github/workflows/lint.yml jobs.lint.steps[4] (Check JSDoc Types)
vuejs/core tsc ci, local .github/workflows/test.yml jobs.lint-and-test-dts.steps[5] (Run tsc)
tanstack/query tsc ci, local .github/workflows/autofix.yml jobs.autofix.steps[2] (Generate reference docs)
cypress-io/cypress tsc local cli/package.json scripts.check-ts
mastodon/mastodon tsc ci, local .github/workflows/lint-js.yml jobs.lint.steps[3] (Typecheck)
ruvnet/ruflo cargo-check, tsc ci, local .github/workflows/federation-peer-rust.yml jobs.stable-native.steps[3] (cargo...
discourse/discourse tsc ci, local .github/workflows/publish-types.yml jobs.publish.steps[6] (Generate type defi...
getsentry/sentry mypy, tsc ci, local .github/workflows/backend.yml jobs.typing.steps[4]
apache/airflow tsc local ts-sdk/package.json scripts.typecheck