AI Slop Code Risk Monitor

tokio-rs/topcoat

SlopCodeMonitor badge for tokio-rs/topcoat Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A batteries-included framework for building web apps

3.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for tokio-rs/topcoat, a Rust project with 6,287 GitHub stars. SynthScan examined 184,102 lines of code across 1321 source files, recording 652 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 3.5 (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.5
Adjusted Signal
3.5
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
6.3K
Stars
Rust
Language
184.1K
Lines of Code
1.3K
Files
652
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 16.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 16.3/100 · LOW

Which changes need focused human review? 652 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 2LOW 650

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 652 distinct pattern matches across 4 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 Block643 hits · 637 pts
SeverityFileLineSnippetContext
LOWrelease-plz.toml1[workspace]COMMENT
LOWcrates/topcoat-view/grammar/src/props.rs1use heck::ToSnakeCase;COMMENT
LOWcrates/topcoat-view/grammar/src/props.rs41 /// required fields.COMMENT
LOWcrates/topcoat-view/grammar/src/props.rs321 #[automatically_derived]COMMENT
LOWcrates/topcoat-view/grammar/src/component.rs21///COMMENT
LOWcrates/topcoat-view/grammar/src/view/hir/scope.rs41COMMENT
LOWcrates/topcoat-view/grammar/src/view/hir/scope.rs61COMMENT
LOWcrates/topcoat-view/grammar/src/view/hir/emit.rs1use proc_macro2::{Span, TokenStream};COMMENT
LOWcrates/topcoat-view/grammar/src/view/hir/emit.rs61 /// Registers the hoisted binding `ident` as a joined unit and splicesCOMMENT
LOW…es/topcoat-view/grammar/src/view/hir/node/component.rs21 pub ordinal: u32,COMMENT
LOWcrates/topcoat-view/benches/render.rs1//! Micro-benchmarks for [`View::render`].COMMENT
LOWcrates/topcoat-view/src/format.rs1#[cfg(feature = "http")]COMMENT
LOWcrates/topcoat-view/src/element_id.rs1use std::panic::Location;COMMENT
LOWcrates/topcoat-view/src/element_id.rs21/// #[component]COMMENT
LOWcrates/topcoat-view/src/hoist.rs61thread_local! {COMMENT
LOWcrates/topcoat-view/src/hoist.rs81COMMENT
LOWcrates/topcoat-view/src/string.rs1use std::ops::Deref;COMMENT
LOWcrates/topcoat-view/src/string.rs21COMMENT
LOWcrates/topcoat-view/src/string.rs61///COMMENT
LOWcrates/topcoat-view/src/props.rs1/// A properties struct whose builder checks required fields at compile time.COMMENT
LOWcrates/topcoat-view/src/buffer.rs21pub(crate) use scope::*;COMMENT
LOWcrates/topcoat-view/src/buffer.rs61 /// Returns this buffer's unique id.COMMENT
LOWcrates/topcoat-view/src/view.rs21/// An update to a live region, returned by [`View::poll_swap`].COMMENT
LOWcrates/topcoat-view/src/view.rs41/// If it is live, call [`poll_swap`](Self::poll_swap) for region updatesCOMMENT
LOWcrates/topcoat-view/src/internal/yielder.rs81guard!(DriveInputGuard, DRIVE_INPUT: DriveInput);COMMENT
LOWcrates/topcoat-view/src/internal/suspense_view.rs41 /// The fallback went out and the child is still pending. The flag saysCOMMENT
LOWcrates/topcoat-view/src/internal/builder.rs21 Self { cx, parts }COMMENT
LOWcrates/topcoat-view/src/internal/capture.rs1/// Moves a control-flow body's pattern bindings into its nested view.COMMENT
LOWcrates/topcoat-view/src/html/element.rs1use topcoat_core::context::Cx;COMMENT
LOWcrates/topcoat-view/src/html/attribute.rs21 value: V,COMMENT
LOWcrates/topcoat-view/src/html/escape.rs1use core::fmt;COMMENT
LOWcrates/topcoat-view/src/html/escape.rs21///COMMENT
LOWcrates/topcoat-view/src/html/escape.rs41 AttributeKey,COMMENT
LOWcrates/topcoat-view/src/html/node.rs1use std::borrow::Cow;COMMENT
LOWcrates/topcoat-view/src/html/node.rs161COMMENT
LOWcrates/topcoat-view/src/html/class.rs1use std::borrow::Cow;COMMENT
LOWcrates/topcoat-view/src/html/class.rs321///COMMENT
LOWcrates/topcoat-view/src/html/class.rs361 // The surrounding class list has already written any separator forCOMMENT
LOWcrates/topcoat-view/src/html/attribute/key.rs1use std::{COMMENT
LOWcrates/topcoat-view/src/html/attribute/attributes.rs21 map: HashMap<AttributeKey, AttributeValue>,COMMENT
LOWcrates/topcoat-view/src/html/attribute/value.rs1use std::borrow::Cow;COMMENT
LOWcrates/topcoat-view/src/html/attribute/value.rs21/// })COMMENT
LOWcrates/topcoat-view/src/html/attribute/value.rs301#[derive(Debug, Default, Clone)]COMMENT
LOWcrates/topcoat-view/src/buffer/handle.rs21///COMMENT
LOWcrates/topcoat-view/src/buffer/handle.rs181 self.render_into(cx, &mut Formatter::new(&mut html));COMMENT
LOWcrates/topcoat-view/src/buffer/handle.rs241 }COMMENT
LOWcrates/topcoat-view/src/buffer/part.rs41 self.sink.$method(value);COMMENT
LOWcrates/topcoat-view/src/buffer/part.rs181 }COMMENT
LOWcrates/topcoat-view/src/buffer/part.rs201 /// Use this only for trusted markup. Passing untrusted input defeats theCOMMENT
LOWcrates/topcoat-view/src/buffer/instruction.rs21 #[non_exhaustive]COMMENT
LOWcrates/topcoat-view/src/buffer/instruction.rs41 /// A `u32` rendered as text.COMMENT
LOWcrates/topcoat-view/src/buffer/instruction.rs61 /// The string is held as a reference to a `&'static str` so the operandCOMMENT
LOWcrates/topcoat-router/macro/docs/page.md81A page doubles as a [component](../view/attr.component.html): calling it inside [`view!`](../view/macro.view.html) rendeCOMMENT
LOWcrates/topcoat-router/src/response.rs21const TEXT_PLAIN: HeaderValue = HeaderValue::from_static("text/plain; charset=utf-8");COMMENT
LOWcrates/topcoat-router/src/response.rs41///COMMENT
LOWcrates/topcoat-router/src/response.rs61/// }COMMENT
LOWcrates/topcoat-router/src/response.rs81/// conversion needs.COMMENT
LOWcrates/topcoat-router/src/response.rs101}COMMENT
LOWcrates/topcoat-router/src/page.rs81COMMENT
LOWcrates/topcoat-router/src/page.rs161 }COMMENT
583 more matches not shown…
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcrates/topcoat-ui/src/manage/scaffold.rs9/// Options for [`scaffold`].COMMENT
MEDIUMcrates/topcoat-ui/src/manage/scaffold.rs17/// A file planned by [`scaffold`].COMMENT
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWcrates/topcoat-l10n/grammar/src/fluent/translate.rs172 assert_eq!(translate.key.attribute().as_deref(), Some("placeholder"));CODE
LOWcrates/topcoat-l10n/grammar/src/fluent/common/key.rs172 r#"password-field."placeholder""#,CODE
LOWcrates/topcoat-l10n/grammar/src/fluent/common/key.rs177 ("password-field".to_owned(), Some("placeholder".to_owned())),CODE
LOWcrates/topcoat-l10n/src/fluent/catalog.rs232 catalog.format(&locale!("de"), "login-input", Some("placeholder"), &[]),CODE
LOWcrates/topcoat-l10n/src/fluent/catalog.rs243 .format(&locale!("en"), "login-input", Some("placeholder"), &[])CODE
LOWcrates/topcoat-l10n/src/fluent/translation.rs301 test_translation_record!(NAMESPACE, "login-input", Some("placeholder")),CODE
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWcrates/topcoat-runtime/browser/src/dom/view.ts12export function isAttributeValueViewParts(CODE