AI Slop Code Risk Monitor

phpmyadmin/phpmyadmin

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

A web interface for MySQL and MariaDB

3.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for phpmyadmin/phpmyadmin, a PHP project with 7,969 GitHub stars. SynthScan examined 331,818 lines of code across 1530 source files, recording 1209 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.6
Adjusted Signal
3.6
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
8.0K
Stars
PHP
Language
331.8K
Lines of Code
1.5K
Files
1.2K
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 16.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 15.7/100 · LOW

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

PR Review Velocity Impact 16.8/100 · LOW

Which changes need focused human review? 1209 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 1HIGH 0MEDIUM 2LOW 1206

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 1209 distinct pattern matches across 8 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.

Hyper-Verbose Identifiers1158 hits · 1131 pts
SeverityFileLineSnippetContext
LOWresources/js/gis_data_editor.ts17function disposeGISEditorVisualization () {CODE
LOWresources/js/gis_data_editor.ts27function initGISEditorVisualization (olData: OlData) {CODE
LOWresources/js/gis_data_editor.ts125function makeMultiLineStringInputs (prefix: string, data): string {CODE
LOWresources/js/gis_data_editor.ts206function makeGeometryCollectionGeometryInputs (prefix: string, index: number, data): string {CODE
LOWresources/js/gis_data_editor.ts225function makeGeometryCollectionInputs (prefix: string, data): string {CODE
LOWresources/js/export.ts16function disableDumpSomeRowsSubOptions () {CODE
LOWresources/js/export.ts26function enableDumpSomeRowsSubOptions () {CODE
LOWresources/js/export.ts368function setupTableStructureOrData () {CODE
LOWresources/js/export.ts527function checkTableSelectStructureOrData () {CODE
LOWresources/js/datetimepicker.ts3function registerDatePickerTranslations () {CODE
LOWresources/js/datetimepicker.ts82function registerTimePickerTranslations () {CODE
LOWresources/js/events.ts159 function eventsEditorModalSaveEventHandler () {CODE
LOWresources/js/validator-messages.ts3function extendingValidatorMessages () {CODE
LOWresources/js/triggers.ts167 function triggersEditorModalSaveEventHandler () {CODE
LOWresources/js/database/structure.ts89function addTooltipToFavoriteIcons (): void {CODE
LOWresources/js/server/privileges.ts26function exportPrivilegesModalHandler (data, msgbox) {CODE
LOWresources/js/server/status/monitor.ts32function serverResponseErrorModalReloadEventHandler () {CODE
LOWresources/js/server/status/monitor.ts661 function monitorImportConfigImportEventHandler () {CODE
LOWresources/js/server/status/monitor.ts1376 function logAnalyseModalSlowLogEventHandler () {CODE
LOWresources/js/server/status/monitor.ts1381 function logAnalyseModalGeneralLogEventHandler () {CODE
LOWresources/js/server/status/monitor.ts1776 function analysingLogsLogDataLoadedModalJumpEventHandler () {CODE
LOWresources/js/server/status/monitor.ts2073 function queryAnalyzerModalSaveEventHandler () {CODE
LOWresources/js/table/change.ts165function verifyAfterSearchFieldChange (index, searchFormId) {CODE
LOWresources/js/table/change.ts325function verificationsAfterFieldChange (urlField, multiEdit, theType) {CODE
LOWresources/js/table/change.ts709function addNewContinueInsertionFields (event) {CODE
LOWresources/js/table/operations.ts260 function submitPartitionMaintenance () {CODE
LOWresources/js/modules/navigation.ts521 function loadAndHighlightTableOrView ($dbItem, itemName) {CODE
LOWresources/js/modules/functions.ts458export function displayPasswordGenerateButton () {CODE
LOWresources/js/modules/functions.ts922export function getCheckAllCheckboxEventHandler () {CODE
LOWresources/js/modules/functions.ts1056export function getForeignKeyCheckboxLoader () {CODE
LOWresources/js/modules/functions.ts1081export function teardownSqlQueryEditEvents () {CODE
LOWresources/js/modules/functions.ts1192export function codeMirrorAutoCompleteOnInputRead (instance) {CODE
LOWresources/js/modules/functions.ts1290function bindCodeMirrorToInlineEditor () {CODE
LOWresources/js/modules/functions.ts1311function catchKeypressesFromSqlInlineEdit (event) {CODE
LOWresources/js/modules/functions.ts1591function resetAttributeForNonNumericType ($typeSelector) {CODE
LOWresources/js/modules/functions.ts1662function createFunctionConfirmModal (): void {CODE
LOWresources/js/modules/functions.ts1780export function teardownCreateTableEvents (): void {CODE
LOWresources/js/modules/functions.ts1892 function submitChangesInCreateTableForm (actionParam) {CODE
LOWresources/js/modules/functions.ts2013export function shouldShowEmptyPasswordWarning (form): boolean {CODE
LOWresources/js/modules/functions.ts2017export function onloadChangePasswordEvents (): void {CODE
LOWresources/js/modules/functions.ts2164export function teardownEnumSetEditorMessage (): void {CODE
LOWresources/js/modules/functions.ts2176export function onloadEnumSetEditorMessage (): void {CODE
LOWresources/js/modules/functions.ts3073export function getPageSelectorEventHandler () {CODE
LOWresources/js/modules/functions.ts3087export function teardownRecentFavoriteTables (): void {CODE
LOWresources/js/modules/functions.ts3091export function onloadRecentFavoriteTables (): void {CODE
LOWresources/js/modules/functions.ts3331export function getAutoSubmitEventHandler () {CODE
LOWresources/js/modules/functions.ts3433export function getCheckAllBoxEventHandler () {CODE
LOWresources/js/modules/functions.ts3444export function getCheckAllFilterEventHandler () {CODE
LOWresources/js/modules/functions.ts3478export function getSubCheckAllBoxEventHandler () {CODE
LOWresources/js/modules/functions.ts3497export function getFilterTextEventHandler () {CODE
LOWresources/js/modules/functions.ts3596export function toggleDatepickerIfInvalid ($td, $inputField) {CODE
LOWresources/js/modules/functions.ts3634export function getKeyboardFormSubmitEventHandler () {CODE
LOWresources/js/modules/functions.ts3657export function getSslPasswordEventHandler () {CODE
LOWresources/js/modules/functions.ts3667export function teardownSortLinkMouseEvent () {CODE
LOWresources/js/modules/navigation/event-loader.ts9function updateFavoriteTableButton (buttonId: string, htmlContent: string): void {CODE
LOW…s/js/modules/navigation/updateNavigationWidthConfig.ts5export default function updateNavigationWidthConfig (value: number): void {CODE
LOWtests/unit/SqlQueryFormTest.php85 public function testPMAGetHtmlForSqlQueryFormInsert(): voidCODE
LOWtests/unit/SqlQueryFormTest.php125 public function testPMAGetHtmlForSqlQueryForm(): voidCODE
LOWtests/unit/StorageEngineTest.php156 public function testGetVariablesLikePattern(): voidCODE
LOWtests/unit/StorageEngineTest.php189 public function testGetSupportInformationMessage(): voidCODE
1098 more matches not shown…
Fake / Example Data16 hits · 24 pts
SeverityFileLineSnippetContext
LOWtests/unit/GitTest.php183 'name' => 'John Doe',CODE
LOWtests/unit/GitTest.php184 'email' => 'john.doe@example.org',CODE
LOWtests/unit/GitTest.php479 'name' => 'John Doe',CODE
LOWtests/unit/GitTest.php480 'email' => 'john.doe@example.org',CODE
LOWtests/unit/GitTest.php619 'name' => 'John Doe',CODE
LOWtests/unit/GitTest.php620 'email' => 'john.doe@example.org',CODE
LOWtests/unit/Command/WriteGitRevisionCommandTest.php109 'John Doe', // Author nameCODE
LOWtests/unit/Command/WriteGitRevisionCommandTest.php110 'john.doe@example.org', // Author emailCODE
LOWsrc/Plugins/Import/ImportOds.php215 // Example: <text:a ... xlink:href="mailto:contact@example.org">test@example.fr</text:a>COMMENT
LOWsrc/Dbal/DatabaseInterface.php1123 * // $user_name = 'John Doe'COMMENT
LOWsrc/Dbal/DatabaseInterface.php1151 * // $user = array('id' => 123, 'name' => 'John Doe')COMMENT
LOW⚡src/Dbal/DatabaseInterface.php1194 * // $users['123'] = array('id' => 123, 'name' => 'John Doe')COMMENT
LOW⚡src/Dbal/DatabaseInterface.php1199 * // $users['123'] = array(0 => 123, 1 => 'John Doe')COMMENT
LOW⚡src/Dbal/DatabaseInterface.php1206 * // $users['123'] = 'John Doe'COMMENT
LOW⚡src/Dbal/DatabaseInterface.php1247 * // $users['admin'][] = 'John Doe'COMMENT
LOW⚡src/Dbal/DatabaseInterface.php1252 * // $users['admin']['John Doe'] = '123'COMMENT
Over-Commented Block22 hits · 22 pts
SeverityFileLineSnippetContext
LOWconfig.sample.inc.php41// $cfg['Servers'][$i]['controluser'] = 'pma';COMMENT
LOWbin/transformations_generator_plugin.sh1#!/bin/bashCOMMENT
LOWresources/js/sql.ts581 * Attach Event Handler for 'Copy to clipboard'COMMENT
LOWresources/js/triggers.ts241 if (! inserted) {COMMENT
LOWtests/unit/LinterTest.php41 {COMMENT
LOW…/Plugins/Transformations/TransformationPluginsTest.php61#[CoversClass(IOTransformationsPlugin::class)]COMMENT
LOW…/Plugins/Transformations/TransformationPluginsTest.php81#[CoversClass(Text_Plain_RegexValidation::class)]COMMENT
LOWdocs/conf.py1# -*- coding: utf-8 -*-COMMENT
LOWdocs/conf.py41COMMENT
LOWdocs/conf.py61COMMENT
LOWdocs/conf.py81#add_module_names = TrueCOMMENT
LOWdocs/conf.py121# A shorter title for the navigation bar. Default is the same as html_title.COMMENT
LOWdocs/conf.py141#html_extra_path = []COMMENT
LOWdocs/conf.py161# If false, no index is generated.COMMENT
LOWdocs/conf.py201# Grouping the document tree into LaTeX files. List of tuplesCOMMENT
LOWdocs/conf.py281#epub_identifier = ''COMMENT
LOWsrc/Sql.php641 }COMMENT
LOWsrc/Linter.php41COMMENT
LOW…/Transformations/Abs/ExternalTransformationsPlugin.php81COMMENT
LOWsrc/Plugins/Export/ExportSql.php1341 } else {COMMENT
LOWsrc/Plugins/Export/ExportSql.php2201 * @return string MSSQL compatible create table statementCOMMENT
LOWsrc/Display/Results.php1681COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALresources/js/server/status/monitor.ts1342 return window.Chart.Ticks.formatters.numeric.apply(this, [value, index, ticks]);CODE
Slop Phrases6 hits · 8 pts
SeverityFileLineSnippetContext
LOWbin/internal/create-release.sh738 Don't forget to update the Description section in the announcement,CODE
LOWresources/sql/upgrade_tables_mysql_4_1_2+.sql11-- Please don't forget to set up the tablenames in config.inc.phpCODE
LOWresources/sql/create_tables.sql12-- Please don't forget to set up the tablenames in config.inc.phpCODE
LOWresources/sql/upgrade_column_info_4_3_0+.sql8-- Please don't forget to set up the table names in config.inc.phpCODE
LOWresources/sql/upgrade_tables_4_7_0+.sql8-- Please don't forget to set up the table names in config.inc.phpCODE
MEDIUMtests/unit/Stubs/ResponseRenderer.php7 * suite. Feel free to modify for any future test needs.COMMENT
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocs/conf.py104CODE
LOWdocs/_ext/configext.py3CODE
LOWdocs/_ext/configext.py3CODE
LOWdocs/_ext/configext.py5CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/conf.py6# This file is execfile()d with the current directory set to its containing dir.COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtests/unit/InsertEditTest.php235 // TODO: Add test for false caseCOMMENT