AI Slop Code Risk Monitor

mackron/miniaudio

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

Audio playback and capture library written in C, in a single source file.

2.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for mackron/miniaudio, a C project with 7,452 GitHub stars. SynthScan examined 49,907 lines of code across 115 source files, recording 102 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 2.1 (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.1
Adjusted Signal
2.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
7.5K
Stars
C
Language
49.9K
Lines of Code
115
Files
102
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.0/100 · LOW

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

Which changes need focused human review? 102 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 6LOW 96

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 102 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 Block94 hits · 88 pts
SeverityFileLineSnippetContext
LOWminiaudio.c1#define MINIAUDIO_IMPLEMENTATIONCOMMENT
LOWtools/audioconverter/audioconverter.c281 ma_decoder_uninit(&decoder);COMMENT
LOWtools/audioconverter/audioconverter.c301 #pragma warning(pop)COMMENT
LOW…ndroid/MiniaudioTester/app/src/main/cpp/CMakeLists.txt1# For more information about using CMake with Android Studio, read theCOMMENT
LOW…ndroid/MiniaudioTester/app/src/main/cpp/CMakeLists.txt21# is preferred for the same purpose.COMMENT
LOWexamples/custom_backend.c81 /* SDL headers are necessary if using compile-time linking. */COMMENT
LOWexamples/custom_backend.c101#define MA_AUDIO_S16 0x8010COMMENT
LOWexamples/engine_steamaudio.c21/* Need to silence some warnings from the Steam Audio headers. */COMMENT
LOWexternal/fs/fs.c1#ifndef fs_cCOMMENT
LOWexternal/fs/fs.c21 #define FS_SUPPRESS_CLANG_ANALYZERCOMMENT
LOWexternal/fs/fs.c61}COMMENT
LOWexternal/fs/fs.c441 if (error == 0) {COMMENT
LOWexternal/fs/fs.c461#endifCOMMENT
LOWexternal/fs/fs.c481 else if (error == EFAULT) { return FS_BAD_ADDRESS; }COMMENT
LOWexternal/fs/fs.c501#ifdef EINVALCOMMENT
LOWexternal/fs/fs.c521#endifCOMMENT
LOWexternal/fs/fs.c541 else if (error == ENAMETOOLONG) { return FS_PATH_TOO_LONG; }COMMENT
LOWexternal/fs/fs.c561#ifdef ENOSRCOMMENT
LOWexternal/fs/fs.c581#endifCOMMENT
LOWexternal/fs/fs.c601 else if (error == ESOCKTNOSUPPORT) { return FS_SOCKET_NOT_SUPPORTED; }COMMENT
LOWexternal/fs/fs.c621#ifdef ENETRESETCOMMENT
LOWexternal/fs/fs.c641#endifCOMMENT
LOWexternal/fs/fs.c7741#if !defined(FS_USE_MKDTEMP_FALLBACK)COMMENT
LOWexternal/fs/fs.c8781#if defined(__clang__) || defined(__GNUC__)COMMENT
LOWexternal/fs/fs.c9241 #pragma GCC diagnostic pushCOMMENT
LOWexternal/fs/fs.c9261 #endifCOMMENT
LOWexternal/fs/fs.c9281#if defined(_MSC_VER) && (_MSC_VER < 1900)COMMENT
LOWexternal/fs/fs.c9321#define FS_LEADINGPLUS 2COMMENT
LOWexternal/fs/fs.c10401#undef FS_LEADING_0XCOMMENT
LOWexternal/fs/fs.h941#endifCOMMENT
LOWexternal/fs/fs.h981 typedef signed int fs_int32;COMMENT
LOWexternal/fs/fs.h1021#endifCOMMENT
LOWexternal/fs/fs.h1041 #elseCOMMENT
LOWexternal/fs/fs.h1441COMMENT
LOWextras/stb_vorbis.c1// Ogg Vorbis audio decoder - v1.22 - public domainCOMMENT
LOWextras/stb_vorbis.c21//COMMENT
LOWextras/stb_vorbis.c41// 1.20 - 2020-07-11 - several small fixesCOMMENT
LOWextras/stb_vorbis.c61// 1.02 - 2014-07-09 - declare qsort comparison as explicitly _cdecl in WindowsCOMMENT
LOWextras/stb_vorbis.c81#ifndef STB_VORBIS_NO_STDIOCOMMENT
LOWextras/stb_vorbis.c101// data in the file and how you set the compile flags for speedCOMMENT
LOWextras/stb_vorbis.c161// this function returns the offset (in samples) from the beginning of theCOMMENT
LOWextras/stb_vorbis.c201 float ***output, // place to write float ** array of float * buffersCOMMENT
LOWextras/stb_vorbis.c221// NULL--it is always the same as the number of channels reported byCOMMENT
LOWextras/stb_vorbis.c241// call stb_vorbis_flush_pushdata(), then start calling decoding, then onceCOMMENT
LOWextras/stb_vorbis.c281// create an ogg vorbis decoder from an open FILE *, looking for a stream atCOMMENT
LOWextras/stb_vorbis.c301// after calling seek_frame(), the next call to get_frame_*() will includeCOMMENT
LOWextras/stb_vorbis.c321// You generally should not intermix calls to stb_vorbis_get_frame_*()COMMENT
LOWextras/stb_vorbis.c341// Let M be the number of channels requested, and N the number of channels present,COMMENT
LOWextras/stb_vorbis.c421COMMENT
LOWextras/stb_vorbis.c441// STB_VORBIS_NO_INTEGER_CONVERSIONCOMMENT
LOWextras/stb_vorbis.c461#define STB_VORBIS_MAX_CHANNELS 16 // enough for anyone?COMMENT
LOWextras/stb_vorbis.c481// sets the log size of the huffman-acceleration table. MaximumCOMMENT
LOWextras/stb_vorbis.c501#endifCOMMENT
LOWextras/stb_vorbis.c521// this latter kind out to look like the former kind for ease of decoding,COMMENT
LOWextras/stb_vorbis.c541// Normally we only decode the floor without synthesizing the actualCOMMENT
LOWextras/stb_vorbis.c561#ifndef STB_VORBIS_NO_INTEGER_CONVERSIONCOMMENT
LOWextras/stb_vorbis.c581#ifndef STB_VORBIS_NO_CRTCOMMENT
LOWextras/stb_vorbis.c601#include <limits.h>COMMENT
LOWextras/stb_vorbis.c621 #endifCOMMENT
LOWextras/stb_vorbis.c661#define STBV_NOTUSED(v) (void)sizeof(v)COMMENT
34 more matches not shown…
Slop Phrases5 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMexamples/custom_backend.c639 We're just using ma_backend_custom in this example for demonstration purposes, but a more realistic use case would pCODE
MEDIUMexamples/resource_manager_advanced.c274 self-managed job threads in this example just for demonstration purposes.CODE
MEDIUMexamples/data_source_chaining.c111 to the first one. For demonstration purposes we're going to use the callback method for the lastCODE
MEDIUMexamples/data_source_chaining.c119 For the last data source we'll loop back to the start, but for demonstration purposes we'll use aCODE
LOWextras/osaudio/osaudio_dos_soundblaster.c926 /* Don't forget to set the global audio object. We need this for the ISR. */COMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/emscripten/emscripten.html99 // application robust, you may want to override this behavior before shipping!COMMENT
MEDIUMextras/stb_vorbis.c51// 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memoryCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWextras/osaudio/osaudio_dos_soundblaster.c469 /* In 16-bit mode, we need to check if the interrupt is for us. Only applies to SB16. */COMMENT