AI Slop Code RIsk Monitor

awesome-vpn/awesome-vpn

Free proxy node aggregator. Daily updated vmess/vless/trojan/ss. 免费 代理节点 翻墙 梯子 科学上网 机场订阅 网络加速 VPN 免翻墙每日更新 一键导入

10.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for awesome-vpn/awesome-vpn, a Python project with 6,616 GitHub stars. SynthScan examined 30,299 lines of code across 70 source files, recording 203 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 10.0 (Moderate 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.

10.0
Adjusted Signal
10.0
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
6.6K
Stars
Python
Language
30.3K
Lines of Code
70
Files
203
Pattern Hits
2026-10-12
Scan Date
0.33
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 11.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.4/100 · LOW

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

Agent Over-Engineering Ratio 34.1/100 · MEDIUM

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

PR Review Velocity Impact 41.6/100 · MEDIUM

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 23MEDIUM 4LOW 176

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 9 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.

Empty Error Handlers22 hits · 110 pts
SeverityFileLineSnippetContext
HIGHcore/validator.py303except Exception:CODE
HIGHcore/validator.py451except Exception:CODE
HIGHcore/validator.py442except Exception:CODE
HIGHcore/geo_utils.py100except OSError:CODE
HIGHcore/geo_utils.py106except OSError:CODE
HIGHcore/geo_utils.py195except Exception:CODE
HIGHcore/geo_utils.py191except Exception:CODE
HIGHcore/pipeline.py56except Exception:CODE
HIGHcore/pipeline.py70except Exception:CODE
HIGHcore/pipeline.py179except Exception:CODE
HIGHcore/dual_validator.py78except Exception:CODE
HIGHcore/dual_validator.py92except Exception:CODE
HIGHcore/dual_validator.py56except Exception:CODE
HIGHcore/dual_validator.py249except Exception:CODE
HIGHcore/dual_validator.py329except Exception:CODE
HIGHcore/spider.py211except Exception:CODE
HIGHcore/spider.py218except Exception:CODE
HIGHcore/spider.py371except (ValueError, TypeError, AttributeError):CODE
HIGHcore/parsers/clash2base64.py58except Exception:CODE
HIGHcore/parsers/vmess.py68except json.JSONDecodeError:CODE
HIGHcore/harvesters/static_feed.py31except Exception:CODE
HIGHcore/harvesters/static_feed.py25except (ValueError, TypeError):CODE
Excessive Try-Catch Wrapping77 hits · 84 pts
SeverityFileLineSnippetContext
MEDIUMcore/validator.py120def tcp_ping(self, host, port, timeout=3):CODE
LOWcore/validator.py87 except Exception:CODE
LOWcore/validator.py124 except Exception:CODE
LOWcore/validator.py189 except Exception:CODE
LOWcore/validator.py227 except Exception:CODE
LOWcore/validator.py274 except Exception:CODE
LOWcore/validator.py303 except Exception:CODE
LOWcore/validator.py420 except Exception:CODE
LOWcore/validator.py431 except Exception:CODE
LOWcore/validator.py442 except Exception:CODE
LOWcore/validator.py451 except Exception:CODE
LOWcore/validator.py486 except Exception:CODE
LOWcore/deduplicator.py142 except Exception:CODE
LOWcore/geo_utils.py87 except Exception as e:CODE
LOWcore/geo_utils.py113 except Exception:CODE
LOWcore/geo_utils.py134 except Exception as e:CODE
LOWcore/geo_utils.py157 except Exception as e:CODE
LOWcore/geo_utils.py191 except Exception:CODE
LOWcore/geo_utils.py195 except Exception:CODE
LOWcore/node_ledger.py21 except Exception:CODE
LOWcore/node_ledger.py46 except Exception as e:CODE
LOWcore/node_ledger.py56 except Exception as e:CODE
MEDIUMcore/node_ledger.py50def save(self) -> None:CODE
LOWcore/pipeline.py56 except Exception:CODE
LOWcore/pipeline.py70 except Exception:CODE
LOWcore/pipeline.py80 except Exception:CODE
LOWcore/pipeline.py179 except Exception:CODE
MEDIUMcore/pipeline.py173def _parse(link):CODE
LOWcore/dual_validator.py56 except Exception:CODE
LOWcore/dual_validator.py78 except Exception:CODE
LOWcore/dual_validator.py92 except Exception:CODE
LOW⚡core/dual_validator.py236 except Exception as e:CODE
LOW⚡core/dual_validator.py243 except Exception:CODE
LOW⚡core/dual_validator.py249 except Exception:CODE
LOW⚡core/dual_validator.py316 except Exception as e:CODE
LOW⚡core/dual_validator.py323 except Exception:CODE
LOW⚡core/dual_validator.py329 except Exception:CODE
LOWcore/dual_validator.py359 except Exception as e:CODE
LOWcore/quality.py106 except Exception:CODE
LOWcore/quality.py175 except Exception:CODE
LOWcore/binary_manager.py88 except Exception as e:CODE
LOWcore/binary_manager.py185 except Exception as e:CODE
LOWcore/spider.py100 except Exception as e:CODE
LOWcore/spider.py189 except Exception as e:CODE
LOWcore/spider.py211 except Exception:CODE
LOWcore/spider.py218 except Exception:CODE
LOWcore/spider.py229 except Exception as e:CODE
LOWcore/filters/prescreen.py34 except Exception:CODE
LOWcore/parsers/ssr.py10 except Exception:CODE
LOWcore/parsers/clash2base64.py58 except Exception:CODE
LOWcore/parsers/vless.py12 except Exception:CODE
LOWcore/parsers/vless.py17 except Exception:CODE
LOWcore/parsers/socks.py20 except Exception:CODE
LOWcore/parsers/ss.py63 except Exception:CODE
LOWcore/parsers/ss.py80 except Exception:CODE
LOWcore/parsers/ss.py118 except Exception:CODE
LOWcore/parsers/ss.py137 except Exception:CODE
LOWcore/parsers/tool.py240 except Exception:CODE
LOWcore/parsers/tool.py337 except Exception:CODE
MEDIUMcore/parsers/tool.py237def get_protocol(s):CODE
17 more matches not shown…
Hyper-Verbose Identifiers39 hits · 40 pts
SeverityFileLineSnippetContext
LOWcore/dual_validator.py62def detect_physical_interface() -> str:CODE
LOWcore/spider.py139 def extract_subscription_links(self, text):CODE
LOWtests/test_dual_validator.py8def test_detect_physical_interface():CODE
LOWtests/test_harvesters.py13def test_channel_ledger_lifecycle():CODE
LOWtests/test_harvesters.py61def test_telegram_harvester_extraction():CODE
LOWtests/test_harvesters.py88def test_github_radar_harvester():STRING
LOWtests/test_clash_converter.py44def test_vmess_websocket_transport():CODE
LOWtests/test_clash_converter.py92def test_vless_grpc_transport():CODE
LOWtests/test_clash_converter.py167def test_trojan_websocket_transport():CODE
LOWtests/test_clash_converter.py229def test_tuic_alpn_string_normalized_to_list():CODE
LOWtests/test_clash_converter.py251def test_to_clash_proxies_filters_unsupported():CODE
LOW⚡tests/test_clash_converter.py270def test_to_clash_proxies_empty_list():CODE
LOW⚡tests/test_clash_converter.py274def test_vmess_default_tag_when_missing():CODE
LOW⚡tests/test_clash_converter.py280def test_vmess_alter_id_default_zero():CODE
LOWtests/test_node_ledger.py30def test_record_validation_and_streak(temp_ledger):CODE
LOWtests/test_node_ledger.py108def test_quality_score_with_longevity():CODE
LOWtests/test_vmess_parser.py9def test_vmess_uri_allow_insecure_zero_disables_insecure():CODE
LOWtests/test_vmess_parser.py15def test_vmess_uri_allow_insecure_absent_keeps_insecure_true():CODE
LOWtests/test_spider.py14def test_extract_links_simple():CODE
LOWtests/test_spider.py31def test_parse_subscription_clash_yaml():CODE
LOWtests/test_property.py16def test_ensure_unique_tags_never_duplicates(tags):CODE
LOWtests/test_property.py24def test_clash_proxy_vmess_roundtrip(server, port):CODE
LOWtests/test_property.py40def test_deduplicator_idempotent():CODE
LOWtests/test_matrix.py10def test_matrix_exporter_and_telemetry():CODE
LOWtests/test_deduplicator.py4def test_ensure_unique_tags_suffixes_duplicate_names():CODE
LOWtests/test_deduplicator.py21def test_ensure_unique_tags_reserves_existing_suffixes():CODE
LOWtests/test_deduplicator.py33def test_ensure_unique_tags_is_idempotent_and_ignores_empty_tags():CODE
LOWtests/test_output_groups.py46def test_singbox_groups_are_english_and_standard():CODE
LOWtests/test_output_groups.py76def test_clash_groups_are_english_and_standard():CODE
LOWtests/test_output_groups.py110def test_output_configs_contain_no_chinese():CODE
LOWtests/test_filters.py29def test_prescreen_funnel_workflow():CODE
LOWtests/test_filters.py51def test_fair_source_interleaving():CODE
LOWtests/test_geo_utils.py13def test_format_node_name_with_city(tmp_path):CODE
LOWtests/test_geo_utils.py23def test_format_node_name_without_city(tmp_path):CODE
LOWtests/test_geo_utils.py47def test_resolve_to_ip_direct():CODE
LOWtests/test_quality.py26def test_shadowsocks_no_tls_scores_low():CODE
LOWtests/test_quality.py31def test_quality_score_latency_penalty():CODE
LOWtests/test_quality.py42def test_filter_by_china_probe_no_url_pass_through():CODE
LOWtests/test_quality.py48def test_filter_by_china_probe_uses_probe(monkeypatch):CODE
Deep Nesting31 hits · 30 pts
SeverityFileLineSnippetContext
LOWcore/validator.py455CODE
LOWcore/validator.py75CODE
LOWcore/validator.py240CODE
LOWcore/validator.py277CODE
LOWcore/validator.py311CODE
LOWcore/deduplicator.py83CODE
LOWcore/geo_utils.py118CODE
LOWcore/node_ledger.py101CODE
LOWcore/pipeline.py165CODE
LOWcore/dual_validator.py47CODE
LOWcore/dual_validator.py62CODE
LOWcore/binary_manager.py92CODE
LOWcore/binary_manager.py108CODE
LOWcore/spider.py47CODE
LOWcore/spider.py233CODE
LOWcore/spider.py249CODE
LOWcore/spider.py283CODE
LOWcore/spider.py320CODE
LOWcore/filters/prescreen.py60CODE
LOWcore/parsers/clash2base64.py7CODE
LOWcore/parsers/vless.py7CODE
LOWcore/parsers/ss.py10CODE
LOWcore/parsers/vmess.py8CODE
LOWcore/converters/clash.py117CODE
LOWcore/harvesters/channel_ledger.py154CODE
LOWcore/harvesters/static_feed.py80CODE
LOWcore/harvesters/static_feed.py113CODE
LOWcore/harvesters/static_feed.py170CODE
LOWcore/harvesters/telegram.py38CODE
LOWcore/harvesters/telegram.py82CODE
LOWcore/harvesters/github_radar.py115CODE
Modern Structural Boilerplate19 hits · 19 pts
SeverityFileLineSnippetContext
LOWmain.py23logger = logging.getLogger(__name__)CODE
LOWcore/geo_utils.py10logger = logging.getLogger(__name__)CODE
LOWcore/node_ledger.py9logger = logging.getLogger(__name__)CODE
LOWcore/pipeline.py43logger = logging.getLogger(__name__)CODE
LOWcore/dual_validator.py24logger = logging.getLogger(__name__)CODE
LOWcore/binary_manager.py9logger = logging.getLogger(__name__)CODE
LOWcore/spider.py12logger = logging.getLogger(__name__)CODE
LOWcore/filters/__init__.py6__all__ = ["HoneypotFilter", "PrescreenFunnel"]CODE
LOWcore/filters/prescreen.py11logger = logging.getLogger(__name__)CODE
LOWcore/filters/honeypot.py7logger = logging.getLogger(__name__)CODE
LOWcore/converters/clash.py7logger = logging.getLogger(__name__)CODE
LOWcore/harvesters/channel_ledger.py12logger = logging.getLogger(__name__)CODE
LOWcore/harvesters/static_feed.py13logger = logging.getLogger(__name__)CODE
LOWcore/harvesters/telegram.py13logger = logging.getLogger(__name__)CODE
LOWcore/harvesters/__init__.py9__all__ = [CODE
LOWcore/harvesters/github_radar.py17logger = logging.getLogger(__name__)CODE
LOWcore/matrix/exporter.py13logger = logging.getLogger(__name__)CODE
LOWcore/matrix/__init__.py6__all__ = ["MatrixExporter", "TelemetryReporter"]CODE
LOWcore/matrix/telemetry.py9logger = logging.getLogger(__name__)CODE
Unused Imports10 hits · 10 pts
SeverityFileLineSnippetContext
LOWcore/filters/__init__.py3CODE
LOWcore/filters/__init__.py4CODE
LOWcore/harvesters/__init__.py3CODE
LOWcore/harvesters/__init__.py3CODE
LOWcore/harvesters/__init__.py4CODE
LOWcore/harvesters/__init__.py5CODE
LOWcore/harvesters/__init__.py6CODE
LOWcore/harvesters/__init__.py7CODE
LOWcore/matrix/__init__.py3CODE
LOWcore/matrix/__init__.py4CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHcore/validator.py255 pos += 5 # skip null, type, classCODE
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWREADME.md18### Step 1: Copy a subscription linkCOMMENT
LOWREADME.md31### Step 2: Download a client appCOMMENT
LOWREADME.md43### Step 3: Paste and connectCOMMENT
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.pre-commit-config.yaml41 # hooks:COMMENT