AI Slop Code Risk Monitor

shadowsocks/ShadowsocksX-NG

SlopCodeMonitor badge for shadowsocks/ShadowsocksX-NG Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).
1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for shadowsocks/ShadowsocksX-NG. SynthScan examined 79,265 lines of code across 655 source files, recording 75 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.

1.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
—
Last Push
—
Stars
—
Language
79.3K
Lines of Code
655
Files
75
Pattern Hits
2026-10-31
Scan Date
0.01
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 4.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.5/100 · LOW

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

Agent Over-Engineering Ratio 2.7/100 · LOW

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

PR Review Velocity Impact 7.6/100 · LOW

Which changes need focused human review? 75 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 5HIGH 1MEDIUM 0LOW 69

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 75 distinct pattern matches across 7 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.

Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICAL…olWorkflowIntegrationTests+SystemProxyInspection.swift47 composition.control.snapshot.systemProxyInspection.differences.map(\.kind),CODE
CRITICAL…olWorkflowIntegrationTests+SystemProxyInspection.swift50 composition.control.snapshot.systemProxyInspection.differences.map(\.name),CODE
CRITICAL…olWorkflowIntegrationTests+SystemProxyInspection.swift94 composition.control.snapshot.systemProxyInspection.differences.map(\.kind), [.remaining])CODE
CRITICAL…olWorkflowIntegrationTests+SystemProxyInspection.swift110 composition.control.snapshot.systemProxyInspection.differences.map(\.name), ["Wi-Fi"])CODE
CRITICAL…olWorkflowIntegrationTests+SystemProxyInspection.swift271 composition.control.snapshot.systemProxyInspection.differences.map(\.kind), [.notApplied])CODE
Hyper-Verbose Identifiers29 hits · 36 pts
SeverityFileLineSnippetContext
LOWShadowsocksX-NG2/Scripts/test-external-binary-fetch.py41 def test_binary_asset_is_verified_cached_and_refetched(self):CODE
LOW⚡ShadowsocksX-NG2/Scripts/test-external-binary-fetch.py56 def test_hash_mismatch_never_installs(self):CODE
LOW⚡ShadowsocksX-NG2/Scripts/test-external-binary-fetch.py63 def test_matching_hash_does_not_accept_non_macho(self):CODE
LOW⚡ShadowsocksX-NG2/Scripts/test-external-binary-fetch.py72 def test_existing_tar_manifest_still_extracts_pinned_member(self):CODE
LOWShadowsocksX-NG2/Scripts/test-external-binary-fetch.py86 def test_unknown_format_is_rejected_even_with_cached_binary(self):CODE
LOWShadowsocksX-NG2/Scripts/test-dependency-metadata.py32 def test_offline_generation_and_packaging(self):CODE
LOWShadowsocksX-NG2/Scripts/test-dependency-metadata.py59 def test_one_authoritative_fact_changes_output_and_stale_output_is_rejected(self):CODE
LOWShadowsocksX-NG2/Scripts/test-dependency-metadata.py71 def test_invalid_inputs_are_named(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-snapshot-converters.py32 def test_cn_absorption_drops_narrow_entries_and_reports_only_totals(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-snapshot-converters.py50 def test_gfw_shadowed_exception_counts_once_and_keeps_raw_evidence_on_stdout(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-snapshot-converters.py64 def test_china_ip_build_retains_metadata_normalization_and_duplicate_counts(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-snapshot-converters.py75 def test_shipped_artifacts_use_compact_schema_and_preserve_pinned_rule_counts(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py87 def test_generated_fixtures_are_current_and_reproducible(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py99 def test_geosite_reads_published_typed_protobuf_and_selects_category(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py108 def test_geosite_invalid_varint_and_missing_category_fail(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py117 def test_geo_dedup_absorption_and_invalid_domains(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py125 def test_gfw_classifies_all_unsupported_forms_without_expanding(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py137 def test_gfw_normalizes_deduplicates_and_keeps_broader_exception(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py144 def test_gfw_url_prefix_without_path_converts_to_exact_domain(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py157 def test_gfw_url_prefix_with_conditions_or_invalid_host_stays_skipped(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py177 def test_gfw_url_prefix_root_path_converts_and_deduplicates(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py188 def test_gfw_exact_proxy_only_shadows_same_exact_exception(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py197 def test_gfw_suffix_proxy_shadows_exact_exception_and_reports_original(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py206 def test_gfw_equal_and_broader_proxy_shadow_exception_in_any_order(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py214 def test_gfw_empty_unknown_and_corrupt_payload_fail(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py226 def test_china_normalizes_addresses_and_rejects_invalid_entries(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py231 def test_china_empty_invalid_and_rejection_rate_guards(self):CODE
LOW⚡…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py240 def test_count_and_scale_guards_on_actual_generators(self):CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py253 def test_failed_cli_keeps_previous_snapshot(self):CODE
Over-Commented Block27 hits · 27 pts
SeverityFileLineSnippetContext
LOWShadowsocksX-NG2/.swiftlint.yml1# 默认规则起步:只声明排除项,遇到实际痛点再调规则(见本目录 AGENTS.md)。COMMENT
LOWShadowsocksX-NG2/project.yml41 # 目录即分层:Composition(组合根)/ Application(工作流与运行时适配)/COMMENT
LOW…socksX-NG2/App/UI/Servers/PasswordAutofillOptOut.swift1import AppKitCOMMENT
LOW…p/Application/Connectivity/ConnectivityHTTPTransport.c1#include "ConnectivityHTTPTransport.h"COMMENT
LOW…/ProxyRuntime/ProxyRuntimeController+Convergence.swift1import FoundationCOMMENT
LOW…/Application/ProxyRuntime/ProxyRuntimeController.swift1import FoundationCOMMENT
LOW…/App/Application/CatalogWorkflow/CatalogWorkflow.swift1import CombineCOMMENT
LOW…tion/CatalogWorkflow/CatalogWorkflowDependencies.swift1import FoundationCOMMENT
LOW…tion/ProxyControlWorkflow/TerminalCommandAddress.swift41struct TerminalCommandAddressPicker: Equatable, Sendable {COMMENT
LOW…cation/ProxyControlWorkflow/ProxyControlWorkflow.swift41 }COMMENT
LOW…cation/ProxyControlWorkflow/ProxyControlWorkflow.swift161COMMENT
LOWShadowsocksX-NG2/App/Presentation/StatusMenuModel.swift1import FoundationCOMMENT
LOW…-NG2/Tests/SystemProxy/SystemProxyHelperLogTests.swift81 let event = SystemProxyHelperLogEvent.requestFailed(.preferencesBusy)COMMENT
LOW…ests/Catalog/Workflow/CatalogWorkflowImportTests.swift21 #expect(outcome.selectionCandidate == groupID)COMMENT
LOWShadowsocksX-NG2/Tests/Runtime/LogLineTests.swift61 #expect(event.rendered == event.text, "旧格式行保留原文(raw capture 不改写)")COMMENT
LOWShadowsocksX-NG2/Tests/Runtime/LogLineTests.swift81 LogLineLevel.detect(in: "[Warning] [107248047] app/dispatcher: default route") == .warning)COMMENT
LOW…X-NG2/Tests/Servers/ServerFormPluginOptionsTests.swift221 // 只输入参数名:提升为正式行并补上新的空行。COMMENT
LOW…X-NG2/Tests/Servers/ServerFormPluginOptionsTests.swift341 ]COMMENT
LOW…wsocksX-NG2/Tests/Servers/ServerFormLoadingTests.swift301 #expect(fields.remark == "未保存名称")COMMENT
LOWShadowsocksX-NG2/Scripts/fetch-external-binaries.sh1#!/bin/shCOMMENT
LOWShadowsocksX-NG2/Scripts/sign-embedded-helpers.sh1#!/bin/shCOMMENT
LOWShadowsocksX-NG2/Scripts/packaging-gate.sh1#!/bin/shCOMMENT
LOWShadowsocksX-NG2/Scripts/lib-manifests.sh1# Shared manifest reading for the Vendor supply chain scriptsCOMMENT
LOW…cksX-NG2/Domain/SystemProxy/SystemProxyHelperLog.swift1import FoundationCOMMENT
LOWShadowsocksX-NG2/Domain/Catalog/CatalogError.swift1/// 目录操作失败原因,逐项对应 GLOSSARY.md 的结构不变量(单父、显子序、COMMENT
LOWShadowsocksX-NG2/Domain/Runtime/RuntimeLog.swift1import FoundationCOMMENT
LOWShadowsocksX-NG2/Domain/Runtime/RuntimeLog.swift41 /// 本机代理端点启动后未就绪(点名端点与端口)。COMMENT
Unused Imports6 hits · 6 pts
SeverityFileLineSnippetContext
LOWShadowsocksX-NG2/Scripts/convert-gfwlist.py12CODE
LOWShadowsocksX-NG2/Scripts/convert-gfwlist.py22CODE
LOWShadowsocksX-NG2/Scripts/convert-geolocation-cn.py10CODE
LOWShadowsocksX-NG2/Scripts/convert-geolocation-cn.py16CODE
LOWShadowsocksX-NG2/Scripts/convert-china-ipv4.py9CODE
LOWShadowsocksX-NG2/Scripts/convert-china-ipv4.py16CODE
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWShadowsocksX-NG2/Scripts/convert-gfwlist.py189CODE
LOWShadowsocksX-NG2/Scripts/convert-geolocation-cn.py73CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py87CODE
LOW…dowsocksX-NG2/Scripts/test-rule-conversion-behavior.py240CODE
LOWShadowsocksX-NG2/Scripts/dependency-metadata.py34CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHShadowsocksX-NG2/Scripts/convert-gfwlist.py47except ValueError:CODE
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWShadowsocksX-NG2/Scripts/verify-rule-snapshots.sh38except Exception as exc: # noqa: BLE001CODE
LOWShadowsocksX-NG2/Scripts/verify-rule-snapshots.sh63except Exception as exc: # noqa: BLE001CODE