AI Slop Code RIsk Monitor

zhayujie/bot-on-anything

A large model-based chatbot builder that can quickly integrate AI models (including ChatGPT, Claude, Gemini) into various software applications (such as Telegram, Gmail, Slack, and websites).

18.3 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for zhayujie/bot-on-anything, a Python project with 4,223 GitHub stars. SynthScan examined 7,195 lines of code across 57 source files, recording 111 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 18.3 (Elevated 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.

18.3
Adjusted Signal
18.3
Raw Pattern Score
100%
Time Factor
2026-07-05
Last Push
4.2K
Stars
Python
Language
7.2K
Lines of Code
57
Files
111
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 15.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 14.8/100 · LOW

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

Agent Over-Engineering Ratio 47.4/100 · MEDIUM

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

PR Review Velocity Impact 65.0/100 · HIGH

Which changes need focused human review? 111 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 20LOW 91

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

Excessive Try-Catch Wrapping63 hits · 84 pts
SeverityFileLineSnippetContext
LOWapp.py21 except Exception as e:CODE
LOWapp.py65 except Exception as e:CODE
MEDIUMapp.py13def start_process(channel_type, config_path):CODE
MEDIUMapp.py26def main():CODE
LOWplugins/README.md77 except Exception as e:CODE
LOWplugins/plugin_manager.py21 except Exception as e:CODE
LOWplugins/selector/selector.py17 except Exception as e:CODE
LOWchannel/dingtalk/dingtalk_channel.py42 except Exception as e:CODE
LOWchannel/dingtalk/dingtalk_channel.py234 except Exception as e:CODE
LOWchannel/dingtalk/dingtalk_channel.py296 except Exception as e:CODE
LOWchannel/discord/discord_channel.py71 except Exception as e:CODE
LOWchannel/discord/discord_channel.py107 except Exception as e:CODE
LOWchannel/feishu/feishu_channel.py50 except Exception as e:CODE
LOWchannel/wechat/wechat_com_channel.py75 except Exception as e:CODE
MEDIUMchannel/wechat/wechat_com_channel.py66def _do_send(self, query, reply_user_id):CODE
LOWchannel/wechat/wechat_channel.py186 except Exception as e:CODE
LOWchannel/wechat/wechat_channel.py211 except Exception as e:CODE
MEDIUMchannel/wechat/wechat_channel.py169def _do_send(self, query, reply_user_id):CODE
MEDIUMchannel/wechat/wechat_channel.py189def _do_send_img(self, query, context):CODE
LOWchannel/http/auth.py41 except Exception as e:CODE
LOWchannel/http/http_channel.py37 except Exception as e:CODE
LOWchannel/telegram/telegram_channel.py69 except Exception as e:CODE
MEDIUMchannel/telegram/telegram_channel.py46def _do_send_img(self, msg, reply_user_id):CODE
LOWchannel/gmail/gmail_channel.py95 except Exception as e:CODE
MEDIUMchannel/gmail/gmail_channel.py96 print("Error: {}".format(e))CODE
LOWcommon/functions.py22 except Exception as e:CODE
LOWcommon/sensitive_word.py10 except Exception as e:CODE
MEDIUMmodel/linkai/link_ai_bot.py310def create_img(self, query, retry_count=0, api_key=None):CODE
MEDIUMmodel/linkai/link_ai_bot.py335def _fetch_knowledge_search_suffix(self, response) -> str:CODE
MEDIUMmodel/linkai/link_ai_bot.py353def _fetch_agent_suffix(self, response):CODE
MEDIUMmodel/linkai/link_ai_bot.py383def _process_url(self, text):CODE
LOWmodel/linkai/link_ai_bot.py154 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py292 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py330 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py349 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py379 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py389 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py416 except Exception as e:CODE
LOWmodel/linkai/link_ai_bot.py431 except Exception as e:CODE
LOWmodel/google/bard_model.py17 except Exception as e:CODE
MEDIUMmodel/google/bard_model.py13def __init__(self):CODE
LOWmodel/google/bard_bot.py37 except Exception as e:CODE
LOWmodel/google/bard_bot.py66 except Exception as e:CODE
LOW⚡model/bing/new_bing_model.py28 except Exception as e:CODE
LOW⚡model/bing/new_bing_model.py38 except Exception as e:CODE
LOW⚡model/bing/new_bing_model.py46 except Exception as e:CODE
LOWmodel/bing/new_bing_model.py100 except Exception as e:CODE
LOWmodel/bing/new_bing_model.py118 except Exception as e:CODE
MEDIUMmodel/bing/new_bing_model.py22def __init__(self):CODE
MEDIUMmodel/bing/new_bing_model.py110def create_img(self, query):CODE
LOWmodel/bing/jailbroken_sydney.py93 except Exception as e:CODE
LOWmodel/openai/open_ai_model.py75 except Exception as e:CODE
LOWmodel/openai/open_ai_model.py126 except Exception as e:CODE
LOWmodel/openai/open_ai_model.py173 except Exception as e:CODE
MEDIUMmodel/openai/open_ai_model.py51def reply_text(self, query, user_id, retry_count=0):CODE
MEDIUMmodel/openai/open_ai_model.py82def reply_text_stream(self, query, context, retry_count=0):CODE
MEDIUMmodel/openai/open_ai_model.py154def create_img(self, query, retry_count=0):CODE
LOWmodel/openai/chatgpt_model.py98 except Exception as e:CODE
LOWmodel/openai/chatgpt_model.py140 except Exception as e:CODE
LOWmodel/openai/chatgpt_model.py165 except Exception as e:CODE
3 more matches not shown…
Unused Imports23 hits · 23 pts
SeverityFileLineSnippetContext
LOWplugins/__init__.py2CODE
LOWplugins/__init__.py3CODE
LOWplugins/plugin_manager.py4CODE
LOWplugins/selector/selector.py5CODE
LOWplugins/createimg/createimg.py6CODE
LOWplugins/createimg/createimg.py8CODE
LOWchannel/dingtalk/dingtalk_channel.py10CODE
LOWchannel/dingtalk/dingtalk_channel.py10CODE
LOWchannel/feishu/feishu_channel.py3CODE
LOWchannel/feishu/feishu_channel.py4CODE
LOWchannel/feishu/feishu_channel.py5CODE
LOWchannel/feishu/feishu_channel.py6CODE
LOWchannel/feishu/feishu_channel.py8CODE
LOWchannel/feishu/feishu_channel.py10CODE
LOWchannel/feishu/feishu_channel.py10CODE
LOWchannel/wechat/wechat_mp_channel.py8CODE
LOWchannel/wechat/wechat_channel.py11CODE
LOWchannel/wechat/wechat_channel.py18CODE
LOWchannel/http/auth.py6CODE
LOWchannel/http/http_channel.py15CODE
LOWchannel/slack/slack_channel.py5CODE
LOWchannel/gmail/gmail_channel.py13CODE
LOWmodel/linkai/link_ai_bot.py5CODE
Deep Nesting10 hits · 9 pts
SeverityFileLineSnippetContext
LOWplugins/createimg/createimg.py26CODE
LOWchannel/channel_factory.py6CODE
LOWchannel/feishu/store.py37CODE
LOWchannel/http/auth.py80CODE
LOWchannel/gmail/gmail_channel.py50CODE
LOWchannel/gmail/gmail_channel.py102CODE
LOWmodel/model_factory.py7CODE
LOWmodel/linkai/link_ai_bot.py59CODE
LOWmodel/linkai/link_ai_bot.py223CODE
LOWmodel/linkai/link_ai_bot.py353CODE
Hyper-Verbose Identifiers8 hits · 8 pts
SeverityFileLineSnippetContext
LOWchannel/discord/discord_channel.py83 async def on_private_channel_delete(self, channel):CODE
LOWchannel/discord/discord_channel.py87 async def on_private_channel_create(self, channel):CODE
LOWchannel/feishu/feishu_channel.py152 def handle_request_url_verify(self, post_obj):CODE
LOWmodel/linkai/link_ai_bot.py335 def _fetch_knowledge_search_suffix(self, response) -> str:CODE
LOWmodel/bing/new_bing_model.py133 def build_source_attributions(self, answer, context):CODE
LOWmodel/bing/jailbroken_sydney.py34 def get_messages_for_conversation(messages, parent_message_id):CODE
LOWmodel/openai/open_ai_model.py228 def discard_exceed_conversation(session, max_tokens):CODE
LOWmodel/openai/chatgpt_model.py48 def _supports_sampling_params(self, model):CODE
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippetContext
LOWchannel/qq/config.yml21 # -1 为关闭心跳COMMENT
LOWchannel/qq/config.yml81COMMENT
LOWmodel/linkai/link_ai_bot.py161COMMENT
LOWmodel/linkai/link_ai_bot.py181 # return messagesCOMMENT
LOWmodel/linkai/link_ai_bot.py201 # with open(path, "rb") as file:COMMENT
LOWmodel/linkai/link_ai_bot.py481COMMENT
LOWmodel/linkai/link_ai_bot.py501# log.debug(f"[LinkAI] chat history, before tokens={total_tokens}, now tokens={tokens_cnt}")COMMENT