AI Slop Code Risk Monitor

mantinedev/mantine

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

A fully featured React components library

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for mantinedev/mantine, a TypeScript project with 31,892 GitHub stars. SynthScan examined 490,607 lines of code across 6267 source files, recording 377 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 0.8 (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.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
31.9K
Stars
TypeScript
Language
490.6K
Lines of Code
6.3K
Files
377
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 2.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.2/100 · LOW

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

Agent Over-Engineering Ratio 1.8/100 · LOW

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

PR Review Velocity Impact 3.9/100 · LOW

Which changes need focused human review? 377 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 6LOW 371

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 377 distinct pattern matches across 5 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.

Fake / Example Data199 hits · 220 pts
SeverityFileLineSnippetContext
LOWpackages/@mantine/form/src/stories/Form.lists.story.tsx28 placeholder="John Doe"CODE
LOWpackages/@mantine/form/src/stories/Form.lists.story.tsx95 placeholder="John Doe"CODE
LOW…tes/src/components/YearPickerInput/YearPickerInput.tsx19export type YearPickerInputStylesNames = __InputStylesNames | 'placeholder' | YearPickerStylesNames;CODE
LOW…s/src/components/MonthPickerInput/MonthPickerInput.tsx21 | 'placeholder'CODE
LOW…tes/src/components/DatePickerInput/DatePickerInput.tsx19export type DatePickerInputStylesNames = __InputStylesNames | 'placeholder' | DatePickerStylesNames;CODE
LOW…dates/src/components/DateTimePicker/DateTimePicker.tsx40 | 'placeholder'CODE
LOW…ine/code-highlight/src/JsonViewer/JsonViewer.story.tsx17 name: 'John Doe',CODE
LOW…ine/code-highlight/src/JsonViewer/JsonViewer.story.tsx21 street: '123 Main St',CODE
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx9 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? DoloresCODE
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx9 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? DoloresCODE
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx21 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? DoloresCODE
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx21 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? DoloresCODE
LOW…s/@mantine/core/src/components/Drawer/Drawer.story.tsx13 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio hCODE
LOW…s/@mantine/core/src/components/Drawer/Drawer.story.tsx13 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio hCODE
LOW⚡…mantine/core/src/components/PinInput/PinInput.test.tsx468 expect(input).toHaveAttribute('placeholder', '*');CODE
LOW⚡…mantine/core/src/components/PinInput/PinInput.test.tsx478 expect(inputs[0]).toHaveAttribute('placeholder', '');CODE
LOW⚡…mantine/core/src/components/PinInput/PinInput.test.tsx479 expect(inputs[1]).toHaveAttribute('placeholder', '○');CODE
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx70 label="Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eligendi, quaerat vero. Tempora reiciendis deseCODE
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx222 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsam in quos aperiamCODE
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx234 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsam in quos aperiamCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx14 Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem officiis, incidunt libero,CODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx14 Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem officiis, incidunt libero,CODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitaeCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitaeCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx59 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae loremCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx59 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae loremCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx84 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae loremCODE
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx84 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae loremCODE
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx22 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx22 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW⚡…ges/@mantine/core/src/components/Title/Title.story.tsx34 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW⚡…ges/@mantine/core/src/components/Title/Title.story.tsx34 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW⚡…ges/@mantine/core/src/components/Title/Title.story.tsx39 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW⚡…ges/@mantine/core/src/components/Title/Title.story.tsx39 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeatCODE
LOW…nents/Input/InputPlaceholder/InputPlaceholder.test.tsx16 stylesApiSelectors: ['placeholder'],CODE
LOW…components/Input/InputPlaceholder/InputPlaceholder.tsx13export type InputPlaceholderStylesNames = 'placeholder';CODE
LOW…components/Input/InputPlaceholder/InputPlaceholder.tsx55 rootSelector: 'placeholder',CODE
LOW…components/Input/InputPlaceholder/InputPlaceholder.tsx60 {...getStyles('placeholder')}CODE
LOW…ges/@mantine/core/src/components/Group/Group.story.tsx22 Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptas ducimus necessitatibusCODE
LOW…ges/@mantine/core/src/components/Group/Group.story.tsx22 Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptas ducimus necessitatibusCODE
LOW…ore/src/components/Notification/Notification.story.tsx47 title="Too large title Lorem ipsum dolor, sit amet consectetur adipisicing elit. Delectus, facilis eveniet. VoCODE
LOW…ore/src/components/Notification/Notification.story.tsx148 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquidCODE
LOW…ore/src/components/Notification/Notification.story.tsx148 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquidCODE
LOW…ore/src/components/Notification/Notification.story.tsx160 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquidCODE
LOW…ore/src/components/Notification/Notification.story.tsx160 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquidCODE
LOW…antine/core/src/components/DataList/DataList.story.tsx6 { label: 'Name', value: 'John Doe' },CODE
LOW…tine/core/src/components/ModalBase/ModalBase.story.tsx14 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio hCODE
LOW…tine/core/src/components/ModalBase/ModalBase.story.tsx14 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio hCODE
LOW…antine/core/src/components/Collapse/Collapse.story.tsx19 {random.current}: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmodCODE
LOW…antine/core/src/components/Collapse/Collapse.story.tsx19 {random.current}: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmodCODE
LOW…src/components/FloatingWindow/FloatingWindow.story.tsx6 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis doloremque quod rem temporibus velit, possimus quam eiuCODE
LOW…src/components/FloatingWindow/FloatingWindow.story.tsx6 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis doloremque quod rem temporibus velit, possimus quam eiuCODE
LOW…ne/core/src/components/ScrollArea/ScrollArea.story.tsx27 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam qui minima, voluptates aperiamCODE
LOW…ne/core/src/components/ScrollArea/ScrollArea.story.tsx27 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam qui minima, voluptates aperiamCODE
LOW…antine/core/src/components/Combobox/Combobox.story.tsx24Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisl quis tinciduntCODE
LOW…antine/core/src/components/Combobox/Combobox.story.tsx24Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisl quis tinciduntCODE
LOW…antine/core/src/components/AppShell/AppShell.story.tsx14 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget felis eget nunc Lorem ipsum dolor sit amet, consCODE
LOW…antine/core/src/components/AppShell/AppShell.story.tsx14 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget felis eget nunc Lorem ipsum dolor sit amet, consCODE
LOW…@mantine/core/src/components/Popover/Popover.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus, facilis rerum molestias voluptatem, quidem sunt, CODE
LOW…@mantine/core/src/components/Popover/Popover.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus, facilis rerum molestias voluptatem, quidem sunt, CODE
139 more matches not shown…
Hyper-Verbose Identifiers168 hits · 174 pts
SeverityFileLineSnippetContext
LOWjsdom.mocks.ts69function failOnUnexpectedConsoleCalls() {CODE
LOWscripts/utils/demo-loader.ts222async function loadSharedControlExpressions(demosPath: string) {CODE
LOWscripts/utils/demo-loader.ts251async function extractConfiguratorDefaults(CODE
LOWscripts/utils/demo-loader.ts288 async function resolveImportedExpression(CODE
LOWscripts/utils/demo-loader.ts341 async function resolveControlsExpression(CODE
LOWscripts/utils/demo-loader.ts372 async function collectDefaultsFromExpression(expression: string, depth = 0): Promise<void> {CODE
LOWscripts/utils/demo-loader.ts439function applyConfiguratorDefaultsToCode(CODE
LOWscripts/release/set-mantine-packages-version.ts5async function writeVersionToPackageJson(filePath: string, version: string) {CODE
LOWscripts/release/set-mantine-packages-version.ts28export async function setMantinePackagesVersion(version: string) {CODE
LOWscripts/publish/get-publishable-packages.ts15export function filterPublishablePackages(packages: Package[]): Package[] {CODE
LOW…ntine/form/src/stories/Form.validateOnChange.story.tsx45export function ValidateOnChangeUncontrolled() {CODE
LOW…ils/expand-recurring-events/expand-recurring-events.ts91function getOccurrenceStartsInRange(CODE
LOW…ate-month-resize-dates/calculate-month-resize-dates.ts40export function calculateMonthResizeDates({CODE
LOW…ources-grid-key-down/handle-resources-grid-key-down.ts103function focusOnNextFocusableControl({CODE
LOW…ources-grid-key-down/handle-resources-grid-key-down.ts143export function handleResourcesGridKeyDown({CODE
LOW…ces-week-view-events/get-resources-week-view-events.ts63export function getResourcesWeekViewEvents({CODE
LOW…urces-day-view-events/get-resources-day-view-events.ts27export function getResourcesDayViewEvents({CODE
LOW…c/components/MobileMonthView/MobileMonthView.story.tsx244export function WithoutWeekendDaysWeekNumbers() {CODE
LOW…e/src/components/YearView/handle-year-view-key-down.ts193function focusOnNextFocusableControl({CODE
LOW…ne/schedule/src/components/YearView/YearView.story.tsx191export function WithoutWeekendDaysWeekNumbers() {CODE
LOW…nents/MonthView/get-renderable-month-event-segments.ts106export function getRenderableMonthEventSegments({CODE
LOW…/schedule/src/components/MonthView/MonthView.story.tsx272export function WithoutWeekendDaysWeekNumbers() {CODE
LOW…src/components/MonthView/handle-month-view-key-down.ts129function focusOnNextFocusableControl({CODE
LOW…-month-view-events/calculate-event-position-in-week.ts21export function calculateEventPositionInWeek({CODE
LOW…tine/schedule/src/components/DayView/DayView.story.tsx270export function SlotLabelIntervalDefaultHeight() {CODE
LOW…tine/schedule/src/components/DayView/DayView.story.tsx278export function SlotLabelIntervalWithoutSubHourGridLines() {CODE
LOW…tine/schedule/src/components/DayView/DayView.story.tsx509export function DragAndDropWithOverlappingEvents() {CODE
LOW…tine/schedule/src/components/DayView/DayView.story.tsx729export function EventResizeWithDragAndDrop() {CODE
LOW…ne/schedule/src/components/WeekView/WeekView.story.tsx181export function SlotLabelIntervalDefaultHeight() {CODE
LOW…ne/schedule/src/components/WeekView/WeekView.story.tsx493export function EventResizeWithDragAndDrop() {CODE
LOW…e/src/components/WeekView/handle-week-view-key-down.ts111function focusOnNextFocusableControl({CODE
LOW…t-week-view-events/calculate-regular-event-overlaps.ts4export function calculateRegularEventOverlaps(events: WeekPositionedEventData[]): void {CODE
LOW…/get-week-view-events/calculate-all-day-event-width.ts13export function calculateAllDayEventWidth({CODE
LOW…get-week-view-events/calculate-all-day-event-offset.ts12export function calculateAllDayEventOffset({CODE
LOW…ils/handle-control-key-down/handle-control-key-down.ts116function focusOnNextFocusableControl({CODE
LOW…nents/TimePicker/TimeControlsList/TimeControlsList.tsx6function isElementVisibleInScrollContainer(CODE
LOW…ine/dates/src/components/YearsList/YearsList.story.tsx40export function WithGetYearsControlPropsChildren() {CODE
LOW…c/components/DatePickerInput/DatePickerInput.story.tsx113export function LocaleChangesDatesProvider() {CODE
LOW…ine/dates/src/components/DateInput/DateInput.story.tsx81export function LocaleChangesDatesProvider() {CODE
LOW…e/dates/src/components/MonthsList/MonthsList.story.tsx40export function WithGetMonthControlPropsChildren() {CODE
LOW…de-highlight/src/CodeHighlight/CodeHighlight.story.tsx316export function WithLineNumbersAndExpandButton() {CODE
LOW…ine/code-highlight/src/JsonViewer/JsonViewer.story.tsx279export function LineNumbersWithCollapseStrings() {CODE
LOW…ht/src/CodeHighlightProvider/CodeHighlightProvider.tsx56export function CodeHighlightAdapterProvider({CODE
LOWpackages/@mantine/spotlight/src/spotlight.store.ts27export function updateSpotlightStateAction(CODE
LOWpackages/@mantine/spotlight/src/Spotlight.story.tsx118export function EmptyStateWithoutActionsList() {CODE
LOW…coped-keydown-handler/create-scoped-keydown-handler.ts73export function createScopedKeydownHandler({CODE
LOW…es/@mantine/core/src/core/utils/units-converters/px.ts1function getTransformedScaledValue(value: unknown) {CODE
LOW⚡…ntine/core/src/core/MantineProvider/Mantine.context.ts38export function useMantineCssVariablesResolver() {CODE
LOW⚡…ntine/core/src/core/MantineProvider/Mantine.context.ts42export function useMantineClassNamesPrefix() {CODE
LOW⚡…ntine/core/src/core/MantineProvider/Mantine.context.ts50export function useMantineWithStaticClasses() {CODE
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts62export function useMantineStylesTransform() {CODE
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts70export function useMantineDeduplicateInlineStyles() {CODE
LOW…onvert-css-variables/css-variables-object-to-string.ts5export function cssVariablesObjectToString(variables: CSSVariables) {CODE
LOW…rovider/color-scheme-managers/local-storage-manager.ts9export function localStorageColorSchemeManager({CODE
LOW…neProvider/MantineCssVariables/MantineCssVariables.tsx12function getColorSchemeCssVariables(selectorOverride?: string) {CODE
LOW…re/src/core/MantineProvider/use-matches/use-matches.ts29function getFirstMatchingBreakpoint(matches: (boolean | undefined)[]) {CODE
LOW…ls/Floating/FloatingArrow/get-arrow-position-styles.ts236export function getArrowMergeDropdownStyles({CODE
LOW…ne/core/src/components/TreeSelect/TreeSelect.story.tsx491export function MaxDisplayedValuesCustomContent() {CODE
LOW…kages/@mantine/core/src/components/Tabs/Tabs.story.tsx315export function WithActivityStatePreservation() {CODE
LOWpackages/@mantine/core/src/components/Tree/use-tree.ts18function getInitialTreeExpandedState(CODE
108 more matches not shown…
Slop Phrases6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUM…rc/demos/core/SimpleGrid/SimpleGrid.demo.container.tsx10 // Wrapper div is added for demonstration purposes only,COMMENT
MEDIUM…rc/demos/core/SimpleGrid/SimpleGrid.demo.container.tsx31 // Wrapper div is added for demonstration purposes only,COMMENT
MEDIUM…docs/demos/src/demos/core/Grid/Grid.demo.container.tsx10 // Wrapper div is added for demonstration purposes only.COMMENT
MEDIUM…docs/demos/src/demos/core/Grid/Grid.demo.container.tsx29 // Wrapper div is added for demonstration purposes only.COMMENT
MEDIUM…s/demos/src/demos/carousel/Carousel.demo.container.tsx10 // Wrapper div is added for demonstration purposes only,COMMENT
MEDIUM…s/demos/src/demos/carousel/Carousel.demo.container.tsx41 // Wrapper div is added for demonstration purposes only,COMMENT
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/@mantine/notifications/src/Notifications.tsx421 const expandedOffsets: number[] = new Array(groupLength).fill(0);COMMENT
LOW…enerator/src/ColorsGenerator/ColorsGenerator.story.tsx1import { ColorsList } from './ColorsList/ColorsList';COMMENT
LOW…enerator/src/ColorsGenerator/ColorsGenerator.story.tsx21// '#0',COMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ages/@mantine/charts/src/ChartTooltip/ChartTooltip.tsx64function getData(item: Record<string, any>, type: 'area' | 'radial' | 'scatter') {CODE