AI Slop Code Risk Monitor

tailwindlabs/headlessui

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

Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.

0.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for tailwindlabs/headlessui, a TypeScript project with 28,804 GitHub stars. SynthScan examined 120,431 lines of code across 446 source files, recording 81 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 0.7 (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.7
Adjusted Signal
0.7
Raw Pattern Score
100%
Time Factor
2026-04-13
Last Push
28.8K
Stars
TypeScript
Language
120.4K
Lines of Code
446
Files
81
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 3.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 75 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 1.8/100 · LOW

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

PR Review Velocity Impact 3.3/100 · LOW

Which changes need focused human review? 81 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 0LOW 81

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

Hyper-Verbose Identifiers43 hits · 43 pts
SeverityFileLineSnippetContext
LOW…essui-react/src/test-utils/accessibility-assertions.ts154export function assertLinkedWithDescription(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts259export function assertMenuButtonLinkedWithMenu(button = getMenuButton(), menu = getMenu()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts273export function assertMenuLinkedWithMenuItem(item: HTMLElement | null, menu = getMenu()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts671export function assertComboboxButtonLinkedWithCombobox(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts688export function assertComboboxLabelLinkedWithCombobox(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts703export function assertComboboxButtonLinkedWithComboboxLabel(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts720export function assertActiveComboboxOption(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts736export function assertNotActiveComboboxOption(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts752export function assertNoActiveComboboxOption(combobox = getComboboxInput()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts764export function assertNoSelectedComboboxOption(items = getComboboxOptions()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1003export function assertListboxButtonLinkedWithListbox(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1020export function assertListboxLabelLinkedWithListbox(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1035export function assertListboxButtonLinkedWithListboxLabel(CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1052export function assertActiveListboxOption(item: HTMLElement | null, listbox = getListbox()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1065export function assertNoActiveListboxOption(listbox = getListbox()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1077export function assertNoSelectedListboxOption(items = getListboxOptions()) {CODE
LOW…essui-react/src/test-utils/accessibility-assertions.ts1828export function assertContainsActiveElement(element: HTMLElement | null) {CODE
LOWpackages/@headlessui-react/src/internal/floating.tsx113export function useFloatingReferenceProps() {CODE
LOWpackages/@headlessui-react/src/internal/floating.tsx548function resolveCSSVariablePxValue(input: string, element: HTMLElement) {CODE
LOWpackages/@headlessui-react/src/utils/render.test.tsx334function testRenderStrategyFeature(Dummy: (props: any) => React.JSX.Element) {CODE
LOW…dlessui-react/src/components/disclosure/disclosure.tsx155function useDisclosurePanelContext() {CODE
LOW…kages/@headlessui-react/src/hooks/use-active-press.tsx9function pointerRectFromPointerEvent(event: PointerEvent): Rect {CODE
LOW…t/src/hooks/document-overflow/use-document-overflow.ts5export function useDocumentOverflowLockedEffect(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts91export function assertMenuButtonLinkedWithMenu(button = getMenuButton(), menu = getMenu()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts105export function assertMenuLinkedWithMenuItem(item: HTMLElement | null, menu = getMenu()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts503export function assertComboboxButtonLinkedWithCombobox(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts520export function assertComboboxLabelLinkedWithCombobox(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts535export function assertComboboxButtonLinkedWithComboboxLabel(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts552export function assertActiveComboboxOption(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts568export function assertNotActiveComboboxOption(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts584export function assertNoActiveComboboxOption(combobox = getComboboxInput()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts596export function assertNoSelectedComboboxOption(items = getComboboxOptions()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts835export function assertListboxButtonLinkedWithListbox(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts852export function assertListboxLabelLinkedWithListbox(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts867export function assertListboxButtonLinkedWithListboxLabel(CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts884export function assertActiveListboxOption(item: HTMLElement | null, listbox = getListbox()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts897export function assertNoActiveListboxOption(listbox = getListbox()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts909export function assertNoSelectedListboxOption(items = getListboxOptions()) {CODE
LOW…dlessui-vue/src/test-utils/accessibility-assertions.ts1719export function assertContainsActiveElement(element: HTMLElement | null) {CODE
LOW…headlessui-vue/src/components/disclosure/disclosure.ts58function useDisclosurePanelContext() {CODE
LOW…ages/@headlessui-vue/src/components/popover/popover.ts217 function isFocusWithinPopoverGroup() {CODE
LOW…ages/@headlessui-vue/src/components/popover/popover.ts778 function isFocusWithinPopoverGroup() {CODE
LOW…e/src/hooks/document-overflow/use-document-overflow.ts5export function useDocumentOverflowLockedEffect(CODE
Over-Commented Block29 hits · 29 pts
SeverityFileLineSnippetContext
LOWplaygrounds/react/next-env.d.ts1/// <reference types="next" />COMMENT
LOWpackages/@headlessui-react/src/internal/floating.tsx221 //COMMENT
LOWpackages/@headlessui-react/src/internal/floating.tsx441 // this variable in the `margin` of an element. Then we can observe the `margin` of theCOMMENT
LOWpackages/@headlessui-react/src/internal/floating.tsx461 // })COMMENT
LOWpackages/@headlessui-react/src/internal/floating.tsx541COMMENT
LOWpackages/@headlessui-react/src/internal/floating.tsx561 // current element. Which means that if the passed in element has CSS that looks like:COMMENT
LOWpackages/@headlessui-react/src/utils/dom.ts61COMMENT
LOWpackages/@headlessui-react/src/utils/get-text-value.ts1import * as DOM from './dom'COMMENT
LOWpackages/@headlessui-react/src/utils/render.ts241COMMENT
LOW…s/@headlessui-react/src/components/listbox/listbox.tsx581 //COMMENT
LOW…kages/@headlessui-react/src/components/label/label.tsx141 //COMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx581 } else {COMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx801 machine.actions.closeCombobox()COMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx861 let relatedTarget =COMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx881 // already in the middle of rendering. This will result in the followingCOMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx1301 // When clicking inside of the scrollbar, a `click` event will be triggeredCOMMENT
LOW…@headlessui-react/src/components/combobox/combobox.tsx1501 // that the `left` mouse button was clicked.COMMENT
LOW…s/@headlessui-react/src/components/popover/popover.tsx341 // `Popover.Panel` (aka nested popovers), then we need to make sure that the button is able toCOMMENT
LOWpackages/@headlessui-react/src/components/menu/menu.tsx421 // We keep track whether the button moved or not, we only check this when theCOMMENT
LOWpackages/@headlessui-react/src/hooks/use-transition.ts221 }COMMENT
LOW…ckages/@headlessui-react/src/hooks/use-is-top-layer.ts61 // this case we assume that we will be the top-most item, so we returnCOMMENT
LOW…ages/@headlessui-react/src/hooks/use-handle-toggle.tsx21 // event we have to check this property manually because this is alsoCOMMENT
LOWpackages/@headlessui-vue/src/utils/get-text-value.ts1let emojiRegex =COMMENT
LOWpackages/@headlessui-vue/src/utils/focus-management.ts261 // By default if you <Tab> to a text input or a textarea, the browser willCOMMENT
LOW…es/@headlessui-vue/src/components/combobox/combobox.ts961 onMounted(() => {COMMENT
LOW…es/@headlessui-vue/src/components/combobox/combobox.ts1481 // event, allowing us to cancel the event before focus is moved from theCOMMENT
LOW…es/@headlessui-vue/src/components/combobox/combobox.ts1501 // (button), then we re-focus the input).COMMENT
LOW…-vue/src/hooks/document-overflow/handle-ios-locking.ts21COMMENT
LOW…-vue/src/hooks/document-overflow/handle-ios-locking.ts101 }COMMENT
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOW…ct/page-examples/dialog/dialog-built-in-transition.tsx51 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed pulvinar, nunc necCODE
LOW…ct/page-examples/dialog/dialog-built-in-transition.tsx51 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed pulvinar, nunc necCODE
LOW…t/page-examples/dialog/scrollable-page-with-dialog.tsx13 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam numquam beatae,CODE
LOW…t/page-examples/dialog/scrollable-page-with-dialog.tsx13 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam numquam beatae,CODE
LOW…t/page-examples/dialog/scrollable-page-with-dialog.tsx31 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam numquam beatae,CODE
LOW…t/page-examples/dialog/scrollable-page-with-dialog.tsx31 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam numquam beatae,CODE
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…kages/@headlessui-react/src/hooks/use-outside-click.ts76 // If the click crossed a shadow boundary, we need to check if theCOMMENT
LOWpackages/@headlessui-vue/src/hooks/use-outside-click.ts70 // If the click crossed a shadow boundary, we need to check if the containerCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/@headlessui-react/src/utils/render.ts324// TODO: Add tests for this somehowCOMMENT