AI Slop Code Risk Monitor

kwsch/PKHeX

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

Pokémon Save File Editor

0.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for kwsch/PKHeX, a C# project with 5,248 GitHub stars. SynthScan examined 650,868 lines of code across 3888 source files, recording 551 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 0.9 (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.9
Adjusted Signal
0.9
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
5.2K
Stars
C#
Language
650.9K
Lines of Code
3.9K
Files
551
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 4.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 550 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 0.0/100 · LOW

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

PR Review Velocity Impact 4.3/100 · LOW

Which changes need focused human review? 551 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 3MEDIUM 1LOW 546

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

Over-Commented Block539 hits · 536 pts
SeverityFileLineSnippetContext
LOWPKHeX.WinForms/MainWindow/Main.Designer.cs481 toolStripSeparator1.Size = new System.Drawing.Size(177, 6);COMMENT
LOWPKHeX.WinForms/MainWindow/Main.Designer.cs501 toolStripSeparator5.Size = new System.Drawing.Size(194, 6);COMMENT
LOWPKHeX.WinForms/Util/Plugins/PluginLoadContext.cs1using System.Reflection;COMMENT
LOWPKHeX.WinForms/Controls/PKM Editor/GenderToggle.cs121 /// <summary>COMMENT
LOWPKHeX.WinForms/Controls/PKM Editor/StatEditor.cs921COMMENT
LOWPKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs181 private Action GetFieldsfromPKM = null!;COMMENT
LOWPKHeX.WinForms/Controls/Slots/SlotChangeInfo.cs21 /// </summary>COMMENT
LOWPKHeX.WinForms/Controls/Slots/SlotTrackerImage.cs1using System.Drawing;COMMENT
LOWPKHeX.WinForms/Controls/Slots/DropModifier.cs1namespace PKHeX.WinForms.Controls;COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs1//------------------------------------------------------------------------------COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs361 }COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs761 }COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs781 ///SAV_Chatter=Chatter EditorCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs801 ///SAV_Apricorn=Apricorn EditorCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs821 ///BoxExporter=Exportar cajaCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs841 COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs861 get {COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs881 ///SAV_BoxList=Visualiseur de stockageCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs901 ///MoveShopEditor=Editor Negozio MosseCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs921 ///BoxExporter=ボックスエクスポートCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs941 ///SAV_EventReset1=イベントリセットCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs961 ///SAV_BattlePass=Battle Pass EditorCOMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs981 ///BatchEditor=批量编辑器COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs1001 ///SAV_EventFlags=事件旗标编辑COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs1021 ///MemoryAmie=回憶編輯器COMMENT
LOWPKHeX.WinForms/Properties/Resources.Designer.cs1301 ///COMMENT
LOWPKHeX.WinForms/Subforms/EntitySearchSetup.cs21 WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);COMMENT
LOW…s/Subforms/Save Editors/Gen7/SAV_PokedexGG.Designer.cs501 // COMMENT
LOW…s/Subforms/Save Editors/Gen7/SAV_PokedexSM.Designer.cs461 // COMMENT
LOW…s/Subforms/Save Editors/Gen9/SAV_Pokedex9a.Designer.cs201 mnuCaughtAll.Click += CaughtAll;COMMENT
LOW…s/Subforms/Save Editors/Gen9/SAV_PokedexSV.Designer.cs201 // COMMENT
LOW…X.WinForms/Subforms/Save Editors/Gen8/SAV_Trainer8b.cs201 // default:COMMENT
LOWPKHeX.Drawing/ImageUtil.cs21 /// The caller is responsible for unlocking the bitmap using <see cref="Bitmap.UnlockBits"/> after processing. TCOMMENT
LOWPKHeX.Drawing/ColorUtil.cs61 /// Combines two colors together with the specified amount.COMMENT
LOW…HeX.Drawing.PokeSprite/Builder/SpriteBackgroundType.cs1namespace PKHeX.Drawing.PokeSprite;COMMENT
LOWPKHeX.Drawing.PokeSprite/Builder/ISpriteSettings.cs1namespace PKHeX.Drawing.PokeSprite;COMMENT
LOWPKHeX.Drawing.PokeSprite/Builder/ISpriteSettings.cs21 SpriteBackgroundType ShowEncounterColor { get; set; }COMMENT
LOWPKHeX.Drawing.PokeSprite/Builder/ISpriteSettings.cs41 byte ShowEncounterOpacityBackground { get; set; }COMMENT
LOWPKHeX.Drawing.PokeSprite/Builder/SpriteBuilderMode.cs21 /// Use circular mugshot-style sprites (5668).COMMENT
LOWPKHeX.Drawing.PokeSprite/Builder/SpriteBuilderMode.cs41 /// </summary>COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs1using System;COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs21 public static readonly PersonalTable9SV SV = new(GetTable("sv"));COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs41 public static readonly PersonalTable7GG GG = new(GetTable("gg"));COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs61 public static readonly PersonalTable6XY XY = new(GetTable("xy"));COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs81 public static readonly PersonalTable4 Pt = new(GetTable("pt"));COMMENT
LOWPKHeX.Core/PersonalInfo/PersonalTable.cs101 public static readonly PersonalTable3 E = new(GetTable("e"));COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalTable.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalTable.cs21 /// <remarks>Has built in length checks; returns empty (0) entry if out of range.</remarks>COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalTable.cs41 /// </summary>COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalTable.cs61}COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalMisc.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalEgg.cs21 /// <param name="pi">Object reference</param>COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalType.cs21 extension(IPersonalType detail)COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IEffortValueYield.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalFormInfo.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalFormInfo.cs21 bool HasForms { get; }COMMENT
LOW…HeX.Core/PersonalInfo/Interfaces/IPersonalEncounter.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IBaseStat.cs21 /// Base DefenseCOMMENT
LOWPKHeX.Core/PersonalInfo/Interfaces/IPersonalInfo.cs1namespace PKHeX.Core;COMMENT
LOWPKHeX.Core/Util/FlagUtil.cs41 /// Sets or clears a specific bit in the provided byte span at the specified index.COMMENT
479 more matches not shown…
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHPKHeX.WinForms/Properties/Resources.Designer.cs3// This code was generated by a tool.COMMENT
HIGH…e/Editing/Bulk/Entity/Suggestion/BatchModifications.cs172 /// Sets the contests stats as requested.COMMENT
HIGHPKHeX.Drawing.Misc/Properties/Resources.Designer.cs3// This code was generated by a tool.COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALPKHeX.WinForms/Misc/SplashScreen.Designer.cs57 PB_Icon.BackgroundImage = global::PKHeX.WinForms.Properties.Resources.Icon.ToBitmap();CODE
Verbosity Indicators5 hits · 8 pts
SeverityFileLineSnippetContext
LOWPKHeX.Core/Editing/Program/StartupArguments.cs20 /// Step 1: Reads in command line arguments.COMMENT
LOWPKHeX.Core/Editing/Program/StartupArguments.cs37 /// Step 2: Reads settings config.COMMENT
LOW…re/Legality/Moves/Breeding/Chain/ChainBreedLegality.cs878 // For male-only split breed species in Gen 6-7, we need to check if a single father can pass all movesCOMMENT
LOWPKHeX.Core/Legality/Verifiers/Misc/MiscVerifierPK9.cs47 // For the learnset restricted cases, we need to check if the ball is available too.COMMENT
LOWPKHeX.Core/Legality/Restrictions/HomeQuirks.cs106 // preconditions: height & weight are both 0; only call this method if 0-0 violates correlations AND we need to COMMENT
Structural Annotation Overuse2 hits · 3 pts
SeverityFileLineSnippetContext
LOWPKHeX.Core/Editing/Program/StartupArguments.cs20 /// Step 1: Reads in command line arguments.COMMENT
LOWPKHeX.Core/Editing/Program/StartupArguments.cs37 /// Step 2: Reads settings config.COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMPKHeX.Core/Items/Bags/PlayerBag3E.cs51/// Encryption interface for player bags that utilize security keys.COMMENT