AI Slop Code Risk Monitor

algerkong/AlgerMusicPlayer

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

一个第三方音乐播放器、本地服务、桌面歌词、音乐下载、远程控制

2.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for algerkong/AlgerMusicPlayer, a Vue project with 17,148 GitHub stars. SynthScan examined 78,835 lines of code across 395 source files, recording 77 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 2.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.

2.5
Adjusted Signal
2.5
Raw Pattern Score
100%
Time Factor
2026-10-28
Last Push
17.1K
Stars
Vue
Language
78.8K
Lines of Code
395
Files
77
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 1.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 11.3/100 · LOW

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

PR Review Velocity Impact 11.3/100 · LOW

Which changes need focused human review? 77 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 56LOW 21

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

Decorative Section Separators56 hits · 176 pts
SeverityFileLineSnippetContext
MEDIUMsrc/renderer/layout/components/SearchBar.vue257// ── 心动模式 ─────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/layout/components/SearchBar.vue268// ── Back button ───────────────────────────────────────COMMENT
MEDIUMsrc/renderer/layout/components/SearchBar.vue276// ── Tabs ──────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/layout/components/SearchBar.vue318// ── Search expand / collapse ──────────────────────────COMMENT
MEDIUMsrc/renderer/layout/components/SearchBar.vue336// ── Search logic ──────────────────────────────────────COMMENT
MEDIUMsrc/renderer/layout/components/SearchBar.vue439// ── User / misc ───────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue642// ── Status helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue673// ── Task action handlers ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue685// ── Utility functions ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue727// ── Play music ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue781// ── Delete / Clear ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue822// ── Download settings ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/views/download/DownloadPage.vue1023// ── Lifecycle & watchers ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/services/musicSource/resolver.ts32// ─── 命中 URL 轻量验证(生态实测:LX 源近半返回端点/外链/失效链) ─────────COMMENT
MEDIUMsrc/renderer/services/musicSource/resolver.ts91// ─── 主入口 ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…c/renderer/services/musicSource/PluginSandboxRunner.ts103// ─── 歌曲条目适配(方言无关的统一入参形状) ───────────────────────────────COMMENT
MEDIUM…c/renderer/services/musicSource/PluginSandboxRunner.ts168// ─── Runner ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…c/renderer/services/musicSource/PluginSandboxRunner.ts428// ─── 实例缓存(源码/变量变化自动重建) ────────────────────────────────────COMMENT
MEDIUMsrc/renderer/services/musicSource/providers/builtin.ts37// ─── 网易云官方直连(默认第一位,含 VIP 下载口与试听判定) ────────────────COMMENT
MEDIUMsrc/renderer/services/musicSource/providers/builtin.ts59// ─── 自定义 API(用户导入的 JSON 接口配置) ──────────────────────────────COMMENT
MEDIUMsrc/renderer/services/musicSource/providers/builtin.ts79// ─── GD 音乐台(聚合解析) ───────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/services/musicSource/providers/builtin.ts96// ─── UnblockNeteaseMusic(按平台一 provider,key 沿用旧值零迁移) ──────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts32// ─── 消息协议 ────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts91// ─── 状态 ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts123// ─── HTTP 通道(promise 风格,native/musicfree 用) ────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts179// ─── 编解码 / 加密工具(ctx 与 LX utils 共用底层) ────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts259// ─── ctx(native 方言注入) ───────────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts305// ─── MusicFree 的 require 垫片 ───────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts471// ─── LX Music 方言宿主(事件模型 → 统一导出对象) ─────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts711// ─── 全局环境 ────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts730// ─── 装载 ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/services/musicSource/workers/pluginSandbox.worker.ts851// ─── 消息循环 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/store/modules/download.ts23 // ── State ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/store/modules/download.ts34 // ── Computed ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/store/modules/download.ts66 // ── Actions ────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts74// ─── Batch tracker entry ─────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts78// ─── Persist store type ──────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts84// ─── DownloadManager ─────────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts296 // ─── Queue queries ──────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts304 // ─── Concurrency ───────────────────────────────────────────────COMMENT
MEDIUM⚡src/main/modules/downloadManager.ts311 // ─── Completed songs (same logic as old fileManager) ────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts23// ─── Helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts127 // ─── IPC Registration ───────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts151 // ─── Task creation ──────────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts231 // ─── Pause / Resume / Cancel ────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts412 // ─── Embedded lyrics reader ─────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts453 // ─── Provide URL (re-resolved by renderer) ─────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts468 // ─── Queue processing ──────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts484 // ─── Core download ─────────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts665 // ─── Finalize download ─────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1002 // ─── Batch error tracking ──────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1036 // ─── Completion notification coalescing (#703) ─────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1036 // ─── Completion notification coalescing (#703) ─────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1098 // ─── IPC send helpers ──────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1129 // ─── Persistence ───────────────────────────────────────────────COMMENT
MEDIUMsrc/main/modules/downloadManager.ts1194// ─── Singleton & exports ───────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers14 hits · 14 pts
SeverityFileLineSnippetContext
LOWscripts/check_i18n.ts85function collectReferencesFromContent(content: string, file: string): KeyReference[] {CODE
LOWscripts/check_i18n.ts108function collectTranslationReferences(projectRoot: string): KeyReference[] {CODE
LOWsrc/renderer/utils/shortcutKeyboard.ts82export function keyboardEventToAccelerator(event: KeyboardEvent): string | null {CODE
LOWsrc/renderer/components/settings/ShortcutSettings.vue468function getRegistrationFailureLabel(reason: ShortcutRegistrationFailureReason) {CODE
LOWsrc/renderer/components/player/SleepTimer.vue156function handleSetPlaylistEndTimer() {CODE
LOWsrc/shared/download.ts73export function createDefaultDownloadSettings(): DownloadSettings {CODE
LOWsrc/shared/appUpdate.ts32export function createDefaultAppUpdateState(currentVersion = ''): AppUpdateState {CODE
LOWsrc/shared/shortcuts.ts182function createDefaultShortcutConfig(action: ShortcutAction): ShortcutConfig {CODE
LOWsrc/shared/shortcuts.ts199export function normalizeShortcutAccelerator(raw: string): string | null {CODE
LOWsrc/main/modules/localMusicScanner.ts334export function initializeLocalMusicScanner(): void {CODE
LOWsrc/main/modules/shortcuts.ts123function unregisterManagedGlobalShortcuts() {CODE
LOWsrc/main/modules/shortcuts.ts158function registerManagedGlobalShortcuts(shortcuts: ShortcutsConfig): ShortcutRegistrationResult {CODE
LOWsrc/main/modules/shortcuts.ts394export function isShortcutActionSupported(action: string): action is ShortcutAction {CODE
LOWsrc/main/modules/downloadManager.ts1198export function initializeDownloadManager(): void {CODE
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippetContext
LOWsrc/renderer/types/mv.ts81 name: string;COMMENT
LOWsrc/renderer/utils/persistedSong.ts1// 持久化歌曲对象的精简工具COMMENT
LOWsrc/renderer/const/bar-const.ts1export const USER_SET_OPTIONS = [COMMENT
LOWsrc/main/modules/window-size.ts241 }COMMENT
LOWsrc/main/modules/window-size.ts261 // win.isMinimized()) {COMMENT
LOWsrc/main/modules/window-size.ts281 // win.setSize(this.savedState.width, this.savedState.height, false);COMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/renderer/views/set/SInput.vue17 :placeholder="placeholder"CODE