AI Slop Code RIsk Monitor

jazzband/pip-tools

A set of tools to keep your pinned Python dependencies fresh.

20.2 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for jazzband/pip-tools, a Python project with 8,007 GitHub stars. SynthScan examined 21,311 lines of code across 119 source files, recording 466 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 20.2 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

20.2
Adjusted Signal
20.2
Raw Pattern Score
100%
Time Factor
2026-10-07
Last Push
8.0K
Stars
Python
Language
21.3K
Lines of Code
119
Files
466
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 53.7/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 361 finding(s).

Hallucinated Dependency & Supply Chain Risk 19.9/100 · LOW

Are imports declared and package/API names verified? 96 finding(s).

Agent Over-Engineering Ratio 47.9/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 329 finding(s).

PR Review Velocity Impact 68.5/100 · HIGH

Which changes need focused human review? 466 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 0MEDIUM 13LOW 453

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 466 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers320 hits · 269 pts
SeverityFileLineSnippetContext
LOWpiptools/sync.py167def _direct_url_has_archive_hash(direct_url: DirectUrl) -> bool:CODE
LOWpiptools/build.py55def maybe_statically_parse_project_metadata(CODE
LOWpiptools/build.py189def _temporary_constraints_file_set_for_pip(CODE
LOWpiptools/build.py261def _build_project_wheel_metadata(CODE
LOWpiptools/build.py303def _prepare_build_requirements(CODE
LOWpiptools/utils.py121def _build_direct_reference_best_efforts(ireq: InstallRequirement) -> str:CODE
LOWpiptools/utils.py406def get_required_pip_specification() -> SpecifierSet:CODE
LOWpiptools/utils.py420def get_sys_path_for_python_executable(python_executable: str) -> list[str]:CODE
LOWpiptools/utils.py447def override_defaults_from_config_file(CODE
LOWpiptools/utils.py480def _assign_config_to_cli_context(CODE
LOWpiptools/utils.py624def _normalize_keys_in_config(config: dict[str, _t.Any]) -> dict[str, _t.Any]:CODE
LOWpiptools/utils.py628def _invert_negative_bool_options_in_config(CODE
LOWpiptools/resolver.py78def combine_install_requirements(CODE
LOWpiptools/resolver.py171 def _filter_out_unsafe_constraints(STRING
LOWpiptools/resolver.py716 def _get_install_requirements(STRING
LOWpiptools/resolver.py753 def _get_reverse_dependencies(CODE
LOWpiptools/resolver.py778 def _get_install_requirement_from_candidate(CODE
LOWpiptools/_internal/_pip_api/command_methods.py23def make_requirement_preparer_from_command(CODE
LOWpiptools/_internal/_pip_api/install_requirements.py14def create_install_requirement(CODE
LOWpiptools/_internal/_pip_api/install_requirements.py37def create_install_requirement_from_line(CODE
LOWpiptools/_internal/_pip_api/package_finder.py21def get_pip_request_failed_exception_types() -> tuple[type[Exception], ...]:CODE
LOWpiptools/_internal/_pip_api/package_finder.py46def finder_allows_prereleases_of_req(CODE
LOWpiptools/_internal/_pip_api/package_finder.py63def finder_allows_all_prereleases(finder: PackageFinder) -> bool:CODE
LOWpiptools/_internal/_pip_api/pip_version.py16def get_pip_version_for_python_executable(python_executable: str) -> Version:CODE
LOWpiptools/repositories/local.py20def ireq_satisfied_by_existing_pin(CODE
LOWpiptools/repositories/pypi.py492def open_local_or_remote_file(link: Link, session: Session) -> Iterator[FileStream]:CODE
LOWpiptools/repositories/pypi.py534def _get_true_base_from_index_url(url: str) -> str:CODE
LOWpiptools/scripts/sync.py174def _validate_python_executable(python_executable: str) -> None:CODE
LOWpiptools/scripts/sync.py260def _get_installed_distributions(CODE
LOWpiptools/scripts/_deprecations.py9def filter_deprecated_pip_args(args: list[str]) -> list[str]:CODE
LOWpiptools/_compat/pip_compat.py133def _rewrite_comes_from_to_hardcoded_stdin_value(_: str, /) -> str:CODE
LOWpiptools/_compat/pip_compat.py138def _relativize_comes_from_location(original_comes_from: str, /) -> str:CODE
LOWpiptools/_compat/pip_compat.py170def _normalize_comes_from_location(original_comes_from: str, /) -> str:CODE
LOWtests/test_circular_imports.py44def _discover_path_importables(pkg_pth: Path, pkg_name: str) -> Iterator[str]:CODE
LOWtests/test_circular_imports.py66def _allowed_deprecation_warning_filters() -> list[str]:CODE
LOWtests/test_repository_local.py11def test_get_hashes_local_repository_cache_miss(CODE
LOWtests/test_repository_local.py24def test_get_hashes_local_repository_cache_hit(from_line, repository):CODE
LOWtests/test_repository_local.py43def test_toggle_reuse_hashes_local_repository(CODE
LOW⚡tests/test_utils.py139def test_format_requirement_url(from_line, line, expected):CODE
LOW⚡tests/test_utils.py144def test_format_requirement_editable_vcs(from_editable):CODE
LOW⚡tests/test_utils.py149def test_format_requirement_editable_vcs_with_password(from_editable):CODE
LOW⚡tests/test_utils.py156def test_format_requirement_editable_local_path(from_editable):CODE
LOW⚡tests/test_utils.py161def test_format_requirement_ireq_with_hashes(from_line):CODE
LOW⚡tests/test_utils.py272def test_is_pinned_requirement(from_line, line, expected):CODE
LOW⚡tests/test_utils.py277def test_is_pinned_requirement_editable(from_editable):CODE
LOW⚡tests/test_utils.py282def test_key_from_ireq_normalization(from_line):CODE
LOW⚡tests/test_utils.py786def test_select_config_file_no_files(tmp_path_cwd):CODE
LOW⚡tests/test_utils.py791def test_select_config_file_returns_config_in_cwd(make_config_file, filename):CODE
LOW⚡tests/test_utils.py796def test_select_config_file_returns_empty_config_file_in_cwd(tmp_path_cwd):CODE
LOW⚡tests/test_utils.py803def test_select_config_file_cannot_find_config_in_cwd(tmp_path_cwd, make_config_file):CODE
LOW⚡tests/test_utils.py808def test_select_config_file_with_config_file_in_subdir(tmp_path_cwd, make_config_file):CODE
LOW⚡tests/test_utils.py817def test_select_config_file_prefers_pip_tools_toml_over_pyproject_toml(tmp_path_cwd):CODE
LOWtests/test_utils.py178def test_format_requirement_ireq_with_hashes_and_markers(from_line):CODE
LOWtests/test_utils.py243def test_get_hashes_from_ireq(from_line):CODE
LOWtests/test_utils.py298def test_key_from_req_on_install_requirement(CODE
LOWtests/test_utils.py318def test_key_from_req_on_specifier_requirement(CODE
LOWtests/test_utils.py346def test_is_url_requirement_filename(caplog, from_line, line):CODE
LOWtests/test_utils.py455def test_get_compile_command_with_config(tmp_path_cwd, config_file, expected_command):CODE
LOWtests/test_utils.py463def test_get_compile_command_no_index_not_added_by_default(tmp_path_cwd: Path) -> None:CODE
LOWtests/test_utils.py482def test_get_compile_command_does_not_include_default_config_if_reqs_file_in_subdir(CODE
260 more matches not shown…
Unused Imports96 hits · 94 pts
SeverityFileLineSnippetContext
LOWpiptools/sync.py1CODE
LOWpiptools/build.py1CODE
LOWpiptools/logging.py1CODE
LOWpiptools/cache.py1CODE
LOWpiptools/__init__.py1CODE
LOWpiptools/utils.py1CODE
LOWpiptools/resolver.py1CODE
LOWpiptools/exceptions.py1CODE
LOWpiptools/writer.py1CODE
LOWpiptools/__main__.py1CODE
LOWpiptools/locations.py1CODE
LOWpiptools/_internal/_subprocess.py3CODE
LOWpiptools/_internal/_environment_variables.py1CODE
LOWpiptools/_internal/_pip_api/command_methods.py9CODE
LOWpiptools/_internal/_pip_api/__init__.py6CODE
LOWpiptools/_internal/_pip_api/__init__.py8CODE
LOWpiptools/_internal/_pip_api/__init__.py9CODE
LOWpiptools/_internal/_pip_api/__init__.py10CODE
LOWpiptools/_internal/_pip_api/__init__.py10CODE
LOWpiptools/_internal/_pip_api/__init__.py10CODE
LOWpiptools/_internal/_pip_api/__init__.py15CODE
LOWpiptools/_internal/_pip_api/__init__.py15CODE
LOWpiptools/_internal/_pip_api/__init__.py15CODE
LOWpiptools/_internal/_pip_api/__init__.py20CODE
LOWpiptools/_internal/_pip_api/__init__.py20CODE
LOWpiptools/_internal/_pip_api/__init__.py20CODE
LOWpiptools/_internal/_pip_api/__init__.py20CODE
LOWpiptools/_internal/_pip_api/cli_options.py5CODE
LOWpiptools/_internal/_pip_api/install_requirements.py1CODE
LOWpiptools/_internal/_pip_api/package_finder.py8CODE
LOWpiptools/_internal/_pip_api/pip_version.py1CODE
LOWpiptools/repositories/local.py1CODE
LOWpiptools/repositories/__init__.py1CODE
LOWpiptools/repositories/__init__.py3CODE
LOWpiptools/repositories/__init__.py4CODE
LOWpiptools/repositories/pypi.py1CODE
LOWpiptools/repositories/base.py1CODE
LOWpiptools/scripts/sync.py1CODE
LOWpiptools/scripts/options.py1CODE
LOWpiptools/scripts/_deprecations.py3CODE
LOWpiptools/scripts/compile.py1CODE
LOWpiptools/_compat/_click_compat.py5CODE
LOWpiptools/_compat/path_compat.py6CODE
LOWpiptools/_compat/_tomllib_compat.py1CODE
LOWpiptools/_compat/_tomllib_compat.py6CODE
LOWpiptools/_compat/_tomllib_compat.py6CODE
LOWpiptools/_compat/_tomllib_compat.py6CODE
LOWpiptools/_compat/_tomllib_compat.py8CODE
LOWpiptools/_compat/_tomllib_compat.py8CODE
LOWpiptools/_compat/_tomllib_compat.py8CODE
LOWpiptools/_compat/pip_compat.py1CODE
LOWpiptools/_compat/pip_compat.py37CODE
LOWpiptools/_compat/__init__.py1CODE
LOWpiptools/_compat/__init__.py3CODE
LOWpiptools/_compat/__init__.py3CODE
LOWpiptools/_compat/__init__.py3CODE
LOWpiptools/_compat/__init__.py3CODE
LOWpiptools/_compat/tempfile_compat.py6CODE
LOWtests/test_circular_imports.py13CODE
LOWtests/test_repository_local.py1CODE
36 more matches not shown…
Self-Referential Comments10 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMpiptools/writer.py133 "# This file is autogenerated by pip-compile with Python "CODE
MEDIUMtests/test_repository_local.py25 # Create an install requirement with the hashes included in its optionsCOMMENT
MEDIUMtests/test_repository_local.py46 # Create an install requirement with the hashes included in its optionsCOMMENT
MEDIUMtests/conftest.py353 # Create a README to avoid setuptools warnings.STRING
MEDIUMtests/conftest.py356 # Create a module to make the package importable.STRING
MEDIUMtests/conftest.py519 # Create a nested directory structure if config_file_name includes directoriesCOMMENT
MEDIUMtests/test_writer.py211 "# This file is autogenerated by pip-compile with Python "CODE
MEDIUMtests/test_writer.py230 "# This file is autogenerated by pip-compile with Python "CODE
MEDIUMtests/test_cache.py23 # Create the file and write to itCOMMENT
MEDIUM⚡tests/test_cache.py85 # Create a cache object. The keys are packages, and the values are listsCOMMENT
Over-Commented Block19 hits · 18 pts
SeverityFileLineSnippetContext
LOWREADME.md121django==4.1.7COMMENT
LOWREADME.md341# by the following command:COMMENT
LOWREADME.md561asgiref==3.5.2COMMENT
LOWpiptools/build.py201 # NOTE: permission error related to this file handle still open in ourCOMMENT
LOWtests/test_cli_compile.py3081COMMENT
LOWrequirements/build-deps.txt1#COMMENT
LOWrequirements/build-deps.txt21 # pip-tools (pyproject.toml::build-system.requires)COMMENT
LOWdocs/requirements.txt1#COMMENT
LOWdocs/requirements.txt21certifi==2026.1.4COMMENT
LOWdocs/requirements.txt41 # click-extraCOMMENT
LOWdocs/requirements.txt61markupsafe==3.0.3COMMENT
LOWdocs/requirements.txt81 # furoCOMMENT
LOWdocs/requirements.txt101 # via sphinxCOMMENT
LOWdocs/requirements.txt141 # via click-extraCOMMENT
LOWdocs/requirements.txt161 # pip-tools (pyproject.toml)COMMENT
LOWdocs/how-to/customize-compiled-headers.md41COMMENT
LOWexamples/readme/constraints.txt1#COMMENT
LOWexamples/readme/constraints.txt21 # hatchlingCOMMENT
LOW.github/workflows/ci.yml481 ${{ runner.os }}-pip-COMMENT
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOWpiptools/sync.py54CODE
LOWpiptools/sync.py108CODE
LOWpiptools/utils.py304CODE
LOWpiptools/resolver.py550CODE
LOWpiptools/scripts/sync.py198CODE
LOWpiptools/scripts/compile.py51CODE
LOWpiptools/scripts/compile.py149CODE
LOWtests/_plugins/_coverage/piptools_coverage.py104CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtox.ini90 # FIXME: re-enable the "-r" + "-c" paradigm once the pip bug is fixed.COMMENT
MEDIUMtox.ini166 # FIXME: re-enable the "-r" + "-c" paradigm once the pip bug is fixed.COMMENT
Modern Structural Boilerplate4 hits · 4 pts
SeverityFileLineSnippetContext
LOWpiptools/repositories/__init__.py6__all__ = ["LocalRequirementsRepository", "PyPIRepository"]CODE
LOWpiptools/_compat/_tomllib_compat.py11__all__ = ["TOMLDecodeError", "load", "loads"]CODE
LOWpiptools/_compat/__init__.py10__all__ = [CODE
LOWdocs/conf.py13logger = logging.getLogger(__name__)CODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/conf.py84# -------------------------------------------------------------------------COMMENT
Excessive Try-Catch Wrapping4 hits · 2 pts
SeverityFileLineSnippetContext
LOWpiptools/utils.py535 except Exception as e:CODE
LOWtests/test_cli_compile.py3639 except Exception: # pragma: no coverSTRING
LOWtests/test_cli_compile.py3703 except Exception: # pragma: no coverSTRING
LOWtests/test_cli_compile.py3771 except Exception: # pragma: no coverSTRING
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpiptools/utils.py142 # Check if there is any fragment to add to the URI.COMMENT
Structural Annotation Overuse1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpiptools/writer.py43 "# WARNING: The following packages were not pinned, but pip requires them to be"CODE