AI Slop Code RIsk Monitor

shadowsocks/shadowsocks-libev

Self-contained Shadowsocks implementation in C with libuv, asynchronous DNS, and portable static builds for Linux, macOS, Windows, and FreeBSD.

4.5 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for shadowsocks/shadowsocks-libev, a C project with 16,182 GitHub stars. SynthScan examined 42,374 lines of code across 184 source files, recording 140 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 4.5 (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.

4.5
Adjusted Signal
4.5
Raw Pattern Score
100%
Time Factor
2026-10-06
Last Push
16.2K
Stars
C
Language
42.4K
Lines of Code
184
Files
140
Pattern Hits
2026-10-12
Scan Date
0.05
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 14.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 7.7/100 · LOW

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

PR Review Velocity Impact 20.4/100 · LOW

Which changes need focused human review? 140 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 9MEDIUM 4LOW 127

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

Over-Commented Block88 hits · 88 pts
SeverityFileLineSnippetContext
LOW.uncrustify.cfg21# IndentingCOMMENT
LOW.uncrustify.cfg681COMMENT
LOW.uncrustify.cfg1041# Change simple unbraced for statements into a one-linerCOMMENT
LOW.uncrustify.cfg1341# Example:COMMENT
LOW.uncrustify.cfg1361#COMMENT
LOWdocker/mingw/apt.sh1#!/bin/bashCOMMENT
LOWdocker/mingw/prepare.sh1#!/bin/bashCOMMENT
LOWdocker/mingw/deps.sh1#!/bin/bashCOMMENT
LOWdocker/mingw/build.sh1#!/bin/bashCOMMENT
LOWtests/test_helpers.h1#ifndef SS_TEST_HELPERS_HCOMMENT
LOWtests/test_deb_build.sh1#!/bin/bashCOMMENT
LOWtests/test.py1#!/usr/bin/pythonCOMMENT
LOWtests/test_aead2022.c1/*COMMENT
LOWtests/test_redir_qemu.sh1#!/bin/bashCOMMENT
LOWtests/test_jconf.c1#ifdef HAVE_CONFIG_HCOMMENT
LOWtests/qemu/guest-init.sh1#!/bin/bashCOMMENT
LOWthird_party/mbedtls_config.h1/* SPDX-License-Identifier: GPL-3.0-or-later */COMMENT
LOWthird_party/mbedtls_config.h21#define MBEDTLS_CAMELLIA_CCOMMENT
LOWthird_party/bloom/murmur2/MurmurHash2.c1//-----------------------------------------------------------------------------COMMENT
LOWsrc/utils.h21 */COMMENT
LOWsrc/process.c1/* SPDX-License-Identifier: GPL-3.0-or-later */COMMENT
LOWsrc/aead.c21 */COMMENT
LOWsrc/netutils.h21 */COMMENT
LOWsrc/netutils.h41COMMENT
LOWsrc/local.c21 */COMMENT
LOWsrc/local.c41#endifCOMMENT
LOWsrc/local.c61#include "local.h"COMMENT
LOWsrc/ss_event.h1/* Project event API backed by bundled/system libuv. Watchers may be freedCOMMENT
LOWsrc/redir.c21 * <http://www.gnu.org/licenses/>.COMMENT
LOWsrc/redir.c41#include <linux/netfilter_ipv4.h>COMMENT
LOWsrc/redir.c61#define EWOULDBLOCK EAGAINCOMMENT
LOWsrc/android.c21 */COMMENT
LOWsrc/stream.h21 */COMMENT
LOWsrc/uthash.h41#define NO_DECLTYPECOMMENT
LOWsrc/uthash.h61} while (0)COMMENT
LOWsrc/uthash.h81#ifndef uthash_fatalCOMMENT
LOWsrc/uthash.h641 * cc -## a.c (where a.c is a simple test file) (Sun Studio)COMMENT
LOWsrc/server.c21 */COMMENT
LOWsrc/server.c41#include <arpa/inet.h>COMMENT
LOWsrc/server.c61/* the datatypes enum is picked from libnftables/datatype.hCOMMENT
LOWsrc/server.c81#ifndef EWOULDBLOCKCOMMENT
LOWsrc/jconf.h21COMMENT
LOWsrc/crypto.h21 */COMMENT
LOWsrc/crypto.h41typedef crypto_aead_aes256gcm_state aes256gcm_ctx;COMMENT
LOWsrc/crypto.h61COMMENT
LOWsrc/crypto.h81#define CRYPTO_ROLE_CLIENT 0COMMENT
LOWsrc/udprelay.c21 */COMMENT
LOWsrc/udprelay.c41#endifCOMMENT
LOWsrc/udprelay.c61#endifCOMMENT
LOWsrc/udprelay.c161#ifdef IP_ORIGDSTADDRCOMMENT
LOWsrc/winsock.c21 */COMMENT
LOWsrc/resolv.c21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCOMMENT
LOWsrc/utils.c21 */COMMENT
LOWsrc/utils.c41#include <sys/stat.h>COMMENT
LOWsrc/common.h21COMMENT
LOWsrc/netutils.c21 */COMMENT
LOWsrc/aead2022.c21 *COMMENT
LOWsrc/aead2022.c41#define SS2022_HDR_TYPE_SERVER 1COMMENT
LOWsrc/plugin.c21 */COMMENT
LOWsrc/acl.c21 */COMMENT
28 more matches not shown…
Empty Error Handlers9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHtests/sip003_fixture.py20except OSError:CODE
HIGHtests/sip003_fixture.py33except OSError:CODE
HIGHtests/test.py147except OSError:CODE
HIGHtests/interop.py25except (OSError, TimeoutError):CODE
HIGHtests/interop.py257except ProcessLookupError:CODE
HIGHtests/stress_test.py64except (IOError, OSError, ValueError):CODE
HIGHtests/stress_test.py107except (socket.timeout, OSError):CODE
HIGHtests/stress_test.py249except OSError:CODE
HIGHtests/stress_test.py151except Exception:CODE
Hyper-Verbose Identifiers15 hits · 20 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_cli_docs.py33 def test_current_documentation_matches_all_variants(self):CODE
LOW⚡tests/test_cli_docs.py43 def test_new_option_requires_documentation(self):CODE
LOW⚡tests/test_cli_docs.py48 def test_argument_arity_is_checked(self):CODE
LOW⚡tests/test_cli_docs.py54 def test_unknown_parser_syntax_fails_closed(self):CODE
LOW⚡tests/test_cli_docs.py60 def test_nonliteral_short_options_fail_closed(self):CODE
LOW⚡tests/test_cli_docs.py65 def test_shell_options_require_documentation(self):CODE
LOW⚡tests/test_cli_docs.py70 def test_missing_snippet_is_rejected(self):CODE
LOW⚡tests/test_cli_docs.py75 def test_duplicate_option_is_rejected(self):CODE
LOW⚡tests/test_cli_docs.py80 def test_manual_must_include_parser_options(self):CODE
LOW⚡tests/test_cli_docs.py85 def test_missing_rendered_flag_is_rejected(self):CODE
LOWtests/test_cli.py55 def test_long_aliases_accept_their_arguments(self):CODE
LOWtests/test_cli.py79 def test_usage_errors_are_stderr_exit_two_without_secrets(self):CODE
LOWtests/test_cli.py97 def test_transport_and_address_family_override_configuration(self):CODE
LOWtests/test_cli.py133 def test_server_endpoint_arguments(self):CODE
LOWtests/test_cli.py154 def test_numeric_option_validation(self):CODE
Deep Nesting14 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/docker_smoke.py19CODE
LOWtests/docker_smoke.py49CODE
LOWtests/async_dns_interop.py12CODE
LOWtests/measure_udp.py15CODE
LOWtests/interop.py92CODE
LOWtests/interop.py150CODE
LOWtests/interop.py179CODE
LOWtests/stress_test.py47CODE
LOWtests/stress_test.py155CODE
LOWtests/stress_test.py295CODE
LOWtests/test_cli.py32CODE
LOWtests/test_cli.py97CODE
LOWscripts/check_cli_docs.py101CODE
LOWscripts/source_archive.py16CODE
Self-Referential Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMdocker/mingw/apt.sh5# This file is part of the shadowsocks-libev.COMMENT
MEDIUMdocker/mingw/prepare.sh5# This file is part of the shadowsocks-libev.COMMENT
MEDIUMdocker/mingw/deps.sh5# This file is part of the shadowsocks-libev.COMMENT
MEDIUMdocker/mingw/build.sh5# This file is part of the shadowsocks-libev.COMMENT
Unused Imports5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtests/test.py18CODE
LOWtests/test.py18CODE
LOWtests/test.py18CODE
LOWtests/test.py18CODE
LOWtests/stress_test.py13CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/test_redir_qemu.sh259 # Check if QEMU is still runningCOMMENT
LOWscripts/ss-setup.sh510 # Check if TCP Fast Open is available (Linux only)COMMENT
Excessive Try-Catch Wrapping3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/stress_test.py147 except Exception:CODE
LOWtests/stress_test.py151 except Exception:CODE
LOWtests/stress_test.py265 except Exception as e:CODE