AI Slop Code Risk Monitor

curl/curl

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

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

2.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for curl/curl, a C project with 43,325 GitHub stars. SynthScan examined 446,338 lines of code across 2221 source files, recording 776 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.0 (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.

2.0
Adjusted Signal
2.0
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
43.3K
Stars
C
Language
446.3K
Lines of Code
2.2K
Files
776
Pattern Hits
2026-10-31
Scan Date
0.00
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 8.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

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

Agent Over-Engineering Ratio 0.8/100 · LOW

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

PR Review Velocity Impact 9.4/100 · LOW

Which changes need focused human review? 776 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 4MEDIUM 44LOW 728

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 776 distinct pattern matches across 14 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 Block647 hits · 633 pts
SeverityFileLineSnippetContext
LOWCMakeLists.txt1#***************************************************************************COMMENT
LOWCMakeLists.txt2321 # Consumed variables:COMMENT
LOWCMakeLists.txt2341 "${PROJECT_SOURCE_DIR}/curl-config.in"COMMENT
LOWCMakeLists.txt2361 # LIBCURL_PC_REQUIRESCOMMENT
LOWCMakeLists.txt2401 set(PACKAGE_FIND_VERSION_COUNT 1)COMMENT
LOWCMakeLists.txt2421 # HAVE_LIBZ ZLIB_VERSION_MAJORCOMMENT
LOWappveyor.sh1#!/usr/bin/env bashCOMMENT
LOWappveyor.yml1#***************************************************************************COMMENT
LOWCMake/CurlTests.c21 * SPDX-License-Identifier: curlCOMMENT
LOWCMake/CurlTests.c101}COMMENT
LOWCMake/CurlTests.c181{COMMENT
LOWCMake/CurlTests.c221#endifCOMMENT
LOWCMake/CurlTests.c241 return 0;COMMENT
LOWCMake/CurlTests.c341#include <sys/types.h>COMMENT
LOWCMake/CurlTests.c361#endifCOMMENT
LOWinclude/curl/mprintf.h41#ifdef __MINGW_PRINTF_FORMAT /* mingw-w64 3.0.0+. Needs stdio.h. */COMMENT
LOWinclude/curl/curl.h61COMMENT
LOWinclude/curl/curl.h121#define CURL_HAS_DECLSPEC_ATTRIBUTE(x) 0COMMENT
LOWinclude/curl/curl.h681/* The following were added in 7.17.1 */COMMENT
LOWinclude/curl/curl.h701#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIEDCOMMENT
LOWinclude/curl/curl.h841#define CURLAUTH_DIGEST_IE (((unsigned long)1) << 4)COMMENT
LOWinclude/curl/curl.h861COMMENT
LOWinclude/curl/curl.h981/* The default connection upkeep interval in milliseconds. */COMMENT
LOWinclude/curl/curl.h1081COMMENT
LOWinclude/curl/curl.h1101#define CURLPROTO_IMAPS (1L << 13)COMMENT
LOWinclude/curl/curl.h2361COMMENT
LOWinclude/curl/curl.h2401#define CURL_SSLVERSION_TLSv1_3 7LCOMMENT
LOWinclude/curl/curl.h3201typedef struct curl_version_info_data curl_version_info_data;COMMENT
LOWinclude/curl/curl.h3221#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */COMMENT
LOWinclude/curl/curl.h3341 stuff before they can be included! */COMMENT
LOWinclude/curl/curl.h3361 recursive macros, use a two-stage solution. */COMMENT
LOWinclude/curl/system.h61# define CURL_TYPEOF_CURL_OFF_T __int64COMMENT
LOWinclude/curl/system.h81# endifCOMMENT
LOWinclude/curl/system.h101# endifCOMMENT
LOWinclude/curl/system.h121# ifndef __LP64COMMENT
LOWinclude/curl/system.h141# define CURL_SUFFIX_CURL_OFF_T i64COMMENT
LOWinclude/curl/system.h161# define CURL_SUFFIX_CURL_OFF_TU ULCOMMENT
LOWinclude/curl/system.h181#elif defined(__MVS__)COMMENT
LOWinclude/curl/system.h201# ifdef _LONG_LONGCOMMENT
LOWinclude/curl/system.h221# define CURL_FORMAT_CURL_OFF_T "ld"COMMENT
LOWinclude/curl/system.h241 defined(__sparcv8plus))COMMENT
LOWinclude/curl/system.h261# define CURL_TYPEOF_CURL_OFF_T long longCOMMENT
LOWinclude/curl/system.h281# define CURL_FORMAT_CURL_OFF_TU "llu"COMMENT
LOWinclude/curl/system.h301# include <inttypes.h>COMMENT
LOWinclude/curl/system.h321 defined(__sparc__) || defined(__mips__) || defined(__sh__) || \COMMENT
LOWinclude/curl/system.h341# define CURL_FORMAT_CURL_OFF_T "ld"COMMENT
LOWinclude/curl/system.h361# define CURL_SUFFIX_CURL_OFF_TU ULLCOMMENT
LOWinclude/curl/urlapi.h81 CURLUPART_FRAGMENT,COMMENT
LOWprojects/OS400/makefile.sh1#!/bin/shCOMMENT
LOWprojects/OS400/makefile.sh21#COMMENT
LOWprojects/OS400/initscript.sh1#!/bin/shCOMMENT
LOWprojects/OS400/initscript.sh101# OS/400 specific definitions.COMMENT
LOWprojects/OS400/make-tests.sh1#!/bin/shCOMMENT
LOWprojects/OS400/ccsidcurl.c21 * SPDX-License-Identifier: curlCOMMENT
LOWprojects/OS400/ccsidcurl.c41#include "urldata.h"COMMENT
LOWprojects/OS400/make-src.sh1#!/bin/shCOMMENT
LOWprojects/OS400/make-include.sh1#!/bin/shCOMMENT
LOWprojects/OS400/make-docs.sh1#!/bin/shCOMMENT
LOWprojects/OS400/make-docs.sh61# Man page is useless as OS/400 has no man command.COMMENT
LOWprojects/OS400/os400sys.c41#ifdef HAVE_LIBZCOMMENT
587 more matches not shown…
Self-Referential Comments22 hits · 66 pts
SeverityFileLineSnippetContext
MEDIUMprojects/OS400/makefile.sh50# Create the OS/400 library if it does not exist.COMMENT
MEDIUMprojects/OS400/makefile.sh58# Create the DOCS source file if it does not exist.COMMENT
MEDIUMprojects/OS400/makefile.sh88# Create the RPGXAMPLES source file if it does not exist.COMMENT
MEDIUMprojects/OS400/make-src.sh89# Create the IFS command.COMMENT
MEDIUMprojects/OS400/make-src.sh101# Create the CL interface program.COMMENT
MEDIUMprojects/OS400/make-src.sh112# Create the CL command.COMMENT
MEDIUMprojects/OS400/make-include.sh34# Create the OS/400 source program file for the header files.COMMENT
MEDIUMprojects/OS400/make-include.sh45# Create the IFS directory for the header files.COMMENT
MEDIUMprojects/OS400/make-lib.sh120# Create the service program exportation file in DB2 member if needed.COMMENT
MEDIUMtests/runner.pm25# This module contains entry points to run a single test. runner_initCOMMENT
MEDIUMtests/runner.pm184 # Create a separate process in multiprocess modeCOMMENT
MEDIUMtests/globalconfig.pm25# This module contains global variables used in multiple modules in the testCOMMENT
MEDIUMtests/util.py68 # Create the test filenameCOMMENT
MEDIUMtests/test613.pl47 # Create the files in alphabetical order, to increase the chancesCOMMENT
MEDIUMtests/servers.pm25# This module contains functions that are useful for managing the lifecycle ofCOMMENT
MEDIUMtests/servers.pm174# Create a server socket on a random (unused) port, then close it andCOMMENT
MEDIUMtests/servers.pm192# Initialize configuration variablesCOMMENT
MEDIUMtests/devtest.pl69# This function is currently required to be here by servers.pmCOMMENT
MEDIUMtests/ftpserver.pl1147# This function is dumb (so far) and removes the quotes if present.COMMENT
MEDIUMtests/testutil.pm25# This module contains miscellaneous functions needed in several parts ofCOMMENT
MEDIUMtests/runtests.pl30# The following sections need to be modified:COMMENT
MEDIUMtests/http/testenv/h2o.py283 # Create a simple test fileCOMMENT
Decorative Section Separators10 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMprojects/vms/make_gnv_curl_install.sh24#==========================================================================COMMENT
MEDIUMprojects/vms/gnv_curl_configure.sh22#==========================================================================COMMENT
MEDIUM⚡tests/ftpserver.pl2959#----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/ftpserver.pl2960#----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/ftpserver.pl2962#----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/ftpserver.pl2963#----------------------------------------------------------------------COMMENT
MEDIUMscripts/checksrc.pl634 # ------------------------------------------------------------COMMENT
MEDIUMscripts/checksrc.pl637 # ------------------------------------------------------------COMMENT
MEDIUMscripts/checksrc.pl663 # ------------------------------------------------------------COMMENT
MEDIUMscripts/checksrc.pl666 # ------------------------------------------------------------COMMENT
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUMtests/runner.pm1116 # Test harness ssh server does not have this synchronization mechanism,COMMENT
MEDIUMtests/serverhelp.pm70# For convenience, test harness uses 'https' literal as values for 'proto'COMMENT
MEDIUMtests/globalconfig.pm26# harness but not really "owned" by any one.COMMENT
MEDIUMtests/servers.pm872# For convenience, test harness uses 'https' literalCOMMENT
MEDIUMtests/devtest.pl27# runtests.pl harness. Do not try to use this unless you know what you areCOMMENT
MEDIUMtests/devtest.pl119# Initialize the test harness to run testsCOMMENT
MEDIUMtests/secureserver.pl27# harness. Actually a layer that runs stunnel properly using theCOMMENT
MEDIUMtests/secureserver.pl28# non-secure test harness servers.COMMENT
MEDIUMtests/sshserver.pl26# Starts sshd for use in the SCP and SFTP curl test harness tests.COMMENT
MEDIUMtests/testcurl.pl664 # build test harness programs for selected cross-compilesCOMMENT
MEDIUMtests/runtests.pl29# are able to run curl but are unable to run the test harness.COMMENT
Deep Nesting26 hits · 26 pts
SeverityFileLineSnippetContext
LOWtests/negtelnetserver.py120CODE
LOWtests/negtelnetserver.py165CODE
LOWtests/http/test_24_ocsp.py89CODE
LOWtests/http/conftest.py52CODE
LOWtests/http/test_02_download.py680CODE
LOWtests/http/test_17_ssl_use.py244CODE
LOWtests/http/scorecard.py774CODE
LOWtests/http/scorecard.py149CODE
LOWtests/http/scorecard.py193CODE
LOWtests/http/scorecard.py235CODE
LOWtests/http/scorecard.py299CODE
LOWtests/http/scorecard.py636CODE
LOWtests/http/scorecard.py701CODE
LOWtests/http/test_20_websockets.py189CODE
LOWtests/http/test_20_websockets.py193CODE
LOWtests/http/testenv/curl.py189CODE
LOWtests/http/testenv/curl.py227CODE
LOWtests/http/testenv/curl.py416CODE
LOWtests/http/testenv/curl.py1028CODE
LOWtests/http/testenv/curl.py1122CODE
LOWtests/http/testenv/curl.py1190CODE
LOWtests/http/testenv/env.py113CODE
LOWtests/http/testenv/env.py744CODE
LOWtests/http/testenv/env.py784CODE
LOWtests/http/testenv/client.py81CODE
LOWtests/http/testenv/ws_dl_server.py34CODE
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHtests/http/test_06_eyeballs.py111except socket.timeout:CODE
HIGHtests/http/test_20_websockets.py226except OSError:CODE
HIGHtests/http/testenv/curl.py92except psutil.NoSuchProcess:CODE
HIGHtests/http/testenv/curl.py299except (json.JSONDecodeError, TypeError, ValueError):CODE
Redundant / Tautological Comments13 hits · 20 pts
SeverityFileLineSnippetContext
LOWprojects/OS400/initscript.sh72# Check if perl available.COMMENT
LOWprojects/OS400/initscript.sh171# Set LINK to "YES" if the module has been compiled.COMMENT
LOWprojects/OS400/make-src.sh33# Check if built-in manual can be generated.COMMENT
LOWtests/test1222.pl170 # Check if paragraph is mentioning deprecation.COMMENT
LOWtests/test1222.pl288# Print results.COMMENT
LOWtests/servers.pm266# Check if a given child process has died. Reaps it if so.COMMENT
LOWtests/ech_tests.sh284# Check if ports other than 443 are blocked from thisCOMMENT
LOWtests/testcurl.pl321# Set timestamp to the UTC this script is running. Its value mightCOMMENT
LOWtests/testcurl.pl414 # Set timestamp to the UTC the git update took place.COMMENT
LOWtests/testcurl.pl463# Set timestamp to the one in curlver.h if this is not a git test build.COMMENT
LOWtests/runtests.pl320# Check if we have nghttpx available and if it talks http/3COMMENT
LOWtests/runtests.pl487# Check if the operating environment supports UTF-8.COMMENT
LOWscripts/cmakeopts.sh6# Verify if CMake options are documentedCOMMENT
Unused Imports20 hits · 20 pts
SeverityFileLineSnippetContext
LOWtests/http/testenv/__init__.py31CODE
LOWtests/http/testenv/__init__.py31CODE
LOWtests/http/testenv/__init__.py31CODE
LOWtests/http/testenv/__init__.py33CODE
LOWtests/http/testenv/__init__.py34CODE
LOWtests/http/testenv/__init__.py34CODE
LOWtests/http/testenv/__init__.py35CODE
LOWtests/http/testenv/__init__.py36CODE
LOWtests/http/testenv/__init__.py37CODE
LOWtests/http/testenv/__init__.py38CODE
LOWtests/http/testenv/__init__.py39CODE
LOWtests/http/testenv/__init__.py39CODE
LOWtests/http/testenv/__init__.py40CODE
LOWtests/http/testenv/__init__.py41CODE
LOWtests/http/testenv/__init__.py41CODE
LOWtests/http/testenv/__init__.py41CODE
LOWtests/http/testenv/__init__.py41CODE
LOWtests/http/testenv/__init__.py42CODE
LOWtests/http/testenv/__init__.py43CODE
LOWtests/http/testenv/__init__.py44CODE
AI Structural Patterns8 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/http/scorecard.py235CODE
LOWtests/http/scorecard.py701CODE
LOWtests/http/testenv/dnsd.py171CODE
LOWtests/http/testenv/curl.py627CODE
LOWtests/http/testenv/curl.py735CODE
LOWtests/http/testenv/curl.py811CODE
LOWtests/http/testenv/curl.py1104CODE
LOWtests/http/testenv/certs.py85CODE
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/libtest/lib1507.c59 curl_easy_setopt(curl, CURLOPT_USERNAME, "user@example.com");CODE
LOWdocs/libcurl/opts/CURLOPT_UPLOAD_FLAGS.md100 curl_easy_setopt(curl, CURLOPT_USERNAME, "user@example.com");CODE
LOWdocs/examples/ftpuploadfrommem.c34 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWdocs/examples/ftpuploadfrommem.c34 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWdocs/examples/post-callback.c35 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWdocs/examples/post-callback.c35 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
Excessive Try-Catch Wrapping5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtests/negtelnetserver.py350 except Exception:CODE
LOWtests/dictserver.py175 except Exception:CODE
LOWtests/http/testenv/curl.py253 except Exception:CODE
LOWtests/http/testenv/env.py301 except Exception:CODE
LOWtests/http/testenv/env.py412 except Exception:CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/libtest/mk-lib1521.pl28# Usage:COMMENT
LOWdocs/examples/version-check.pl36# Usage:COMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMlib/vtls/gtls.c1806 given hostname. This is a basic implementation of the matching describedCODE
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtests/http/testenv/env.py587 def curl_lib_version_at_least(cls, libname: str, min_version) -> bool:CODE