AI Slop Code Risk Monitor

doxygen/doxygen

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

Official doxygen git repository

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for doxygen/doxygen, a C++ project with 6,599 GitHub stars. SynthScan examined 450,679 lines of code across 1085 source files, recording 567 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.6K
Stars
C++
Language
450.7K
Lines of Code
1.1K
Files
567
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 6.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 1.5/100 · LOW

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

PR Review Velocity Impact 7.4/100 · LOW

Which changes need focused human review? 567 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 7MEDIUM 47LOW 513

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 567 distinct pattern matches across 17 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 Block429 hits · 428 pts
SeverityFileLineSnippetContext
LOWCMakeLists.txt1# vim:ts=4:sw=4:expandtab:autoindent:COMMENT
LOWdoc_internal/CMakeLists.txt1# vim:ts=4:sw=4:expandtab:autoindent:COMMENT
LOWtesting/081_brief_lists.h1// objective: Test termination of brief description with listsCOMMENT
LOWtesting/133_cs_protected_internal.cs1// objective: C# protected internal members are protected and private protected members are packageCOMMENT
LOWtesting/102_header.hpp1// objective: test noexcept with expression and nodiscard and constexprCOMMENT
LOWtesting/120_tagfile.cpp1// objective: test the tagfile outputCOMMENT
LOWtesting/112_aliases.cpp1// objective: test multi-line alias expansion in different comment stylesCOMMENT
LOWtesting/112_aliases.cpp21 /// int foo();COMMENT
LOWtesting/009_bug.cpp1// objective: test the \bug, \deprecated, \todo, \test, and \xrefitem commandsCOMMENT
LOWtesting/122_deprecated.cpp21 // ----- various ways to deprecate a functionCOMMENT
LOWexamples/diagrams_c.h1#ifndef DIAGRAMS_C_HCOMMENT
LOWexamples/pyexample.py1## @package pyexampleCOMMENT
LOWexamples/diagrams_d.h1#ifndef DIAGRAM_D_HCOMMENT
LOWexamples/diagrams_a.h1#ifndef DIAGRAMS_A_HCOMMENT
LOWexamples/diagrams_e.h1#ifndef DIAGRAM_E_HCOMMENT
LOWvhdlparser/CMakeLists.txt1#COMMENT
LOWvhdlparser/vhdlstring.h1#ifndef VHDLSTRING_HCOMMENT
LOWvhdlparser/JavaCC.h1/* Generated By:JavaCC: Do not edit this line. JavaCC.h Version 7.0 */COMMENT
LOWvhdlparser/vhdl_adj.py1#!/usr/bin/env pythonCOMMENT
LOWaddon/doxysearch/doxyindexer.cpp21#include <sstream>COMMENT
LOWaddon/doxycommentview/doxycommentview.py1#!/usr/bin/env python3COMMENT
LOWaddon/doxyapp/doxyapp.cpp21 *COMMENT
LOWaddon/doxywizard/expert.cpp21#include "version.h"COMMENT
LOWaddon/doxywizard/expert.cpp41#include <QSplitter>COMMENT
LOWaddon/doxywizard/wizard.cpp21#include <QLabel>COMMENT
LOWaddon/doxywizard/wizard.cpp41#define STR_PROJECT_LOGO QString::fromLatin1("PROJECT_LOGO")COMMENT
LOWaddon/doxywizard/wizard.cpp61#define STR_GENERATE_DOCBOOK QString::fromLatin1("GENERATE_DOCBOOK")COMMENT
LOWaddon/doxywizard/wizard.cpp801 r = new QRadioButton(m_optimizeLang);COMMENT
LOWaddon/doxywizard/wizard.cpp821 // HIDE_SCOPE_NAMES = NOCOMMENT
LOWaddon/doxywizard/wizard.cpp841 // OPTIMIZE_OUTPUT_SLICE = NOCOMMENT
LOWaddon/doxywizard/doxywizard.cpp21#include <QPushButton>COMMENT
LOWaddon/doxyparse/doxyparse.cpp21#if !defined(_WIN32) || defined(__CYGWIN__)COMMENT
LOWaddon/doxmlparser/generateDS_post.py1#!/usr/bin/env pythonCOMMENT
LOWaddon/doxmlparser/doxmlparser/index.py1#!/usr/bin/env pythonCOMMENT
LOWaddon/doxmlparser/doxmlparser/index.py81# The module generatedsnamespaces, if it is importable, must containCOMMENT
LOWaddon/doxmlparser/doxmlparser/index.py101# "xsi:type" attribute value. See the exportAttributes method ofCOMMENT
LOWdeps/svg/svg-3.1.2.js5121 this.fire('time', this._time); // This is for the case that the timeline was seeked so that the timeCOMMENT
LOWdeps/iconv_winbuild/include/iconv.h21#ifndef _LIBICONV_HCOMMENT
LOWdeps/fmt/include/fmt/ostream.h1// Formatting library for C++ - std::ostream supportCOMMENT
LOWdeps/fmt/include/fmt/ostream.h21#endifCOMMENT
LOWdeps/fmt/include/fmt/format-inl.h1// Formatting library for C++ - implementationCOMMENT
LOWdeps/fmt/include/fmt/format-inl.h221// divisible by pow(10, N).COMMENT
LOWdeps/fmt/include/fmt/format-inl.h1301COMMENT
LOWdeps/fmt/include/fmt/ranges.h1// Formatting library for C++ - range and tuple supportCOMMENT
LOWdeps/fmt/include/fmt/xchar.h1// Formatting library for C++ - optional wchar_t and exotic character supportCOMMENT
LOWdeps/fmt/include/fmt/core.h1// This file is only provided for compatibility and may be removed in futureCOMMENT
LOWdeps/fmt/include/fmt/chrono.h1// Formatting library for C++ - chrono supportCOMMENT
LOWdeps/fmt/include/fmt/chrono.h21#endifCOMMENT
LOWdeps/fmt/include/fmt/chrono.h241# define FMT_USE_UTC_TIME (__cpp_lib_chrono >= 201907L)COMMENT
LOWdeps/fmt/include/fmt/os.h1// Formatting library for C++ - optional OS-specific functionalityCOMMENT
LOWdeps/fmt/include/fmt/os.h21# endifCOMMENT
LOWdeps/fmt/include/fmt/os.h41# if defined(_WIN32) && !defined(__MINGW32__)COMMENT
LOWdeps/fmt/include/fmt/color.h241 // │23│─┘COMMENT
LOWdeps/fmt/include/fmt/color.h261 // │62│─┬── unusedCOMMENT
LOWdeps/fmt/include/fmt/args.h1// Formatting library for C++ - dynamic argument listsCOMMENT
LOWdeps/fmt/include/fmt/printf.h1// Formatting library for C++ - legacy printf implementationCOMMENT
LOWdeps/fmt/include/fmt/compile.h1// Formatting library for C++ - experimental format string compilationCOMMENT
LOWdeps/fmt/include/fmt/format.h41#include "base.h"COMMENT
LOWdeps/fmt/include/fmt/format.h61# endifCOMMENT
LOWdeps/fmt/include/fmt/format.h81#elif defined(__cpp_nontype_template_args) && \COMMENT
369 more matches not shown…
Decorative Section Separators34 hits · 99 pts
SeverityFileLineSnippetContext
MEDIUM⚡deps/spdlog/CMakeLists.txt18# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt20# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt25# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt27# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt208# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt210# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt219# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt221# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt257# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt259# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt265# ---------------------------------------------------------------------------------------COMMENT
MEDIUM⚡deps/spdlog/CMakeLists.txt267# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt5# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt7# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt42# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt44# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt152# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt154# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt241# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt243# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt302# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt304# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt316# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt318# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt339# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt341# ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt352 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt354 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt368 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt370 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt387 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt389 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt400 # ---------------------------------------------------------------------------------------COMMENT
MEDIUMdeps/spdlog/CMakeLists.txt402 # ---------------------------------------------------------------------------------------COMMENT
Deep Nesting43 hits · 40 pts
SeverityFileLineSnippetContext
LOWdoc_internal/cmds_tags.py154CODE
LOWtesting/testsqlite3.py124CODE
LOWtesting/runtests.py126CODE
LOWtesting/runtests.py139CODE
LOWtesting/runtests.py161CODE
LOWtesting/runtests.py179CODE
LOWtesting/runtests.py257CODE
LOWtesting/runtests.py321CODE
LOWaddon/doxypysql/search.py331CODE
LOWaddon/doxmlparser/examples/metrics/metrics.py123CODE
LOWaddon/doxmlparser/examples/metrics/metrics.py174CODE
LOWaddon/doxmlparser/doxmlparser/index.py854CODE
LOWaddon/doxmlparser/doxmlparser/index.py874CODE
LOWaddon/doxmlparser/doxmlparser/index.py894CODE
LOWaddon/doxmlparser/doxmlparser/index.py352CODE
LOWaddon/doxmlparser/doxmlparser/index.py418CODE
LOWaddon/doxmlparser/doxmlparser/index.py465CODE
LOWdoc/translator.py155CODE
LOWdoc/translator.py408CODE
LOWdoc/translator.py517CODE
LOWdoc/translator.py755CODE
LOWdoc/translator.py1014CODE
LOWdoc/translator.py1081CODE
LOWdoc/translator.py1559CODE
LOWdoc/translator.py1579CODE
LOWdoc/translator.py1776CODE
LOWdoc/translator.py1827CODE
LOWsrc/scan_states.py20CODE
LOWsrc/configgen.py167CODE
LOWsrc/configgen.py244CODE
LOWsrc/configgen.py382CODE
LOWsrc/configgen.py426CODE
LOWsrc/configgen.py443CODE
LOWsrc/configgen.py460CODE
LOWsrc/configgen.py514CODE
LOWsrc/configgen.py533CODE
LOWsrc/configgen.py551CODE
LOWsrc/configgen.py710CODE
LOWsrc/configgen.py722CODE
LOWsrc/configgen.py774CODE
LOWsrc/configgen.py1155CODE
LOWsrc/pre_lex.py19CODE
LOWsrc/post_lex.py19CODE
Self-Referential Comments9 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUM⚡doc/translator.py1293 # Create the empty dictionary for Transl object identified by theCOMMENT
MEDIUM⚡doc/translator.py1297 # Create the None dictionary of required methods. The key is theCOMMENT
MEDIUM⚡doc/translator.py1302 # Create the empty dictionary that says what method is implementedCOMMENT
MEDIUMdoc/translator.py237 # Initialize the token variables after the yield.COMMENT
MEDIUMdoc/translator.py1030 # Create the empty dictionary that will be returned.COMMENT
MEDIUMdoc/translator.py1330 # Define the other used structures and variables for information.COMMENT
MEDIUMdoc/translator.py1360 # Create the list of the filenames with language translator sources.COMMENT
MEDIUMdoc/translator.py1415 # Create the list with readable language names. If the language hasCOMMENT
MEDIUMdoc/translator.py1434 # Create the multiline string of readable language names,COMMENT
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHtesting/runtests.py70except Exception:CODE
HIGHtesting/runtests.py123except OSError:CODE
HIGHaddon/doxmlparser/doxmlparser/index.py61except AttributeError:CODE
HIGHaddon/doxmlparser/doxmlparser/index.py441except AttributeError:CODE
AI Response Leakage2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdoc/translator.py549 # immediately. In this implementation, it always quits the application.COMMENT
HIGHdoc/translator.py792 # immediately. In this implementation, it always quits the application.COMMENT
Verbosity Indicators8 hits · 12 pts
SeverityFileLineSnippetContext
LOWdeps/fmt/include/fmt/format-inl.h1260 // Step 1: integer promotion & Schubfach multiplier calculation.COMMENT
LOWdeps/fmt/include/fmt/format-inl.h1315 // Step 2: Try larger divisor; remove trailing zeros if necessary.COMMENT
LOWdeps/fmt/include/fmt/format-inl.h1347 // Step 3: Find the significand with the smaller divisor.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1260 // Step 1: integer promotion & Schubfach multiplier calculation.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1315 // Step 2: Try larger divisor; remove trailing zeros if necessary.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1347 // Step 3: Find the significand with the smaller divisor.COMMENT
LOWsrc/doxygen.cpp4330 // in case of template functions, we need to check if theCOMMENT
LOWsrc/doxygen.cpp6146 // for template members we need to check if the number ofCOMMENT
Hyper-Verbose Identifiers10 hits · 10 pts
SeverityFileLineSnippetContext
LOWdoc_internal/doxygen.md45The function parseFilesSingleThreading() takes care of parsing all filesCODE
LOWtesting/testsqlite3.py14def print_unprocessed_attributes(node):CODE
LOWaddon/doxycommentview/doxycommentview.py39 class RequestHandler(http.server.SimpleHTTPRequestHandler):CODE
LOWaddon/doxmlparser/doxmlparser/index.py223 def gds_validate_integer_list(CODE
LOWaddon/doxmlparser/doxmlparser/index.py282 def gds_validate_decimal_list(CODE
LOWaddon/doxmlparser/doxmlparser/index.py340 def gds_validate_boolean_list(CODE
LOWaddon/doxmlparser/doxmlparser/index.py495 def gds_validate_simple_patterns(self, patterns, target):CODE
LOWaddon/doxmlparser/doxmlparser/index.py646 def gds_djo_etl_transform_db_obj(self, dbobj):CODE
LOWaddon/doxmlparser/doxmlparser/index.py651 def gds_sqa_etl_transform_db_obj(self, dbobj):CODE
LOWaddon/doxmlparser/doxmlparser/index.py1448def get_required_ns_prefix_defs(rootNode):STRING
AI Slop Vocabulary4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMdeps/fmt/include/fmt/format.h3207 // Compilers are not aware of how to leverage the maximum value ofCOMMENT
MEDIUMdeps/spdlog/include/spdlog/fmt/bundled/format.h3207 // Compilers are not aware of how to leverage the maximum value ofCOMMENT
MEDIUMsrc/docparser_p.h173 m_parser->context.nodeStack.pop(); // robust version that does not assertCODE
LOWsrc/portable.cpp177#else // Other Unices just use forkCOMMENT
Structural Annotation Overuse6 hits · 9 pts
SeverityFileLineSnippetContext
LOWdeps/fmt/include/fmt/format-inl.h1260 // Step 1: integer promotion & Schubfach multiplier calculation.COMMENT
LOWdeps/fmt/include/fmt/format-inl.h1315 // Step 2: Try larger divisor; remove trailing zeros if necessary.COMMENT
LOWdeps/fmt/include/fmt/format-inl.h1347 // Step 3: Find the significand with the smaller divisor.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1260 // Step 1: integer promotion & Schubfach multiplier calculation.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1315 // Step 2: Try larger divisor; remove trailing zeros if necessary.COMMENT
LOWdeps/spdlog/include/spdlog/fmt/bundled/format-inl.h1347 // Step 3: Find the significand with the smaller divisor.COMMENT
Unused Imports6 hits · 6 pts
SeverityFileLineSnippetContext
LOWdoc_internal/cmds_tags.py3CODE
LOWtesting/runtests.py3CODE
LOWaddon/doxmlparser/doxmlparser/__init__.py1CODE
LOWaddon/doxmlparser/doxmlparser/__init__.py2CODE
LOWdoc/translator.py70CODE
LOWsrc/res2cc_cmd.py17CODE
Excessive Try-Catch Wrapping5 hits · 6 pts
SeverityFileLineSnippetContext
LOWtesting/runtests.py70 except Exception:CODE
MEDIUMtesting/runtests.py253 print('Error: failed to run %s on %s/Doxyfile' % (self.args.doxygen,self.test_out))CODE
LOWsrc/configgen.py343 except Exception as inst:CODE
LOWsrc/configgen.py822 except Exception as e:CODE
LOWsrc/configgen.py1175 except Exception as inst:CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHaddon/doxypysql/search.py304 print('{"result": null, "error": "no refid given"}')CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWaddon/doxmlparser/doxmlparser/index.py691# Set this to false in order to deactivate during export, the use ofCOMMENT
LOWdoc/translator.py203 # Open the file for reading and extracting tokens until the eof.COMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWdeps/spdlog/include/spdlog/mdc.h19// Usage example:COMMENT
LOWsrc/threadpool.h33/// Usage example:COMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/defgen.cpp505 t << "dummy_value = true;\n";CODE
Modern Structural Boilerplate1 hit · 0 pts
SeverityFileLineSnippetContext
LOWaddon/doxmlparser/doxmlparser/index.py1621__all__ = [STRING