AI Slop Code Risk Monitor

pawelsalawa/letos

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

A free, open source, multi-platform SQLite database manager.

0.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for pawelsalawa/letos, a C project with 6,808 GitHub stars. SynthScan examined 668,274 lines of code across 2064 source files, recording 429 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 0.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.

0.6
Adjusted Signal
0.6
Raw Pattern Score
100%
Time Factor
2026-10-21
Last Push
6.8K
Stars
C
Language
668.3K
Lines of Code
2.1K
Files
429
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 2.5/100 · LOW

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

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

PR Review Velocity Impact 3.8/100 · LOW

Which changes need focused human review? 429 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 45LOW 384

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 429 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 Block384 hits · 318 pts
SeverityFileLineSnippetContext
LOWPlugins/DbSQLite3MC/dbsqlitemc_global.h1#ifndef DBSQLITEMC_GLOBAL_HCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h121# define SQLITE_APICOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h501#define SQLITE_BUSY 5 /* The database file is locked */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h541** on a per database connection basis using theCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h561#define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8))COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h581#define SQLITE_IOERR_COMMIT_ATOMIC (SQLITE_IOERR | (30<<8))COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h601#define SQLITE_CORRUPT_INDEX (SQLITE_CORRUPT | (3<<8))COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h641** Applications should not depend on the historical behavior.COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h661#define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h721#define SQLITE_IOCAP_ATOMIC4K 0x00000010COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h1281** about the [mc_sqlite3_file] objects used access the database and journal filesCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h1301#define SQLITE_FCNTL_POWERSAFE_OVERWRITE 13COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h1321#define SQLITE_FCNTL_LOCK_TIMEOUT 34COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h2261#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h2741** [SQLITE_DBCONFIG_LOOKASIDE], and [SQLITE_DBCONFIG_FP_DIGITS] optionsCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h3581*/COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h3601#define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h4501#define SQLITE_LIMIT_SQL_LENGTH 1COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h8681#define SQLITE_MUTEX_FAST 0COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h8781**COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h8801#define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h9321** ^The highwater mark is always 0.COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15181#define mc_sqlite3_bind_parameter_count mc_sqlite3_api->bind_parameter_countCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15201#define mc_sqlite3_column_double mc_sqlite3_api->column_doubleCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15221#define mc_sqlite3_create_module mc_sqlite3_api->create_moduleCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15241#define mc_sqlite3_global_recover mc_sqlite3_api->global_recoverCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15261#define mc_sqlite3_result_error mc_sqlite3_api->result_errorCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15281#define mc_sqlite3_transfer_bindings mc_sqlite3_api->transfer_bindingsCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15301#define mc_sqlite3_prepare16_v2 mc_sqlite3_api->prepare16_v2COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15321#define mc_sqlite3_result_error_toobig mc_sqlite3_api->result_error_toobigCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15341#define mc_sqlite3_backup_remaining mc_sqlite3_api->backup_remainingCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15361#define mc_sqlite3_vtab_on_conflict mc_sqlite3_api->vtab_on_conflictCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15381#define mc_sqlite3_load_extension mc_sqlite3_api->load_extensionCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15401/* Version 3.12.0 and later */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15421#define mc_sqlite3_keyword_check mc_sqlite3_api->keyword_checkCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15441#define mc_sqlite3_drop_modules mc_sqlite3_api->drop_modulesCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15461#define mc_sqlite3_vtab_rhs_value mc_sqlite3_api->vtab_rhs_valueCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15481/* Version 3.50.0 and later */COMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15601#define mc_sqlite3_memory_alarm SQLITE3MC_API_TABLE_CORE->memory_alarmCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15621#define mc_sqlite3_stmt_scanstatus_reset SQLITE3MC_API_TABLE_CORE->stmt_scanstatus_resetCOMMENT
LOWPlugins/DbSQLite3MC/sqlite3mc_amalgamation.h15641#define mc_sqlite3mc_config_cipher SQLITE3MC_API_TABLE_MC->mc_config_cipherCOMMENT
LOWPlugins/DbSQLite3MC/dbsqlitemcinstance.h1#ifndef DBSQLITEMCINSTANCE_HCOMMENT
LOWPlugins/XmlExport/xmlexport_global.h1#ifndef XMLEXPORT_GLOBAL_HCOMMENT
LOW…ins/TclSyntaxHighlighter/TclSyntaxHighlighter_global.h1#ifndef TCLSYNTAXHIGHLIGHTER_GLOBAL_HCOMMENT
LOWPlugins/ErdEditor/erdeditor_global.h1#ifndef ERDEDITOR_GLOBAL_HCOMMENT
LOWPlugins/ErdEditor/erdwindow.cpp1#include "erdwindow.h"COMMENT
LOWPlugins/ErdEditor/erdwindow.cpp21#include "changes/erdchangeregistrydialog.h"COMMENT
LOWPlugins/ErdEditor/panel/erdtablewindow.cpp1#include "erdtablewindow.h"COMMENT
LOWPlugins/ErdEditor/panel/erdconnectionpanel.cpp1#include "erdconnectionpanel.h"COMMENT
LOWPlugins/ErdEditor/changes/erdeffectivechangemerger.cpp1#include "erdchange.h"COMMENT
LOWPlugins/ErdEditor/scene/erdscene.cpp1#include "erdscene.h"COMMENT
LOWPlugins/ErdEditor/scene/erdentity.cpp1#include "erdentity.h"COMMENT
LOWPlugins/ErdEditor/scene/erdview.cpp1#include "erdview.h"COMMENT
LOWPlugins/ErdEditor/scene/erdarrowitem.cpp1#include "erdarrowitem.h"COMMENT
LOWPlugins/RegExpImport/regexpimport_global.h1#ifndef REGEXPIMPORT_GLOBAL_HCOMMENT
LOWPlugins/PdfExport/pdfexport_global.h1#ifndef PDFEXPORT_GLOBAL_HCOMMENT
LOWPlugins/SqlExport/sqlexport_global.h1#ifndef SQLEXPORT_GLOBAL_HCOMMENT
LOWPlugins/SqlFormatterSimple/sqlformattersimple_global.h1#ifndef SQLFORMATTERSIMPLE_GLOBAL_HCOMMENT
LOWPlugins/MultiEditorImage/multieditorimage.cpp1#include "multieditorimage.h"COMMENT
LOWPlugins/MultiEditorImage/multieditorimage_global.h1#ifndef MULTIEDITORIMAGE_GLOBAL_HCOMMENT
324 more matches not shown…
Decorative Section Separators38 hits · 93 pts
SeverityFileLineSnippetContext
MEDIUMLetos/core/licenses/icu.txt314 # ----------------------------------------------------------------------COMMENT
MEDIUMLetos/core/licenses/icu.txt339 # --------------------------------------------------------------------------COMMENT
MEDIUMLetos/core/licenses/icu.txt351 # --------------------------------------------------------------------------COMMENT
MEDIUMLetos/core/licenses/icu.txt381 # --------------------------------------------------------------------------COMMENT
MEDIUM⚡Letos/docs/sqlitestudio3_docs.cfg1821#---------------------------------------------------------------------------COMMENT
MEDIUM⚡Letos/docs/sqlitestudio3_docs.cfg1823#---------------------------------------------------------------------------COMMENT
MEDIUM⚡Letos/docs/sqlitestudio3_docs.cfg1833#---------------------------------------------------------------------------COMMENT
MEDIUM⚡Letos/docs/sqlitestudio3_docs.cfg1835#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg16#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg18#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg387#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg389#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg667#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg669#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg726#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg728#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg874#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg876#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg960#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg962#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg986#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg988#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1526#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1528#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1671#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1673#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1727#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1729#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1764#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1766#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1803#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1805#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1871#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1873#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1949#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1951#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg2000#---------------------------------------------------------------------------COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg2002#---------------------------------------------------------------------------COMMENT
Slop Phrases4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMLetos/docs/sqlitestudio3_docs.cfg266# Note For files without extension you can use no_extension as a placeholder.COMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg747# If the value of the INPUT tag contains directories, you can use theCOMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg780# If the value of the INPUT tag contains directories, you can use theCOMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg806# If the value of the EXAMPLE_PATH tag contains directories, you can use theCOMMENT
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…os/core/db/queryexecutorsteps/queryexecutorcolumns.cpp114 // We cannot leverage INSTEAD OF triggers for arbitrary queries, because it's not possible to identify ROWIDCOMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1046# it is more robust and this tag (HTML_STYLESHEET) will in the future becomeCOMMENT
MEDIUMLetos/docs/sqlitestudio3_docs.cfg1056# standard style sheet and is therefor more robust against future updates.COMMENT