AI Slop Code Risk Monitor

Novum/vkQuake

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

Vulkan Quake port based on QuakeSpasm

3.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Novum/vkQuake, a C project with 2,313 GitHub stars. SynthScan examined 312,316 lines of code across 411 source files, recording 1278 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.0
Adjusted Signal
3.0
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
2.3K
Stars
C
Language
312.3K
Lines of Code
411
Files
1.3K
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.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1278 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 0.0/100 · LOW

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

PR Review Velocity Impact 18.6/100 · LOW

Which changes need focused human review? 1278 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 3LOW 1275

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 1278 distinct pattern matches across 4 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 Block1270 hits · 926 pts
SeverityFileLineSnippetContext
LOWQuake/q_stdinc.h61#include "msinttypes/stdint.h"COMMENT
LOWQuake/q_stdinc.h161#define PATH_MAX MAXPATHLENCOMMENT
LOWQuake/q_stdinc.h181COMMENT
LOWQuake/q_stdinc.h201#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 3))COMMENT
LOWQuake/q_stdinc.h221#endifCOMMENT
LOWQuake/q_stdinc.h241#endifCOMMENT
LOWQuake/lodepng.h101#define LODEPNG_COMPILE_CRCCOMMENT
LOWQuake/protocol.h21*/COMMENT
LOWQuake/protocol.h41#define PRFL_EDICTSCALE (1 << 5)COMMENT
LOWQuake/protocol.h61#define U_ORIGIN1 (1 << 1)COMMENT
LOWQuake/protocol.h81#define U_MODEL2 (1 << 18) // 1 byte, this is .modelindex & 0xFF00 (second byte)COMMENT
LOWQuake/protocol.h101#define UF_PREDINFO (1u << 6) /*ent is predicted, probably a player*/COMMENT
LOWQuake/protocol.h121#define UF_TRAILEFFECT (1u << 22) /*attaches custom particle trails to entities, woo.*/COMMENT
LOWQuake/protocol.h141#define UFP_WEAPONFRAME_OLD (1u << 7) // no longer used. just a stat now that I rewrote stat deltas.COMMENT
LOWQuake/protocol.h161#define SU_EXTEND1 (1 << 15) // another byte to followCOMMENT
LOWQuake/protocol.h181// spikeCOMMENT
LOWQuake/protocol.h201// spikeCOMMENT
LOWQuake/protocol.h221COMMENT
LOWQuake/protocol.h241#define svc_updatestat 3 // [byte] [long]COMMENT
LOWQuake/protocol.h261#define svc_updatecolors 17 // [byte] [byte]COMMENT
LOWQuake/protocol.h281// johnfitz -- PROTOCOL_FITZQUAKE -- new server messagesCOMMENT
LOWQuake/protocol.h301#define svc_achievement 52 // [string] idCOMMENT
LOWQuake/protocol.h321#define svcdp_entities 57COMMENT
LOWQuake/protocol.h341#define clc_disconnect 2COMMENT
LOWQuake/common.c21*/COMMENT
LOWQuake/bspfile.h21*/COMMENT
LOWQuake/bspfile.h41#define MAX_MAP_MARKSURFACES 65535COMMENT
LOWQuake/bspfile.h81COMMENT
LOWQuake/bspfile.h161#define CONTENTS_SOLID -2COMMENT
LOWQuake/glquake.h41// Waits until the CPU has submitted the frame. The GPU may still be drawing it.COMMENT
LOWQuake/glquake.h181} vulkan_memory_type_t;COMMENT
LOWQuake/miniz.c3121#define MZ_FOPEN mz_fopenCOMMENT
LOWQuake/miniz.c3141#endifCOMMENT
LOWQuake/miniz.c3161#define MZ_FWRITE fwriteCOMMENT
LOWQuake/miniz.c3181#define MZ_FILE_STAT stat64COMMENT
LOWQuake/miniz.c3201COMMENT
LOWQuake/net.h81// returns 2 if an unreliable message was receivedCOMMENT
LOWQuake/snd_mpg123.c21COMMENT
LOWQuake/quakever.h21#ifndef QUAKEVER_HCOMMENT
LOWQuake/quakever.h41#define VKQUAKE_VERSION 1.37COMMENT
LOWQuake/stb_image_write.h161#ifndef _CRT_NONSTDC_NO_DEPRECATECOMMENT
LOWQuake/stb_image_write.h181#endifCOMMENT
LOWQuake/snd_codec.c21 * with this program; if not, write to the Free Software Foundation, Inc.,COMMENT
LOWQuake/mdfour.c61/* NOTE: This code makes no attempt to be fast!COMMENT
LOWQuake/sv_main.c161// #define UF_UNUSED UF_EXTEND2 /**/COMMENT
LOWQuake/sys_sdl_win.c21COMMENT
LOWQuake/cfgfile.h21COMMENT
LOWQuake/mem.c21COMMENT
LOWQuake/mem.c41// activate mimalloc debug and guarded pages:COMMENT
LOWQuake/steam.c21// steam.c -- Steam/GOG/Epic Games Store config parsing, from IronwailCOMMENT
LOWQuake/stb_image_resize2.h401typedef uint16_t stbir_uint16;COMMENT
LOWQuake/stb_image_resize2.h421// Easy-to-use API:COMMENT
LOWQuake/stb_image_resize2.h541// * Separate edge modes for each axisCOMMENT
LOWQuake/stb_image_resize2.h641// types of resizes.COMMENT
LOWQuake/stb_image_resize2.h661// And this is the main function to perform the resize synchronously on one thread.COMMENT
LOWQuake/stb_image_resize2.h681COMMENT
LOWQuake/stb_image_resize2.h701// your own data.COMMENT
LOWQuake/stb_image_resize2.h721// CopyOrStreamData( optional_output, other_data_src, num_pixels * pixel_width_in_bytes );COMMENT
LOWQuake/stb_image_resize2.h781//// end header file /////////////////////////////////////////////////////COMMENT
LOWQuake/stb_image_resize2.h801COMMENT
1210 more matches not shown…
AI Slop Vocabulary4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMQuake/sv_phys.c723// 0=off; 1=legacy DIST_EPSILON nudge, clients only; 2=legacy nudge, all entities; 3=robust pusher contact (default)COMMENT
MEDIUMQuake/sv_phys.c1651 // remove the onground flag for non-players. riders keep it under robustCOMMENT
MEDIUMQuake/mimalloc/prim/osx/alloc-override-zone.c438// it seems less robust than using interpose.COMMENT
LOWWindows/SDL3/include/SDL3/SDL_main_impl.h134 #else /* platforms that use a standard main() and just call SDL_RunApp(), like iOS and 3DS */COMMENT
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWQuake/pr_ext.c65// one funky way is to allocate a single large buffer and just concatenate it for more tempstring space. don't forget toCOMMENT
LOWQuake/lodepng.c72lodepng source code. Don't forget to remove "static" if you copypaste themCODE
LOWWindows/SDL3/include/SDL3/SDL_process.h39 * Don't forget to call SDL_DestroyProcess() to clean up, whether the processCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWQuake/mimalloc/options.c620// TODO: implement ourselves to reduce dependencies on the C runtimeCOMMENT