AI Slop Code Risk Monitor

Fluorohydride/ygopro

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

A script engine for "yu-gi-oh!" and sample gui

2.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Fluorohydride/ygopro, a C++ project with 2,069 GitHub stars. SynthScan examined 42,818 lines of code across 74 source files, recording 119 pattern matches distributed across 2 syntactic categories. The legacy adjusted pattern signal is 2.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.

2.2
Adjusted Signal
2.2
Raw Pattern Score
100%
Time Factor
2026-10-21
Last Push
2.1K
Stars
C++
Language
42.8K
Lines of Code
74
Files
119
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 10.6/100 · LOW

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

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

PR Review Velocity Impact 13.0/100 · LOW

Which changes need focused human review? 119 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 0LOW 119

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 119 distinct pattern matches across 2 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 Block115 hits · 92 pts
SeverityFileLineSnippetContext
LOWgframe/sound_manager.h41 void SetSoundVolume(int volume);COMMENT
LOWgframe/sound_manager.h61#define SOUND_DRAW 203COMMENT
LOWgframe/sound_manager.h81#define BGM_ALL 0COMMENT
LOWgframe/deck_con.cpp1#include <algorithm>COMMENT
LOWgframe/mysocket.h1#ifndef YGOPRO_SOCKET_HCOMMENT
LOWgframe/config.h1#ifndef YGOPRO_CONFIG_HCOMMENT
LOWgframe/stb_image_resize2.h401typedef uint32_t stbir_uint32;COMMENT
LOWgframe/stb_image_resize2.h421//COMMENT
LOWgframe/stb_image_resize2.h541// * Separate input and output data typesCOMMENT
LOWgframe/stb_image_resize2.h641STBIRDEF int stbir_set_non_pm_alpha_speed_over_quality( STBIR_RESIZE * resize, int non_pma_alpha_speed_over_quality );COMMENT
LOWgframe/stb_image_resize2.h661STBIRDEF int stbir_resize_extended( STBIR_RESIZE * resize );COMMENT
LOWgframe/stb_image_resize2.h681// Note that you MUST call stbir_build_samplers_with_splits before stbir_resize_extended_split!COMMENT
LOWgframe/stb_image_resize2.h701//COMMENT
LOWgframe/stb_image_resize2.h721// return optional_output; // return the optional buffer that we filledCOMMENT
LOWgframe/stb_image_resize2.h781#endif // STBIR_INCLUDE_STB_IMAGE_RESIZE2_HCOMMENT
LOWgframe/stb_image_resize2.h801#elseCOMMENT
LOWgframe/stb_image_resize2.h821#endifCOMMENT
LOWgframe/stb_image_resize2.h841#endifCOMMENT
LOWgframe/stb_image_resize2.h881 STBIRI_AR_PM = 16,COMMENT
LOWgframe/stb_image_resize2.h1161 return (unsigned char) ((bias + scale*t) >> 16);COMMENT
LOWgframe/stb_image_resize2.h1181COMMENT
LOWgframe/stb_image_resize2.h1201 #define STBIR_AVX2COMMENT
LOWgframe/stb_image_resize2.h1221#endifCOMMENT
LOWgframe/stb_image_resize2.h1241 #elseCOMMENT
LOWgframe/stb_image_resize2.h1261#elseCOMMENT
LOWgframe/stb_image_resize2.h1281#endifCOMMENT
LOWgframe/stb_image_resize2.h1301#endifCOMMENT
LOWgframe/stb_image_resize2.h1321 #define stbir__simdf_load2( out, ptr ) (out) = _mm_castsi128_ps( _mm_loadl_epi64( (__m128i*)(ptr)) ) // top values canCOMMENT
LOWgframe/stb_image_resize2.h1361 out1 = _mm_unpackhi_epi16( ireg, zero ); \COMMENT
LOWgframe/stb_image_resize2.h1381 #define stbir__simdf_madd1( out, add, mul1, mul2 ) (out) = _mm_fmadd_ss( mul1, mul2, add )COMMENT
LOWgframe/stb_image_resize2.h1401COMMENT
LOWgframe/stb_image_resize2.h1461 #if defined(_MSC_VER) && !defined(__clang__)COMMENT
LOWgframe/stb_image_resize2.h1501 #include <immintrin.h>COMMENT
LOWgframe/stb_image_resize2.h1641COMMENT
LOWgframe/stb_image_resize2.h1661COMMENT
LOWgframe/stb_image_resize2.h1721 #define stbir__simdf_load1( out, ptr ) (out) = vld1q_dup_f32( (float const*)(ptr) ) // top values can be random (not dCOMMENT
LOWgframe/stb_image_resize2.h1761 { \COMMENT
LOWgframe/stb_image_resize2.h1781 #define stbir__simdf_madd( out, add, mul1, mul2 ) (out) = vfmaq_f32( add, mul1, mul2 )COMMENT
LOWgframe/stb_image_resize2.h1921COMMENT
LOWgframe/stb_image_resize2.h1981 #define stbir_simdi_castf( reg ) (reg)COMMENT
LOWgframe/stb_image_resize2.h2021 v128_t tmp = wasm_u16x8_extend_low_u8x16(ireg); \COMMENT
LOWgframe/stb_image_resize2.h2041 #define stbir__simdf_add_mem( out, reg, ptr ) (out) = wasm_f32x4_add( reg, wasm_v128_load( (void const*)(ptr) )COMMENT
LOWgframe/stb_image_resize2.h2121 #define STBIR__SIMDF_CONST(var, x) stbir__simdf var = (v128_t)(stbir__f32x4){ x, x, x, x }COMMENT
LOWgframe/stb_image_resize2.h2141 return wasm_f32x4_extract_lane( wasm_f32x4_ceil( wasm_f32x4_splat(x) ), 0);COMMENT
LOWgframe/stb_image_resize2.h2161 #define stbir__simdfX_madd stbir__simdf8_maddCOMMENT
LOWgframe/stb_image_resize2.h2181 static const stbir__simdf8 STBIR_simd_point58 = { 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5 };COMMENT
LOWgframe/stb_image_resize2.h2201 #define stbir__simdfX_1a1a stbir__simdf_1a1aCOMMENT
LOWgframe/stb_image_resize2.h2541#define stbir__simdf_0123to0001( out, reg ) (out) = stbir__simdf_swiz( reg, 0,0,0,1 )COMMENT
LOWgframe/stb_image_resize2.h2781#define STBIR_PROFILE_START_ll( info, wh ) { stbir_uint64 wh##thiszonetime = STBIR_PROFILE_FUNC(); stbir_uint64 * wh##saCOMMENT
LOWgframe/stb_image_resize2.h2801#define STBIR_ONLY_PROFILE_SET_SPLIT_INFOCOMMENT
LOWgframe/stb_image_resize2.h2821#define STBIR_CEILF(x) ((float)ceil((float)(x)))COMMENT
LOWgframe/stb_image_resize2.h4081#define stbir__decode_swizzleCOMMENT
LOWgframe/stb_image_resize2.h4101#define stbir__encode_order1 0COMMENT
LOWgframe/stb_image_resize2.h4121COMMENT
LOWgframe/stb_image_resize2.h6081#define STB_IMAGE_RESIZE_DO_HORIZONTALSCOMMENT
LOWgframe/stb_image_resize2.h6101#define STB_IMAGE_RESIZE_DO_VERTICALSCOMMENT
LOWgframe/stb_image_resize2.h6121#include STBIR__HEADER_FILENAMECOMMENT
LOWgframe/stb_image_resize2.h6141#define STBIR__vertical_channels 7COMMENT
LOWgframe/stb_image_resize2.h6761 // ok, when we are gathering, we need to make sure we are starting on a y offset that doesn't haveCOMMENT
LOWgframe/stb_image_resize2.h6961#endifCOMMENT
55 more matches not shown…
Hyper-Verbose Identifiers4 hits · 4 pts
SeverityFileLineSnippetContext
LOWpremake5.lua241local function ResolveDirectoryVariableToFullPath(varname)CODE
LOWpremake5.lua254local function ResolvePreBuiltDependencyDirectory(dep)CODE
LOWpremake5.lua274local function ResolveBuildFromSourceDependencyDirectory(dep)CODE
LOWgframe/data_manager.h78class DataManager {CODE