AI Slop Code Risk Monitor

raysan5/raylib

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

A simple and easy-to-use library to enjoy videogames programming

3.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for raysan5/raylib, a C project with 35,499 GitHub stars. SynthScan examined 398,982 lines of code across 466 source files, recording 1415 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 3.2 (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.

3.2
Adjusted Signal
3.2
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
35.5K
Stars
C
Language
399.0K
Lines of Code
466
Files
1.4K
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 14.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 0.5/100 · LOW

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

PR Review Velocity Impact 16.6/100 · LOW

Which changes need focused human review? 1415 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 18LOW 1397

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 1415 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 Block1353 hits · 1138 pts
SeverityFileLineSnippetContext
LOWCMakeLists.txt1cmake_minimum_required(VERSION 3.22)COMMENT
LOWtools/rlparser/rlparser.c61#include <stdlib.h> // Required for: malloc(), calloc(), realloc(), free(), atoi(), strtol()COMMENT
LOWtools/rexm/rexm.c61#elseCOMMENT
LOWtools/rexm/rexm.c701 // WARNING: This function uses TextFormat() extensively inside,COMMENT
LOWtools/rexm/rexm.c1561 // STEP 2: Build example (PLATFORM_DESKTOP)COMMENT
LOWprojects/Zig/src/core_basic_window.c21COMMENT
LOWprojects/CMake/core_basic_window.c21COMMENT
LOWprojects/scripts/build-osx.sh1#!/bin/shCOMMENT
LOWprojects/scripts/build-rpi.sh1#!/bin/shCOMMENT
LOWprojects/scripts/build-linux.sh1#!/bin/shCOMMENT
LOWprojects/VSCode/main.c21COMMENT
LOWexamples/examples_list.txt1#COMMENT
LOWexamples/textures/textures_portal_window.c21*COMMENT
LOWexamples/textures/textures_portal_window.c181COMMENT
LOWexamples/textures/raygui.h361COMMENT
LOWexamples/textures/raygui.h381#endifCOMMENT
LOWexamples/textures/raygui.h401// Macros to define required UI inputs, including mapping to gamepad controlsCOMMENT
LOWexamples/textures/raygui.h421 #if defined(PLATFORM_WEB)COMMENT
LOWexamples/textures/raygui.h441 #define GUI_BUTTON_DOWN 0COMMENT
LOWexamples/textures/raygui.h641 BORDER_WIDTH = 12, // Control border size, 0 for no borderCOMMENT
LOWexamples/textures/raygui.h1161#include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()]COMMENT
LOWexamples/textures/raygui.h1181 #define RAYGUI_CLITERAL(name) (name)COMMENT
LOWexamples/textures/raygui.h1201// One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels)COMMENT
LOWexamples/textures/raygui.h1481COMMENT
LOWexamples/textures/raygui.h1521//----------------------------------------------------------------------------------COMMENT
LOWexamples/textures/raygui.h1541// To use raygui as standalone library, below functions must be defined by the userCOMMENT
LOWexamples/textures/raygui.h1701{COMMENT
LOWexamples/textures/raygui.h4421 }COMMENT
LOWexamples/textures/raygui.h4761 // 4 | 2 | short | Version: 200, 400, 600COMMENT
LOWexamples/textures/raygui.h4781COMMENT
LOWexamples/textures/raygui.h4801 // ... | 16 | Rectangle | Glyph rectangle (in image)COMMENT
LOWexamples/textures/raygui.h5241char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName)COMMENT
LOWexamples/textures/raygui.h6101COMMENT
LOWexamples/core/core_undo_redo.c21#include <string.h> // Required for: memcpy(), strcmp()COMMENT
LOWexamples/core/msf_gif.h161//These functions are equivalent to the ones above, but they write results to a file incrementally,COMMENT
LOWexamples/core/msf_gif.h181COMMENT
LOWexamples/core/msf_gif.h201#include <stdlib.h> //malloc, etc.COMMENT
LOWexamples/core/core_3d_camera_fps.c21COMMENT
LOWexamples/core/core_window_web.c21#if defined(PLATFORM_WEB)COMMENT
LOWexamples/core/raygui.h361COMMENT
LOWexamples/core/raygui.h381#endifCOMMENT
LOWexamples/core/raygui.h401// Macros to define required UI inputs, including mapping to gamepad controlsCOMMENT
LOWexamples/core/raygui.h421 #if defined(PLATFORM_WEB)COMMENT
LOWexamples/core/raygui.h441 #define GUI_BUTTON_DOWN 0COMMENT
LOWexamples/core/raygui.h641 BORDER_WIDTH = 12, // Control border size, 0 for no borderCOMMENT
LOWexamples/core/raygui.h1161#include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()]COMMENT
LOWexamples/core/raygui.h1181 #define RAYGUI_CLITERAL(name) (name)COMMENT
LOWexamples/core/raygui.h1201// One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels)COMMENT
LOWexamples/core/raygui.h1481COMMENT
LOWexamples/core/raygui.h1521//----------------------------------------------------------------------------------COMMENT
LOWexamples/core/raygui.h1541// To use raygui as standalone library, below functions must be defined by the userCOMMENT
LOWexamples/core/raygui.h1701{COMMENT
LOWexamples/core/raygui.h4421 }COMMENT
LOWexamples/core/raygui.h4761 // 4 | 2 | short | Version: 200, 400, 600COMMENT
LOWexamples/core/raygui.h4781COMMENT
LOWexamples/core/raygui.h4801 // ... | 16 | Rectangle | Glyph rectangle (in image)COMMENT
LOWexamples/core/raygui.h5241char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName)COMMENT
LOWexamples/core/raygui.h6101COMMENT
LOWexamples/core/core_input_gamepad.c21COMMENT
LOWexamples/others/rlgl_standalone.c61//#define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supportedCOMMENT
1293 more matches not shown…
Structural Annotation Overuse28 hits · 42 pts
SeverityFileLineSnippetContext
LOWexamples/textures/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/textures/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/core/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/core/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/shapes/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/shapes/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/models/models_waving_cubes.c94 // NOTE: This function is quite costly to be done per cube and frame,COMMENT
LOWexamples/models/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/models/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/audio/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/audio/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/shaders/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/shaders/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWexamples/text/raygui.h6349// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWexamples/text/raygui.h6367// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWsrc/rmodels.c1215// NOTE: This function takes care of all model elements, for a detailed controlCOMMENT
LOWsrc/rlgl.h637// NOTE: This functions are used to completely abstract raylib code from OpenGL layer,COMMENT
LOWsrc/rtext.c1624// NOTE: This function replaces atoi() [stdlib.h]COMMENT
LOWsrc/rtext.c1645// NOTE: This function replaces atof() [stdlib.h]COMMENT
LOWsrc/rcore.c1844// NOTE: This function is expected to be called before window creation,COMMENT
LOWsrc/platforms/rcore_web.c996// NOTE: This function is only safe to use if the provided URL is safeCOMMENT
LOWsrc/platforms/rcore_memory.c384// NOTE: This function is only safe to use if you control the URL given.COMMENT
LOWsrc/platforms/rcore_drm.c1557 // NOTE: This function use and modify global module variables:COMMENT
LOWsrc/platforms/rcore_drm.c1589 // NOTE: This function use and modify global module variables:COMMENT
LOWsrc/platforms/rcore_android.c1000 // NOTE: This function use and modify global module variables:COMMENT
LOWsrc/external/rlsw.h5595// NOTE: This function should only render affine axis-aligned quadsCOMMENT
LOWsrc/external/glfw/src/init.c179// NOTE: This function destroys the provided stringCOMMENT
LOWsrc/external/glfw/src/glx_context.c427 // NOTE: This function must not call any X11 functions, as it is calledCOMMENT
Decorative Section Separators10 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMsrc/external/glfw/CMakeLists.txt50#--------------------------------------------------------------------COMMENT
MEDIUMsrc/external/glfw/CMakeLists.txt52#--------------------------------------------------------------------COMMENT
MEDIUM⚡src/external/glfw/CMakeLists.txt66#--------------------------------------------------------------------COMMENT
MEDIUM⚡src/external/glfw/CMakeLists.txt69#--------------------------------------------------------------------COMMENT
MEDIUM⚡src/external/glfw/CMakeLists.txt74#--------------------------------------------------------------------COMMENT
MEDIUM⚡src/external/glfw/CMakeLists.txt76#--------------------------------------------------------------------COMMENT
MEDIUMsrc/external/glfw/CMakeLists.txt90#--------------------------------------------------------------------COMMENT
MEDIUMsrc/external/glfw/CMakeLists.txt92#--------------------------------------------------------------------COMMENT
MEDIUMsrc/external/glfw/CMakeLists.txt107#--------------------------------------------------------------------COMMENT
MEDIUMsrc/external/glfw/CMakeLists.txt110#--------------------------------------------------------------------COMMENT
Fake / Example Data12 hits · 17 pts
SeverityFileLineSnippetContext
LOW⚡examples/core/resources/text_file.txt1Starting of the Lorem ipsum dolor sit amet fileCODE
LOW⚡examples/core/resources/text_file.txt1Starting of the Lorem ipsum dolor sit amet fileCODE
LOW⚡examples/core/resources/text_file.txt2Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt2Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt7Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt13Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt13Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetuCODE
LOW⚡examples/core/resources/text_file.txt18Ending of the Lorem ipsum dolor sit amet fileCODE
LOW⚡examples/core/resources/text_file.txt18Ending of the Lorem ipsum dolor sit amet fileCODE
LOWexamples/text/text_rectangle_bounds.c41a long text for testing.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \CODE
LOWexamples/text/text_rectangle_bounds.c41a long text for testing.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \CODE
AI Slop Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
LOWexamples/core/core_custom_frame_control.c82 #ifdef PLATFORM_WEB // NOTE: On web platform for some reason the PollInputEvents only works after thCOMMENT
MEDIUMsrc/shell.html252 // To make your application robust, you may want to override this behavior before shipping!COMMENT
MEDIUMsrc/rlgl.h2341 // Init state: Cubemap seamlessCOMMENT
MEDIUMsrc/external/stb_vorbis.c51// 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memoryCOMMENT
MEDIUMsrc/external/rlsw.h3295 // This test is robust for points with w > 0 or w < 0, correctlyCOMMENT
MEDIUMsrc/external/rlsw.h3407 // This test is robust for points with w > 0 or w < 0 within the triangle,COMMENT
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMprojects/scripts/build-osx.sh108# Create the raylib cache directoryCOMMENT
MEDIUMprojects/scripts/build-rpi.sh108# Create the raylib cache directoryCOMMENT
MEDIUMprojects/scripts/build-linux.sh108# Create the raylib cache directoryCOMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/external/sdefl.h17## Usage:COMMENT
LOWsrc/external/sinfl.h18## Usage:COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/external/dr_flac.h5956 /* We found a FLAC frame. We need to check if it contains the sample we're looking for. */COMMENT