AI Slop Code RIsk Monitor

bee-san/RustScan

🤖 The Modern Port Scanner 🤖

7.5 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for bee-san/RustScan, a Rust project with 20,544 GitHub stars. SynthScan examined 13,698 lines of code across 43 source files, recording 66 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 7.5 (Moderate 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.

7.5
Adjusted Signal
7.5
Raw Pattern Score
100%
Time Factor
2026-10-06
Last Push
20.5K
Stars
Rust
Language
13.7K
Lines of Code
43
Files
66
Pattern Hits
2026-10-12
Scan Date
0.07
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 17.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 17.0/100 · LOW

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

PR Review Velocity Impact 31.8/100 · MEDIUM

Which changes need focused human review? 66 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 3MEDIUM 12LOW 51

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 66 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 Block40 hits · 40 pts
SeverityFileLineSnippetContext
LOWbuild.rs161/// Parses out the Payloads into a BTreeMap of line numbers mapped to vectors of payload bytesCOMMENT
LOWbuild.rs181COMMENT
LOWpictures/nice.yml1# The configurations that used for the recording, feel free to edit themCOMMENT
LOWpictures/nice.yml21 cols: 108COMMENT
LOWpictures/nice.yml41 COMMENT
LOWpictures/accessible.yml1# The configurations that used for the recording, feel free to edit themCOMMENT
LOWpictures/accessible.yml21 cols: 107COMMENT
LOWpictures/accessible.yml41 COMMENT
LOWpictures/fast.yml1# The configurations that used for the recording, feel free to edit themCOMMENT
LOWpictures/fast.yml21 cols: 105COMMENT
LOWpictures/fast.yml41 COMMENT
LOWpictures/newfast.yml1# The configurations that used for the recording, feel free to edit themCOMMENT
LOWpictures/newfast.yml21 cols: 235COMMENT
LOWpictures/newfast.yml41 COMMENT
LOW.github/workflows/scan-benchmark.yml1name: Scan benchmarkCOMMENT
LOWsrc/lib.rs1//! This crate exposes the internal functionality of theCOMMENT
LOWsrc/lib.rs21//! use rustscan::input::{PortRanges, ScanOrder};COMMENT
LOWsrc/lib.rs41//! // Inside an async context (e.g. `#[tokio::main]`) this is simplyCOMMENT
LOWsrc/address.rs21///COMMENT
LOWsrc/address.rs101/// Given a string, parse it as a host, IP address, or CIDR.COMMENT
LOWsrc/address.rs241}COMMENT
LOWsrc/input.rs21COMMENT
LOWsrc/input.rs161 /// Greppable mode. Only output the ports. No Nmap. Useful for grep or outputting to a file.COMMENT
LOWsrc/input.rs181 #[arg(short, long, default_value = "1500")]COMMENT
LOWsrc/input.rs201 #[arg(long, value_enum, ignore_case = true, default_value = "default")]COMMENT
LOWsrc/input.rs221 #[arg(short = 'x', long = "exclude-addresses", value_delimiter = ',')]COMMENT
LOWsrc/input.rs401 exclude_addresses: Option<Vec<String>>,COMMENT
LOWsrc/tui.rs1//! Utilities for terminal output during scanning.COMMENT
LOWsrc/benchmark/mod.rs1//! Provides functionality to capture timing information for scans.COMMENT
LOWsrc/scripts/mod.rs1//! Scripting Engine to run scripts based on tags.COMMENT
LOWsrc/scripts/mod.rs21//! None of the scripts will run, this replaces the removed `--no-nmap` option.COMMENT
LOWsrc/scripts/mod.rs41//!COMMENT
LOWsrc/scripts/mod.rs61//! - The `{{port}}` part will be reaplced with the ports separated with theCOMMENT
LOWsrc/port_strategy/range_iterator.rs1use gcd::Gcd;COMMENT
LOWsrc/scanner/mod.rs81}COMMENT
LOWsrc/scanner/mod.rs261COMMENT
LOWsrc/scanner/mod.rs421 /// # use std::net::{IpAddr, Ipv6Addr, SocketAddr};COMMENT
LOWsrc/scanner/mod.rs441 SocketAddr::V4(_) => SocketAddr::from((Ipv4Addr::UNSPECIFIED, 0)),COMMENT
LOWsrc/scanner/socket_iterator.rs1use itertools::{iproduct, Product};COMMENT
LOWsrc/scanner/socket_iterator.rs21/// `SocketIterator` lives in a private module, so this example is not run asCOMMENT
Decorative Section Separators12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUM.github/scan-benchmark/scan_bench.py59# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py61# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py129# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py131# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py272# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py274# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py541# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py543# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py633# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py635# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py809# --------------------------------------------------------------------------COMMENT
MEDIUM.github/scan-benchmark/scan_bench.py811# --------------------------------------------------------------------------COMMENT
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGH.github/scan-benchmark/scan_bench.py622except (OSError, subprocess.CalledProcessError):CODE
HIGH.github/scan-benchmark/scan_bench.py628except (ImportError, OSError, ValueError):CODE
HIGH.github/scan-benchmark/scan_bench.py111except OSError:CODE
Slop Phrases4 hits · 6 pts
SeverityFileLineSnippetContext
LOWpictures/nice.yml50 # Don't forget to add a backgroundColor style with a null as typeCOMMENT
LOWpictures/accessible.yml50 # Don't forget to add a backgroundColor style with a null as typeCOMMENT
LOWpictures/fast.yml50 # Don't forget to add a backgroundColor style with a null as typeCOMMENT
LOWpictures/newfast.yml50 # Don't forget to add a backgroundColor style with a null as typeCOMMENT
Deep Nesting6 hits · 5 pts
SeverityFileLineSnippetContext
LOW.github/scan-benchmark/scan_bench.py64CODE
LOW.github/scan-benchmark/scan_bench.py602CODE
LOW.github/scan-benchmark/scan_bench.py666CODE
LOW.github/scan-benchmark/scan_bench.py744CODE
LOW.github/scan-benchmark/scan_bench.py824CODE
LOW.github/scan-benchmark/scan_bench.py316CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.github/scan-benchmark/scan_bench.py28CODE