AI Slop Code Risk Monitor

zufuliu/notepad4

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

Notepad4 (Notepad2⨯2, Notepad2++) is a light-weight Scintilla based text editor for Windows with syntax highlighting, code folding, auto-completion and API list for many programming languages and documents, bundled with file browser plugin matepath.

3.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for zufuliu/notepad4, a C++ project with 5,089 GitHub stars. SynthScan examined 164,666 lines of code across 338 source files, recording 645 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 3.8 (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.8
Adjusted Signal
3.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
5.1K
Stars
C++
Language
164.7K
Lines of Code
338
Files
645
Pattern Hits
2026-10-31
Scan Date
0.05
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 14.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.7/100 · LOW

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

Agent Over-Engineering Ratio 2.7/100 · LOW

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

PR Review Velocity Impact 19.9/100 · LOW

Which changes need focused human review? 645 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 17MEDIUM 1LOW 627

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 645 distinct pattern matches across 11 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 Block474 hits · 396 pts
SeverityFileLineSnippetContext
LOWversion.sh1#!/bin/bashCOMMENT
LOWLicense.txt121COMMENT
LOWLicense.txt161COMMENT
LOWtools/ResourceFile.py81COMMENT
LOWtools/ImageTool.py361COMMENT
LOWtools/KeywordHelper.py201# https://github.com/w3c/csswg-drafts/COMMENT
LOWtools/lang/C.c41#elifCOMMENT
LOWtools/lang/POSIX.c1// https://en.wikipedia.org/wiki/C_POSIX_libraryCOMMENT
LOWtools/lang/Swift.swift81#endifCOMMENT
LOWtools/lang/Swift.swift101#colorLiteral(red: expression, green: expression, blue: expression, alpha: expression)COMMENT
LOWtools/lang/JavaScript.js1// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammarCOMMENT
LOWtools/lang/JavaScript.js41COMMENT
LOWtools/lang/Rust.rs101format_args_nl!()COMMENT
LOWtools/lang/Rust.rs121#[macro_use]COMMENT
LOWtools/lang/Rust.rs141#![crate_type]COMMENT
LOWtools/lang/Rust.rs161#![no_implicit_prelude]COMMENT
LOWtools/lang/CSS.css1// 2026 https://www.w3.org/TR/CSS/ 26 March 2026COMMENT
LOWtools/lang/Bash.sh1#!/bin/bashCOMMENT
LOWtools/lang/CSharp.cs61#nullable enableCOMMENT
LOWtools/lang/PHP.php41enum resource numericCOMMENT
LOWmatepath/src/Helpers.cpp21#include <windows.h>COMMENT
LOWmatepath/src/Helpers.cpp1341COMMENT
LOWmatepath/src/Helpers.cpp2261// 1.1 01.07.2000 The window retains its place in the Z-order of windowsCOMMENT
LOWmatepath/src/Helpers.cpp2281#define IDANI_CAPTION 3COMMENT
LOWmatepath/src/Helpers.cpp2421 // Remove the tray icon. As described above, remove the icon after theCOMMENT
LOWmatepath/src/matepath.cpp21#include <windows.h>COMMENT
LOWmatepath/src/version.h21COMMENT
LOWmatepath/src/version.h41#define VERSION_BUILD_TOOL_MAJOR (__INTEL_LLVM_COMPILER / 10000)COMMENT
LOWmatepath/src/version.h61#define VERSION_BUILD_TOOL_MINOR ((__INTEL_COMPILER_BUILD_DATE / 100) % 100)COMMENT
LOWmatepath/src/version.h81 #define VERSION_FILEVERSION_ARCH L" (avx2) "COMMENT
LOWmatepath/src/compiler.h41#elseCOMMENT
LOWmatepath/src/compiler.h61#define _WIN32_WINNT_WIN7 0x0601COMMENT
LOWmatepath/src/config.h1// This file is part of Notepad4.COMMENT
LOWmatepath/src/DarkMode.cpp1// This file is part of Notepad4.COMMENT
LOWmatepath/src/Dialogs.cpp21#define OEMRESOURCE // use OBM_ resource constantsCOMMENT
LOWmatepath/src/Dialogs.cpp2081 ti.hwnd = hwnd;COMMENT
LOWmatepath/src/Dialogs.cpp2181 // bool bEnableOK = false;COMMENT
LOWmatepath/src/Dlapi.cpp21#include <windows.h>COMMENT
LOWmatepath/src/Dlapi.cpp421}COMMENT
LOWmatepath/src/Dlapi.h41COMMENT
LOWmatepath/src/VersionRev.h1#define VERSION_MINOR 26COMMENT
LOWmatepath/src/resource.h1//{{NO_DEPENDENCIES}}COMMENT
LOWmatepath/src/resource.h21#define IDB_TOOLBAR48 104COMMENT
LOWmatepath/src/resource.h41#define IDC_NEW_PAGE_LINK 103COMMENT
LOWmatepath/src/resource.h61#define IDC_BROWSEFILTER 101COMMENT
LOWmatepath/src/resource.h81#define IDC_TRACKSELECT 101COMMENT
LOWmatepath/src/resource.h101#define IDC_ESCFUNCTION 107COMMENT
LOWmatepath/src/resource.h121#define IDC_BROWSE_F 103COMMENT
LOWmatepath/src/resource.h141// Find WindowCOMMENT
LOWmatepath/src/resource.h161#define IDS_OPENWITH 11008COMMENT
LOWmatepath/src/resource.h181#define IDM_FILE_DELETE3 40015COMMENT
LOWmatepath/src/resource.h201#define IDM_VIEW_UPDATE 40035COMMENT
LOWmatepath/src/resource.h221#define ACC_TOGGLE_FOCUSEDIT 40054COMMENT
LOWmatepath/src/resource.h241#define IDT_FILE_DELETE_RECYCLE 40082COMMENT
LOWmatepath/src/resource.h261#define IDS_ERR_FILE 50001COMMENT
LOWmatepath/src/resource.h281#define IDS_CHANGE_LANG_RESTART 50021COMMENT
LOWmatepath/src/Helpers.h521#elseCOMMENT
LOWmatepath/src/Helpers.h541#endifCOMMENT
LOWmatepath/src/Helpers.h581// High DPI ReferenceCOMMENT
LOWmatepath/src/Helpers.h621 return GetBitmapResourceIdForDPI(resourceId, g_uCurrentDPI);COMMENT
414 more matches not shown…
Deep Nesting94 hits · 78 pts
SeverityFileLineSnippetContext
LOWtools/StringSwitch.py84CODE
LOWtools/StringSwitch.py114CODE
LOWtools/Misc.py3CODE
LOWtools/CountColor.py35CODE
LOWtools/ImageTool.py44CODE
LOWtools/KeywordHelper.py88CODE
LOWtools/KeywordHelper.py156CODE
LOWtools/KeywordCore.py71CODE
LOWtools/KeywordCore.py198CODE
LOWtools/KeywordCore.py265CODE
LOWtools/KeywordCore.py298CODE
LOWtools/KeywordCore.py346CODE
LOWtools/KeywordCore.py450CODE
LOWtools/KeywordCore.py550CODE
LOWtools/KeywordCore.py599CODE
LOWtools/KeywordCore.py660CODE
LOWtools/KeywordCore.py793CODE
LOWtools/KeywordCore.py843CODE
LOWtools/KeywordCore.py1014CODE
LOWtools/KeywordCore.py1099CODE
LOWtools/KeywordCore.py1204CODE
LOWtools/KeywordCore.py1296CODE
LOWtools/KeywordCore.py1358CODE
LOWtools/KeywordCore.py1480CODE
LOWtools/KeywordCore.py1517CODE
LOWtools/KeywordCore.py1560CODE
LOWtools/KeywordCore.py1756CODE
LOWtools/KeywordCore.py1804CODE
LOWtools/KeywordCore.py1870CODE
LOWtools/KeywordCore.py1918CODE
LOWtools/KeywordCore.py1979CODE
LOWtools/KeywordCore.py2006CODE
LOWtools/KeywordCore.py2062CODE
LOWtools/KeywordCore.py2165CODE
LOWtools/KeywordCore.py2189CODE
LOWtools/KeywordCore.py2267CODE
LOWtools/KeywordCore.py2363CODE
LOWtools/KeywordCore.py2381CODE
LOWtools/KeywordCore.py2426CODE
LOWtools/KeywordCore.py2470CODE
LOWtools/KeywordCore.py2592CODE
LOWtools/KeywordCore.py2670CODE
LOWtools/KeywordCore.py2734CODE
LOWtools/KeywordCore.py2774CODE
LOWtools/KeywordCore.py2882CODE
LOWtools/KeywordCore.py2907CODE
LOWtools/Bitmap.py428CODE
LOWtools/Bitmap.py597CODE
LOWtools/Bitmap.py646CODE
LOWtools/Bitmap.py752CODE
LOWtools/AccessKey.py4CODE
LOWtools/AccessKey.py25CODE
LOWlocale/Locale.py462CODE
LOWlocale/Locale.py198CODE
LOWlocale/Locale.py331CODE
LOWscintilla/test/BatchTest.py4CODE
LOWscintilla/test/DBCSFoldMap.py8CODE
LOWscintilla/scripts/GenerateCharTable.py140CODE
LOWscintilla/scripts/GenerateCharTable.py178CODE
LOWscintilla/scripts/GenerateCharacterCategory.py371CODE
34 more matches not shown…
Empty Error Handlers10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHtools/Bitmap.py906except Exception:CODE
HIGHscintilla/test/DBCSFoldMap.py37except UnicodeEncodeError:CODE
HIGHscintilla/test/EncodingDump.py41except UnicodeDecodeError:CODE
HIGHscintilla/test/EncodingDump.py47except UnicodeDecodeError:CODE
HIGHscintilla/test/BashTest.py40except Exception:CODE
HIGHscintilla/scripts/GenerateCharacterCategory.py230except UnicodeEncodeError:CODE
HIGHscintilla/scripts/DBCS.py139except UnicodeDecodeError:CODE
HIGHscintilla/scripts/DBCS.py173except UnicodeDecodeError:CODE
HIGHscintilla/scripts/DBCS.py182except UnicodeDecodeError:CODE
HIGHscintilla/scripts/HFacer.py51except ValueError:CODE
Cross-Language Confusion6 hits · 35 pts
SeverityFileLineSnippetContext
HIGHscintilla/test/EncodingDump.py105 print(f'code page {codePage} total undefined: {undefined} diff: {diff} control: {control}\n')CODE
HIGHscintilla/test/EncodingDump.py136 print(f'code page {codePage} total undefined: {undefined} diff: {diff} control: {control}\n')CODE
HIGHscintilla/scripts/GenerateCharacterCategory.py257 # undefined, treat as Cn, Not assignedCOMMENT
HIGHscintilla/scripts/GenerateCharacterCategory.py423 if (character < 0 || character > maxUnicode) {CODE
HIGHscintilla/scripts/GenerateCharacterCategory.py467 # undefined, treat as Cn, Not assignedCOMMENT
HIGHscintilla/scripts/UnicodeData.py65 length = WideCharToMultiByte(self.codePage, self.flags, ctypes.c_wchar_p(source), srcLen, result, size, null, null)CODE
Hyper-Verbose Identifiers36 hits · 33 pts
SeverityFileLineSnippetContext
LOWtools/StringSwitch.py108def _get_switch_default_return(switch_type, option_set):CODE
LOWtools/ResourceFile.py19def increase_style_resource_id_value(doc, delta=100):CODE
LOWtools/ResourceFile.py23def generate_lexer_menu_resource_id(doc):CODE
LOWtools/ResourceFile.py73def remove_use_xp_file_dialog(doc):CODE
LOWtools/ImageTool.py171def resize_toolbar_bitmap_whole(path, percent, method=ResizeMethod.Bicubic, out_path=None):CODE
LOWtools/ImageTool.py187def resize_toolbar_bitmap_each(path, percent, method=ResizeMethod.Bicubic, out_path=None):CODE
LOWtools/ImageTool.py213def make_matepath_toolbar_bitmap(size):CODE
LOWtools/ImageTool.py234def make_all_matepath_toolbar_bitmap():CODE
LOWtools/ImageTool.py322def make_matepath_icon_and_cursor():CODE
LOWtools/KeywordHelper.py156def group_powershell_commands(path):STRING
LOWtools/KeywordHelper.py178def find_new_texinfo_commands(path, lang):STRING
LOWtools/KeywordCore.py265def parse_actionscript_api_file(path):CODE
LOWtools/KeywordCore.py298def parse_autohotkey_api_file(pathList):CODE
LOWtools/KeywordCore.py638def parse_coffeescript_api_file(path):CODE
LOWtools/KeywordCore.py1358def parse_inno_setup_api_file(path):CODE
LOWtools/KeywordCore.py1560def parse_javascript_api_file(path):CODE
LOWtools/KeywordCore.py1830def parse_mathematica_api_file(path):CODE
LOWtools/KeywordCore.py1979def parse_powerbuilder_api_file(path):CODE
LOWtools/KeywordCore.py2006def parse_powershell_api_file(path):CODE
LOWtools/KeywordCore.py2212def parse_resource_script_api_file(path):CODE
LOWtools/KeywordCore.py2558def parse_typescript_api_file(path):CODE
LOWtools/KeywordCore.py2670def parse_visual_basic_api_file(pathList):CODE
LOWtools/KeywordCore.py2774def parse_wasm_lexer_keywords(path):CODE
LOWtools/lang/Ruby.rb182 def singleton_method_undefined(symbol) =CODE
LOWtools/lang/Ruby.rb267 def protected_instance_methods(include_super=true) = arrayCODE
LOWlocale/Locale.py40def update_resource_include_path(path, matepath):CODE
LOWlocale/Locale.py100def restore_resource_include_path(path, matepath):CODE
LOWlocale/Locale.py117def copy_back_localized_resources(language):CODE
LOWscintilla/scripts/LaTeXInput.py41def find_word_contains_punctuation(items):CODE
LOWscintilla/scripts/LaTeXInput.py141def update_latex_input_data_hash(input_name, input_map, multiplier, hash_size):CODE
LOWscintilla/scripts/LaTeXInput.py231def update_all_latex_input_data_hash(latex_map=None, emoji_map=None):CODE
LOWscintilla/scripts/LaTeXInput.py262def update_latex_input_data_linear(input_name, input_map, path, param):CODE
LOWscintilla/scripts/LaTeXInput.py408def update_all_latex_input_data_linear(latex_map=None, emoji_map=None):STRING
LOWscintilla/scripts/LaTeXInput.py462def update_latex_input_header(latex_map, emoji_map):STRING
LOWscintilla/scripts/LaTeXInput.py514def parse_julia_unicode_input_html(path):STRING
LOWscintilla/scripts/LaTeXInput.py584def parse_iamcal_emoji_data_json(path):STRING
Unused Imports16 hits · 16 pts
SeverityFileLineSnippetContext
LOWtools/ImageTool.py4CODE
LOWtools/KeywordCore.py9CODE
LOWtools/KeywordUpdate.py1CODE
LOWscintilla/test/DBCSFoldMap.py4CODE
LOWscintilla/test/EncodingDump.py5CODE
LOWscintilla/scripts/GenerateCharacterCategory.py10CODE
LOWscintilla/scripts/GenerateCharacterCategory.py11CODE
LOWscintilla/scripts/DBCS.py4CODE
LOWscintilla/scripts/GenerateCaseConvert.py25CODE
LOWscintilla/scripts/GenerateCaseConvert.py26CODE
LOWscintilla/scripts/GenerateLineBreak.py9CODE
LOWscintilla/scripts/GenerateLineBreak.py10CODE
LOWscintilla/scripts/GenerateGraphemeBreak.py5CODE
LOWscintilla/scripts/GenerateGraphemeBreak.py6CODE
LOWscintilla/scripts/EastAsianWidth.py4CODE
LOWscintilla/scripts/EastAsianWidth.py5CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtools/lang/JavaScript.js1081 print()CODE
Excessive Try-Catch Wrapping4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtools/Bitmap.py906 except Exception:CODE
LOWtools/AccessKey.py59 except Exception as ex:CODE
LOWlocale/Locale.py402 except Exception:CODE
LOWscintilla/test/BashTest.py40 except Exception:CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMversion.sh4# This file is part of MPC-HC.COMMENT
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtools/LexerConfig.py1562CODE
LOWscintilla/scripts/GenerateCaseConvert.py141CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/Bitmap.py8__all__ = ['Bitmap', 'Color', 'Icon', 'Image', 'ResizeMethod', 'QuantizeMethod']CODE