AI Slop Code Risk Monitor

ggml-org/ggml

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

Tensor library for machine learning

2.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for ggml-org/ggml, a C++ project with 15,564 GitHub stars. SynthScan examined 407,820 lines of code across 820 source files, recording 892 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 2.3 (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.3
Adjusted Signal
2.3
Raw Pattern Score
100%
Time Factor
2026-10-28
Last Push
15.6K
Stars
C++
Language
407.8K
Lines of Code
820
Files
892
Pattern Hits
2026-10-31
Scan Date
0.01
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? 878 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 0.5/100 · LOW

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

PR Review Velocity Impact 10.8/100 · LOW

Which changes need focused human review? 892 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 5MEDIUM 9LOW 878

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 892 distinct pattern matches across 16 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 Block789 hits · 763 pts
SeverityFileLineSnippetContext
LOWci/run.sh1#/bin/bashCOMMENT
LOWci/run.sh241 gg_printf '```\n'COMMENT
LOWci/run.sh261#COMMENT
LOWinclude/ggml-cpp.h1#pragma onceCOMMENT
LOWinclude/ggml-sycl.h1//COMMENT
LOWinclude/ggml-backend.h1#pragma onceCOMMENT
LOWinclude/ggml-backend.h321 // if the user returns false the scheduler simply copies the entire weightCOMMENT
LOWinclude/ggml-backend.h401 GGML_API const char * ggml_backend_meta_split_axis_name(enum ggml_backend_meta_split_axis split_axis);COMMENT
LOWinclude/ggml-cuda.h1#pragma onceCOMMENT
LOWinclude/ggml-opt.h1// This file contains functionality for training models using GGML.COMMENT
LOWinclude/ggml-opt.h181 struct ggml_tensor * inputs,COMMENT
LOWinclude/ggml-metal.h1// Note: this description is outdatedCOMMENT
LOWinclude/ggml-metal.h21COMMENT
LOWinclude/gguf.h1// This file contains functionality related to "GGUF" files, the binary file format used by ggml.COMMENT
LOWinclude/gguf.h21// 1. The size of the tensor in the dimension (int64_t).COMMENT
LOWinclude/gguf.h161COMMENT
LOWinclude/gguf.h181 // FILE * f = fopen(fname, "ab");COMMENT
LOWinclude/ggml-rpc.h1#pragma onceCOMMENT
LOWinclude/ggml.h1#pragma onceCOMMENT
LOWinclude/ggml.h21//COMMENT
LOWinclude/ggml.h41// struct ggml_context * ctx = ggml_init(params);COMMENT
LOWinclude/ggml.h61// struct ggml_cgraph * gf = ggml_new_graph(ctx);COMMENT
LOWinclude/ggml.h81// and after defining the computation graph, call the ggml_used_mem() function to find out how much memory wasCOMMENT
LOWinclude/ggml.h101// - ggml_conv_1d_2s()COMMENT
LOWinclude/ggml.h121// assert(c->src[0] == a);COMMENT
LOWinclude/ggml.h141// *(float *) ((char *) a->data + y*a->nb[1] + x*a->nb[0]) = x + y;COMMENT
LOWinclude/ggml.h161//COMMENT
LOWinclude/ggml.h181# define GGML_API __declspec(dllimport) externCOMMENT
LOWinclude/ggml.h201#elif defined(__MINGW32__) && !defined(__clang__)COMMENT
LOWinclude/ggml.h221COMMENT
LOWinclude/ggml.h241 #define GGML_MEM_ALIGN 8COMMENT
LOWinclude/ggml.h261__host__ __device__ constexpr inline void ggml_unused_vars_impl(Args&&...) noexcept {}COMMENT
LOWinclude/ggml.h281#elif defined(_MSC_VER)COMMENT
LOWinclude/ggml.h421 // GGML_TYPE_Q4_0_4_4 = 31, support has been removed from gguf filesCOMMENT
LOWinclude/ggml.h1441 struct ggml_tensor * a,COMMENT
LOWinclude/ggml.h1461 // ranks in decreasing order:COMMENT
LOWinclude/ggml.h1881 int n_dims,COMMENT
LOWinclude/ggml.h1921 float attn_factor,COMMENT
LOWinclude/ggml.h1941 // given sections = [t=4, y=2, x=2, 0]COMMENT
LOWinclude/ggml.h2201 int d1, // dilation heightCOMMENT
LOWinclude/ggml.h2681 // DSA lightning indexerCOMMENT
LOWinclude/ggml.h2701 // using a richer representation through streams.COMMENT
LOWinclude/ggml.h2741 GGML_API struct ggml_tensor * ggml_dsv4_hc_post(COMMENT
LOWinclude/ggml.h2881 // this is useful for creating graphs that have constant topology but compute different things based on the inputCOMMENT
LOWinclude/ggml.h2961 GGML_API void ggml_log_set(ggml_log_callback log_callback, void * user_data);COMMENT
LOWinclude/ggml.h3001# define GGML_RESTRICT __restrictCOMMENT
LOWtests/test-conv2d.cpp1#include "ggml.h"COMMENT
LOWtests/test-timestep_embedding.cpp1#include "ggml.h"COMMENT
LOWtests/test-conv1d-dw-c1.cpp1#include "ggml.h"COMMENT
LOWtests/test-conv1d-dw-c2.cpp1#include "ggml.h"COMMENT
LOWtests/test-pad-reflect-1d.cpp1#include "ggml.h"COMMENT
LOWtests/test-quantize-fns.cpp1// Unit tests for quantization specific functions - quantize, dequantize and dot productCOMMENT
LOWtests/test-roll.cpp1#include <ggml.h>COMMENT
LOWtests/test-opt.cpp1// TODO refactorCOMMENT
LOWtests/test-conv-transpose-1d.cpp1#include "ggml.h"COMMENT
LOWtests/test-quantize-perf.cpp1// Benchmark quantization specific functions on synthetic dataCOMMENT
LOWtests/test-arange.cpp1#include "ggml.h"COMMENT
LOWtests/test-customop.c1#include "ggml.h"COMMENT
LOWtests/test-conv1d.cpp1#include "ggml.h"COMMENT
LOWtests/test-backend-ops.cpp1// This file defines tests for various GGML ops and backends.COMMENT
729 more matches not shown…
Structural Annotation Overuse32 hits · 57 pts
SeverityFileLineSnippetContext
LOW⚡tests/test-backend-ops.cpp2071 // Step 1: create input tensors that don't depend on any other tensors:COMMENT
LOW⚡tests/test-backend-ops.cpp2078 // Step 2: use the op that you want to test in the GGML compute graph.COMMENT
LOW⚡tests/test-backend-ops.cpp2082 // Step 3: return the output tensor.COMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c84 // Step 1: sum for meanCOMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c110 // Step 2: compute (x - mean) → dst, accumulate varianceCOMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c143 // Step 3: apply scale to centered values in dstCOMMENT
LOWsrc/ggml-et/et-kernels/src/rms_norm_f32.c100 // Step 1: Compute sum of squares using 8-wide vectorsCOMMENT
LOW⚡src/ggml-et/et-kernels/src/rms_norm_f32.c124 // Step 2: scale = rsqrt(mean + eps)COMMENT
LOW⚡src/ggml-et/et-kernels/src/rms_norm_f32.c132 // Step 3: Apply scaling: broadcast scale once, reuse across loopCOMMENT
LOWsrc/ggml-et/et-kernels/src/rwkv_wkv7_f32.c177 // Step 1: sa = dot(a, state_prev[i])COMMENT
LOWsrc/ggml-et/et-kernels/src/rwkv_wkv7_f32.c196 // Step 2: state update + result accumulationCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp318 // Step 1: Apply decay gate to stateCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp323 // Step 2: delta = (v - S @ k) * betaCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp330 // Step 3: state += outer(delta, k)COMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp336 // Step 4: attn_out = S @ q * scaleCOMMENT
LOW⚡src/ggml-metal/CMakeLists.txt118 # Step 1: concatenate shared headers + this kernel sourceCOMMENT
LOW⚡src/ggml-metal/CMakeLists.txt120 # Step 2: remove internal #include and #pragma onceCOMMENT
LOW⚡src/ggml-metal/CMakeLists.txt122 # Step 3: inline ggml-common.h (replacing __embed_ggml-common.h__ sentinel)COMMENT
LOW⚡src/ggml-metal/CMakeLists.txt124 # Step 4: inline ggml-metal-impl.hCOMMENT
LOW⚡src/ggml-metal/CMakeLists.txt126 # Step 5: emit an asm chunk with kind-specific start/end symbolsCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp2853 // Step 5: multiply by attn_factorCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp2870 // Step 6: repeatCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3134 // Step 1: Prepare trans tensors for F16 type conversion to F32 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3159 // Step 2: Prepare head tensors for tail splitting if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3188 // Step 3: Execute RotaryPositionEmbeddingCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3235 // Step 4: Copy unrotated tail portion from source to destinationCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3264 // Step 5: Cast back to F16 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3950 // Step 1: cast the src0 (Query) to fp16 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3973 // Step 2: create the acl tensors for src1 (Key), src2 (Value),COMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4017 // Step 3: create the PSEShift tensor if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4086 // Step 4: set the inputs for FusedInferAttention.COMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4147 // Step 6: post-processing — slice padded output and/or cast to f32COMMENT
Verbosity Indicators28 hits · 47 pts
SeverityFileLineSnippetContext
LOW⚡tests/test-backend-ops.cpp2071 // Step 1: create input tensors that don't depend on any other tensors:COMMENT
LOW⚡tests/test-backend-ops.cpp2078 // Step 2: use the op that you want to test in the GGML compute graph.COMMENT
LOW⚡tests/test-backend-ops.cpp2082 // Step 3: return the output tensor.COMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c84 // Step 1: sum for meanCOMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c110 // Step 2: compute (x - mean) → dst, accumulate varianceCOMMENT
LOWsrc/ggml-et/et-kernels/src/norm_f32.c143 // Step 3: apply scale to centered values in dstCOMMENT
LOWsrc/ggml-et/et-kernels/src/rms_norm_f32.c100 // Step 1: Compute sum of squares using 8-wide vectorsCOMMENT
LOW⚡src/ggml-et/et-kernels/src/rms_norm_f32.c124 // Step 2: scale = rsqrt(mean + eps)COMMENT
LOW⚡src/ggml-et/et-kernels/src/rms_norm_f32.c132 // Step 3: Apply scaling: broadcast scale once, reuse across loopCOMMENT
LOWsrc/ggml-et/et-kernels/src/rwkv_wkv7_f32.c177 // Step 1: sa = dot(a, state_prev[i])COMMENT
LOWsrc/ggml-et/et-kernels/src/rwkv_wkv7_f32.c196 // Step 2: state update + result accumulationCOMMENT
LOWsrc/ggml-webgpu/ggml-webgpu.cpp1454 // For set rows specifically, we need to check if src and idx are emptyCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp318 // Step 1: Apply decay gate to stateCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp323 // Step 2: delta = (v - S @ k) * betaCOMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp330 // Step 3: state += outer(delta, k)COMMENT
LOW⚡src/ggml-openvino/openvino/op/gated_delta_net.cpp336 // Step 4: attn_out = S @ q * scaleCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp2853 // Step 5: multiply by attn_factorCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp2870 // Step 6: repeatCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3134 // Step 1: Prepare trans tensors for F16 type conversion to F32 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3159 // Step 2: Prepare head tensors for tail splitting if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3188 // Step 3: Execute RotaryPositionEmbeddingCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3235 // Step 4: Copy unrotated tail portion from source to destinationCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3264 // Step 5: Cast back to F16 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3950 // Step 1: cast the src0 (Query) to fp16 if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp3973 // Step 2: create the acl tensors for src1 (Key), src2 (Value),COMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4017 // Step 3: create the PSEShift tensor if neededCOMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4086 // Step 4: set the inputs for FusedInferAttention.COMMENT
LOWsrc/ggml-cann/aclnn_ops.cpp4147 // Step 6: post-processing — slice padded output and/or cast to f32COMMENT
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHexamples/gpt-2/convert-ckpt-to-ggml.py0returns list of utf-8 byte and a corresponding list of unicode strings. the reversible bpe codes work on unicode stringsSTRING
HIGHexamples/gpt-2/convert-h5-to-ggml.py0returns list of utf-8 byte and a corresponding list of unicode strings. the reversible bpe codes work on unicode stringsSTRING
HIGHexamples/gpt-2/convert-cerebras-to-ggml.py0returns list of utf-8 byte and a corresponding list of unicode strings. the reversible bpe codes work on unicode stringsSTRING
HIGHexamples/gpt-j/convert-h5-to-ggml.py0returns list of utf-8 byte and a corresponding list of unicode strings. the reversible bpe codes work on unicode stringsSTRING
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMexamples/mnist/mnist-common.h20// The physical batch size determines how many datapoints are processed in parallel, larger values utilize compute betteCOMMENT
MEDIUMsrc/ggml-cpu/amx/mmq.cpp603 // pack again with 128 to fully utilize vector lengthCOMMENT
MEDIUMsrc/ggml-cpu/amx/mmq.cpp645 // pack again with 128 to fully utilize vector lengthCOMMENT
MEDIUMsrc/ggml-cpu/amx/mmq.cpp743 // pack again with 128 to fully utilize vector lengthCOMMENT
Hyper-Verbose Identifiers10 hits · 10 pts
SeverityFileLineSnippetContext
LOWinclude/ggml-backend.h215 typedef ggml_backend_buffer_type_t (*ggml_backend_split_buffer_type_t)(int main_device, const float * tensor_splitCODE
LOWexamples/mnist/server.py9class CustomHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):CODE
LOWexamples/python/ggml/utils.py172def __check_shape_consistent_with_type(tensor: TensorLike):CODE
LOW⚡src/ggml-virtgpu/regenerate_remoting.py49 def _check_clang_format_available(self) -> bool:CODE
LOW⚡src/ggml-virtgpu/regenerate_remoting.py53 def _format_file_with_clang_format(self, file_path: Path) -> bool:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py78 def generate_backend_function_name(self, group_name: str, function_name: str) -> str:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py89 def generate_frontend_function_name(self, group_name: str, function_name: str) -> str:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py125 def generate_apir_backend_header(self) -> str:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py176 def generate_backend_dispatched_header(self) -> str:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py222 def generate_virtgpu_forward_header(self) -> str:STRING
Excessive Try-Catch Wrapping6 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMexamples/mnist/server.py35 print(f"Error: {e}")CODE
LOWexamples/python/example_test_all_quants.py65 except Exception as e:CODE
MEDIUMexamples/python/example_test_all_quants.py66 print(f'Error: {e}')CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py69 except Exception as e:CODE
LOWsrc/ggml-virtgpu/regenerate_remoting.py327 except Exception as e:STRING
MEDIUMsrc/ggml-virtgpu/regenerate_remoting.py323def main():CODE
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/sync-whisper-am.sh5# Usage:COMMENT
LOWscripts/release.sh11# Usage:COMMENT
LOWscripts/sync-llama-am.sh5# Usage:COMMENT
LOWsrc/ggml-sycl/dpct/helper.hpp3020 /// Example usage:COMMENT
TODO Padding3 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/ggml.c4015 // TODO: implement non F32 returnCOMMENT
LOWsrc/ggml.c4039 // TODO: implement non F32 returnCOMMENT
LOWsrc/ggml.c5218 // TODO: implement antialias for modes other than bilinearCOMMENT
Redundant / Tautological Comments2 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/release.sh77 # Check if we have the latest from master (skip in dry-run)COMMENT
LOW⚡src/ggml-virtgpu/regenerate_remoting.py46 # Check if clang-format is availableCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMci/run.sh367 # Create a fresh python3 venv and enter itCOMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWexamples/python/stubs.py7CODE
LOWexamples/gpt-2/convert-cerebras-to-ggml.py9CODE
LOWexamples/gpt-j/convert-h5-to-ggml.py23CODE
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWexamples/python/ggml/utils.py118CODE
LOWsrc/ggml-webgpu/wgsl-shaders/embed_wgsl.py68CODE
LOWsrc/ggml-hexagon/htp/htp-swiv.py409CODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/ggml-et/et-kernels/src/platform.h347// ────── ──────────── ──────────────────────────────────────────────────COMMENT
Synthetic Comment Markers1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHsrc/ggml-virtgpu/regenerate_remoting.py3# Generated by Claude AISTRING
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWexamples/mnist/mnist-train-fc.py31CODE