AI Slop Code Risk Monitor

huntabyte/shadcn-svelte

SlopCodeMonitor badge for huntabyte/shadcn-svelte Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

shadcn/ui, but for Svelte. ✨

0.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for huntabyte/shadcn-svelte, a TypeScript project with 9,234 GitHub stars. SynthScan examined 300,482 lines of code across 5909 source files, recording 107 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 0.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.

0.5
Adjusted Signal
0.5
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
9.2K
Stars
TypeScript
Language
300.5K
Lines of Code
5.9K
Files
107
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 1.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.9/100 · LOW

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

Agent Over-Engineering Ratio 0.8/100 · LOW

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

PR Review Velocity Impact 2.6/100 · LOW

Which changes need focused human review? 107 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 6MEDIUM 11LOW 90

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

Hyper-Verbose Identifiers49 hits · 49 pts
SeverityFileLineSnippetContext
LOWdocs/mdsx.config.js109function remarkRemovePrettierIgnore() {CODE
LOWdocs/mdsx.config.js269function getComponentSourceFileContent(src = "") {CODE
LOWdocs/static/registry/chart.json25 "content": "import type { Tooltip } from \"layerchart\";\nimport { getContext, setContext, type Component, type CompoCODE
LOWdocs/static/registry/styles/luma/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/sera/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/vega/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/nova/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/mira/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/maia/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/rhea/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/static/registry/styles/lyra/chart.json25 "content": "import { getContext, setContext, type Component, type Snippet } from \"svelte\";\nimport type { Tooltip }CODE
LOWdocs/scripts/build-registry.ts212function transformContentWithStyle(content: string, styleMap: Record<string, string>): string {CODE
LOWdocs/src/lib/colors.ts82function getForegroundFromBackground(rgb: string): string {CODE
LOWdocs/src/lib/components/message-animated.svelte48 function getMessageAnimatedContentParts(current: MessageAnimatedMessage) {CODE
LOWdocs/src/lib/components/colors/colors.ts76function getForegroundFromBackground(rgb: string) {CODE
LOWdocs/src/lib/components/colors/colors.ts89export function generateBaseColorTemplate(baseColor: BaseColor) {CODE
LOWdocs/src/lib/components/icons/icons.ts7export function getIconForLanguageExtension(language: string) {CODE
LOWdocs/src/lib/registry/registry-utils.ts32export function createFileTreeForRegistryItemFiles(CODE
LOWdocs/src/lib/registry/registry-utils.ts166function createTransformInjectStyles(styles: Record<string, string>): Transformer {CODE
LOWdocs/src/lib/registry/ui/chart/chart-utils.ts21export function getPayloadConfigFromPayload(CODE
LOW…istry/examples/create/combobox/combobox-invalid.svelte30 function closeAndFocusTriggerInvalid() {CODE
LOW…istry/examples/create/elevenlabs/bar-visualizer.svelte6 function generateConnectingSequenceBar(columns: number): number[][] {CODE
LOW…istry/examples/create/elevenlabs/bar-visualizer.svelte14 function generateListeningSequenceBar(columns: number): number[][] {CODE
LOWpackages/parity/src/compare.ts93export function extractUpstreamComponentNames(content: string): Set<string> {CODE
LOWpackages/parity/src/compare.ts142export function sourceFileHasUpstreamCounterpart(CODE
LOWpackages/parity/src/compare.ts337function canonicalizeStateVariants(token: string): string {CODE
LOWpackages/parity/src/compare.ts787function applyIgnoredTokensFromSource(json: ClassOccurrence[], source: ClassOccurrence[]) {CODE
LOWpackages/parity/src/compare.ts1181function dropRuntimeEquivalentDiffs(added: string[], removed: string[]) {CODE
LOWpackages/parity/src/compare.ts1552function resolveUpstreamRadixUiDir(): string | undefined {CODE
LOWpackages/parity/src/parity-ignore.ts15export function parseParityIgnoreUpstream(CODE
LOWpackages/parity/src/parity-ignore.ts50export function stripParityIgnoreComments(content: string): string {CODE
LOWpackages/cli/src/utils/transformers/transform-font.ts122function processNoSubstTemplateLiteral(CODE
LOWpackages/primitives/src/lib/questionnaire/collection.ts15export function createQuestionnaireCollection(CODE
LOWpackages/primitives/src/lib/questionnaire/collection.ts77export function getCollectionDefinitionWarnings(CODE
LOWpackages/primitives/src/lib/questionnaire/collection.ts117export function getCollectionRegistrationWarnings(CODE
LOW…itives/src/lib/questionnaire/questionnaire-ssr.test.ts362async function renderServerQuestionnaire({ defaultItem }: { defaultItem?: string } = {}) {CODE
LOW…ckages/primitives/src/lib/message-scroller/geometry.ts13function getMessageScrollerScrollable({CODE
LOW…ckages/primitives/src/lib/message-scroller/geometry.ts36function getMessageScrollerVisibilityState({CODE
LOW…ckages/primitives/src/lib/message-scroller/geometry.ts125function getUnanchoredScrollAnchor(CODE
LOW…ckages/primitives/src/lib/message-scroller/geometry.ts138function hasMultipleNewScrollAnchors(items: HTMLElement[], previousItemCount: number) {CODE
LOW…ckages/primitives/src/lib/message-scroller/geometry.ts170function getFirstVisibleMessageItem({CODE
LOW…ives/src/lib/message-scroller/message-scroller.test.ts1326function renderPendingScrollFirstPaint(props: PendingScrollTreeProps) {CODE
LOW…ives/src/lib/message-scroller/message-scroller.test.ts1334function renderPendingScrollToContainer(props: PendingScrollTreeProps) {CODE
LOW…ives/src/lib/message-scroller/message-scroller.test.ts1359async function renderTestScrollerWithParent(CODE
LOW…ives/src/lib/message-scroller/message-scroller.test.ts1446function installIntersectionObserver() {CODE
LOW…es/src/lib/message-scroller/message-scroller.svelte.ts116function createMessageScrollerRefs({CODE
LOW…es/src/lib/message-scroller/message-scroller.svelte.ts169function createMessageScrollerCommands({CODE
LOW…es/src/lib/message-scroller/message-scroller.svelte.ts1493export function useMessageScrollerScrollable(): MessageScrollerScrollable {CODE
LOW…es/src/lib/message-scroller/message-scroller.svelte.ts1497export function useMessageScrollerVisibility(): MessageScrollerVisibilityState {CODE
Fake / Example Data39 hits · 39 pts
SeverityFileLineSnippetContext
LOWdocs/src/lib/registry/blocks/demo-sidebar-icon.svelte38 { name: "Acme Inc", logo: GalleryVerticalEndIcon, plan: "Enterprise" },CODE
LOW…gistry/blocks/sidebar-10/components/app-sidebar.svelte17 name: "Acme Inc",CODE
LOW…egistry/blocks/signup-02/components/signup-form.svelte21 <Input id="name" type="text" placeholder="John Doe" required />CODE
LOW…egistry/blocks/signup-03/components/signup-form.svelte23 <Input id="name" type="text" placeholder="John Doe" required />CODE
LOWdocs/src/lib/registry/blocks/login-02/+page.svelte27 alt="placeholder"CODE
LOW…/registry/blocks/login-04/components/login-form.svelte85 alt="placeholder"CODE
LOW…istry/blocks/sidebar-15/components/sidebar-left.svelte25 name: "Acme Inc",CODE
LOW…gistry/blocks/sidebar-07/components/app-sidebar.svelte22 name: "Acme Inc",CODE
LOW…egistry/blocks/signup-01/components/signup-form.svelte21 <Input id="name" type="text" placeholder="John Doe" required />CODE
LOWdocs/src/lib/registry/examples/input-form.svelte50 <Input id="form-address" type="text" placeholder="123 Main St" />CODE
LOW…/src/lib/registry/examples/dialog-sticky-footer.svelte18 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOW…/src/lib/registry/examples/dialog-sticky-footer.svelte18 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOW…/src/lib/registry/examples/field-field-set-demo.svelte12 <Input id="street" type="text" placeholder="123 Main St" />CODE
LOWdocs/src/lib/registry/examples/drawer-direction.svelte25 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOWdocs/src/lib/registry/examples/drawer-direction.svelte25 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…lib/registry/examples/dialog-scrollable-content.svelte16 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOW…lib/registry/examples/dialog-scrollable-content.svelte16 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOWdocs/src/lib/registry/examples/sheet-side.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOWdocs/src/lib/registry/examples/sheet-side.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…lib/registry/examples/drawer-scrollable-content.svelte16 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOW…lib/registry/examples/drawer-scrollable-content.svelte16 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididuntCODE
LOW…lib/registry/examples/create/home/sheet-example.svelte30 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…lib/registry/examples/create/home/sheet-example.svelte30 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…/lib/registry/examples/create/home/form-example.svelte55 <Input id="checkout-7j9-card-name-43j" placeholder="John Doe" required />CODE
LOW…gistry/examples/create/drawer/drawer-with-sides.svelte28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…gistry/examples/create/drawer/drawer-with-sides.svelte28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…xamples/create/drawer/drawer-scrollable-content.svelte22 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…xamples/create/drawer/drawer-scrollable-content.svelte22 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…c/lib/registry/examples/create/input/input-form.svelte25 <Input.Root id="form-name" type="text" placeholder="John Doe" />CODE
LOW…c/lib/registry/examples/create/input/input-form.svelte53 <Input.Root id="form-address" type="text" placeholder="123 Main St" />CODE
LOW…istry/examples/create/sidebar-icon/sidebar-icon.svelte19 name: "Acme Inc",CODE
LOW…xamples/create/dialog/dialog-with-sticky-footer.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…xamples/create/dialog/dialog-with-sticky-footer.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…xamples/create/dialog/dialog-scrollable-content.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…xamples/create/dialog/dialog-scrollable-content.svelte24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…/examples/create/preview/cards/shipping-address.svelte35 <Input id="shipping-street" placeholder="123 Main Street" />CODE
LOW…registry/examples/create/sheet/sheet-with-sides.svelte30 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…registry/examples/create/sheet/sheet-with-sides.svelte30 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod temporCODE
LOW…ives/src/lib/message-scroller/message-scroller.test.ts837 { id: "placeholder", height: 80, scrollAnchor: false },CODE
Slop Phrases10 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMdocs/static/registry/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/luma/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/sera/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/vega/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/nova/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/mira/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/maia/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/rhea/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUMdocs/static/registry/styles/lyra/sidebar-09.json24 "content": "<script lang=\"ts\" module>\n\timport ArchiveXIcon from \"@lucide/svelte/icons/archive-x\";\n\timport FilCODE
MEDIUM…gistry/blocks/sidebar-09/components/app-sidebar.svelte118 "I've completed the registration for the upcoming tech conference.\nLet me know if you need any additional informatCODE
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/src/lib/registry/examples/code-block-tabs.svelte38 code: "AI_GATEWAY_API_KEY=your-api-key",CODE
HIGH…/src/lib/registry/examples/code-block-streaming.svelte70 code: "AI_GATEWAY_API_KEY=your-api-key",CODE
HIGH…stry/examples/create/code-block/code-block-tabs.svelte62 code: "AI_GATEWAY_API_KEY=your-api-key",CODE
Synthetic Comment Markers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGH.github/.label.yml164 apply_when: The issue/pull request description is clearly generated by AI. Signs can be, usage of em-dashes, overly CODE
HIGH.github/.label.yml165 remove_when: The issue/pull request description is no longer clearly generated by AI. Short no excessive use of em-dCODE
HIGH.github/workflows/anti-slop.yml42 const body = `Thank you for your contribution, the description of your ${kind} has been flagged as being genCODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/content/changelog/2026-10-ai-elements.md54## Building agentic interfacesCOMMENT
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWdocs/src/lib/registry/examples/create/index.ts361 // type: "registry:block",COMMENT
LOWpackages/cli/src/preset/preset.ts1// !! BROWSER SAFE !!COMMENT