verify / python
Verifying Python changes
Files: .py, .pyi.
Run the checks under every change, add the checks for what your diff touches, then
apply the review prompts for what the tools miss. Usage is measured across
64 scanned repositories that write Python; prompts come from
707 review discussions.
Run on every change
the tool most Python repositories run for each check
-
Formatting Layout drift that buries the real change in the diff.
ruff-format50% · 32 of 64 repos autofixruff format .exit codes, docs, alternatives, where it runs
- Exit codes
0already formatted1files would be reformatted (--check)2error - Commands seen
ruff format .ruff format --check .ruff format - Runs inpre-commit, ci, local
- Alternatives
black14%,isort12% - Seen inTheAlgorithms/Python, langgenius/dify, langflow-ai/langflow, fastapi/fastapi, home-assistant/core, infiniflow/ragflow
- Docshttps://docs.astral.sh/ruff/formatter/#exit-codes
- Exit codes
-
Linting Bug-prone patterns, unused code and conventions the formatter does not cover.
ruff-check72% · 46 of 64 repos autofixruff check .exit codes, docs, alternatives, where it runs
- Exit codes
0no violations1violations found2invalid configuration, CLI options or internal error - Commands seen
ruff check .ruff checkruff check . --fix - Runs inpre-commit, ci, local
- Alternatives
flake820%,pylint12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langgenius/dify, langflow-ai/langflow, pytorch/pytorch, fastapi/fastapi
- Docshttps://docs.astral.sh/ruff/linter/#exit-codes
- Exit codes
-
Type checking Wrong types, unhandled null or None, call signatures broken across modules.
mypy42% · 27 of 64 reposmypyexit codes, docs, alternatives, where it runs
- Exit codes
0no type errors1type errors found2crash or invalid invocation - Commands seen
mypymypy --versionmypy --cache-dir=/dev/null --config-file pyproject.toml .' - Runs inpre-commit, ci, local
- Alternatives
pyright17% - Seen inlangflow-ai/langflow, pytorch/pytorch, fastapi/fastapi, home-assistant/core, python/cpython, pallets/flask
- Docshttps://mypy.readthedocs.io/en/stable/command_line.html
- Exit codes
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
Review prompts for every change 111 in total
Add when the change touches
open the ones that describe your diff
Authentication, input handling, secrets, permissions
-
Security scanning Injection, unsafe APIs and tainted data reaching a sink.
codeql28% · 18 of 64 reposruns via GitHub Action github/codeql-action/analyze
exit codes, docs, alternatives, where it runs
- Runs inci
- Alternatives
bandit9%,semgrep8% - Seen inlangflow-ai/langflow, home-assistant/core, getsentry/sentry, apache/airflow, crewaiinc/crewai, openai/openai-python
- Docshttps://github.com/github/codeql
-
Secret scanning Credentials and tokens committed to the repository.
gitleaks2% · 1 of 64 reposruns via pre-commit hook gitleaks
exit codes, docs, alternatives, where it runs
- Runs inpre-commit, ci
- Seen inawslabs/mcp
- Docshttps://github.com/gitleaks/gitleaks
-
Dependency audit Known-vulnerable or disallowed dependencies and licenses.
dependency-review8% · 5 of 64 reposruns via GitHub Action actions/dependency-review-action
exit codes, docs, alternatives, where it runs
- Runs inci
- Alternatives
pip-audit3% - Seen inhome-assistant/core, mvanhorn/last30days-skill, apache/airflow, awslabs/mcp, strands-agents/sdk-python
- Docshttps://github.com/actions/dependency-review-action
Public APIs, signatures, error paths, nullability
-
Type checking Wrong types, unhandled null or None, call signatures broken across modules.
mypy42% · 27 of 64 reposmypyexit codes, docs, alternatives, where it runs
- Exit codes
0no type errors1type errors found2crash or invalid invocation - Commands seen
mypymypy --versionmypy --cache-dir=/dev/null --config-file pyproject.toml .' - Runs inpre-commit, ci, local
- Alternatives
pyright17% - Seen inlangflow-ai/langflow, pytorch/pytorch, fastapi/fastapi, home-assistant/core, python/cpython, pallets/flask
- Docshttps://mypy.readthedocs.io/en/stable/command_line.html
- Exit codes
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
-
Property-based tests Edge-case inputs nobody wrote a test for; invariants over generated data.
hypothesis14% · 9 of 64 reposexit codes, docs, alternatives, where it runs
162 more in API, Error Handling, Null Handling — the playbook lists the top 12.
Service and framework code
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
-
Version and platform matrix Breakage on a runtime version, OS or feature combination you did not run locally.
ci-matrix56% · 36 of 64 reposanalyze (include: 2)exit codes, docs, alternatives, where it runs
- Commands seen
analyze (include: 2)analyze (include: 3)analyze (language: 1) - Runs inci
- Seen inlanggenius/dify, langflow-ai/langflow, comfyanonymous/ComfyUI, python/cpython, microsoft/markitdown, pallets/flask
- Docshttps://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
- Commands seen
1 more in Fastify, NestJS, Spring, Axum, Celery, Temporal — the playbook lists the top 6.
Algorithms, parsers, data transforms
-
Property-based tests Edge-case inputs nobody wrote a test for; invariants over generated data.
hypothesis14% · 9 of 64 reposexit codes, docs, alternatives, where it runs
-
Fuzzing Crashes, panics and hangs on malformed input, especially in parsers and decoders.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
-
Mutation testing Tests that keep passing whatever the code does.
mutmut2% · 1 of 64 reposmutmut run 2>&1exit codes, docs, alternatives, where it runs
- Runs inci
- Seen inBerriAI/litellm
- Docshttps://github.com/boxed/mutmut
-
Proofs and specifications Design-level bugs in protocols and algorithms, checked against a specification.
lean2% · 1 of 64 reposexit codes, docs, alternatives, where it runs
- Seen inoraios/serena
- Docshttps://github.com/leanprover/lean4
42 more in Algorithms — the playbook lists the top 12.
Threads, async code, locks, shared state
-
Concurrency model checking Races and orderings that fail only under specific interleavings.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
-
Undefined-behaviour detection Memory-safety and aliasing violations in unsafe code.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
-
Property-based tests Edge-case inputs nobody wrote a test for; invariants over generated data.
hypothesis14% · 9 of 64 reposexit codes, docs, alternatives, where it runs
25 more in Concurrency — the playbook lists the top 12.
Network calls, retries, timeouts, protocols
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
-
Fuzzing Crashes, panics and hangs on malformed input, especially in parsers and decoders.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
5 more in Networking, Axios — the playbook lists the top 10.
UI components and pages
-
End-to-end browser tests User flows broken across components, routing and the network.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
-
Linting Bug-prone patterns, unused code and conventions the formatter does not cover.
ruff-check72% · 46 of 64 repos autofixruff check .exit codes, docs, alternatives, where it runs
- Exit codes
0no violations1violations found2invalid configuration, CLI options or internal error - Commands seen
ruff check .ruff checkruff check . --fix - Runs inpre-commit, ci, local
- Alternatives
flake820%,pylint12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langgenius/dify, langflow-ai/langflow, pytorch/pytorch, fastapi/fastapi
- Docshttps://docs.astral.sh/ruff/linter/#exit-codes
- Exit codes
Databases, migrations, caching
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
-
Version and platform matrix Breakage on a runtime version, OS or feature combination you did not run locally.
ci-matrix56% · 36 of 64 reposanalyze (include: 2)exit codes, docs, alternatives, where it runs
- Commands seen
analyze (include: 2)analyze (include: 3)analyze (language: 1) - Runs inci
- Seen inlanggenius/dify, langflow-ai/langflow, comfyanonymous/ComfyUI, python/cpython, microsoft/markitdown, pallets/flask
- Docshttps://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
- Commands seen
29 more in Database, Migrations, Caching — the playbook lists the top 12.
Hot paths and performance
No tool-based check applies. The review prompts below are the verification.
31 more in Performance Optimization — the playbook lists the top 12.
Model, prompt and LLM code
-
Unit and integration tests Behaviour regressions on the paths the tests exercise.
pytest86% · 55 of 64 repospytestexit codes, docs, alternatives, where it runs
- Exit codes
0all tests passed1some tests failed2interrupted by the user3internal error4command line usage error5no tests were collected - Commands seen
pytestpytest -qpytest -v - Runs inpre-commit, ci, local
- Alternatives
unittest12% - Seen innousresearch/hermes-agent, TheAlgorithms/Python, langchain-ai/langchain, langgenius/dify, langflow-ai/langflow, pytorch/pytorch
- Docshttps://docs.pytest.org/en/stable/reference/exit-codes.html
- Exit codes
Logging, metrics, tracing
No tool-based check applies. The review prompts below are the verification.
21 more in Logging, Observability — the playbook lists the top 12.
CI workflows and configuration files
-
CI workflow linting Broken GitHub Actions syntax, script injection, over-broad token permissions.
No scanned repository in this language runs a tool for this. Lean on the review prompts.
-
File hygiene Invalid JSON, YAML or TOML, merge markers, trailing whitespace, oversized files.
pre-commit-hooks39% · 25 of 64 repos autofixruns via pre-commit hook end-of-file-fixer
exit codes, docs, alternatives, where it runs
- Commands seen
pre-commit hook end-of-file-fixerpre-commit hook check-yamlpre-commit hook check-merge-conflict - Runs inpre-commit, ci, local
- Seen inTheAlgorithms/Python, langchain-ai/langchain, langflow-ai/langflow, fastapi/fastapi, home-assistant/core, python/cpython
- Docshttps://github.com/pre-commit/pre-commit-hooks
- Commands seen
63 more in CI/CD, Configurations — the playbook lists the top 12.
Dependencies and lockfiles
-
Dependency audit Known-vulnerable or disallowed dependencies and licenses.
dependency-review8% · 5 of 64 reposruns via GitHub Action actions/dependency-review-action
exit codes, docs, alternatives, where it runs
- Runs inci
- Alternatives
pip-audit3% - Seen inhome-assistant/core, mvanhorn/last30days-skill, apache/airflow, awslabs/mcp, strands-agents/sdk-python
- Docshttps://github.com/actions/dependency-review-action
-
Lockfile consistency A lockfile that no longer matches its manifest.
uv-lock20% · 13 of 64 repos autofixuv lock --checkexit codes, docs, alternatives, where it runs
- Commands seen
uv lock --checkuv lock --check --project clipre-commit hook uv-lock - Runs inpre-commit, ci, local
- Seen inTheAlgorithms/Python, langgenius/dify, pallets/flask, apache/airflow, crewaiinc/crewai, openai/openai-python
- Docshttps://github.com/astral-sh/uv
- Commands seen
-
Version and platform matrix Breakage on a runtime version, OS or feature combination you did not run locally.
ci-matrix56% · 36 of 64 reposanalyze (include: 2)exit codes, docs, alternatives, where it runs
- Commands seen
analyze (include: 2)analyze (include: 3)analyze (language: 1) - Runs inci
- Seen inlanggenius/dify, langflow-ai/langflow, comfyanonymous/ComfyUI, python/cpython, microsoft/markitdown, pallets/flask
- Docshttps://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
- Commands seen
The tests themselves
-
Mutation testing Tests that keep passing whatever the code does.
mutmut2% · 1 of 64 reposmutmut run 2>&1exit codes, docs, alternatives, where it runs
- Runs inci
- Seen inBerriAI/litellm
- Docshttps://github.com/boxed/mutmut
-
Version and platform matrix Breakage on a runtime version, OS or feature combination you did not run locally.
ci-matrix56% · 36 of 64 reposanalyze (include: 2)exit codes, docs, alternatives, where it runs
- Commands seen
analyze (include: 2)analyze (include: 3)analyze (language: 1) - Runs inci
- Seen inlanggenius/dify, langflow-ai/langflow, comfyanonymous/ComfyUI, python/cpython, microsoft/markitdown, pallets/flask
- Docshttps://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
- Commands seen
Documentation and comments
-
Docs build Broken cross-references, links and markup in documentation.
sphinx12% · 8 of 64 repossphinx-build -j2 -b configcheck -d {envtmpdir}/doctrees docs docs/_build/configcheckexit codes, docs, alternatives, where it runs
- Commands seen
sphinx-build -E -W -b dirhtml docs docs/_build/dirhtmlsphinx-build -E -a -W -b html -T . _build/htmlsphinx-build -b gettext docs/source docs/build/gettext - Runs inci, local
- Alternatives
mkdocs6% - Seen inTheAlgorithms/Python, pallets/flask, apache/airflow, celery/celery, oraios/serena, strands-agents/sdk-python
- Docshttps://github.com/sphinx-doc/sphinx
- Commands seen
-
Spelling Typos in identifiers, comments and docs.
codespell25% · 16 of 64 reposcodespell --toml pyproject.toml --writeexit codes, docs, alternatives, where it runs
- Commands seen
codespellcodespell --toml pyproject.tomlcodespell --toml pyproject.toml --write - Runs inpre-commit, ci, local
- Seen inTheAlgorithms/Python, langflow-ai/langflow, pytorch/pytorch, home-assistant/core, pallets/flask, browser-use/browser-use
- Docshttps://github.com/codespell-project/codespell
- Commands seen
27 more in Documentation — the playbook lists the top 12.
Where this comes from
64 scanned repositories with at least a fifth of their prompts in Python
nousresearch/hermes-agent10 · TheAlgorithms/Python7 · tensorflow/tensorflow1 · langchain-ai/langchain4 · langgenius/dify15 · langflow-ai/langflow14 · pytorch/pytorch8 · fastapi/fastapi7 · django/django6 · comfyanonymous/ComfyUI4 · home-assistant/core12 · infiniflow/ragflow7 · python/cpython9 · microsoft/markitdown3 · pallets/flask11 · TauricResearch/TradingAgents3 · browser-use/browser-use6 · commaai/openpilot2 · mvanhorn/last30days-skill6 · karpathy/nanochat1 · vllm-project/vllm10 · calesthio/OpenMontage2 · getsentry/sentry13 · apache/airflow20 · docker/compose2 · Aider-AI/aider6 · pola-rs/polars13 · crewaiinc/crewai9 · python-poetry/poetry6 · openai/openai-python6 · celery/celery11 · PostHog/posthog22 · BerriAI/litellm24 · stanfordnlp/dspy5 · pydantic/pydantic14 · apache/mxnet1 · eosphoros-ai/DB-GPT10 · agent0ai/agent-zero1 · sgl-project/sglang14 · SWE-agent/SWE-agent6 · bytedance/deer-flow10 · oraios/serena7 · semgrep/semgrep10 · the-pr-agent/pr-agent7 · emcie-co/parlant9 · Unstructured-IO/unstructured9 · prowler-cloud/prowler21 · huggingface/tokenizers6 · awslabs/mcp12 · boto/boto36 · openai/codex-security15 · bytedance/trae-agent6 · openai/skills0 · bridgecrewio/checkov8 · p-e-w/heretic4 · Azure/azure-cli2 · strands-agents/sdk-python16 · LMCache/LMCache13 · anthropics/anthropic-sdk-python4 · awslabs/agentcore-samples13 · smallcloudai/refact5 · anthropics/claude-agent-sdk-python5 · salesforce/cloudsplaining7 · open-telemetry/opentelemetry-python9