AI Slop Code Risk Monitor

babalae/better-genshin-impact

SlopCodeMonitor badge for babalae/better-genshin-impact Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

📦BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 | 桌面分身 - UI Automation Testing Tools For Genshin Impact

2.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for babalae/better-genshin-impact, a C# project with 17,483 GitHub stars. SynthScan examined 404,774 lines of code across 2732 source files, recording 913 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 2.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.

2.6
Adjusted Signal
2.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
17.5K
Stars
C#
Language
404.8K
Lines of Code
2.7K
Files
913
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 10.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.1/100 · LOW

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

Agent Over-Engineering Ratio 0.1/100 · LOW

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

PR Review Velocity Impact 12.3/100 · LOW

Which changes need focused human review? 913 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 0MEDIUM 0LOW 896

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 913 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.

Over-Commented Block856 hits · 852 pts
SeverityFileLineSnippetContext
LOW…/BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs21COMMENT
LOWTest/BetterGenshinImpact.Test/Simple/FeatureMatcher.cs121 return _matcherFactory[type];COMMENT
LOW…BetterGenshinImpact.Test/Simple/TeyvatMapCoordinate.cs61 /// <summary>COMMENT
LOW…t/BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs21 // var pointsRect = Cv2.BoundingRect(points);COMMENT
LOW…hinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs41 var left2 = left.Zip(right, (x, y) => Math.Max(x - y, 0)).ToArray();COMMENT
LOW…hinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs81 return (left2, rightAfterShift, result);COMMENT
LOW…terGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs21 // string kpPath = Path.Combine(rootPath, $"mainMap2048Block_SIFT.kp");COMMENT
LOW…rGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs201 objCorners[2] = new Point2f(matSrc.Cols, matSrc.Rows);COMMENT
LOW…GenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs21 private const int MAX_PARALLELISM = 24;COMMENT
LOW…GenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs201 }COMMENT
LOW…tterGenshinImpact.Test/Simple/AllMap/MapPuzzleOther.cs41 // if (imagePath.Contains("UI_Map_Volcano_800_01.png") || imagePath.Contains("UI_Map_Volcano_01.png"))COMMENT
LOW…nImpact.UnitTest/Pulonia/PuloniaSoloTestDefinitions.cs21internal static class PuloniaSoloTestDefinitionsCOMMENT
LOW…nImpact.UnitTest/Pulonia/PuloniaSoloTestDefinitions.cs61 /// <summary>COMMENT
LOW…enshinImpact.UnitTest/GameTaskTests/TestGameRuntime.cs41COMMENT
LOW…enshinImpact.UnitTest/GameTaskTests/TestGameRuntime.cs61COMMENT
LOW…enshinImpact.UnitTest/GameTaskTests/TestGameRuntime.cs101 /// <summary>COMMENT
LOW…t/GameTaskTests/AutoFightTests/PartyAvatarInitTests.cs81 // {COMMENT
LOWFischless.WindowsInput/InputBuilder.cs361/// <summary>COMMENT
LOWBetterGenshinImpact/App.xaml.cs321 services.AddView<KeyBindingsSettingsPage, KeyBindingsSettingsPageViewModel>();COMMENT
LOWBetterGenshinImpact/ViewModel/MaskWindowViewModel.cs61 public AllConfig Config { get; }COMMENT
LOWBetterGenshinImpact/ViewModel/MaskWindowViewModel.cs201 /// 用户是否已开启游戏帧率采样(勾选后保持开启,随截图器启停切换进程)COMMENT
LOWBetterGenshinImpact/ViewModel/MainWindowViewModel.cs61 /// 提供在线子实例快照、状态变化通知与窗口激活能力。COMMENT
LOWBetterGenshinImpact/ViewModel/MainWindowViewModel.cs101 /// <summary>COMMENT
LOW…tterGenshinImpact/ViewModel/DownloadCenterViewModel.cs21public partial class DownloadCenterViewModel : ObservableObjectCOMMENT
LOW…tterGenshinImpact/ViewModel/DownloadCenterViewModel.cs81 /// 本次运行是否有下载任务;没有时不显示标题栏按钮COMMENT
LOW…terGenshinImpact/ViewModel/SoloTaskButtonController.cs21public sealed class SoloTaskButtonControllerCOMMENT
LOW…terGenshinImpact/ViewModel/SoloTaskButtonController.cs41 private readonly IReadOnlyList<SoloTaskButtonState> _states;COMMENT
LOWBetterGenshinImpact/ViewModel/DownloadItemViewModel.cs21COMMENT
LOWBetterGenshinImpact/ViewModel/DownloadItemViewModel.cs61 /// <summary>COMMENT
LOWBetterGenshinImpact/ViewModel/MapIconImageCache.cs21 /// 远程图片服务,每次从容器取得,避免类型初始化早于容器创建时永久为空COMMENT
LOWBetterGenshinImpact/ViewModel/NotifyIconViewModel.cs41 /// 退出前确认是否有下载正在进行。COMMENT
LOWBetterGenshinImpact/ViewModel/NotifyIconViewModel.cs61 private bool _isInstanceIdentityVisible;COMMENT
LOW…iewModel/SoloTaskSettings/SoloTaskSettingsViewModel.cs121 /// 把参数里的战斗策略名或路径转换为选择器使用的规范值:COMMENT
LOW…Impact/ViewModel/Windows/StorageManagementViewModel.cs21COMMENT
LOW…Impact/ViewModel/Windows/StorageManagementViewModel.cs81 public IReadOnlyList<KeyValuePair<int, string>> CacheLimitOptions { get; }COMMENT
LOW…inImpact/ViewModel/Windows/StorageAreaItemViewModel.cs21 FolderPath = FindFolder(area);COMMENT
LOW…inImpact/ViewModel/Windows/StorageAreaItemViewModel.cs41 /// </summary>COMMENT
LOW…inImpact/ViewModel/Windows/StorageAreaItemViewModel.cs61 /// 清理按钮文字;会丢失用户数据的操作带省略号,表示会先确认COMMENT
LOW…nshinImpact/ViewModel/Windows/StorageGroupViewModel.cs41 /// 分组在占用比例条中的颜色(#RRGGBB)COMMENT
LOW…pact/ViewModel/Windows/GuideSubtitleWindowViewModel.cs41 /// </summary>COMMENT
LOW…pact/ViewModel/Windows/SoloTaskInstanceRowViewModel.cs21 /// </summary>COMMENT
LOW…enshinImpact/ViewModel/Windows/GuideWindowViewModel.cs121 /// 窗口栏是否显示交互模式、鼠标穿透按钮COMMENT
LOW…enshinImpact/ViewModel/Windows/GuideWindowViewModel.cs161COMMENT
LOW…enshinImpact/ViewModel/Windows/GuideWindowViewModel.cs181COMMENT
LOW…enshinImpact/ViewModel/Windows/GuideWindowViewModel.cs221 public string HideToolTip => WithHotkey("隐藏小窗(保留网页)", _hotKeyConfig.GuideToggleHotkey);COMMENT
LOW…t/ViewModel/Windows/SoloTaskInstanceWindowViewModel.cs21 /// <summary>COMMENT
LOW…t/ViewModel/Windows/SoloTaskInstanceWindowViewModel.cs41 /// <summary>COMMENT
LOW…t/ViewModel/Windows/SoloTaskInstanceWindowViewModel.cs61COMMENT
LOW…indows/Pulonia/PuloniaJsScriptSettingFieldViewModel.cs21 public string Name { get; }COMMENT
LOW…indows/Pulonia/PuloniaJsScriptSettingFieldViewModel.cs41 public Dictionary<string, List<string>>? CascadeOptions { get; }COMMENT
LOW…indows/Pulonia/PuloniaJsScriptSettingFieldViewModel.cs61 public bool IsSelect => Type == "select";COMMENT
LOW…indows/Pulonia/PuloniaJsScriptSettingFieldViewModel.cs101COMMENT
LOW…ows/Pulonia/PuloniaSettingsProfileListItemViewModel.cs1namespace BetterGenshinImpact.ViewModel.Windows.Pulonia;COMMENT
LOW…del/Windows/Pulonia/PuloniaGenshinAccountsViewModel.cs21 /// <summary>复用原子账号存储。</summary>COMMENT
LOW…ewModel/Windows/Pulonia/PuloniaSharedSettingsTarget.cs21COMMENT
LOW…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs21/// </summary>COMMENT
LOW…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs41 /// </summary>COMMENT
LOW…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs61 /// </summary>COMMENT
LOW…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs101COMMENT
LOW…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs141 public bool HasParameters => ParameterFields.Count > 0 || JavaScriptSettingFields.Count > 0;COMMENT
796 more matches not shown…
Hallucination Indicators17 hits · 170 pts
SeverityFileLineSnippetContext
CRITICAL…skTests/QuestVoiceTests/ContinuousFrameSessionTests.cs289 var session = new BetterGenshinImpact.GameTask.QuestVoice.Features.Continuous.ContinuousFrameSession(ContinuousFCODE
CRITICAL…skTests/QuestVoiceTests/ContinuousFrameSessionTests.cs298 var session = new BetterGenshinImpact.GameTask.QuestVoice.Features.Continuous.ContinuousFrameSession(ContinuousFCODE
CRITICAL…ts/QuestVoiceTests/ContinuousVoiceCancellationTests.cs34 var failure = new BetterGenshinImpact.GameTask.QuestVoice.Core.Tts.VoiceException(BetterGenshinImpact.GameTask.QCODE
CRITICALBetterGenshinImpact/ViewModel/MainWindowViewModel.cs613 Wpf.Ui.Violeta.Appearance.SystemMenuThemeManager.Apply(CODE
CRITICAL…nia/PuloniaTaskCreationDialogViewModel.Repositories.cs150 _repositoryToSelect = BetterGenshinImpact.View.Windows.Pulonia.PuloniaRepositoryManagerWindow.Show(CODE
CRITICAL…/Windows/Pulonia/PuloniaTaskCreationDialogViewModel.cs458 ? BetterGenshinImpact.ViewModel.Pages.Pulonia.PuloniaOneDragonSettingChoices.Decorate(property.NCODE
CRITICAL…/Windows/Pulonia/PuloniaTaskParameterFieldViewModel.cs198 var isCombatStrategy = System.Text.Json.JsonNamingPolicy.SnakeCaseLower.ConvertName(name) is "strategy_name" or CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs155 System.Windows.Application.Current.Dispatcher.Invoke(() => WechatClawbotStatus = hint);CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs722 System.Windows.Application.Current.Dispatcher.Invoke(() =>CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs780 System.Windows.Application.Current.Dispatcher.Invoke(() =>CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs804 System.Windows.Application.Current.Dispatcher.Invoke(() =>CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs887 System.Windows.Application.Current.Dispatcher.Invoke(() =>CODE
CRITICAL…t/ViewModel/Pages/NotificationSettingsPageViewModel.cs894 System.Windows.Application.Current.Dispatcher.Invoke(() =>CODE
CRITICAL…wModel/Pages/Pulonia/PuloniaOneDragonSettingChoices.cs36 var key = System.Text.Json.JsonNamingPolicy.SnakeCaseLower.ConvertName(name);CODE
CRITICAL…ges/Pulonia/PuloniaOneDragonParameterFieldViewModel.cs168 var displayKey = System.Text.Json.JsonNamingPolicy.SnakeCaseLower.ConvertName(name);CODE
CRITICALBetterGenshinImpact/GameTask/SystemControl.cs506 System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => System.Windows.Application.CurrenCODE
CRITICAL…mpact/GameTask/Common/Reward/RewardResultRecognizer.cs109 BetterGenshinImpact.GameTask.AutoDomain.TrainingGuide.TrainingGuideRewardDiagnostics.Record(CODE
Verbosity Indicators11 hits · 16 pts
SeverityFileLineSnippetContext
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs927 // Step 1: 克隆到临时文件夹COMMENT
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs941 // Step 2: 基于目录结构重合度决定存放位置COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs642 // Step 1: 状态同步 — 每次进入 reconcile FlyingState 与实际游戏状态COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs658 // Step 2: 小于停止距离 → 主动下车COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs680 // Step 3: 大于启用距离且未上车 → 尝试上车COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs713 // Step 4: 已上车:体力 < 120 时纯飘(桑多涅技能代步),否则正常步行/冲刺COMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs111 // Step 1: Get all teleport positions from current screenshotCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs170 // Step 2: find a diagonal determined by two of the teleports, let's call these two teleports reference pointsCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs209 // Step 3: For all diagonals determined by pairs of teleports on this map.COMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs223 // Step 4: Assuming this pair corresponds to the reference pointsCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs236 // Step 5: Check how close the fit isCOMMENT
Structural Annotation Overuse11 hits · 16 pts
SeverityFileLineSnippetContext
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs927 // Step 1: 克隆到临时文件夹COMMENT
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs941 // Step 2: 基于目录结构重合度决定存放位置COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs642 // Step 1: 状态同步 — 每次进入 reconcile FlyingState 与实际游戏状态COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs658 // Step 2: 小于停止距离 → 主动下车COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs680 // Step 3: 大于启用距离且未上车 → 尝试上车COMMENT
LOW…GenshinImpact/GameTask/AutoPathing/SkillBoostHelper.cs713 // Step 4: 已上车:体力 < 120 时纯飘(桑多涅技能代步),否则正常步行/冲刺COMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs111 // Step 1: Get all teleport positions from current screenshotCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs170 // Step 2: find a diagonal determined by two of the teleports, let's call these two teleports reference pointsCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs209 // Step 3: For all diagonals determined by pairs of teleports on this map.COMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs223 // Step 4: Assuming this pair corresponds to the reference pointsCOMMENT
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs236 // Step 5: Check how close the fit isCOMMENT
Excessive Try-Catch Wrapping5 hits · 5 pts
SeverityFileLineSnippetContext
LOW.github/workflows/github_download_and_cnb_upload.py213 except Exception as e:CODE
LOW.github/workflows/github_download_and_cnb_upload.py493 except Exception as e:CODE
LOW.github/workflows/github_download_and_cnb_upload.py505 except Exception as e:CODE
LOW.github/workflows/cnb_release.py331 except Exception as e:CODE
LOW.github/workflows/cnb_release.py445 except Exception as e:CODE
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOW.github/workflows/github_download_and_cnb_upload.py282CODE
LOW.github/workflows/github_download_and_cnb_upload.py132CODE
LOW.github/workflows/cnb_release.py306CODE
LOW.github/workflows/cnb_release.py361CODE
LOW.github/workflows/cnb_release.py120CODE
Hyper-Verbose Identifiers4 hits · 4 pts
SeverityFileLineSnippetContext
LOWDocs/design/js-script-html-settings.md408 class ScriptSettingsRequestHandler {CODE
LOW…t/Core/Script/Settings/ScriptSettingsRequestHandler.cs21public sealed class ScriptSettingsRequestHandler(CODE
LOW…ice/Instance/MessageHandlers/InstanceRequestHandler.cs18internal sealed class InstanceRequestHandlerCODE
LOW.github/workflows/github_download_and_cnb_upload.py218def extract_version_from_filename(filename: str) -> Optional[str]:CODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOW.github/workflows/github_download_and_cnb_upload.py31CODE
LOW.github/workflows/github_download_and_cnb_upload.py32CODE
LOW.github/workflows/github_download_and_cnb_upload.py34CODE
LOW.github/workflows/cnb_release.py21CODE