AI Slop Code Risk Monitor

openscad/openscad

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

OpenSCAD - The Programmers Solid 3D CAD Modeller

3.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for openscad/openscad, a C++ project with 10,560 GitHub stars. SynthScan examined 106,032 lines of code across 552 source files, recording 406 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 3.5 (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.5
Adjusted Signal
3.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
10.6K
Stars
C++
Language
106.0K
Lines of Code
552
Files
406
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 13.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

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

Agent Over-Engineering Ratio 2.3/100 · LOW

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

PR Review Velocity Impact 19.2/100 · LOW

Which changes need focused human review? 406 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 3MEDIUM 15LOW 388

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 406 distinct pattern matches across 12 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 Block341 hits · 267 pts
SeverityFileLineSnippetContext
LOWCMakeLists.txt1#COMMENT
LOW.pre-commit-config.yaml1# OpenSCAD (www.openscad.org)COMMENT
LOW.uncrustify.cfg1#COMMENT
LOWtests/export_import_pngtest.py1#!/usr/bin/env python3COMMENT
LOWtests/diffpng.cpp61//#define DIFFPNG_HEADERONLYCOMMENT
LOWtests/CMakeLists.txt201COMMENT
LOWtests/CMakeLists.txt781# Add tests #COMMENT
LOWtests/CMakeLists.txt961)COMMENT
LOWtests/CMakeLists.txt1101# Verify that test framework is paying attention to alpha channel, issue 1492COMMENT
LOWtests/export_pngtest.py1#!/usr/bin/env python3COMMENT
LOWtests/test_pretty_print.py1#!/usr/bin/env python3COMMENT
LOWtests/test_cmdline_tool.py1#!/usr/bin/env python3COMMENT
LOWtests/validatestl.py1#!/usr/bin/env python3COMMENT
LOWscripts/builder.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/builder.sh21# from the openscad github master source code. It will then optionallyCOMMENT
LOWscripts/circleci-download-artifacts.py1#!/usr/bin/env python3COMMENT
LOWscripts/uni-build-dependencies.sh1#!/bin/sh -eCOMMENT
LOWscripts/uni-build-dependencies.sh21# cd somepathCOMMENT
LOWscripts/uni-build-dependencies.sh621# version=$1COMMENT
LOWscripts/uni-build-dependencies.sh701#COMMENT
LOWscripts/wasm-base-docker-run.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/chrpath_linux.c121/* #undef const */COMMENT
LOWscripts/chrpath_linux.c421//# include "config.h"COMMENT
LOWscripts/chrpath_linux.c561COMMENT
LOWscripts/chrpath_linux.c641 *COMMENT
LOWscripts/macosx-build-dependencies.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/macosx-build-dependencies.sh481 tar xjf ../Sparkle-$version.tar.xzCOMMENT
LOWscripts/mingw-x-build-dependencies.sh1#!/bin/sh -eCOMMENT
LOWscripts/mingw-x-build-dependencies.sh21# Also see http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Cross-compiling_for_Windows_on_Linux_or_Mac_OS_XCOMMENT
LOWscripts/macosx-sanity-check.py1#!/usr/bin/env python3COMMENT
LOWscripts/setenv-mingw-xbuild.sh1#!/bin/sh -eCOMMENT
LOWscripts/release-common.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/check-dependencies.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/git_merge_fix_false_deletions.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/git_merge_fix_false_deletions.sh21# Instead it attempts to detect them after the fact, through countless semi-functional hacks.COMMENT
LOWsrc/openscad_mimalloc.h1#pragma onceCOMMENT
LOWsrc/FontCache.h21 * You should have received a copy of the GNU General Public LicenseCOMMENT
LOWsrc/core/Settings.h1#pragma onceCOMMENT
LOWsrc/core/FreetypeRenderer.h21 * You should have received a copy of the GNU General Public LicenseCOMMENT
LOWsrc/core/node.h1#pragma onceCOMMENT
LOWsrc/core/Value.h1#pragma onceCOMMENT
LOWsrc/core/Parameters.h1#pragma onceCOMMENT
LOWsrc/core/Expression.h1#pragma onceCOMMENT
LOWsrc/core/CSGTreeEvaluator.h1#pragma onceCOMMENT
LOWsrc/core/ScopeContext.h1#pragma onceCOMMENT
LOWsrc/core/primitives.h21 * You should have received a copy of the GNU General Public LicenseCOMMENT
LOWsrc/core/function.h1#pragma onceCOMMENT
LOWsrc/python/pyopenscad.h1#include <Python.h>COMMENT
LOWsrc/libsvg/shape.h21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,COMMENT
LOWsrc/libsvg/util.h21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,COMMENT
LOWsrc/ext/CGAL/OGL_helper.h1// Copyright (c) 1997-2002 Max-Planck-Institute Saarbruecken (Germany).COMMENT
LOWsrc/ext/CGAL/OGL_helper.h21COMMENT
LOWsrc/ext/CGAL/OGL_helper.h41#define CGAL_NEF3_OGL_UNMARKED_FACET_COLOR 249,215,44COMMENT
LOWsrc/ext/CGAL/CGAL_workaround_Mark_bounded_volumes.h1// Copyright (c) 2005 Max-Planck-Institute Saarbruecken (Germany).COMMENT
LOWsrc/ext/CGAL/CGAL_workaround_Mark_bounded_volumes.h21// Rewritten by Oskar Linde <oskar.linde@gmail.com>COMMENT
LOWsrc/ext/libtess2/Include/tesselator.h41enum TessWindingRuleCOMMENT
LOWsrc/ext/libtess2/Include/tesselator.h61// for (int j = 0; j < polySize; j++) {COMMENT
LOWsrc/ext/libtess2/Include/tesselator.h81// while (nstack > 0) {COMMENT
LOWsrc/ext/libtess2/Include/tesselator.h101// const TESSindex base = elems[i * 2];COMMENT
LOWsrc/ext/libtess2/Include/tesselator.h121COMMENT
281 more matches not shown…
Excessive Try-Catch Wrapping20 hits · 38 pts
SeverityFileLineSnippetContext
LOWtests/test_pretty_print.py42 except Exception as e:CODE
LOWtests/test_pretty_print.py61 except Exception as e:CODE
MEDIUMtests/test_cmdline_tool.py85 print(f"Error: test '{testname}' is missing expected output in {expectedfilename}", file=sys.stderr)CODE
MEDIUMtests/test_cmdline_tool.py99 print("Error running subprocess: ", sys.exc_info()[1], file=sys.stderr)CODE
LOWtests/test_cmdline_tool.py148 except Exception as err:CODE
MEDIUMtests/test_cmdline_tool.py247 print("Error: Error during test image generation", file=sys.stderr)CODE
MEDIUMtests/test_cmdline_tool.py357 print("Error: %s failed with return code %d" % (cmdname, proc.returncode), file=sys.stderr)CODE
MEDIUMtests/test_cmdline_tool.py362 print(f'Error: {err.strerror} "{cmd}"', file=sys.stderr)CODE
LOWtests/test_cmdline_tool.py455 except Exception as e:CODE
MEDIUMscripts/macosx-sanity-check.py87 print("Error: Mixing libc++ and libstdc++")CODE
MEDIUM⚡scripts/macosx-sanity-check.py113 print("Error: Neither LC_VERSION_MIN_MACOSX nor LC_BUILD_VERSION found in " + lib)CODE
MEDIUM⚡scripts/macosx-sanity-check.py116 print("Error: Unsupported deployment target " + m.group(2) + " found: " + lib)CODE
MEDIUM⚡scripts/macosx-sanity-check.py126 print("Error: Reference to mkostemp() found - only supported on macOS 10.12->")CODE
MEDIUM⚡scripts/macosx-sanity-check.py133 print("Error: x86_64 architecture not found in " + lib)CODE
MEDIUM⚡scripts/macosx-sanity-check.py139 print("Error: arm64 architecture not found in " + lib)CODE
MEDIUMscripts/macosx-sanity-check.py155 print('Error otool -l failed on main executable')CODE
MEDIUMscripts/macosx-sanity-check.py180 print("Error: External dependency " + d)CODE
LOWscripts/git-archive-all.py57 except Exception as e:CODE
LOWscripts/git-archive-all.py204 except Exception:CODE
LOWscripts/git-archive-all.py456 except Exception as e:CODE
Unused Imports18 hits · 18 pts
SeverityFileLineSnippetContext
LOWpython/ide-shim/openscad/__init__.py8CODE
LOWtests/export_import_pngtest.py29CODE
LOWtests/shouldfail.py12CODE
LOWtests/export_pngtest.py18CODE
LOWtests/test_pretty_print.py29CODE
LOWtests/test_pretty_print.py29CODE
LOWtests/test_pretty_print.py31CODE
LOWtests/test_pretty_print.py32CODE
LOWtests/test_pretty_print.py33CODE
LOWtests/test_cmdline_tool.py28CODE
LOWtests/test_cmdline_tool.py32CODE
LOWtests/test_cmdline_tool.py33CODE
LOWtests/test_cmdline_tool.py34CODE
LOWtests/validatestl.py18CODE
LOWtests/validatestl.py18CODE
LOWtests/validatestl.py18CODE
LOWtests/validatestl.py18CODE
LOWtests/stlexportsanitytest.py7CODE
Example Usage Blocks8 hits · 12 pts
SeverityFileLineSnippetContext
LOWscripts/builder.sh5# Usage:COMMENT
LOWscripts/uni-build-dependencies.sh14# Usage:COMMENT
LOWscripts/wasm-base-docker-run.sh6# Example usage:COMMENT
LOWscripts/macosx-build-dependencies.sh464# Usage:COMMENT
LOWscripts/mingw-x-build-dependencies.sh8# Usage:COMMENT
LOWscripts/setenv-mingw-xbuild.sh5# Usage:COMMENT
LOWscripts/publish-macosx.sh3# Usage:COMMENT
LOWscripts/establish_version.sh13# Usage:COMMENT
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHresources/docs/docs_downloader.py26except:CODE
HIGHscripts/git-archive-all.py204except Exception:CODE
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/test_pretty_print.py355CODE
LOWtests/test_cmdline_tool.py210CODE
LOWtests/test_cmdline_tool.py300CODE
LOWtests/validatestl.py22CODE
LOWscripts/macosx-sanity-check.py40CODE
LOWscripts/macosx-sanity-check.py65CODE
LOWscripts/git-archive-all.py70CODE
LOWscripts/git-archive-all.py223CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/git-archive-all.py417 help="Force a git submodule init && git submodule update at each level before iterating submodulesCODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/compare-bitmaps.sh20 # Check if $pixelerror contains an integer (it sometimes outputs things like '0 @ 0,0')COMMENT
LOWscripts/macosx-build-homebrew.sh35# Check if there's already an active openscad tap and skipCOMMENT
LOWscripts/establish_version.sh51 # Check if we are in a git repoCOMMENT
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMsrc/gui/ai/ChatWidget.h77 bool agenticMode = true; // true = agentic (auto-loop), false = interactive reviewCODE
MEDIUMsrc/gui/ai/ChatWidget.h80 pendingViewportSnapshot; // viewport image to inject before next agentic turnCODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpython/ide-shim/openscad/__init__.py12__all__ = [CODE
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtests/test_cmdline_tool.py45def get_runtime_to_test_sources():CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/ext/lodepng/lodepng.cpp70lodepng source code. Don't forget to remove "static" if you copypaste themCODE