AI Slop Code Risk Monitor

blocklistproject/Lists

SlopCodeMonitor badge for blocklistproject/Lists Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Primary Block Lists

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for blocklistproject/Lists, a Python project with 5,177 GitHub stars. SynthScan examined 348,350 lines of code across 154 source files, recording 203 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 0.8 (Low 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.

0.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
5.2K
Stars
Python
Language
348.4K
Lines of Code
154
Files
203
Pattern Hits
2026-10-31
Scan Date
0.05
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 2.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 2.5/100 · LOW

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

PR Review Velocity Impact 3.9/100 · LOW

Which changes need focused human review? 203 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 7MEDIUM 19LOW 177

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 203 distinct pattern matches across 12 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 Identifiers75 hits · 86 pts
SeverityFileLineSnippetContext
LOWprocess_maintenance.py50def find_lists_containing_domain(domain):CODE
LOWprocess_maintenance.py111def extract_domains_from_issue_body(body):CODE
LOWprocess_maintenance.py143def process_maintenance_issue(issue):CODE
LOWreview_issues_batch.py215def issue_has_required_fields(issue: dict, field: str) -> bool:CODE
LOWIMPROVEMENT_PLAN.md1005 def validate_domains_parallel(domains: set[str], max_workers: int = 10) -> dict:CODE
LOW⚡IMPROVEMENT_PLAN.md1686 def test_fetch_issues_handles_rate_limit():CODE
LOW⚡IMPROVEMENT_PLAN.md1690 def test_review_issues_batch_validates_domains():CODE
LOW⚡IMPROVEMENT_PLAN.md1697 def test_full_pipeline_with_sample_data():CODE
LOW⚡IMPROVEMENT_PLAN.md1706 def test_find_domain_in_lists():CODE
LOWtests/test_issue_reply.py4def test_build_llm_prompt_includes_issue_context():CODE
LOWtests/test_issue_reply.py21def test_format_preview_mentions_closure_when_requested():CODE
LOWtests/test_merge.py54 def test_merges_multiple_sets(self):CODE
LOWtests/test_merge.py59 def test_deduplicates_across_sets(self):CODE
LOWtests/test_merge.py80 def test_removes_allowlisted_domains(self):CODE
LOWtests/test_merge.py100 def test_allowlist_with_extra_domains(self):CODE
LOWtests/test_merge.py111 def test_sorts_alphabetically(self):CODE
LOWtests/test_merge.py142 def test_applies_allowlist_file(self):CODE
LOWtests/test_merge.py154 def test_handles_missing_files(self):CODE
LOWtests/test_merge.py227 def test_collapses_when_threshold_exceeded(self):CODE
LOWtests/test_merge.py241 def test_keeps_below_threshold(self):CODE
LOWtests/test_remove_domain.py8 def test_get_buildable_lists_skips_non_build_targets(self):CODE
LOWtests/test_config.py18 def test_config_has_required_lists(self):CODE
LOWtests/test_config.py30 def test_config_has_all_formats(self):CODE
LOWtests/test_config.py49 def test_filter_by_stable_status(self):CODE
LOWtests/test_config.py59 def test_filter_by_beta_status(self):CODE
LOWtests/test_validate.py46 def test_valid_with_underscore_prefix(self):CODE
LOW⚡tests/test_validate.py65 def test_invalid_label_too_long(self):CODE
LOW⚡tests/test_validate.py70 def test_invalid_leading_hyphen(self):CODE
LOW⚡tests/test_validate.py74 def test_invalid_trailing_hyphen(self):CODE
LOWtests/test_validate.py189 def test_critical_domain_blocked(self):CODE
LOWtests/test_validate.py195 def test_false_positive_blocked(self):CODE
LOWtests/test_validate.py258 def test_many_consecutive_digits(self):CODE
LOWtests/test_validate.py332 def test_common_tlds_list_populated(self):CODE
LOWtests/test_validate.py338 def test_critical_domains_list_populated(self):CODE
LOW⚡tests/test_normalize.py26 def test_hosts_with_extra_spaces(self):CODE
LOW⚡tests/test_normalize.py35 def test_adguard_with_subdomain(self):CODE
LOW⚡tests/test_normalize.py40 def test_dnsmasq_server_format(self):CODE
LOW⚡tests/test_normalize.py44 def test_dnsmasq_address_format(self):CODE
LOW⚡tests/test_normalize.py48 def test_dnsmasq_address_with_hash(self):CODE
LOWtests/test_normalize.py62 def test_lowercase_conversion(self):CODE
LOWtests/test_normalize.py91 def test_mixed_format_content(self):CODE
LOWtests/test_normalize.py135 def test_all_formats_produce_same_domains(self):CODE
LOW⚡tests/test_normalize.py169 def test_detect_adguard_format(self):CODE
LOW⚡tests/test_normalize.py175 def test_detect_dnsmasq_format(self):CODE
LOW⚡tests/test_normalize.py181 def test_detect_domains_format(self):CODE
LOW⚡tests/test_normalize.py191 def test_extract_commented_domains(self):CODE
LOW⚡tests/test_pipeline.py57 def test_hosts_format_root_directory(self, sample_config):CODE
LOW⚡tests/test_pipeline.py67 def test_adguard_format_subdirectory(self, sample_config):CODE
LOW⚡tests/test_pipeline.py77 def test_domains_format_subdirectory(self, sample_config):CODE
LOW⚡tests/test_pipeline.py87 def test_dnsmasq_format_subdirectory(self, sample_config):CODE
LOWtests/test_pipeline.py101 def test_build_from_hosts_file(self, sample_config):CODE
LOWtests/test_pipeline.py121 def test_build_creates_all_formats(self, sample_config):CODE
LOWtests/test_pipeline.py164 def test_build_with_validation(self, sample_config):CODE
LOWtests/test_pipeline.py189 def test_build_applies_allowlist(self, sample_config):CODE
LOWtests/test_pipeline.py213 def test_build_handles_missing_source(self, sample_config):CODE
LOWtests/test_pipeline.py231 def test_run_pipeline_creates_config(self):CODE
LOWtests/test_pipeline.py268 def test_run_pipeline_specific_lists(self):STRING
LOWtests/test_pipeline.py324 def test_inconsistent_outputs(self):CODE
LOWtests/test_pipeline.py362 def test_pipeline_result_fields(self):CODE
LOW⚡tests/test_format.py138 def test_selects_correct_formatter(self):CODE
15 more matches not shown…
Over-Commented Block47 hits · 47 pts
SeverityFileLineSnippetContext
LOWdrugs.txt1# Title: Drugs Block ListCOMMENT
LOWvaping.txt1# Title: Vaping Block ListCOMMENT
LOWadobe.txt1# Title: Adobe Block ListCOMMENT
LOWpiracy.txt1# Title: Piracy Block ListCOMMENT
LOWransomware.txt1# Title: Ransomware Block ListCOMMENT
LOWfortnite.txt1# Title: Fortnite Block ListCOMMENT
LOWwhatsapp.txt1# Title: Whatsapp Block ListCOMMENT
LOWscam.txt1# Title: Scam Block ListCOMMENT
LOWfacebook.txt1# Title: Facebook Block ListCOMMENT
LOWtiktok.txt1# Title: Tiktok Block ListCOMMENT
LOWtwitter.txt1# Title: Twitter Block ListCOMMENT
LOWtorrent.txt1# Title: Torrent Block ListCOMMENT
LOWsmart-tv.txt1# Title: Smart-Tv Block ListCOMMENT
LOWconfig/upstream-sources-example.yml1# Example Upstream Source ConfigurationsCOMMENT
LOWconfig/upstream-sources-example.yml161 trusted: trueCOMMENT
LOWconfig/upstream-sources-example.yml181# - hourly: Check every hour (use sparingly!)COMMENT
LOWconfig/upstream-sources-example.yml201# Example before:COMMENT
LOWconfig/upstream-sources-example.yml221# update_frequency: daily # <-- AddedCOMMENT
LOWdnsmasq-version/piracy-dnsmasq.txt1# Title: Piracy Block ListCOMMENT
LOWdnsmasq-version/smart-tv-dnsmasq.txt1# Title: Smart-Tv Block ListCOMMENT
LOWdnsmasq-version/scam-dnsmasq.txt1# Title: Scam Block ListCOMMENT
LOWdnsmasq-version/drugs-dnsmasq.txt1# Title: Drugs Block ListCOMMENT
LOWdnsmasq-version/facebook-dnsmasq.txt1# Title: Facebook Block ListCOMMENT
LOWdnsmasq-version/adobe-dnsmasq.txt1# Title: Adobe Block ListCOMMENT
LOWdnsmasq-version/crypto-dnsmasq.txt1# Title: Crypto Block ListCOMMENT
LOWdnsmasq-version/twitter-dnsmasq.txt1# Title: Twitter Block ListCOMMENT
LOWdnsmasq-version/tiktok-dnsmasq.txt1# Title: Tiktok Block ListCOMMENT
LOWdnsmasq-version/vaping-dnsmasq.txt1# Title: Vaping Block ListCOMMENT
LOWdnsmasq-version/whatsapp-dnsmasq.txt1# Title: Whatsapp Block ListCOMMENT
LOWdnsmasq-version/fortnite-dnsmasq.txt1# Title: Fortnite Block ListCOMMENT
LOWdnsmasq-version/torrent-dnsmasq.txt1# Title: Torrent Block ListCOMMENT
LOWdnsmasq-version/ransomware-dnsmasq.txt1# Title: Ransomware Block ListCOMMENT
LOWalt-version/youtube-nl.txt1# ------------------------------------[UPDATE]--------------------------------------COMMENT
LOWalt-version/adobe-nl.txt1# Title: Adobe Block ListCOMMENT
LOWalt-version/vaping-nl.txt1# Title: Vaping Block ListCOMMENT
LOWalt-version/facebook-nl.txt1# Title: Facebook Block ListCOMMENT
LOWalt-version/smart-tv-nl.txt1# Title: Smart-Tv Block ListCOMMENT
LOWalt-version/ransomware-nl.txt1# Title: Ransomware Block ListCOMMENT
LOWalt-version/crypto-nl.txt1# Title: Crypto Block ListCOMMENT
LOWalt-version/scam-nl.txt1# Title: Scam Block ListCOMMENT
LOWalt-version/tiktok-nl.txt1# Title: Tiktok Block ListCOMMENT
LOWalt-version/torrent-nl.txt1# Title: Torrent Block ListCOMMENT
LOWalt-version/fortnite-nl.txt1# Title: Fortnite Block ListCOMMENT
LOWalt-version/whatsapp-nl.txt1# Title: Whatsapp Block ListCOMMENT
LOWalt-version/piracy-nl.txt1# Title: Piracy Block ListCOMMENT
LOWalt-version/drugs-nl.txt1# Title: Drugs Block ListCOMMENT
LOWalt-version/twitter-nl.txt1# Title: Twitter Block ListCOMMENT
Decorative Section Separators14 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUMconfig/upstream-sources-example.yml34# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml36# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml115# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml117# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml149# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml151# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml165# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml167# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml190# =============================================================================COMMENT
MEDIUMconfig/upstream-sources-example.yml192# =============================================================================COMMENT
MEDIUMsrc/config.py9# ============================================================================COMMENT
MEDIUMsrc/config.py11# ============================================================================COMMENT
MEDIUMsrc/config.py29# ============================================================================COMMENT
MEDIUMsrc/config.py31# ============================================================================COMMENT
Empty Error Handlers6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHprocess_maintenance.py30except socket.gaierror:CODE
HIGHprocess_maintenance.py32except Exception:CODE
HIGHprocess_maintenance.py75except Exception:CODE
HIGHscripts/process_maintenance.py30except socket.gaierror:CODE
HIGHscripts/process_maintenance.py32except Exception:CODE
HIGHscripts/process_maintenance.py75except Exception:CODE
Excessive Try-Catch Wrapping19 hits · 22 pts
SeverityFileLineSnippetContext
LOWprocess_maintenance.py32 except Exception:CODE
LOWprocess_maintenance.py46 except Exception:CODE
LOWprocess_maintenance.py75 except Exception:CODE
LOWreview_issues_batch.py487 except Exception as e:CODE
LOWIMPROVEMENT_PLAN.md598 except Exception as e:CODE
LOWIMPROVEMENT_PLAN.md1023 except Exception as e:CODE
MEDIUMscripts/process_batch.py31 print(f"Error: {stderr}")CODE
LOWscripts/process_maintenance.py32 except Exception:CODE
LOWscripts/process_maintenance.py46 except Exception:CODE
LOWscripts/process_maintenance.py75 except Exception:CODE
LOWscripts/review_issues_batch.py486 except Exception as e:CODE
LOWscripts/fetch_issues.py38 except Exception as e:CODE
MEDIUMscripts/fetch_issues.py39 print(f'Error: {e}', file=sys.stderr)CODE
LOWscripts/check-dead-domains.py56 except Exception as e:CODE
LOW.github/workflows/triage.yml145 except Exception as e:CODE
MEDIUM.github/workflows/triage.yml146 print(f"Error checking {txt_file}: {e}")CODE
LOWsrc/issue_reply.py88 except Exception as exc: # pragma: no cover - network pathCODE
LOWsrc/domain_lookup.py88 except Exception as e:CODE
LOWsrc/pipeline.py229 except Exception as e:CODE
Deep Nesting18 hits · 18 pts
SeverityFileLineSnippetContext
LOWprocess_maintenance.py50CODE
LOWprocess_maintenance.py143CODE
LOWscripts/aggregate.py7CODE
LOWscripts/process_maintenance.py50CODE
LOWscripts/process_maintenance.py143CODE
LOWscripts/generate-stats.py124CODE
LOWscripts/monitor_upstream.py319CODE
LOWscripts/monitor_upstream.py394CODE
LOWscripts/generate-changelog.py69CODE
LOWscripts/remove_domain.py205CODE
LOWscripts/remove_domain.py281CODE
LOWscripts/review_issues_batch.py63CODE
LOWscripts/review_issues_batch.py221CODE
LOWscripts/review_issues_batch.py331CODE
LOWscripts/review_issues_batch.py404CODE
LOWscripts/verify_format_sync.py87CODE
LOWscripts/check-dead-domains.py123CODE
LOWsrc/domain_lookup.py61CODE
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippetContext
LOWbuild.py111 # Display resultsCOMMENT
LOWprocess_triage.sh16 # Check if label exists by listing and matching the name exactlyCOMMENT
LOWscripts/monitor_upstream.py218 # Check if any excluded domains are in new_domains that would be addedCOMMENT
LOWscripts/remove_domain.py305 # Check if already in exclusionsCOMMENT
LOWscripts/verify_format_sync.py54 # Check if all matchCOMMENT
LOWscripts/add_domain.py136 # Check if already existsCOMMENT
LOW.github/workflows/normalize-sync.yml51 # Check if there are changesCOMMENT
LOWsrc/format.py289 # Check if it's in the root (no subdirectory)COMMENT
LOWsrc/validate.py189 # Check if it's a subdomain of a critical domainCOMMENT
Unused Imports8 hits · 8 pts
SeverityFileLineSnippetContext
LOWscripts/reply_to_issue.py10CODE
LOWscripts/remove_domain.py38CODE
LOWscripts/remove_domain.py45CODE
LOWscripts/remove_domain.py45CODE
LOWscripts/add_domain.py36CODE
LOWscripts/add_domain.py37CODE
LOWscripts/normalize_and_sync.py18CODE
LOWsrc/issue_reply.py3CODE
Structural Annotation Overuse4 hits · 6 pts
SeverityFileLineSnippetContext
LOWUPSTREAM_IMPLEMENTATION_SUMMARY.md90### Step 1: Add Upstream Sources to Your ConfigurationCOMMENT
LOWUPSTREAM_IMPLEMENTATION_SUMMARY.md109### Step 2: Add Global SettingsCOMMENT
LOWUPSTREAM_IMPLEMENTATION_SUMMARY.md125### Step 3: Test ManuallyCOMMENT
LOWUPSTREAM_IMPLEMENTATION_SUMMARY.md134### Step 4: Enable AutomationCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/format.py208Format domains using the specified formatter. Args: domains: Iterable of domain strings format_nameSTRING
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_validate.py114 # This might fail if we have a comprehensive listCOMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md361│ └── pipeline.py # Build orchestrationCODE