AI Slop Code Risk Monitor

longbridge/gpui-component

SlopCodeMonitor badge for longbridge/gpui-component Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Rust GUI components for building fantastic cross-platform desktop application by using GPUI.

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for longbridge/gpui-component, a Rust project with 18,826 GitHub stars. SynthScan examined 592,126 lines of code across 1610 source files, recording 843 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
18.8K
Stars
Rust
Language
592.1K
Lines of Code
1.6K
Files
843
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 6.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 0.6/100 · LOW

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

PR Review Velocity Impact 7.4/100 · LOW

Which changes need focused human review? 843 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 2HIGH 2MEDIUM 17LOW 822

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 843 distinct pattern matches across 10 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 Block745 hits · 740 pts
SeverityFileLineSnippetContext
LOWcrates/story-web/www/src/main.js1const embedded = window.parent !== window;COMMENT
LOWcrates/shell/tests/integration/main.rs1//! The shell's integration tests, in one binary.COMMENT
LOWcrates/shell/src/spec.rs1//! The element description buffer.COMMENT
LOWcrates/shell/src/spec.rs21use crate::HostValue;COMMENT
LOWcrates/shell/src/spec.rs41///COMMENT
LOWcrates/shell/src/spec.rs61 hashed ^= hashed >> 30;COMMENT
LOWcrates/shell/src/spec.rs261 Registered(RegisteredComponentSpec),COMMENT
LOWcrates/shell/src/spec.rs281COMMENT
LOWcrates/shell/src/spec.rs301 /// The heading that owns one item's trigger.COMMENT
LOWcrates/shell/src/spec.rs321 ///COMMENT
LOWcrates/shell/src/spec.rs341 /// One tab in a [`Component::Tabs`].COMMENT
LOWcrates/shell/src/spec.rs361 /// The press and drag surface of a [`Component::Slider`].COMMENT
LOWcrates/shell/src/spec.rs381 /// A semantic table root. It has no data source and no delegate: theCOMMENT
LOWcrates/shell/src/spec.rs401 /// there is no builder to change it afterwards.COMMENT
LOWcrates/shell/src/spec.rs421 /// window, and window-edge snapping. It holds no open state at all — itCOMMENT
LOWcrates/shell/src/spec.rs441 /// Nothing under it is described. Its panels are entities the script handedCOMMENT
LOWcrates/shell/src/spec.rs661 pub fn render_items(&self) -> CallbackId {COMMENT
LOWcrates/shell/src/spec.rs781 /// A handler for one named action.COMMENT
LOWcrates/shell/src/spec.rs801 Slot(&'static str, SpecId),COMMENT
LOWcrates/shell/src/spec.rs941 pub fn keys(&self) -> &[String] {COMMENT
LOWcrates/shell/src/spec.rs1001 Value(Bridged),COMMENT
LOWcrates/shell/src/spec.rs1221 // structure, and a template could not fill one from the other.COMMENT
LOWcrates/shell/src/dock.rs1//! Dock and panel integration: a script contributes a panel to a dockedCOMMENT
LOWcrates/shell/src/dock.rs21//! nothing but the panels — so every tab bar and dock frame a script wantsCOMMENT
LOWcrates/shell/src/dock.rs61 entities::EntityHandle,COMMENT
LOWcrates/shell/src/dock.rs81/// The returned pointer is stable: calling this twice with the same pairCOMMENT
LOWcrates/shell/src/dock.rs121///COMMENT
LOWcrates/shell/src/dock.rs141COMMENT
LOWcrates/shell/src/dock.rs201 ) {COMMENT
LOWcrates/shell/src/dock.rs361 .child(self.view.clone())COMMENT
LOWcrates/shell/src/dock.rs481/// no-chrome behavior, so an application that draws no dock chrome implementsCOMMENT
LOWcrates/shell/src/dock.rs581COMMENT
LOWcrates/shell/src/dock.rs641 /// installs the real one here for the length of the call and the script'sCOMMENT
LOWcrates/shell/src/dock.rs721///COMMENT
LOWcrates/shell/src/dock.rs741 /// Make this tab a drag source carrying base's own panel payload.COMMENT
LOWcrates/shell/src/dock.rs841 fn default() -> Self {COMMENT
LOWcrates/shell/src/dock.rs941 })COMMENT
LOWcrates/shell/src/dock.rs1001}COMMENT
LOWcrates/shell/src/typings.rs1//! TypeScript declarations for the script API (design doc §14.4).COMMENT
LOWcrates/shell/src/typings.rs21//! `gpui-component`, whose components are the reason the seam exists — needs aCOMMENT
LOWcrates/shell/src/typings.rs41//! * Their documentation is GPUI's own, carried on the same reflection entries,COMMENT
LOWcrates/shell/src/typings.rs61//! * **Element lifetime.** An element is consumed when it is used and belongsCOMMENT
LOWcrates/shell/src/typings.rs101/// The editor configuration filename, in the spelling a JavaScript project uses.COMMENT
LOWcrates/shell/src/typings.rs941// Do not edit: gpui-shell rewrites this on every run, in every directory thatCOMMENT
LOWcrates/shell/src/policy.rs1//! What a piece of running script is allowed to do, and who answers for it.COMMENT
LOWcrates/shell/src/policy.rs21//! activate(B) ↑COMMENT
LOWcrates/shell/src/policy.rs61/// The authority one application or plugin runs under.COMMENT
LOWcrates/shell/src/policy.rs81 ///COMMENT
LOWcrates/shell/src/policy.rs181 }COMMENT
LOWcrates/shell/src/runtime.rs241/// what keeps a later field from being a breaking change to somebody else.COMMENT
LOWcrates/shell/src/runtime.rs281///COMMENT
LOWcrates/shell/src/runtime.rs441 }COMMENT
LOWcrates/shell/src/runtime.rs501/// otherwise panic on the outstanding borrow.COMMENT
LOWcrates/shell/src/runtime.rs741 }COMMENT
LOWcrates/shell/src/action.rs1//! The one action type a script can name.COMMENT
LOWcrates/shell/src/host.rs201// ---------------------------------------------------------------------------COMMENT
LOWcrates/shell/src/host.rs221 /// Write TypeScript declarations next to an application.COMMENT
LOWcrates/shell/src/host.rs861 // Launched from a terminal, a GPUI process opens its window behindCOMMENT
LOWcrates/shell/src/host.rs1161 .map_err(|error| format!("invalid {}: {error}", path.display()))COMMENT
LOWcrates/shell/src/host.rs1241/// The loop, the failure toast and the exit conditions all live inCOMMENT
685 more matches not shown…
Decorative Section Separators16 hits · 57 pts
SeverityFileLineSnippetContext
MEDIUMcrates/shell/src/policy.rs20//! activate(A) ─▶ A runs ─▶ await ────────────────▶ A resumesCOMMENT
MEDIUM⚡crates/shell/src/snapshot.rs10//! script state changes ──▶ build snapshot ──▶ ┌───────────┐COMMENT
MEDIUM⚡crates/shell/src/snapshot.rs12//! └───────────┘COMMENT
MEDIUM⚡crates/shell/src/snapshot.rs14//! many GPUI frames ◀──────┘ │ │COMMENT
MEDIUM⚡crates/shell/src/snapshot.rs34//! ┌───────────┐COMMENT
MEDIUM⚡crates/shell/src/snapshot.rs36//! └───────────┘COMMENT
MEDIUM⚡crates/shell/src/snapshot.rs38//! many GPUI frames ◀──────┤COMMENT
MEDIUMcrates/shell/src/engine/quickjs/entity_api.rs562 // ── CalendarState ────────────────────────────────────────────────────COMMENT
MEDIUMcrates/component/src/tooltip.rs30// ── Tooltip view (unchanged API) ────────────────────────────────────────────COMMENT
MEDIUMcrates/component/src/tooltip.rs151// ── Managed tooltip system ──────────────────────────────────────────────────COMMENT
MEDIUMcrates/component/src/tooltip.rs195// ── Extension trait for managed tooltips ─────────────────────────────────────COMMENT
MEDIUMcrates/component/src/tooltip.rs197// ── Shared tooltip state for components ─────────────────────────────────────COMMENT
MEDIUMcrates/component/src/tooltip.rs234// ── Internal managed tooltip trait ──────────────────────────────────────────COMMENT
MEDIUMcrates/base/src/animation.rs73// ── Easing presets ──────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/base/src/animation.rs97// ── Lerp trait ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/base/src/animation.rs141// ── Transition combinator ───────────────────────────────────────────────────COMMENT
Fake / Example Data46 hits · 51 pts
SeverityFileLineSnippetContext
LOWcrates/shell/src/components/shell/retained_forms/mod.rs429 "placeholder",CODE
LOWcrates/shell/src/components/shell/retained_forms/mod.rs431 "placeholder",CODE
LOWcrates/shell/src/components/shell/retained_forms/mod.rs474 "placeholder",CODE
LOWcrates/shell/src/components/shell/retained_forms/mod.rs492 let placeholder = optional_text(placeholder, "placeholder")?;CODE
LOW…ates/shell/src/components/shell/delegate_select/mod.rs296 method("placeholder", "Sets the text shown while nothing is selected.", ArgumentSchema::String, |arg| match CODE
LOWcrates/shell/src/components/shell/command/command.rs299 MethodDescriptor::new("placeholder", vec![ArgumentDescriptor::new("placeholder", ArgumentSchema::String)], |argsCODE
LOWcrates/shell/src/components/shell/input_group/mod.rs421 "placeholder",CODE
LOW…es/shell/src/components/shell/delegate_combobox/mod.rs326 method("placeholder", "Sets the text shown while nothing is selected.", ArgumentSchema::String, |arg| match CODE
LOWcrates/kit/tests/integration/painted_text.rs16 .child(Avatar::new().name("Jane Doe"))CODE
LOWcrates/kit/tests/integration/painted_text.rs49 assert!(find("Jane Doe").is_alternative());CODE
LOWcrates/base/src/test_support.rs67 .field("placeholder", &self.placeholder)CODE
LOWcrates/base/src/text/text_view.rs1486 .map(|i| format!("Block {i}: {}", "lorem ipsum dolor ".repeat(words)))CODE
LOWcrates/story/src/stories/input_story.rs153 "Jane Doe",CODE
LOWwebsite/component/label.md249 .child(Label::new("John Doe"))CODE
LOWwebsite/component/input.md46 .default_value("John Doe")CODE
LOWwebsite/component/menu.md445 .child("John Doe")CODE
LOWwebsite/component/description-list.md172 DescriptionItem::new("Full Name").value("John Doe"),CODE
LOWwebsite/component/sidebar.md262 menu.menu("Acme Corp", Box::new(SelectCompany("acme")))CODE
LOWwebsite/component/sidebar.md281 .child("John Doe")CODE
LOWwebsite/component/avatar.md24 .name("John Doe")CODE
LOWwebsite/component/avatar.md35 .name("John Doe")CODE
LOW⚡website/component/avatar.md67 .name("John Doe")CODE
LOW⚡website/component/avatar.md71 .name("John Doe")CODE
LOW⚡website/component/avatar.md75 .name("John Doe") // 48px (default medium)CODE
LOW⚡website/component/avatar.md78 .name("John Doe")CODE
LOW⚡website/component/avatar.md83 .name("John Doe")CODE
LOWwebsite/component/avatar.md110 .child(Avatar::new().name("John Doe"))CODE
LOWwebsite/component/avatar.md178 Avatar::new().name("John Doe"),CODE
LOWwebsite/component/avatar.md223 .name("John Doe")CODE
LOWwebsite/component/avatar.md230 .child("John Doe")CODE
LOWwebsite/zh-CN/component/label.md224 .child(Label::new("John Doe"))CODE
LOWwebsite/zh-CN/component/input.md44 .default_value("John Doe")CODE
LOWwebsite/zh-CN/component/menu.md405 .child("John Doe")CODE
LOWwebsite/zh-CN/component/description-list.md167 DescriptionItem::new("Full Name").value("John Doe"),CODE
LOWwebsite/zh-CN/component/avatar.md24 .name("John Doe")CODE
LOWwebsite/zh-CN/component/avatar.md34 .name("John Doe")CODE
LOW⚡website/zh-CN/component/avatar.md61 .name("John Doe")CODE
LOW⚡website/zh-CN/component/avatar.md65 .name("John Doe")CODE
LOW⚡website/zh-CN/component/avatar.md69 .name("John Doe")CODE
LOW⚡website/zh-CN/component/avatar.md72 .name("John Doe")CODE
LOW⚡website/zh-CN/component/avatar.md76 .name("John Doe")CODE
LOWwebsite/zh-CN/component/avatar.md103 .child(Avatar::new().name("John Doe"))CODE
LOWwebsite/zh-CN/component/avatar.md165 Avatar::new().name("John Doe"),CODE
LOWwebsite/zh-CN/component/avatar.md210 .name("John Doe")CODE
LOWwebsite/zh-CN/component/avatar.md217 .child("John Doe")CODE
LOWexamples/sidebar/src/main.rs116 .child("Acme Inc")CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALcrates/base/src/input/editor/lsp/code_actions.rs84 editor.extras.context_menu_content.code_action.items.clear();CODE
CRITICALcrates/base/src/input/editor/lsp/overlay.rs81 !self.extras.context_menu_content.completion.items.is_empty();CODE
Structural Annotation Overuse9 hits · 19 pts
SeverityFileLineSnippetContext
LOWcrates/story-web/scripts/build-wasm.sh23# Step 1: Build WASMCOMMENT
LOW⚡crates/story-web/scripts/build-wasm.sh48# Step 2: Generate JavaScript bindingsCOMMENT
LOW⚡script/bump-version.sh56# Step 1: Update crates versionCOMMENT
LOW⚡script/bump-version.sh66# Step 2: Stage changesCOMMENT
LOW⚡script/bump-version.sh76# Step 3: Create commit and tagCOMMENT
LOWscript/bump-version.sh93# Step 4: Push to remoteCOMMENT
LOW⚡…ills/gpui-kit/references/gpui/entity-best-practices.md51 // Step 1: call hooks directly through list_state (no entity lock)COMMENT
LOW⚡…ills/gpui-kit/references/gpui/entity-best-practices.md54 // Step 2: update the parent entity — different lock, safeCOMMENT
LOW⚡…ills/gpui-kit/references/gpui/entity-best-practices.md61 // Step 3: sync list state directly — no entity lockCOMMENT
Hyper-Verbose Identifiers14 hits · 16 pts
SeverityFileLineSnippetContext
LOWwebsite/src/lib/llms.ts27export function documentationLicenseNotice(lang: 'en' | 'zh-CN', source: string): string {CODE
LOWwebsite/src/lib/llms.ts34function documentationLicenseSummary(lang: 'en' | 'zh-CN', source: string): string {CODE
LOWscript/bump-gpui.ts1187function makeDeclarativeMacrosCrateRelative(CODE
LOWscript/bump-gpui.ts1207function rewriteDeclarativeMacroPaths(source: string): string {CODE
LOWscript/bump-gpui.ts1410function installFacadeAwareMacroPaths(CODE
LOWscript/bump-gpui.ts1672function vendorGpuiSourcesForApple(CODE
LOWscript/tests/test_ai_recipes.py28 def test_changed_source_rejects_stale_published_code(self):CODE
LOW⚡script/tests/test_ai_recipes.py40 def test_removed_or_duplicate_markers_cannot_silently_drop_coverage(self):CODE
LOW⚡script/tests/test_ai_recipes.py46 def test_empty_inventory_cannot_report_success(self):CODE
LOW⚡script/tests/test_ai_recipes.py51 def test_invalid_trust_label_is_rejected(self):CODE
LOW⚡script/tests/test_ai_recipes.py56 def test_duplicate_recipe_ids_are_rejected(self):CODE
LOWscript/tests/test_ai_recipes.py67 def test_missing_recipe_destination_is_rejected(self):CODE
LOWexamples/js_story/stories/registered.js259export function initializeRegisteredExamples() {CODE
LOWexamples/js_story/stories/registered.js328function expandedInputGroupExamples(cx) {CODE
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHwebsite/docs/design-guides.md913## Guidance for AI-generated interfacesCOMMENT
HIGH…lls/gpui-kit-design-guides/references/design-guides.md913## Guidance for AI-generated interfacesCOMMENT
Verbosity Indicators6 hits · 12 pts
SeverityFileLineSnippetContext
LOWcrates/story-web/scripts/build-wasm.sh23# Step 1: Build WASMCOMMENT
LOW⚡crates/story-web/scripts/build-wasm.sh48# Step 2: Generate JavaScript bindingsCOMMENT
LOW⚡script/bump-version.sh56# Step 1: Update crates versionCOMMENT
LOW⚡script/bump-version.sh66# Step 2: Stage changesCOMMENT
LOW⚡script/bump-version.sh76# Step 3: Create commit and tagCOMMENT
LOWscript/bump-version.sh93# Step 4: Push to remoteCOMMENT
Redundant / Tautological Comments2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡crates/story-web/scripts/build-wasm.sh42# Check if WASM file existsCOMMENT
LOWscript/bump-version.sh13# Check if version argument is providedCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMcrates/kit/Cargo.toml26# GPUI's test harness, native-platform rendering, and Kit UI test helpers.COMMENT