AI Slop Code Risk Monitor

GopeedLab/gopeed

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

A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.

0.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for GopeedLab/gopeed, a Dart project with 27,282 GitHub stars. SynthScan examined 163,942 lines of code across 957 source files, recording 76 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 0.7 (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.7
Adjusted Signal
0.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
27.3K
Stars
Dart
Language
163.9K
Lines of Code
957
Files
76
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 3.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 0.3/100 · LOW

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

PR Review Velocity Impact 2.5/100 · LOW

Which changes need focused human review? 76 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 4LOW 72

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 76 distinct pattern matches across 7 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 Block31 hits · 31 pts
SeverityFileLineSnippetContext
LOWui/flutter/pubspec.yaml1name: gopeedCOMMENT
LOWui/flutter/pubspec.yaml181COMMENT
LOWui/flutter/analysis_options.yaml1# This file configures the analyzer, which statically analyzes Dart code toCOMMENT
LOWui/flutter/ios/Runner/Runner-Bridging-Header.h1#import "GeneratedPluginRegistrant.h"COMMENT
LOWui/flutter/lib/core/utils/tcp_port_checker.dart1import 'tcp_port_checker_stub.dart' if (dart.library.io) 'tcp_port_checker_native.dart' as implementation;COMMENT
LOWui/flutter/windows/runner/utils.h1#ifndef RUNNER_UTILS_H_COMMENT
LOWui/flutter/windows/runner/win32_window.cpp1#include "win32_window.h"COMMENT
LOWui/flutter/windows/runner/resource.h1//{{NO_DEPENDENCIES}}COMMENT
LOWui/flutter_old/pubspec.yaml1name: gopeedCOMMENT
LOWui/flutter_old/analysis_options.yaml1# This file configures the analyzer, which statically analyzes Dart code toCOMMENT
LOWui/flutter_old/analysis_options.yaml21 # or a specific dart file by using the `// ignore: name_of_lint` andCOMMENT
LOWui/flutter_old/ios/Runner/Runner-Bridging-Header.h1#import "GeneratedPluginRegistrant.h"COMMENT
LOW…/flutter_old/lib/app/modules/home/views/home_view.dart121 // barAnimation: BarAnimation.blink,COMMENT
LOW…/flutter_old/lib/app/modules/home/views/home_view.dart141 // onTap: (index) {COMMENT
LOW…er_old/lib/app/modules/setting/views/setting_view.dart1861 // Card(COMMENT
LOWui/flutter_old/lib/icon/gopeed_icons.dart1/// Flutter icons GopeedCOMMENT
LOWui/flutter_old/windows/runner/utils.h1#ifndef RUNNER_UTILS_H_COMMENT
LOWui/flutter_old/windows/runner/win32_window.cpp1#include "win32_window.h"COMMENT
LOWui/flutter_old/windows/runner/resource.h1//{{NO_DEPENDENCIES}}COMMENT
LOWinternal/protocol/ftp/testserver_test.go41 // NoRest answers "502" to REST. It filters the plain control stream, so itCOMMENT
LOWinternal/protocol/http/timeout_reader.go1package httpCOMMENT
LOWinternal/protocol/http/fetcher_test.go2561 })COMMENT
LOWinternal/protocol/hls/doc.go1// Package hls implements native HTTP Live Streaming downloads for m3u8COMMENT
LOWinternal/protocol/hls/doc.go21// explicit IVCOMMENT
LOW.github/FUNDING.yml1# These are supported funding model platformsCOMMENT
LOW.github/ISSUE_TEMPLATE.md1<!--COMMENT
LOW.github/workflows/scripts/flutter_local_font.dart1// Localize external Google Fonts (fonts.gstatic.com) references in Flutter Web build output.COMMENT
LOW.github/workflows/scripts/check_l10n.dart1// Validate Flutter ARB translation catalogs before localization code generation.COMMENT
LOWpkg/protocol/ftp/model.go21 // logins per user, so the fetcher lowers it when the server refuses one.COMMENT
LOW…e/testdata/wpt/fetch/api/headers/headers-record.any.js181 // The first thing is the [[Get]] of Symbol.iterator to figure out whetherCOMMENT
LOW…e/testdata/wpt/fetch/api/headers/headers-record.any.js221 // The first thing is the [[Get]] of Symbol.iterator to figure out whetherCOMMENT
Verbosity Indicators15 hits · 28 pts
SeverityFileLineSnippetContext
LOWcmd/web/flags_test.go1081 // Step 1: Simulate loadCliArgs() with default valuesCOMMENT
LOW⚡cmd/web/flags_test.go1092 // Step 2: loadConfigFile with non-existent fileCOMMENT
LOW⚡cmd/web/flags_test.go1095 // Step 3: loadEnvVars with empty environmentCOMMENT
LOW⚡cmd/web/flags_test.go1098 // Step 4: overrideWithCliArgs (no flags set in test environment)COMMENT
LOW⚡cmd/web/flags_test.go1101 // Step 5: setDefaultsCOMMENT
LOW⚡internal/protocol/http/fetcher_test.go3329 // Step 1: Try to resolve with bad URL - should fail with errorCOMMENT
LOW⚡internal/protocol/http/fetcher_test.go3336 // Step 2: Create a new fetcher and resolve with bad URL but don't waitCOMMENT
LOWinternal/protocol/http/fetcher_test.go3352 // Step 3: Patch to change URL (simulating URL change scenario)COMMENT
LOWinternal/protocol/http/fetcher_test.go3364 // Step 4: Start download and verify successCOMMENT
LOWinternal/protocol/http/fetcher_test.go3592 // Step 1: Resolve with old_token - should succeed (first request accepts old_token)COMMENT
LOWinternal/protocol/http/fetcher_test.go3619 // Step 2: Start download - should fail because old_token is now expiredCOMMENT
LOWinternal/protocol/http/fetcher_test.go3632 // Step 3: Patch with new valid cookieCOMMENT
LOWinternal/protocol/http/fetcher_test.go3650 // Step 4: Restart download - should succeed with new cookieCOMMENT
LOW⚡pkg/util/path.go202 // Step 1: Replace invalid charactersCOMMENT
LOW⚡pkg/util/path.go207 // Step 2: Truncate if neededCOMMENT
Structural Annotation Overuse15 hits · 28 pts
SeverityFileLineSnippetContext
LOWcmd/web/flags_test.go1081 // Step 1: Simulate loadCliArgs() with default valuesCOMMENT
LOW⚡cmd/web/flags_test.go1092 // Step 2: loadConfigFile with non-existent fileCOMMENT
LOW⚡cmd/web/flags_test.go1095 // Step 3: loadEnvVars with empty environmentCOMMENT
LOW⚡cmd/web/flags_test.go1098 // Step 4: overrideWithCliArgs (no flags set in test environment)COMMENT
LOW⚡cmd/web/flags_test.go1101 // Step 5: setDefaultsCOMMENT
LOW⚡internal/protocol/http/fetcher_test.go3329 // Step 1: Try to resolve with bad URL - should fail with errorCOMMENT
LOW⚡internal/protocol/http/fetcher_test.go3336 // Step 2: Create a new fetcher and resolve with bad URL but don't waitCOMMENT
LOWinternal/protocol/http/fetcher_test.go3352 // Step 3: Patch to change URL (simulating URL change scenario)COMMENT
LOWinternal/protocol/http/fetcher_test.go3364 // Step 4: Start download and verify successCOMMENT
LOWinternal/protocol/http/fetcher_test.go3592 // Step 1: Resolve with old_token - should succeed (first request accepts old_token)COMMENT
LOWinternal/protocol/http/fetcher_test.go3619 // Step 2: Start download - should fail because old_token is now expiredCOMMENT
LOWinternal/protocol/http/fetcher_test.go3632 // Step 3: Patch with new valid cookieCOMMENT
LOWinternal/protocol/http/fetcher_test.go3650 // Step 4: Restart download - should succeed with new cookieCOMMENT
LOW⚡pkg/util/path.go202 // Step 1: Replace invalid charactersCOMMENT
LOW⚡pkg/util/path.go207 // Step 2: Truncate if neededCOMMENT
Hyper-Verbose Identifiers9 hits · 9 pts
SeverityFileLineSnippetContext
LOW…wnload/testdata/extensions/blob_stream_bridge/index.js35function createFetchDrainedRangeStream(url, offset, end) {CODE
LOWpkg/download/engine/engine_test.go133async function testResponseBodyGetReader() {CODE
LOWpkg/download/engine/engine_test.go155async function testStreamingFetchResponseBody() {CODE
LOW…a/wpt/fetch/api/response/response-consume-empty.any.js65function checkResponseWithEmptyBody(bodyType, body, asText) {CODE
LOW…nload/engine/testdata/wpt/fetch/api/resources/utils.js78function validateStreamFromPartialString(reader, expectedValue, retrievedArrayBuffer) {CODE
LOW…/wpt/fetch/api/request/request-init-contenttype.any.js79function requestFromBodyWithOverrideMime(body) {CODE
LOW…ata/wpt/fetch/api/request/request-consume-empty.any.js64function checkRequestWithEmptyBody(bodyType, body, asText) {CODE
LOWpkg/download/engine/inject/stream/stream.js530 function normalizeBlobObjectURLOptions(value, options, defaultRange) {CODE
LOWpkg/download/engine/inject/stream/stream.js560 function validateBlobObjectURLOptions(options) {CODE
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMui/flutter/pubspec.yaml153# The following section is specific to Flutter packages.COMMENT
MEDIUMui/flutter_old/pubspec.yaml113# The following section is specific to Flutter packages.COMMENT
Slop Phrases2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMui/flutter/pubspec.yaml158 # included with your application, so that you can use the icons inCOMMENT
MEDIUMui/flutter_old/pubspec.yaml116 # included with your application, so that you can use the icons inCOMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…/gopeed-file-category-icons/scripts/build_icon_font.py4CODE
LOW…opeed-file-category-icons/scripts/preview_icon_font.py4CODE