AI Slop Code Risk Monitor

YunaiV/ruoyi-vue-pro

SlopCodeMonitor badge for YunaiV/ruoyi-vue-pro Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城、CRM、ERP、MES、IM、AI 大模型、IoT 物联网等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!

0.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for YunaiV/ruoyi-vue-pro, a Java project with 40,143 GitHub stars. SynthScan examined 738,956 lines of code across 7929 source files, recording 102 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 0.5 (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.5
Adjusted Signal
0.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
40.1K
Stars
Java
Language
739.0K
Lines of Code
7.9K
Files
102
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 0.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.8/100 · LOW

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

Agent Over-Engineering Ratio 0.6/100 · LOW

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

PR Review Velocity Impact 2.4/100 · LOW

Which changes need focused human review? 102 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 24HIGH 0MEDIUM 18LOW 60

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 102 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 Indicators24 hits · 240 pts
SeverityFileLineSnippetContext
CRITICAL…/hrm/service/employee/info/HrmEmployeeServiceImpl.java1368 com.mzt.logapi.beans.LogRecord.builder()CODE
CRITICAL…/hrm/service/employee/info/HrmEmployeeServiceImpl.java1382 com.mzt.logapi.beans.LogRecord.builder()CODE
CRITICAL…el/core/handler/ColumnWidthMatchStyleStrategyTest.java51 row.setName(cn.hutool.core.util.StrUtil.repeat("测试", 100));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java304 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "oracle", oracle, "CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java595 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "oracle", oracle, "CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java614 BoundSql boundSql = sqlSource.getBoundSql(com.google.common.collect.ImmutableMap.of("ew", labelWrapper));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java627 boundSql = sqlSource.getBoundSql(com.google.common.collect.ImmutableMap.of("ew", bookingWrapper));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java831 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "mysql", mysql));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java856 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "mysql", mysql, "orCODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java879 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "mysql", mysql));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java908 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", sqlServer, "h2", h2));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java938 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", postgresql, "sqlserver", sqlSerCODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java974 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", mysql, "oracle", oracle, "sqlseCODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java1015 mockDynamicRoutingDataSource(com.google.common.collect.ImmutableMap.of("master", sqlite));CODE
CRITICAL…o/framework/mybatis/core/util/SqlDialectUtilsTest.java1021 Exception ex = assertThrows(Exception.class, () -> sqlSource.getBoundSql(com.google.common.collect.ImmutableMap.CODE
CRITICAL…coder/yudao/framework/mybatis/core/util/JdbcUtils.java66 DbType dbType = com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.getDbType(url);CODE
CRITICAL…udao/module/pay/convert/channel/PayChannelConvert.java26 @Mapping(target = "config",expression = "java(cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString(beaCODE
CRITICAL…oller/admin/cal/plan/MesCalPlanTeamControllerTest.java55 when(teamService.getTeamMap(java.util.Arrays.asList(20L, 10L))).thenReturn(com.google.common.collect.ImmutableMaCODE
CRITICAL…ntroller/admin/pro/task/MesProTaskIssueController.java113 return cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(list, issue -> {CODE
CRITICAL…/wm/productsales/MesWmProductSalesLineServiceImpl.java120 return cn.iocoder.yudao.framework.common.pojo.PageResult.empty();CODE
CRITICAL…ce/wm/warehouse/MesWmWarehouseLocationServiceImpl.java189 cn.hutool.core.lang.Assert.notNull(warehouse, "虚拟仓库必须存在");CODE
CRITICAL…es/service/dv/machinery/MesDvMachineryServiceImpl.java205 new cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.type.MesDvMachineryTypeListReqVO());CODE
CRITICAL…es/service/dv/machinery/MesDvMachineryServiceImpl.java209 cn.iocoder.yudao.framework.common.enums.CommonStatusEnum.ENABLE.getStatus());CODE
CRITICAL…vice/definition/BpmProcessListenerServiceImplTest.java82 org.flowable.engine.delegate.TaskListener.class.getName());CODE
Decorative Section Separators18 hits · 75 pts
SeverityFileLineSnippetContext
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml49 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml51 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml56 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml58 # ====================================COMMENT
MEDIUM…module-iot-gateway/src/main/resources/application.yaml77 # ====================================COMMENT
MEDIUM…module-iot-gateway/src/main/resources/application.yaml79 # ====================================COMMENT
MEDIUM…module-iot-gateway/src/main/resources/application.yaml90 # ====================================COMMENT
MEDIUM…module-iot-gateway/src/main/resources/application.yaml92 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml103 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml105 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml114 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml116 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml125 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml127 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml168 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml170 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml177 # ====================================COMMENT
MEDIUM⚡…module-iot-gateway/src/main/resources/application.yaml179 # ====================================COMMENT
Fake / Example Data24 hits · 33 pts
SeverityFileLineSnippetContext
LOW…oa/controller/admin/contact/vo/OaContactSaveReqVO.java35 @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "user@example.com")CODE
LOW…ller/admin/mail/vo/account/OaMailAccountSaveReqVO.java23 @Schema(description = "邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "user@example.com")CODE
LOW…ller/admin/mail/vo/account/OaMailAccountSaveReqVO.java29 @Schema(description = "登录用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "user@example.com")CODE
LOW…troller/admin/mail/vo/account/OaMailAccountRespVO.java16 @Schema(description = "邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "user@example.com")CODE
LOW…troller/admin/mail/vo/account/OaMailAccountRespVO.java22 @Schema(description = "登录用户名", example = "user@example.com")CODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json4 "placeholder": trueCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json8 "placeholder": trueCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json12 "placeholder": trueCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json16 "placeholder": trueCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json20 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json24 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json28 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json32 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json36 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json40 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json44 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json48 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json52 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json56 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json60 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json64 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json68 "placeholder": falseCODE
LOW⚡…pringai/src/test/resources/provider-api-key-cases.json72 "placeholder": falseCODE
LOW…odule/system/service/mail/MailSendServiceImplTest.java82 AdminUserDO user = randomPojo(AdminUserDO.class, o -> o.setEmail("admin@example.com"));CODE
Over-Commented Block27 hits · 27 pts
SeverityFileLineSnippetContext
LOW…/module/member/service/auth/MemberAuthServiceTest.java61//COMMENT
LOW…/module/member/service/auth/MemberAuthServiceTest.java81 // TODO 芋艿:后续重构这个单测COMMENT
LOW…ule/member/service/user/MemberUserServiceImplTest.java61// userMapper.insert(userDO);COMMENT
LOW…mework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java121 # Dify:新一代AI应用开发平台COMMENT
LOW…mework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java141 #### 1.3.1 早期探索COMMENT
LOW…mework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java181 ## 3 Dify的特点和优势COMMENT
LOW…mework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java201 #### 3.3.2 快速部署COMMENT
LOW…mework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java281 ### 6.2 生态建设COMMENT
LOW…a/cn/iocoder/yudao/module/ai/enums/AiChatRoleEnum.java21COMMENT
LOWyudao-server/src/main/resources/application-local.yaml61 password: 123456COMMENT
LOWyudao-server/src/main/resources/application-local.yaml81# druid:COMMENT
LOWyudao-server/src/main/resources/application-dev.yaml61# driver-class-name: com.taosdata.jdbc.ws.WebSocketDriverCOMMENT
LOW…va/cn/iocoder/yudao/server/YudaoServerApplication.java21 // 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章COMMENT
LOW…t/service/category/ProductCategoryServiceImplTest.java41 @TestCOMMENT
LOW…ervice/brokerage/BrokerageWithdrawServiceImplTest.java101 assertEquals(1, pageResult.getList().size());COMMENT
LOW…ice/price/calculator/TradePointUsePriceCalculator.java101 // 禁止 0 元购COMMENT
LOW…ce/combination/CombinationActivityServiceImplTest.java121 // 测试 name 不匹配COMMENT
LOW…ce/seckillactivity/SeckillActivityServiceImplTest.java161// reqVO.setTimeId(null);COMMENT
LOW…ervice/seckillconfig/SeckillConfigServiceImplTest.java121 }COMMENT
LOW…ervice/seckillconfig/SeckillConfigServiceImplTest.java141// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setCreateTime(null)));COMMENT
LOW…ervice/seckillconfig/SeckillConfigServiceImplTest.java181// reqVO.setCreateTime((new Date[]{}));COMMENT
LOW…tion/service/reward/RewardActivityServiceImplTest.java161 reqVO.setStatus(CommonStatusEnum.DISABLE.getStatus());COMMENT
LOW…tion/service/reward/RewardActivityServiceImplTest.java181// .setStartTime(now.minusDays(1)).setEndTime(now.plusDays(1)));COMMENT
LOW…tion/service/reward/RewardActivityServiceImplTest.java201//COMMENT
LOW…tion/service/reward/RewardActivityServiceImplTest.java221// assertEquals(matchRewardActivityList.size(), 2);COMMENT
LOW…tion/service/reward/RewardActivityServiceImplTest.java241// */COMMENT
LOW…/yudao/module/bpm/service/task/BpmTaskServiceImpl.java1041 processTaskCanceled(task.getId());COMMENT
Hyper-Verbose Identifiers8 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡sql/tools/test_convertor.py110 def test_semicolon_in_comments(self):CODE
LOW⚡sql/tools/test_convertor.py119 def test_double_dash_without_space(self):CODE
LOW⚡sql/tools/test_convertor.py123 def test_multiple_statements_one_line(self):CODE
LOWsql/tools/test_convertor.py146 def test_create_table_in_insert_ignored(self):CODE
LOWsql/tools/test_convertor.py162 def test_comment_from_real_table(self):CODE
LOWsql/tools/test_convertor.py186 def test_indented_and_same_line_create_table(self):STRING
LOWsql/tools/test_convertor.py204 def test_multiple_tables_with_inserts(self):STRING
LOWsql/tools/test_convertor.py337 def test_translate_type_integer_range(self):STRING
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsql/tools/convertor.py1137CODE