AI Slop Code Risk Monitor

OpenBMB/MiniCPM

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

MiniCPM5: SOTA on-device LLMs, small yet powerful.

3.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for OpenBMB/MiniCPM, a Jupyter Notebook project with 11,772 GitHub stars. SynthScan examined 46,766 lines of code across 154 source files, recording 128 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.9
Adjusted Signal
3.9
Raw Pattern Score
100%
Time Factor
2026-09-21
Last Push
11.8K
Stars
Jupyter Notebook
Language
46.8K
Lines of Code
154
Files
128
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 13.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.8/100 · LOW

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

Agent Over-Engineering Ratio 3.8/100 · LOW

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

PR Review Velocity Impact 21.1/100 · LOW

Which changes need focused human review? 128 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 47LOW 81

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

Slop Phrases32 hits · 61 pts
SeverityFileLineSnippetContext
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json67 "content": "Certainly, measuring the results of a marketing strategy and making adjustments based on those metriCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json394 "content": "Using Unreal's Gameplay Ability System (GAS) in conjunction with interpolation and prediction can prCODE
LOW⚡…ma_factory_example/llama_factory_data/kto_en_demo.json903 "content": "I apologize for the confusion. The `unique_id` parameter in the `momepy.Tessellation` function expecCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json2012 "content": "Two-factor authentication (2FA) adds an extra layer of security by requiring users to provide two foCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json2114 "content": "To adapt the program to handle in-place modification or the creation of new objects based on a booleCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json2449 "content": "I'm not sure where you've heard that information, but as an AI language model, I can share some factCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json2790 "content": "To derive the original matrix from the rotated one, you would need to perform a 90 degrees counter-cCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json3013 "content": "The genetic factors that contribute to the intricate design of the peacock's tail feathers are quiteCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json3585 "content": "As an AI language model,I cannot determine the sentiment of the product review without further conteCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json3611 "content": "I'm unable to provide you with a real-time percentage of population living in poverty in MarlboroughCODE
LOW…ma_factory_example/llama_factory_data/kto_en_demo.json3690 "content": "Firstly, as a fitness trainer, I highly recommend consulting with a healthcare professional before eCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json3850 "content": "Since each medium-sized box measures 2 feet on all sides, its volume will be: 2*2*2 = 8 cubic feet. CODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json4774 "content": "In Feng Shui, the five elements—wood, fire, earth, metal, and water—are believed to interact in certCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json4897 "content": "Sure, I understand the problem. However, I'm a large language model, I cannot provide a correct answCODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json4923 "content": "As an AI language model, I am not able to provide program codes or algorithms. However, I can providCODE
MEDIUM…ma_factory_example/llama_factory_data/sft_zh_demo.json4470 "output": "As an AI language model I am capable of analyzing text and identifying emotions, however, the sentence prCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json67 "content": "Certainly, measuring the results of a marketing strategy and making adjustments based on those metriCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json394 "content": "Using Unreal's Gameplay Ability System (GAS) in conjunction with interpolation and prediction can prCODE
LOW⚡…tune/llama_factory/llama_factory_data/kto_en_demo.json903 "content": "I apologize for the confusion. The `unique_id` parameter in the `momepy.Tessellation` function expecCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json2012 "content": "Two-factor authentication (2FA) adds an extra layer of security by requiring users to provide two foCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json2114 "content": "To adapt the program to handle in-place modification or the creation of new objects based on a booleCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json2449 "content": "I'm not sure where you've heard that information, but as an AI language model, I can share some factCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json2790 "content": "To derive the original matrix from the rotated one, you would need to perform a 90 degrees counter-cCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json3013 "content": "The genetic factors that contribute to the intricate design of the peacock's tail feathers are quiteCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json3585 "content": "As an AI language model,I cannot determine the sentiment of the product review without further conteCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json3611 "content": "I'm unable to provide you with a real-time percentage of population living in poverty in MarlboroughCODE
LOW…tune/llama_factory/llama_factory_data/kto_en_demo.json3690 "content": "Firstly, as a fitness trainer, I highly recommend consulting with a healthcare professional before eCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json3850 "content": "Since each medium-sized box measures 2 feet on all sides, its volume will be: 2*2*2 = 8 cubic feet. CODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json4774 "content": "In Feng Shui, the five elements—wood, fire, earth, metal, and water—are believed to interact in certCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json4897 "content": "Sure, I understand the problem. However, I'm a large language model, I cannot provide a correct answCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json4923 "content": "As an AI language model, I am not able to provide program codes or algorithms. However, I can providCODE
MEDIUM…tune/llama_factory/llama_factory_data/sft_zh_demo.json4470 "output": "As an AI language model I am capable of analyzing text and identifying emotions, however, the sentence prCODE
Self-Referential Comments10 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUMdemo/minicpm3/code_interpreter/code_interpreter.py105 # Create a SamplingParams objectSTRING
MEDIUMdemo/minicpm3/code_interpreter/code_interpreter.py135 # Define a regular expression pattern to match Python code blocksCOMMENT
MEDIUM⚡…ma_factory_example/llama_factory_data/kto_en_demo.json887 "content": "To smoothen the output polygons without creating gaps or overlaps, you can use a combination of librCODE
MEDIUM⚡…ma_factory_example/llama_factory_data/kto_en_demo.json895 "content": "I apologize for the confusion. Let's try a different approach using the `TopologicalPreserveSimplifiCODE
MEDIUM⚡…ma_factory_example/llama_factory_data/kto_en_demo.json907 "content": "I have the following code:\n#%% Generate geoTiffs with index values based on one large geotiff with CODE
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json919 "content": "To smoothen the output polygons without creating gaps or overlays between the polygons, you can use CODE
MEDIUM⚡…tune/llama_factory/llama_factory_data/kto_en_demo.json887 "content": "To smoothen the output polygons without creating gaps or overlaps, you can use a combination of librCODE
MEDIUM⚡…tune/llama_factory/llama_factory_data/kto_en_demo.json895 "content": "I apologize for the confusion. Let's try a different approach using the `TopologicalPreserveSimplifiCODE
MEDIUM⚡…tune/llama_factory/llama_factory_data/kto_en_demo.json907 "content": "I have the following code:\n#%% Generate geoTiffs with index values based on one large geotiff with CODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json919 "content": "To smoothen the output polygons without creating gaps or overlays between the polygons, you can use CODE
Excessive Try-Catch Wrapping21 hits · 26 pts
SeverityFileLineSnippetContext
LOWdemo/minicpm4/MCP/generate_example.py63 except Exception as e:CODE
LOWdemo/minicpm4/MCP/eval_scripts.py83 except Exception as e:CODE
LOW…o/minicpm4/SurveyGeneration/src/retriever/retriever.py163 except Exception as e:CODE
MEDIUM…o/minicpm4/SurveyGeneration/src/retriever/retriever.py164 print(f"Error in call_search_engine: {e}")CODE
MEDIUM…o/minicpm4/SurveyGeneration/src/retriever/retriever.py133def call_search_engine(tool_call, topk=10):CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py51 except Exception as e:CODE
MEDIUMdemo/minicpm4/SurveyGeneration/src/generation/run.py52 print(f"Error sending to WebSocket: {e}")CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py210 except Exception as e:CODE
MEDIUMdemo/minicpm4/SurveyGeneration/src/generation/run.py211 print(f"Error posting to frontend: {e}")CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py310 except Exception as e:CODE
MEDIUMdemo/minicpm4/SurveyGeneration/src/generation/run.py311 print(f"Error generating survey: {e}")CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py205 except Exception as e:CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py277 except Exception as e:CODE
LOWdemo/minicpm3/code_interpreter/code_interpreter.py76 except Exception as e:STRING
LOWtool_parsers/minicpm5xml_tool_parser.py40except Exception: # pragma: no coverCODE
LOWtool_parsers/minicpm5xml_tool_parser.py108 except Exception:CODE
LOWtool_parsers/minicpm5xml_tool_parser.py226 except Exception:CODE
LOWtool_parsers/minicpm5xml_tool_parser.py260 except Exception:CODE
LOWtool_parsers/minicpm5xml_tool_parser.py402 except Exception as e:CODE
LOWtool_parsers/minicpm5xml_tool_parser.py645 except Exception:CODE
LOWfinetune/mlx_finetune.py441 except Exception as e:CODE
Deep Nesting25 hits · 25 pts
SeverityFileLineSnippetContext
LOWdemo/minicpm4/MCP/generate_example.py25CODE
LOWdemo/minicpm4/MCP/generate_example.py71CODE
LOWdemo/minicpm4/MCP/eval_scripts.py21CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py93CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py227CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/run.py255CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py36CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py75CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py149CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py210CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py408CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py462CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py510CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py556CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py612CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py639CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py150CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py239CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py75CODE
LOWtool_parsers/minicpm5xml_tool_parser.py161CODE
LOWfinetune/finetune.py78CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py85CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py184CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py228CODE
LOWminicpm_sala/finetune/trainer/finetune.py78CODE
Unused Imports17 hits · 17 pts
SeverityFileLineSnippetContext
LOWdemo/minicpm/langchain_demo.py35CODE
LOWdemo/minicpm/langchain_demo.py40CODE
LOWdemo/minicpm4/MCP/eval_scripts.py1CODE
LOW…inicpm4/SurveyGeneration/src/preprocess/build_index.py6CODE
LOW…inicpm4/SurveyGeneration/src/preprocess/build_index.py8CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py276CODE
LOWdemo/minicpm3/code_interpreter/code_interpreter.py3CODE
LOWdemo/minicpm3/code_interpreter/code_interpreter.py4CODE
LOWdemo/minicpm3/code_interpreter/code_interpreter.py6CODE
LOWdemo/minicpm3/code_interpreter/code_interpreter.py7CODE
LOWtool_parsers/minicpm5xml_tool_parser.py6CODE
LOWquantize/awq_quantize.py4CODE
LOWquantize/quantize_eval.py5CODE
LOWfinetune/mlx_finetune.py46CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py5CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py5CODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py19CODE
Hyper-Verbose Identifiers10 hits · 10 pts
SeverityFileLineSnippetContext
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py75 def convert_survey_dict_to_str(current_survey):CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py149 def convert_survey_dict_to_abbr_str(current_survey):CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py408 def _build_user_prompt_force_correct(query, current_survey, trajs):CODE
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py510 def build_prompt_for_generator(self):CODE
LOWdemo/minicpm3/function_call/minicpm_tool_parser.py75 def extract_tool_calls_streaming(CODE
LOWtool_parsers/minicpm5xml_tool_parser.py464 def _process_complete_block_streaming(CODE
LOWtool_parsers/minicpm5xml_tool_parser.py526 def _process_partial_block_streaming(CODE
LOWtool_parsers/minicpm5xml_tool_parser.py565 def extract_tool_calls_streaming(CODE
LOWquantize/quantize_data/alpaca_data_cleaned.json730 "output": "Here's a Python implementation of the function:\n\n```\ndef uppercase_unless_rejected(string):\n if stCODE
LOWfinetune/sft_dpo_trainer/finetune_dpo_trainer.py228 def encode_conversation_with_labels(self, messages, response):CODE
Redundant / Tautological Comments4 hits · 5 pts
SeverityFileLineSnippetContext
LOWdemo/minicpm3/code_interpreter/code_interpreter.py165 # Check if the response contains the termination keywordCOMMENT
LOWfinetune/mlx_finetune.py487 # Check if any sequence is longer than 2048 tokensCOMMENT
LOW…ma_factory_example/llama_factory_data/sft_zh_demo.json275 "output": "def calculate_sum(numbers):\n if not isinstance(numbers, list): # Check if input is a list\n rCODE
LOW…tune/llama_factory/llama_factory_data/sft_zh_demo.json275 "output": "def calculate_sum(numbers):\n if not isinstance(numbers, list): # Check if input is a list\n rCODE
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md183During **post-training**, we proceed in three steps: **SFT**, **RL**, and **OPD**. We first use **400B tokens of deep-thCODE
MEDIUMREADME.md189**RL + OPD** is a key part of MiniCPM5-2B post-training. During the **RL** stage, we adopted the critic-based algorithm CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOW…/SurveyGeneration/frontend/minicpm4-survey/src/App.jsx181 };COMMENT
LOWdemo/minicpm4/SurveyGeneration/src/generation/buffer.py1COMMENT
LOWdemo/minicpm3/function_call/function_calling.py41 # "tool_calls": [COMMENT
LOWdemo/minicpm3/function_call/function_calling.py61 # {COMMENT
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM…ma_factory_example/llama_factory_data/kto_en_demo.json2769 "content": " As an Azure Cloud Engineer working with Microsoft Azure, you can indeed utilize Azure Active DirectCODE
MEDIUM…tune/llama_factory/llama_factory_data/kto_en_demo.json2769 "content": " As an Azure Cloud Engineer working with Microsoft Azure, you can indeed utilize Azure Active DirectCODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…o/minicpm4/SurveyGeneration/src/retriever/retriever.py131CODE