AI Slop Code Risk Monitor

yangzongzhuan/RuoYi

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

:tada: (RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

1.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for yangzongzhuan/RuoYi, a HTML project with 8,635 GitHub stars. SynthScan examined 152,523 lines of code across 605 source files, recording 71 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.1 (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.1
Adjusted Signal
1.1
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
8.6K
Stars
HTML
Language
152.5K
Lines of Code
605
Files
71
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 1.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.8/100 · LOW

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

Agent Over-Engineering Ratio 1.3/100 · LOW

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

PR Review Velocity Impact 5.0/100 · LOW

Which changes need focused human review? 71 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 9HIGH 0MEDIUM 3LOW 59

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 71 distinct pattern matches across 6 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 Indicators9 hits · 100 pts
SeverityFileLineSnippetContext
CRITICAL…artz/src/main/resources/templates/monitor/job/add.html29 <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> Class类调用示例:com.ruoyi.quartz.task.RyTask.ryPaCODE
CRITICAL…rtz/src/main/resources/templates/monitor/job/edit.html30 <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> Class类调用示例:com.ruoyi.quartz.task.RyTask.ryPaCODE
CRITICALruoyi-admin/src/main/resources/static/js/jquery.min.js2!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){ifCODE
CRITICAL…n/src/main/resources/static/js/jquery-ui-1.10.4.min.js5(function(t,e){function i(e,i){var n,o,a,r=e.nodeName.toLowerCase();return"area"===r?(n=e.parentNode,o=n.name,e.href&&o&CODE
CRITICAL…n/src/main/resources/static/js/jquery-ui-1.10.4.min.js10this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,CODE
CRITICAL⚡…ap-table/extensions/editable/bootstrap-editable.min.js5!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),thisCODE
CRITICAL⚡…ap-table/extensions/editable/bootstrap-editable.min.js7}),void 0!==h?h:this},i=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,calendarWeeks:!1,clearBtn:!1,daysOfWCODE
CRITICAL…/static/ajax/libs/bootstrap-select/bootstrap-select.js3092 this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);CODE
CRITICAL…tic/ajax/libs/bootstrap-select/bootstrap-select.min.js8!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],function(CODE
Hyper-Verbose Identifiers33 hits · 39 pts
SeverityFileLineSnippetContext
LOW…esources/static/ajax/libs/suggest/bootstrap-suggest.js63 function setOrGetAlt($input, val) {CODE
LOW…esources/static/ajax/libs/suggest/bootstrap-suggest.js69 function setOrGetDataId($input, val) {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js13(function webpackUniversalModuleDefinition(root, factory) {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js2459 value: function createInvokeHandlerAndUpdateState(namespace, value) {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js4633 function getDeleteResultActionToCell(cell) {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js5650 value: function preventDefaultEditableShortCuts(event) {CODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js6876 'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteCODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js6879 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {CODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js6882 'summernote.codeview.toggled': function summernoteCodeviewToggled() {CODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js7256 'summernote.init summernote.change': function summernoteInitSummernoteChange() {CODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js7259 'summernote.codeview.toggled': function summernoteCodeviewToggled() {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js8555 'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseCODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js8558 'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummeCODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js8806 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js8896 'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange()CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js8899 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js9310 'summernote.keyup summernote.mouseup summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteScrollCODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js9320 'summernote.disable summernote.change summernote.dialog.shown summernote.blur': function summernoteDisableSummernoCODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js9442 'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummeCODE
LOW…src/main/resources/static/ajax/libs/cropper/cropper.js1087 function resetAndGetOrientation(arrayBuffer) {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js30 formatSRPaginationPreText: function formatSRPaginationPreText() {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js33 formatSRPaginationPageText: function formatSRPaginationPageText(page) {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js36 formatSRPaginationNextText: function formatSRPaginationNextText() {CODE
LOW…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js54 formatPaginationSwitchDown: function formatPaginationSwitchDown() {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js96 formatAdvancedCloseButton: function formatAdvancedCloseButton() {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js99 formatFilterControlSwitch: function formatFilterControlSwitch() {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js102 formatFilterControlSwitchHide: function formatFilterControlSwitchHide() {CODE
LOW⚡…x/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js105 formatFilterControlSwitchShow: function formatFilterControlSwitchShow() {CODE
LOW…bs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js1$.fn.bootstrapTable.locales["zh-CN"]={formatShowSearch:function formatShowSearch(){return"隐藏/显示搜索"},formatPageGo:functioCODE
LOW…rc/main/resources/static/ajax/libs/flot/jquery.flot.js398 function getOrCreateAxis(axes, number) {CODE
LOW…rc/main/resources/static/ajax/libs/flot/jquery.flot.js911 function allocateAxisBoxFirstPhase(axis) {CODE
LOW…rc/main/resources/static/ajax/libs/flot/jquery.flot.js980 function allocateAxisBoxSecondPhase(axis) {CODE
LOW…urces/static/ajax/libs/fullscreen/jquery.fullscreen.js145 function installFullScreenHandlers()CODE
Fake / Example Data16 hits · 18 pts
SeverityFileLineSnippetContext
LOW…rces/static/ajax/libs/bootstrap-fileinput/fileinput.js1108 self.$caption.attr("placeholder", self.msgPlaceholder.replace("{files}", f));CODE
LOW…/static/ajax/libs/bootstrap-fileinput/fileinput.min.js11!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==CODE
LOW⚡…in/resources/static/ajax/libs/summernote/summernote.js7252 this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder;CODE
LOW…in/resources/static/ajax/libs/summernote/summernote.js9770 'placeholder': Placeholder_Placeholder,CODE
LOW…esources/static/ajax/libs/summernote/summernote.min.js2!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("jquery"));else if("functioCODE
LOW⚡…ap-table/extensions/editable/bootstrap-editable.min.js5!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),thisCODE
LOW⚡…ap-table/extensions/editable/bootstrap-editable.min.js7}),void 0!==h?h:this},i=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,calendarWeeks:!1,clearBtn:!1,daysOfWCODE
LOW…tic/ajax/libs/duallistbox/bootstrap-duallistbox.min.js10!function(a,e){var s="bootstrapDualListbox",n={bootstrap2Compatible:!1,filterTextClear:"show all",filterPlaceHolder:"FilCODE
LOW…/static/ajax/libs/duallistbox/bootstrap-duallistbox.js520 this.elements.filterInput1.attr('placeholder', value);CODE
LOW…/static/ajax/libs/duallistbox/bootstrap-duallistbox.js521 this.elements.filterInput2.attr('placeholder', value);CODE
LOW…main/resources/static/ajax/libs/select2/select2.min.js8(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{if(typeof module==="objectCODE
LOW…src/main/resources/static/ajax/libs/select2/select2.js1812 this.placeholder = this.normalizePlaceholder(options.get('placeholder'));CODE
LOW…src/main/resources/static/ajax/libs/select2/select2.js2148 this.$search.attr('placeholder', placeholder.text);CODE
LOW…src/main/resources/static/ajax/libs/select2/select2.js2154 this.$search.attr('placeholder', '');CODE
LOW…src/main/resources/static/ajax/libs/select2/select2.js2195 if (this.$search.attr('placeholder') !== '') {CODE
LOW…src/main/resources/static/ajax/libs/select2/select2.js4193 this.placeholder = this.normalizePlaceholder(options.get('placeholder'));CODE
Modern AI Meta-Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…rc/main/resources/templates/demo/form/tabs_panels.html96 <p>Bootstrap 排版、链接样式设置了基本的全局样式。分别是: 为 body 元素设置 background-color: #fff; 使用 @font-family-CODE
MEDIUM…rc/main/resources/templates/demo/form/tabs_panels.html137 <p>Bootstrap 排版、链接样式设置了基本的全局样式。分别是: 为 body 元素设置 background-color: #fff; 使用 @font-famCODE
MEDIUM…rc/main/resources/templates/demo/form/tabs_panels.html167 <p>Bootstrap 排版、链接样式设置了基本的全局样式。分别是: 为 body 元素设置 background-color: #fff; 使用 @font-famCODE
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOW…/main/java/com/ruoyi/quartz/config/ScheduleConfig.java1//package com.ruoyi.quartz.config;COMMENT
LOW…/main/java/com/ruoyi/quartz/config/ScheduleConfig.java21// factory.setDataSource(dataSource);COMMENT
LOW…/main/java/com/ruoyi/quartz/config/ScheduleConfig.java41// prop.put("org.quartz.jobStore.misfireThreshold", "12000");COMMENT
LOWruoyi-admin/src/main/resources/banner.txt1Application Version: ${ruoyi.version}COMMENT
LOWruoyi-admin/src/main/resources/banner.txt21// `=---=' //COMMENT
Overly Generic Function Names5 hits · 5 pts
SeverityFileLineSnippetContext
LOW…esources/static/ajax/libs/suggest/bootstrap-suggest.js583 function getData(keyword, $input, callback, options) {CODE
LOW…esources/static/ajax/libs/suggest/bootstrap-suggest.js659 function processData(data) {CODE
LOW…src/main/resources/static/ajax/libs/cropper/cropper.js546 function getData(element, name) {CODE
LOW…src/main/resources/static/ajax/libs/cropper/cropper.js2787 getData: function getData() {CODE
LOW…rc/main/resources/static/ajax/libs/flot/jquery.flot.js489 function processData() {CODE