AI Slop Code Risk Monitor

Belphemur/SoundSwitch

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

C# application to switch default playing device. Download: https://soundswitch.aaflalo.me/

3.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Belphemur/SoundSwitch, a C# project with 3,484 GitHub stars. SynthScan examined 88,949 lines of code across 546 source files, recording 195 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 3.0 (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.0
Adjusted Signal
3.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
3.5K
Stars
C#
Language
88.9K
Lines of Code
546
Files
195
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 12.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

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

Agent Over-Engineering Ratio 1.7/100 · LOW

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

PR Review Velocity Impact 13.7/100 · LOW

Which changes need focused human review? 195 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 7MEDIUM 11LOW 176

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 195 distinct pattern matches across 12 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 Block163 hits · 163 pts
SeverityFileLineSnippetContext
LOWSoundSwitch/UI/Forms/Settings.cs121 internal static Color GetNotificationPanelColor(bool darkModeEnabled) => darkModeEnabledCOMMENT
LOWSoundSwitch/UI/Forms/Settings.cs521 new(device.Name, device.Id, device.Type, device.IsUsb, DateTime.UtcNow);COMMENT
LOWSoundSwitch/UI/Forms/Settings.cs761 return;COMMENT
LOWSoundSwitch/UI/Component/IconTextComboBox.cs21 /// Tag of the itemCOMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs61 /// <summary>COMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs421COMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs441/// myLVGROUP.CchTask // is of managed type uintCOMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs521 /// Indicates the alignment of the header or footer text for the group. It can have one or more of the following valCOMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs641 /// The group is collapsed.COMMENT
LOWSoundSwitch/UI/Component/ListView/ListViewExtended.cs661 /// Version 6.00 and Windows Vista. The group is selected.COMMENT
LOWSoundSwitch/Util/Timer/DebounceDispatcher.cs1using System;COMMENT
LOWSoundSwitch/Util/Timer/DebounceDispatcher.cs21 private readonly object _lockDebounce = new();COMMENT
LOWSoundSwitch/Util/Timer/DebounceDispatcher.cs61 };COMMENT
LOWSoundSwitch/Framework/ApplicationPath.cs21public static class ApplicationPathCOMMENT
LOW…h/Framework/Configuration/ISoundSwitchConfiguration.cs121COMMENT
LOW…work/NotificationManager/Notification/INotification.cs41 /// Notify when a profile has changedCOMMENT
LOW…work/NotificationManager/Notification/INotification.cs61 /// <param name="rule"></param>COMMENT
LOW…work/NotificationManager/Notification/INotification.cs81 /// Does the notification support a Custom SoundCOMMENT
LOW…h/Framework/DeviceCyclerManager/DeviceCyclerManager.cs41 /// <param name="type"></param>COMMENT
LOW…/Framework/TrayIcon/IconDoubleClick/IconDoubleClick.cs21public enum IconDoubleClickCOMMENT
LOW…/Framework/TrayIcon/IconDoubleClick/IconDoubleClick.cs41 /// <summary>COMMENT
LOW…bleClick/Action/IconDoubleClickSwitchPlaybackDevice.cs21namespace SoundSwitch.Framework.TrayIcon.IconDoubleClick.Action;COMMENT
LOW…rk/TrayIcon/IconDoubleClick/Action/IIconDoubleClick.cs21/// Each implementation represents a specific action that can be performed when the user double-clicks the SoundSwitch sCOMMENT
LOW…/IconDoubleClick/Action/IconDoubleClickOpenSettings.cs21/// When the user double-clicks the system tray icon, this action opens the SoundSwitch settings window.COMMENT
LOW…leClick/Action/IconDoubleClickSwitchRecordingDevice.cs21namespace SoundSwitch.Framework.TrayIcon.IconDoubleClick.Action;COMMENT
LOW…TrayIcon/IconDoubleClick/Action/IconDoubleClickNone.cs21/// When the user double-clicks the system tray icon, this action performs no operation,COMMENT
LOWSoundSwitch/Framework/Updater/InstallerAssetSelector.cs21namespace SoundSwitch.Framework.Updater;COMMENT
LOWSoundSwitch/Framework/Updater/NightlyUpdateChecker.cs241 // Preserve nightly ordering across revision boundaries: keep major.minor.build asCOMMENT
LOW…itch/Framework/Audio/Lister/CachedAudioDeviceLister.cs61 private readonly ISubject<DeviceVolumeChangedPayload> _deviceVolumeChanged = new Subject<DeviceVolumeChangedPayload>COMMENT
LOW…itch/Framework/Audio/Lister/CachedAudioDeviceLister.cs141COMMENT
LOWSoundSwitch/Framework/WinApi/WindowsAPIAdapter.cs341 /// Strict availability probe: true only if the hotkey can be natively registeredCOMMENT
LOWSoundSwitch/Framework/WinApi/WindowsAPIAdapter.cs681 {COMMENT
LOWSoundSwitch/Framework/WinApi/WindowsThemeHelper.cs21/// Helper that reports whether Windows is currently using a light or dark application mode.COMMENT
LOW…Switch/Framework/WinApi/Keyboard/KeyboardWindowsAPI.cs141 (key == Keys.RShiftKey);COMMENT
LOWSoundSwitch/Framework/Telemetry/TelemetryService.cs21COMMENT
LOWSoundSwitch/Framework/Factory/IEnumImpl.cs21 /// <summary>COMMENT
LOWSoundSwitch/Framework/Banner/BannerAppearance.cs21 /// <summary>COMMENT
LOWSoundSwitch/Framework/Banner/BannerAppearance.cs41 NormalizePercentage(scalePercentage) * (compactMode ? CompactImageScale : 1f);COMMENT
LOWSoundSwitch/Framework/Banner/BannerAppearance.cs61COMMENT
LOW…Switch/Framework/Banner/ExclusiveFullscreenDetector.cs21/// <summary>COMMENT
LOW…Switch/Framework/Banner/ExclusiveFullscreenDetector.cs41/// FSE changes resolution or refresh rate. Gated behind the foregroundCOMMENT
LOWSoundSwitch/Framework/Banner/BannerForm.cs261 var cp = base.CreateParams;COMMENT
LOWSoundSwitch/Framework/Banner/BannerData.cs21COMMENT
LOWSoundSwitch/Framework/Banner/BannerData.cs61 /// Position of the bannerCOMMENT
LOWSoundSwitch/Framework/Banner/BannerData.cs81 /// <summary>COMMENT
LOW…/Framework/Banner/BannerPosition/Position/APosition.cs21/// Anchor points used by the banner position strategies.COMMENT
LOW…ework/Banner/BannerPosition/Position/PositionCustom.cs41 /// strategy; otherwise the saved point keeps the banner on the display the user dropped it on.COMMENT
LOW…ework/Banner/BannerPosition/Position/PositionCustom.cs61 /// </para>COMMENT
LOW…/Framework/Banner/BannerPosition/Position/IPosition.cs21COMMENT
LOWSoundSwitch/Properties/AssemblyInfo.cs21[assembly: InternalsVisibleTo("SoundSwitch.Tests")]COMMENT
LOWSoundSwitch/Properties/Resources.Designer.cs1//------------------------------------------------------------------------------COMMENT
LOWSoundSwitch/Model/INotificationSettings.cs81 /// How many notification to show at the same timeCOMMENT
LOWSoundSwitch/Model/INotificationSettings.cs101 /// </summary>COMMENT
LOWSoundSwitch/Model/AppRuleMode.cs1namespace SoundSwitch.ModelCOMMENT
LOWSoundSwitch/Model/AppModel.NotificationSettings.cs321 setCOMMENT
LOWSoundSwitch/Model/AppSoundRuleMigrator.cs21 /// The migration is idempotent: after the first run the legacy properties areCOMMENT
LOWSoundSwitch/Model/IAppSettings.cs61 /// Beta or Stable channel.COMMENT
LOWSoundSwitch/Model/IAppSettings.cs81 /// Show microphone mute banners only for the configured mute target.COMMENT
LOWSoundSwitch/Model/IAppInfrastructure.cs21COMMENT
LOWSoundSwitch/Model/IAppInfrastructure.cs41 /// </summary>COMMENT
103 more matches not shown…
Synthetic Comment Markers6 hits · 45 pts
SeverityFileLineSnippetContext
HIGHSoundSwitch/Properties/Resources.Designer.cs3// This code was generated by a tool.COMMENT
HIGH…dSwitch/Localization/UpdateDownloadStrings.Designer.cs3// This code was generated by a tool.COMMENT
HIGHSoundSwitch/Localization/TrayIconStrings.Designer.cs3// This code was generated by a tool.COMMENT
HIGHSoundSwitch/Localization/AboutStrings.Designer.cs3// This code was generated by a tool.COMMENT
HIGHSoundSwitch/Localization/SettingsStrings.Designer.cs3// This code was generated by a tool.COMMENT
HIGHSoundSwitch.Common/Properties/Resources.Designer.cs3// This code was generated by a tool.COMMENT
Decorative Section Separators7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs50 // ── Core switching ──────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs73 // ── Profiles ────────────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs124 // ── App Rules ───────────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs163 // ── Notifications ───────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs184 // ── Update subsystem ────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs277 // ── System ──────────────────────────────────────────────────────COMMENT
MEDIUMSoundSwitch/Framework/Telemetry/TelemetryService.cs286 // ── Breadcrumbs ─────────────────────────────────────────────────COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL…tch.Audio.Manager.Tests/SwitchProcessToRoutingTests.cs71 SoundSwitch.Audio.Manager.AudioSwitcher.Instance.SetExtendedPolicyClientForTest(null);CODE
Excessive Try-Catch Wrapping4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtools/check_brackets.py84 except Exception as e:CODE
MEDIUMtools/check_brackets.py85 print(f"Error parsing RESX file {file_path}: {e}")CODE
MEDIUMtools/check_brackets.py37def check_resx_brackets(file_path):CODE
LOWtools/upload_nightly_r2.py65 except Exception as error:CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtools/markdown_to_html.py102 Parse command-line arguments for the Markdown-to-HTML converter. Builds an ArgumentParser that accepts oneSTRING
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM.serena/project.yml58# Same syntax as gitignore, so you can use * and **.COMMENT
LOW.serena/project.yml71# To make sure you have the latest list of tools, and to view their descriptions,COMMENT
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOW.serena/project.yml123# Set this to [] to disable base modes for this project.COMMENT
LOW.serena/project.yml124# Set this to a list of mode names to always include the respective modes for this project.COMMENT
LOW.github/workflows/test-installer-build.yml26 # Check if Inno Setup is already installed by looking for ISCC.exeCOMMENT
Hyper-Verbose Identifiers4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtools/upload_nightly_r2.py248def send_discord_notification(CODE
LOWwebsite/worker/downloads.ts67export async function handleDownloadsHistoryRequest(CODE
LOWwebsite/worker/downloads.ts105export async function recordSnapshotFromResponse(CODE
LOWwebsite/worker/weblate.ts10export async function handleWeblateLanguagesRequest(CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.opencode/skills/dry-solid-kiss/SKILL.md40## Repo-specific guardrailsCOMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtools/markdown_to_html.py14CODE
LOWtools/upload_nightly_r2.py1CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/upload_nightly_r2.py58CODE