AI Slop Code RIsk Monitor

angristan/openvpn-install

Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS, Arch Linux and more

31.6 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for angristan/openvpn-install, a Shell project with 16,158 GitHub stars. SynthScan examined 9,047 lines of code across 21 source files, recording 121 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 31.6 (High 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.

31.6
Adjusted Signal
31.6
Raw Pattern Score
100%
Time Factor
2026-10-01
Last Push
16.2K
Stars
Shell
Language
9.0K
Lines of Code
21
Files
121
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 26.1/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 72.4/100 · HIGH

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

PR Review Velocity Impact 78.8/100 · CRITICAL

Which changes need focused human review? 121 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 80LOW 41

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

Decorative Section Separators74 hits · 231 pts
SeverityFileLineSnippetContext
MEDIUM⚡openvpn-install.sh15# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh17# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh165# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh167# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh170# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh172# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh410# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh412# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh1068# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh1070# =============================================================================COMMENT
MEDIUM⚡openvpn-install.sh2452 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2454 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2474 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2476 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2505 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2507 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2550 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2552 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2596 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2598 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2625 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2627 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2651 # ==========================================================================COMMENT
MEDIUM⚡openvpn-install.sh2653 # ==========================================================================COMMENT
MEDIUMopenvpn-install.sh461# =============================================================================COMMENT
MEDIUMopenvpn-install.sh463# =============================================================================COMMENT
MEDIUMopenvpn-install.sh505# =============================================================================COMMENT
MEDIUMopenvpn-install.sh507# =============================================================================COMMENT
MEDIUMopenvpn-install.sh1956# =============================================================================COMMENT
MEDIUMopenvpn-install.sh1958# =============================================================================COMMENT
MEDIUMopenvpn-install.sh5186# =============================================================================COMMENT
MEDIUMopenvpn-install.sh5188# =============================================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh507# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh509# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh515# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh517# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh697# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh699# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh705# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh707# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh949# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh951# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh1177# =====================================================COMMENT
MEDIUM⚡test/server-entrypoint.sh1179# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh233# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh235# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh292# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh294# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh325# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh327# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh380# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh382# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh438# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh440# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh466# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh468# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh590# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh592# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh982# =====================================================COMMENT
MEDIUMtest/server-entrypoint.sh984# =====================================================COMMENT
14 more matches not shown…
Redundant / Tautological Comments18 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡openvpn-install.sh19# Set LOG_FILE to customize log location (default: openvpn-install.log in current dir)COMMENT
LOW⚡openvpn-install.sh414# Check if OpenVPN is installedCOMMENT
LOWopenvpn-install.sh906# Check if client name is valid (non-fatal, returns true/false)COMMENT
LOWopenvpn-install.sh1430 # Check if next arg is a value or another flagCOMMENT
LOWopenvpn-install.sh1462 # Check if already installedCOMMENT
LOWopenvpn-install.sh1583 # Check if next arg is a value or another flagCOMMENT
LOWopenvpn-install.sh1910 # Check if user just wants help (don't require root for help)COMMENT
LOWopenvpn-install.sh2051 # Check if running kernel's modules are availableCOMMENT
LOWopenvpn-install.sh2116# Check if OpenVPN version is at least the specified versionCOMMENT
LOWopenvpn-install.sh2139# Check if kernel version is at least the specified versionCOMMENT
LOWopenvpn-install.sh2157# Check if Data Channel Offload (DCO) is availableCOMMENT
LOWopenvpn-install.sh3088 # Check if configuration is DCO-compatible (udp or udp6)COMMENT
LOWopenvpn-install.sh4004 # Check if client name corresponds to an existing system user with a home directoryCOMMENT
LOWopenvpn-install.sh4356 # Check if client is in the valid fingerprints listCOMMENT
LOWopenvpn-install.sh4573 # Check if client already existsCOMMENT
LOWtest/validate-output.sh43 # Check if line starts with ANSI escape code (colored output from log functions)COMMENT
LOWtest/validate-output.sh48 # Check if line starts with our log prefixes (non-TTY mode)COMMENT
LOW.github/workflows/docker-test.yml260 # Check if OpenVPN server is running and client config existsCOMMENT
Self-Referential Comments5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMopenvpn-install.sh3098 # Create the server directory (OpenVPN 2.4+ directory structure)COMMENT
MEDIUMopenvpn-install.sh3165 # Create the PKI, set up the CA, the DH params and the server certificateCOMMENT
MEDIUMopenvpn-install.sh4640 # Create the block if this is the first clientCOMMENT
MEDIUM⚡test/server-entrypoint.sh955# Create a new client for revocation testingCOMMENT
MEDIUM⚡test/server-entrypoint.sh1183# Create a new certificate with the same name as the revoked oneCOMMENT
Verbosity Indicators7 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡openvpn-install.sh2453 # Step 1: Detect server IP addressesCOMMENT
LOW⚡openvpn-install.sh2475 # Step 2: Endpoint type selectionCOMMENT
LOW⚡openvpn-install.sh2506 # Step 3: Endpoint address (handle NAT for IPv4, direct for IPv6)COMMENT
LOW⚡openvpn-install.sh2551 # Step 4: Client IP versionsCOMMENT
LOW⚡openvpn-install.sh2597 # Step 5: IPv4 subnet (prompt only if IPv4 enabled, but always set for leak prevention)COMMENT
LOW⚡openvpn-install.sh2626 # Step 6: IPv6 subnet (if IPv6 enabled for clients)COMMENT
LOW⚡openvpn-install.sh2652 # Step 7: Client access policyCOMMENT
Structural Annotation Overuse7 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡openvpn-install.sh2453 # Step 1: Detect server IP addressesCOMMENT
LOW⚡openvpn-install.sh2475 # Step 2: Endpoint type selectionCOMMENT
LOW⚡openvpn-install.sh2506 # Step 3: Endpoint address (handle NAT for IPv4, direct for IPv6)COMMENT
LOW⚡openvpn-install.sh2551 # Step 4: Client IP versionsCOMMENT
LOW⚡openvpn-install.sh2597 # Step 5: IPv4 subnet (prompt only if IPv4 enabled, but always set for leak prevention)COMMENT
LOW⚡openvpn-install.sh2626 # Step 6: IPv6 subnet (if IPv6 enabled for clients)COMMENT
LOW⚡openvpn-install.sh2652 # Step 7: Client access policyCOMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtest/interactive-install-routing.sh18# Exercise command orchestration without touching the host system.COMMENT
AI Slop Vocabulary3 hits · 3 pts
SeverityFileLineSnippetContext
LOW⚡openvpn-install.sh1080 # If already set (non-interactive mode), just returnCOMMENT
LOWopenvpn-install.sh1118 # If already set (non-interactive mode), just returnCOMMENT
LOWopenvpn-install.sh1154 # If already set, just returnCOMMENT
Hyper-Verbose Identifiers4 hits · 2 pts
SeverityFileLineSnippetContext
LOWopenvpn-install.sh2046function checkArchPendingKernelUpgrade() {CODE
LOWopenvpn-install.sh4013function setClientConfigPermissions() {CODE
LOWopenvpn-install.sh4175function getClientsFromFingerprints() {CODE
LOWopenvpn-install.sh4188function clientExistsInFingerprints() {CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWopenvpn-install.sh1#!/bin/bashCOMMENT
LOWtest/validate-output.sh1#!/bin/bashCOMMENT