AI Slop Code Risk Monitor

JosefNemec/Playnite

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

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

2.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for JosefNemec/Playnite, a C# project with 14,405 GitHub stars. SynthScan examined 183,695 lines of code across 895 source files, recording 474 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 2.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.

2.1
Adjusted Signal
2.1
Raw Pattern Score
100%
Time Factor
2026-10-19
Last Push
14.4K
Stars
C#
Language
183.7K
Lines of Code
895
Files
474
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 9.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.5/100 · LOW

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

Agent Over-Engineering Ratio 0.1/100 · LOW

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

PR Review Velocity Impact 12.6/100 · LOW

Which changes need focused human review? 474 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 2HIGH 0MEDIUM 1LOW 471

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 474 distinct pattern matches across 5 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 Block468 hits · 358 pts
SeverityFileLineSnippetContext
LOWsource/Playnite/license.txt1301// modification, are permitted provided that the following conditions areCOMMENT
LOWsource/Playnite/license.txt1321// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,COMMENT
LOWsource/Playnite/license.txt1341// copyright notice, this list of conditions and the following disclaimerCOMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs341 Beaten = 2,COMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs1601 }COMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs2041 /// Idicates time occurig past month.COMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs2201 /// Gets empty region.COMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs2221 /// Mixed rating.COMMENT
LOWsource/Playnite/Database/OldModels/Ver2.cs2261 /// <summary>COMMENT
LOW…e/Playnite/Database/OldModels/NewVer1/OldGameAction.cs21 /// <summary>COMMENT
LOW…ce/Playnite/Database/Collections/LiteDBFileReaderV7.cs521 /// </summary>COMMENT
LOW…ce/Playnite/Database/Collections/LiteDBFileReaderV7.cs541 /// </summary>COMMENT
LOW…ce/Playnite/Database/Collections/LiteDBFileReaderV7.cs561 /// Define how many transactions can be open simultaneouslyCOMMENT
LOWsource/Playnite/Common/SafeFileEnumerator.cs161COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs301 Other_253,COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs321 public enum TgaColorMapEntrySize : byteCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs621 {COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs921COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs1141COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs1161 {COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs1901 }COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs2121 {COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs2701COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs2721COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs2821 /// </summary>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3081 }COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3241 /// <summary>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3261 /// determine the number of bytes contained in field 7.</para>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3281 /// of the following formats:</para>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3561 #region PropertiesCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3581 /// it should contain the name of the person who created the image (author). If the field is notCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3601 /// lines must be null.COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3621 /// copied. By using this area, you are guaranteed an unmodified region for date and timeCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3641 {COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3661 }COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3681 /// “Software ID” field above. The SHORT contains the version number as a binaryCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3701 /// the time the image is saved. The format is in A:R:G:B where ‘A’ (most significant byte)COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3721 /// <para>SHORT 0: Pixel Ratio Numerator(pixel width)</para>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3741 /// precision necessary. An uncorrected image (an image with no gamma) should have the value 1.0 asCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3781 /// Bytes 490-493 - This field is a 4-byte field containing a single offset value. This is anCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3801 /// <para>Pre-multiplied Alpha Example: Suppose the Alpha channel data is being used to specify theCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3821 /// <para>1) To make random access of compressed images easy.</para>COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs3841 /// representation possible. The postage stamp image must be stored in the same format as the normalCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs4081 TgaString zeroStrTerminator = TgaString.ZeroTerminator;COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs4141 /// The next four bytes(bytes 4-7, the second LONG) contain an offset from theCOMMENT
LOWsource/Playnite/Common/TGASharpLib.cs4281 /// Checking by <see cref="TgaString.XFileSignatute"/>.COMMENT
LOWsource/Playnite/Common/TGASharpLib.cs4581 /// Make <see cref="TGA"/> from <see cref="Stream"/>.COMMENT
LOW…rce/Playnite/Common/Extensions/BitmapIconExtensions.cs101COMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs1///COMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs21 /// Filter ActiveCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs41 /// Invalid DataCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs61 /// Send diag. informationCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs81 /// Add CategoryCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs101 /// Please briefly describe the actions taken before the crash, and then send diagnostic information.COMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs121 /// Disable extensionCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs141 /// Restart in Safe ModeCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs161 /// Remove Game(s)?COMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs181 /// Are you sure you want to remove {0}?COMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs201 /// There are unsaved changes in this sectionCOMMENT
LOWsource/Playnite/Localization/LocalizationKeys.cs221 /// Cannot start game. '{0}' was not found in database.COMMENT
408 more matches not shown…
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALsource/Playnite/ViewModels/SearchViewModel.cs257 AdditionalInfo.Add(item.Game.ReleaseDate.Value.Year.ToString());CODE
CRITICALsource/Playnite/App/PlayniteApplication.cs330 var cultName = System.Globalization.CultureInfo.CurrentUICulture.Name.Replace('-', '_');CODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsource/PlayniteSDK/IWebView.cs377 /// value to have reasonably robust defense against some classes of cross-site requestCOMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsource/Playnite/WebView/WebViewBase.cs13 public class CustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandlerCODE
LOWsource/Playnite/WebView/WebViewBase.cs112 public class CustomRequestHandler : CefSharp.Handler.RequestHandlerCODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsource/Tools/Playnite.Toolbox/Program.cs140 logger.Warn($"Don't forget to update manifest file with relevant information.");CODE