AI Slop Code Risk Monitor

qbittorrent/qBittorrent

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

qBittorrent BitTorrent client

0.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for qbittorrent/qBittorrent, a C++ project with 41,254 GitHub stars. SynthScan examined 1,441,568 lines of code across 960 source files, recording 234 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 0.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.

0.3
Adjusted Signal
0.3
Raw Pattern Score
100%
Time Factor
2026-10-26
Last Push
41.3K
Stars
C++
Language
1.4M
Lines of Code
960
Files
234
Pattern Hits
2026-10-31
Scan Date
0.02
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 0.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 0.2/100 · LOW

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

PR Review Velocity Impact 1.4/100 · LOW

Which changes need focused human review? 234 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 17HIGH 2MEDIUM 10LOW 205

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 234 distinct pattern matches across 10 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.

Hallucination Indicators17 hits · 185 pts
SeverityFileLineSnippetContext
CRITICALsrc/webui/www/private/newcategory.html173 const pref = window.parent.qBittorrent.Cache.preferences.get();CODE
CRITICALsrc/webui/www/private/newcategory.html174 const categoryData = window.parent.qBittorrent.Client.categoryMap.get(uriCategoryName);CODE
CRITICALsrc/webui/www/private/newcategory.html198 const own = window.parent.qBittorrent.Client.categoryMap.get(categoryName) ?? {};CODE
CRITICALsrc/webui/www/private/scripts/addtorrent.js57 for (const name of window.parent.qBittorrent.Client.categoryMap.keys()) {CODE
CRITICALsrc/webui/www/private/scripts/addtorrent.js71 for (const tag of window.parent.qBittorrent.Client.tagMap.keys()) {CODE
CRITICALsrc/webui/www/private/scripts/addtorrent.js90 const pref = window.parent.qBittorrent.Cache.preferences.get();CODE
CRITICAL⚡src/webui/www/private/scripts/addtorrent.js124 const category = window.parent.qBittorrent.Client.categoryMap.get(categoryName);CODE
CRITICAL⚡src/webui/www/private/scripts/addtorrent.js129 const category = window.parent.qBittorrent.Client.categoryMap.get(categoryName);CODE
CRITICAL⚡src/webui/www/private/scripts/addtorrent.js138 const category = window.parent.qBittorrent.Client.categoryMap.get(categoryName);CODE
CRITICALsrc/webui/www/private/scripts/dynamicTable.js2081 const searchTerms = window.qBittorrent.Search.searchText.pattern.toLowerCase().split(" ");CODE
CRITICALsrc/webui/www/private/scripts/dynamicTable.js2082 const filterTerms = window.qBittorrent.Search.searchText.filterPattern.toLowerCase().split(" ");CODE
CRITICALsrc/webui/www/private/views/preferences.html2492 window.parent.qBittorrent.Cache.preferences.init()CODE
CRITICALsrc/webui/www/private/views/preferences.html3526 window.parent.qBittorrent.Cache.preferences.set(settings)CODE
CRITICALsrc/webui/www/private/views/rssDownloader.html409 const pref = window.parent.qBittorrent.Cache.preferences.get();CODE
CRITICALsrc/webui/www/private/views/about.html855 const qbtVersion = window.parent.qBittorrent.Cache.qbtVersion.get();CODE
CRITICALsrc/webui/www/private/views/about.html856 const buildInfo = window.parent.qBittorrent.Cache.buildInfo.get();CODE
CRITICALsrc/webui/www/private/views/rss.html242 const pref = window.parent.qBittorrent.Cache.preferences.get();CODE
Over-Commented Block177 hits · 177 pts
SeverityFileLineSnippetContext
LOWCODING_GUIDELINES.md321Example:COMMENT
LOWCODING_GUIDELINES.md341// System headersCOMMENT
LOWCODING_GUIDELINES.md361#if LIBTORRENT_VERSION_NUM >= 10100COMMENT
LOW…flows/helper/pre-commit/check_webui_translation_tag.py1#!/usr/bin/env python3COMMENT
LOW…b/workflows/helper/pre-commit/check_translation_tag.py1#!/usr/bin/env python3COMMENT
LOW…/workflows/helper/pre-commit/check_grid_items_order.py1#!/usr/bin/env python3COMMENT
LOWsrc/app/application.h41#ifndef DISABLE_GUICOMMENT
LOWsrc/app/cmdoptions.cpp41#include <QStringView>COMMENT
LOWsrc/app/signalhandler.cpp41#include <io.h>COMMENT
LOWsrc/app/application.cpp41#include <shellapi.h>COMMENT
LOWsrc/app/application.cpp61#include <QSessionManager>COMMENT
LOWsrc/app/application.cpp81#include "base/net/smtpclient.h"COMMENT
LOWsrc/app/application.cpp101#include "gui/shutdownconfirmdialog.h"COMMENT
LOWsrc/app/application.cpp1221 setLayoutDirection(Qt::LeftToRight);COMMENT
LOWsrc/app/application.cpp1441 // On macOS, widget destruction triggers accessibility notifications viaCOMMENT
LOWsrc/app/application.cpp1461#ifdef Q_OS_WINCOMMENT
LOWsrc/app/application.cpp1541#include "application.moc"COMMENT
LOWsrc/app/main.cpp41#ifndef Q_OS_HAIKUCOMMENT
LOWsrc/app/main.cpp61#ifdef QBT_STATIC_QTCOMMENT
LOWsrc/searchengine/nova3/novaprinter.py1# VERSION: 1.56COMMENT
LOWsrc/searchengine/nova3/nova2dl.py1# VERSION: 1.28COMMENT
LOWsrc/searchengine/nova3/nova2dl.py21# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THECOMMENT
LOWsrc/searchengine/nova3/nova2.py1# VERSION: 1.55COMMENT
LOWsrc/searchengine/nova3/nova2.py21#COMMENT
LOWsrc/searchengine/nova3/helpers.py1# VERSION: 1.61COMMENT
LOWsrc/gui/transferlistfilterswidget.cpp41#include "base/preferences.h"COMMENT
LOWsrc/gui/utils.cpp41#include <QDesktopServices>COMMENT
LOWsrc/gui/transferlistwidget.cpp41#include <QMimeData>COMMENT
LOWsrc/gui/transferlistwidget.cpp61#include "interfaces/iguiapplication.h"COMMENT
LOWsrc/gui/torrentcontentmodel.cpp41#include <QSet>COMMENT
LOWsrc/gui/addnewtorrentdialog.cpp41#include <QFileDialog>COMMENT
LOWsrc/gui/addnewtorrentdialog.cpp61#include "base/bittorrent/torrentdescriptor.h"COMMENT
LOWsrc/gui/torrentcreatordialog.cpp41#include <QThread>COMMENT
LOWsrc/gui/torrentcontentwidget.cpp41#include <QOverload>COMMENT
LOWsrc/gui/mainwindow.cpp41#include <QCloseEvent>COMMENT
LOWsrc/gui/mainwindow.cpp61#ifdef Q_OS_WINCOMMENT
LOWsrc/gui/mainwindow.cpp81#include "autoexpandabledialog.h"COMMENT
LOWsrc/gui/mainwindow.cpp101#include "transferlistfilterswidget.h"COMMENT
LOWsrc/gui/advancedsettings.cpp241 // Bdecode depth limitCOMMENT
LOWsrc/gui/advancedsettings.cpp301 session->setUPnPLeaseDuration(m_spinBoxUPnPLeaseDuration.value());COMMENT
LOWsrc/gui/optionsdialog.cpp41#include <QDialogButtonBox>COMMENT
LOWsrc/gui/optionsdialog.cpp61#include "base/profile.h"COMMENT
LOWsrc/gui/optionsdialog.cpp81#include "uithememanager.h"COMMENT
LOWsrc/gui/trackerlist/trackerlistmodel.cpp41COMMENT
LOWsrc/gui/trackerlist/trackerlistwidget.cpp41#include <QMessageBox>COMMENT
LOWsrc/gui/rss/rsswidget.cpp41#include <QString>COMMENT
LOWsrc/gui/rss/automatedrssdownloader.cpp41COMMENT
LOWsrc/gui/search/searchpluginselectdialog.cpp41#include "base/global.h"COMMENT
LOWsrc/gui/search/searchwidget.cpp41#include <QJsonDocument>COMMENT
LOWsrc/gui/search/searchwidget.cpp61#include "base/search/searchhandler.h"COMMENT
LOWsrc/gui/search/searchjobwidget.cpp41#include <QUrl>COMMENT
LOWsrc/gui/properties/peerlistwidget.cpp41#include <QMessageBox>COMMENT
LOWsrc/gui/properties/propertieswidget.cpp41#include <QShortcut>COMMENT
LOWsrc/webui/webapplication.cpp41#include <QRegularExpression>COMMENT
LOWsrc/webui/webapplication.cpp61#include "api/apierror.h"COMMENT
LOWsrc/webui/webui.cpp21 * modified versions of it that use the same license as the "OpenSSL" library),COMMENT
LOWsrc/webui/webapplication.h41#include <QMap>COMMENT
LOWsrc/webui/www/tstool.py1#!/usr/bin/env python3COMMENT
LOWsrc/webui/api/appcontroller.cpp41#include <QJsonArray>COMMENT
LOWsrc/webui/api/appcontroller.cpp61#include "base/torrentfileguard.h"COMMENT
117 more matches not shown…
Decorative Section Separators10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMsrc/app/CMakeLists.txt14# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt15# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt31# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt32# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt76# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt77# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt132# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt133# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt181# -----------------------------------------------------------------------------COMMENT
MEDIUMsrc/app/CMakeLists.txt182# -----------------------------------------------------------------------------COMMENT
Hyper-Verbose Identifiers10 hits · 12 pts
SeverityFileLineSnippetContext
LOWexamples/plugins/RunExternalProgram.lua13function onTorrentAboutToBeRemoved(torrent)CODE
LOWexamples/plugins/EventHandler.lua67function onTorrentSavingModeChanged(torrent)CODE
LOW⚡examples/plugins/EventHandler.lua86function onTorrentContentFileRenamed(torrent, fileIndex, oldPath)CODE
LOW⚡examples/plugins/EventHandler.lua91function onTorrentContentFolderRenamed(torrent, newPath, oldPath, renamedFiles)CODE
LOW⚡examples/plugins/EventHandler.lua96function onTorrentContentFolderRenamingFailed(torrent, newPath, oldPath, renamedFiles, failedFileIndexes)CODE
LOW⚡examples/plugins/EventHandler.lua106function onTorrentAboutToBeRemoved(torrent)CODE
LOWexamples/plugins/EventHandler.lua142function onTorrentTrackerStatusesUpdated(torrent, updatedTrackers)CODE
LOWsrc/base/http/connection.h41 class IRequestHandler;CODE
LOWsrc/base/http/irequesthandler.h37 class IRequestHandlerCODE
LOWsrc/base/http/server.h39 class IRequestHandler;CODE
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHsrc/searchengine/nova3/socks.py322except socket.error:CODE
HIGHsrc/searchengine/nova3/helpers.py118except IndexError:CODE
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…flows/helper/pre-commit/check_webui_translation_tag.py97CODE
LOW…flows/helper/pre-commit/check_webui_translation_tag.py124CODE
LOW…b/workflows/helper/pre-commit/check_translation_tag.py36CODE
LOWsrc/searchengine/nova3/socks.py187CODE
LOWsrc/searchengine/nova3/socks.py480CODE
LOWsrc/searchengine/nova3/nova2.py154CODE
LOWsrc/searchengine/nova3/helpers.py73CODE
LOWsrc/webui/www/tstool.py59CODE
Excessive Try-Catch Wrapping5 hits · 5 pts
SeverityFileLineSnippetContext
LOWsrc/searchengine/nova3/socks.py82 except Exception as e:CODE
LOWsrc/searchengine/nova3/nova2.py147 except Exception:CODE
LOWsrc/searchengine/nova3/nova2.py215 except Exception:CODE
LOWsrc/webui/www/tstool.py64 except Exception:CODE
LOWsrc/webui/www/tstool.py138 except Exception:CODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/searchengine/nova3/socks.py645 # Check if the destination address provided is an IP addressCOMMENT
LOWsrc/searchengine/nova3/helpers.py109 # Check if it is gzippedCOMMENT
LOWsrc/searchengine/nova3/helpers.py143 # Check if it is gzippedCOMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/searchengine/nova3/socks.py187CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/searchengine/nova3/socks.py55CODE