AI Slop Code Risk Monitor

facebook/astryx

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

An open source design system that's fully customizable and agent ready

1.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for facebook/astryx, a TypeScript project with 13,814 GitHub stars. SynthScan examined 1,318,888 lines of code across 4908 source files, recording 1210 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.4 (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.4
Adjusted Signal
1.4
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
13.8K
Stars
TypeScript
Language
1.3M
Lines of Code
4.9K
Files
1.2K
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.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.5/100 · LOW

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

Agent Over-Engineering Ratio 4.4/100 · LOW

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

PR Review Velocity Impact 6.4/100 · LOW

Which changes need focused human review? 1210 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 1MEDIUM 262LOW 947

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 1210 distinct pattern matches across 15 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.

Decorative Section Separators244 hits · 740 pts
SeverityFileLineSnippetContext
MEDIUMeslint.config.js697 // ── CLI architecture invariants ────────────────────────────────────────COMMENT
MEDIUMeslint.config.js807 // ── INV23 + FR3: text-layout bans in command handlers ───────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/run-purity.ts87// ── Live snapshotting of the output file (the purity timeline) ────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/run-purity.ts147// ── Bounded concurrency pool ─────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/run-purity.ts172// ── One run (spawn cursor-agent headless) ────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/run-purity.ts308// ── Main ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…rnal/vibe-tests/prompt-purity-test/purity-aggregate.ts427 // ── Comparison vs control ──────────────────────────────────────────COMMENT
MEDIUM…rnal/vibe-tests/prompt-purity-test/purity-aggregate.ts447 // ── Cost (exact tokens; $ is an estimate) ──────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/smoke-test.ts56// ── Fixtures ─────────────────────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/smoke-test.ts80// ── A. classifier ────────────────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/smoke-test.ts159// ── B. setup wiring ──────────────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/smoke-test.ts283// ── C. runner dry-run (best-effort) ──────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/smoke-test.ts326// ── Cleanup + report ─────────────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/purity-eval.ts62// ── className string extraction (for Tailwind detection) ──────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/purity-eval.ts98// ── Marker detectors ─────────────────────────────────────────────────COMMENT
MEDIUMinternal/vibe-tests/prompt-purity-test/purity-eval.ts256// ── Cost: parse the cursor-agent terminal `result` event + estimate $ ─────────COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh66# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh68# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh87# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh89# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh121# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh123# -------------------------------------------------------COMMENT
MEDIUM⚡internal/vibe-tests/scripts/smoke-test.sh225# -------------------------------------------------------COMMENT
MEDIUM⚡internal/vibe-tests/scripts/smoke-test.sh227# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh290# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh292# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh321# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh323# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh338# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh340# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh353# -------------------------------------------------------COMMENT
MEDIUMinternal/vibe-tests/scripts/smoke-test.sh355# -------------------------------------------------------COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.tsx109// ─── Base Props (shared across all modes) ─────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.tsx192// ─── Mode-specific Props (discriminated union) ────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx88 // ─── Basic Rendering ─────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx229 // ─── Selection ───────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx338 // ─── Navigation ──────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx382 // ─── Date Constraints ────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx416 // ─── Initial Visible Month ───────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx679 // ─── Multi-Month ─────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx726 // ─── Display Options ─────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx761 // ─── Range Mode ──────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx919 // ─── Accessibility ───────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1005 // ─── Month Change Announcements ──────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1584 // ─── Selection Semantics for AT (WCAG 4.1.2 / 1.3.1) ────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1719 // ─── Bug Regression Tests ───────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1914 // ─── RTL (#3388) ─────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1914 // ─── RTL (#3388) ─────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1964 // ─── Day-cell marker theming (#4286) ─────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx1964 // ─── Day-cell marker theming (#4286) ─────────────────────────COMMENT
MEDIUMpackages/core/src/Calendar/Calendar.test.tsx2088 // ─── Theming targets ─────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Field/Field.tsx293 // ─── Horizontal-labels mode ───────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Field/Field.tsx331 // ─── Default mode (vertical / horizontal) ─────────────────────────────COMMENT
MEDIUMpackages/core/src/Field/Field.test.tsx510 // ─── width prop (#2755) ───────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Field/Field.test.tsx510 // ─── width prop (#2755) ───────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/Field/Field.test.tsx569 // ─── Horizontal-labels context ────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/FormLayout/FormLayout.test.tsx35 // ─── Basic rendering ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/FormLayout/FormLayout.test.tsx89 // ─── Direction modes ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/FormLayout/FormLayout.test.tsx120 // ─── Context propagation ────────────────────────────────────────────────COMMENT
MEDIUMpackages/core/src/FormLayout/FormLayout.test.tsx149 // ─── Nesting ────────────────────────────────────────────────────────────COMMENT
184 more matches not shown…
Hyper-Verbose Identifiers458 hits · 458 pts
SeverityFileLineSnippetContext
LOWinternal/vibe-tests/app/src/report/Report.tsx90function MaintainabilityMetricsCard({CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts203function installHostAlignedStrategy(arm: string) {CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts288function installGuestContainedStrategy(arm: string) {CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts600function applyEnterpriseComposition(arm: string) {CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts839function writeFalsePositiveEvidence(CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts1528 function measureShellTriggerInsertion() {CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts1673 function insertGuestBoundaryDialogTrigger(arm: string) {CODE
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts1704 function measureGuestBoundaryInsertion() {CODE
LOWinternal/vibe-tests/setup-test/setup-aggregate.ts79export function assertAggregateReportPublicSafe(value: unknown) {CODE
LOWinternal/vibe-tests/setup-test/setup-eval.ts830function baselineValidationFailures(baseline: Measurement): string[] {CODE
LOWinternal/vibe-tests/src/interactive.ts994function generateSubagentInstructions(CODE
LOWinternal/vibe-tests/src/universal-eval.ts784function countMagicAndSemanticValues(CODE
LOWinternal/vibe-tests/src/provenance-aggregation.ts27export function loadOptionalExecutionProvenance(CODE
LOWinternal/a11y-spec/src/patterns/checkbox.ts276async function assertReachableAndEscapable(CODE
LOWinternal/a11y-spec/src/patterns/tabs.fixtures.ts833export function expectedTabsMutationFailure(CODE
LOWinternal/a11y-spec/src/patterns/radio-group.fixtures.ts647export function expectedRadioGroupMutationFailure(CODE
LOWinternal/a11y-spec/src/patterns/carousel.fixtures.ts306export function expectedCarouselMutationFailure(CODE
LOWinternal/a11y-spec/src/patterns/text-input.ts135async function assertKeyboardEditsBlocked(CODE
LOWinternal/a11y-spec/src/patterns/tabs.ts300async function assertSelectionKeyRoundTrip(CODE
LOW…ernal/eslint-plugin-astryx/no-hardcoded-i18n-string.js226function reportUserFacingLiteralsIn(expr, name, context, isDefault, opts = {}) {CODE
LOW…/eslint-plugin-astryx/require-baseprops-passthrough.js137function collectDisplayNamedComponents(program) {CODE
LOWinternal/eslint-plugin-astryx/no-physical-properties.js431function horizontalTransformLeaves(node) {CODE
LOWinternal/eslint-plugin-astryx/no-physical-properties.js557function uncompensatedLogicalCentering(node) {CODE
LOWinternal/eslint-plugin-astryx/no-raw-intl-locale.js217function segmenterUsesOnlyGraphemes(optionsNode) {CODE
LOWinternal/eslint-plugin-astryx/stylex-style-source.js198export function extractStylexStyleProperties(text) {CODE
LOWinternal/eslint-plugin-astryx/stylex-style-source.js273export function resolveImportedStyleProperties(CODE
LOWscripts/sync-templates.js203function generateBlockRouteWrapper(block) {CODE
LOW…e/src/InteractiveRoleContext/InteractiveRoleContext.ts51export function useInteractiveRoleContext(): InteractiveRole | null {CODE
LOWpackages/core/src/Kbd/Kbd.tsx125function subscribeToPlatformChanges(): () => void {CODE
LOWpackages/core/src/Kbd/Kbd.tsx129function getServerPlatformSnapshot(): boolean {CODE
LOWpackages/core/src/Drawer/useDrawerDialogPresence.ts244function readTransformTransitionMs(element: HTMLElement): number | null {CODE
LOWpackages/core/src/Selector/SelectorBottomSheet.tsx43function SelectorBottomSheetInitialFocus({CODE
LOW…ckages/core/src/Selector/__tests__/Listbox.a11y.dom.ts12export function installListboxDialogStubs(): void {CODE
LOWpackages/core/src/Tooltip/useTooltip.test.tsx372 function installReentrantPopoverApi() {CODE
LOWpackages/core/src/Tooltip/useTooltip.test.tsx411 function PopoverWithTooltipTrigger({onShow}: {onShow: () => void}) {CODE
LOW…ests__/TooltipTallContentTracking.a11y.browser.spec.ts141function expectClearFromSecondFrame(frames: Frame[]) {CODE
LOW…ests__/TooltipTallContentTracking.a11y.browser.spec.ts269function expectReadableOnRoomierSide(frames: Frame[], viewportHeight: number) {CODE
LOWpackages/core/src/Calendar/dayCellUtils.ts249export function computeDayNeighborContinuity(input: {CODE
LOW…es/core/src/Calendar/getStandaloneShortWeekdayNames.ts25export function getStandaloneShortWeekdayNames(CODE
LOWpackages/core/src/Chat/useTriggerMenu.tsx220function isUnmatchedMultiWordQuery(CODE
LOW…rc/Chat/__tests__/ChatMessageBubble.auditProvenance.ts35export async function resolveChatMessageBubbleAuditProvenance({CODE
LOWpackages/core/src/CodeBlock/highlightRanges.ts46function ensureDynamicHighlightType(tokenType: string): void {CODE
LOWpackages/core/src/CodeBlock/highlightRanges.ts215export function applyHighlightRangesChunked(CODE
LOWpackages/core/src/CodeBlock/highlightRanges.ts343export function applyHighlightRangesBatch(CODE
LOW…/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx113function ReadOnlyCollectionListItem() {CODE
LOWpackages/core/src/DropdownMenu/DropdownMenuContext.tsx163export function useDropdownMenuRadioGroupContext(): DropdownMenuRadioGroupContextValue | null {CODE
LOWpackages/core/src/DropdownMenu/lazyMenuBottomSheet.ts82export async function preloadMenuBottomSheetActionList(): Promise<ActionListPreload> {CODE
LOWpackages/core/src/DropdownMenu/lazyMenuBottomSheet.ts110export function MenuBottomSheetActionList(CODE
LOW…es/core/src/DropdownMenu/MenuBottomSheetActionList.tsx61export function MenuBottomSheetActionList({CODE
LOWpackages/core/src/Markdown/remark.ts1443export function createMarkdownRemarkTransform(CODE
LOWpackages/core/src/Markdown/Markdown.fr23.bench.ts105function knownRangeDecorationPlugin(source: string) {CODE
LOWpackages/core/src/Markdown/Markdown.tsx888function useStableMarkdownSyntaxEntries(CODE
LOWpackages/core/src/Markdown/Markdown.tsx1312function computeTableColumnMinWidths(node: RenderTable): number[] {CODE
LOWpackages/core/src/Markdown/ast.ts155export function getMarkdownAstLegacyCodeLanguage(CODE
LOWpackages/core/src/Markdown/parser.perf.test.ts54function simulateStreamingFullReparse(CODE
LOWpackages/core/src/Markdown/parser.perf.test.ts64function simulateStreamingIncremental(CODE
LOWpackages/core/src/Markdown/parser.ts740function stripExactBlockquoteDepth(CODE
LOWpackages/core/src/Markdown/parser.ts2788function peelTrailingPunctAndParens(url: string): string {CODE
LOWpackages/core/src/Markdown/parser.ts3181function canContinueParagraphLazily(CODE
LOWpackages/core/src/Markdown/parser.ts4985export function parseMarkdownAstIncremental(CODE
398 more matches not shown…
Over-Commented Block340 hits · 340 pts
SeverityFileLineSnippetContext
LOWcrowdin.yml1# Copyright (c) Meta Platforms, Inc. and affiliates.COMMENT
LOWcrowdin.yml21# commits translations directly. By default that integration appends itsCOMMENT
LOWplaywright.config.ts61 // The contract's own conforming/violating fixture proof.COMMENT
LOWeslint.config.js921 //COMMENT
LOWvitest.config.ts81 },COMMENT
LOWvitest.config.ts101 // they fail loudly there — move it into the `ui` include list.COMMENT
LOWvitest.config.ts161 // from inlined callers.COMMENT
LOWpnpm-workspace.yaml1# Copyright (c) Meta Platforms, Inc. and affiliates.COMMENT
LOWpnpm-workspace.yaml21linkWorkspacePackages: trueCOMMENT
LOWpnpm-workspace.yaml61# Moved from package.json's "pnpm" field: pnpm 11 no longer readsCOMMENT
LOWpnpm-workspace.yaml81 dompurify: ^3.4.13COMMENT
LOWinternal/test-utils/src/setup.ts21// whether both are present is timing-dependent (the region updates on an effectCOMMENT
LOWinternal/vibe-tests/setup-test/setup-canonical.test.ts1961 // document scope before first paint, so the design system's typographicCOMMENT
LOWinternal/vibe-tests/scripts/smoke-test.sh1#!/usr/bin/env bashCOMMENT
LOWinternal/eslint-plugin-astryx/index.js401 '@astryx/no-raw-paragraph': 'error',COMMENT
LOWinternal/eslint-plugin-astryx/index.js421 // Core and lab draw every ring from the shared utility; error so the oneCOMMENT
LOWinternal/eslint-plugin-astryx/index.js441 '@astryx/copyright-header': 'error',COMMENT
LOWinternal/eslint-plugin-astryx/index.js521 // A component-level light-dark() is a light/dark decision no theme canCOMMENT
LOWinternal/interaction-harness/src/busy.ts661 const longestStallMs = longestGap.ms;COMMENT
LOWinternal/interaction-harness/src/curves.ts121 animation.addEventListener('finish', event => {COMMENT
LOWscripts/prune-branches.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/core/src/Thumbnail/Thumbnail.tsx181 // SelectableCard. A transparent `::after` tints on hover/press instead ofCOMMENT
LOWpackages/core/src/AvatarGroup/AvatarGroupOverflow.tsx101 paddingBlock: 0,COMMENT
LOWpackages/core/src/Drawer/Drawer.tsx141 transitionDuration: durationVars['--duration-medium'],COMMENT
LOWpackages/core/src/Drawer/Drawer.tsx241 overflowX: 'hidden',COMMENT
LOWpackages/core/src/Selector/Selector.tsx201 // its own value box to that row rather than asking the value to fit it: anyCOMMENT
LOWpackages/core/src/Selector/Selector.tsx481 opacity: 0.5,COMMENT
LOWpackages/core/src/Selector/Selector.tsx1261 // only option and group children — so this region is its only route toCOMMENT
LOWpackages/core/src/Selector/Selector.tsx1521 onContainerKeyDown={e => {COMMENT
LOWpackages/core/src/Selector/Selector.test.tsx3661 // renders role="separator" (unchanged visual/DOM), but must be excludedCOMMENT
LOW…__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts81// mutation-checked there (restoring the old `searchQuery === ''` conditionCOMMENT
LOWpackages/core/src/ClickableCard/ClickableCard.tsx81 },COMMENT
LOWpackages/core/src/Tooltip/useTooltip.tsx561 clearTimeouts();COMMENT
LOWpackages/core/src/SideNav/SideNavItem.tsx121 },COMMENT
LOWpackages/core/src/SideNav/SideNavItem.tsx801 const primaryIndent = depth > 0 && indentStyles.primary(depth);COMMENT
LOWpackages/core/src/Card/Card.tsx61 '--_card-radius': radiusVars['--radius-container'],COMMENT
LOWpackages/core/src/Typeahead/BaseTypeahead.tsx541 // only its settled empty row supplies the words to announce.COMMENT
LOWpackages/core/src/Typeahead/BaseTypeahead.tsx601 // with no dependency on event-loop timing between focus and click (aCOMMENT
LOWpackages/core/src/Typeahead/BaseTypeahead.tsx1061COMMENT
LOWpackages/core/src/Typeahead/Typeahead.tsx221 // row to wrap to. It also cannot wrap and keep its end controls in flow:COMMENT
LOWpackages/core/src/Typeahead/Typeahead.tsx241 // content lane is not the only flexible item in the row (a start icon, aCOMMENT
LOWpackages/core/src/Typeahead/Typeahead.tsx261 // input: the lane takes the free space so the end controls sit in theCOMMENT
LOWpackages/core/src/Typeahead/Typeahead.tsx281 // is, which is why no story caught it.COMMENT
LOWpackages/core/src/Typeahead/Typeahead.tsx461COMMENT
LOWpackages/core/src/Indicator/CheckIndicator.tsx101 // indicator's place, matching the other indicators' contract. It is checkedCOMMENT
LOWpackages/core/src/Indicator/CheckIndicator.tsx141 return null;COMMENT
LOWpackages/core/src/ButtonGroup/ButtonGroup.test.tsx201 ).toBeInTheDocument();COMMENT
LOWpackages/core/src/Chat/ChatComposerInput.tsx521 // the DOM is already authoritative for that value, and the userCOMMENT
LOWpackages/core/src/Chat/ChatComposer.tsx281 },COMMENT
LOWpackages/core/src/Chat/ChatLayout.test.tsx101 </ChatLayout>,COMMENT
LOWpackages/core/src/CodeBlock/CodeBlock.tsx361 // The glyph column: the +, - or space of every line sits in its own trackCOMMENT
LOWpackages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx881 // hover-open intent (onMouseEnter/onMouseLeave) — the flyout still opens onCOMMENT
LOWpackages/core/src/DropdownMenu/menuItemHover.ts41 if (el !== el.ownerDocument.activeElement) {COMMENT
LOWpackages/core/src/DropdownMenu/DropdownMenu.tsx961 const headerRef = useRef<HTMLDivElement | null>(null);COMMENT
LOWpackages/core/src/Markdown/parser.perf.test.ts301 // Both are tracked — not bounded — by the next test.COMMENT
LOWpackages/core/src/Layout/overlayPaddingReset.test.tsx181 // so it has to keep reaching inside every overlay — clearing it wouldCOMMENT
LOWpackages/core/src/Tokenizer/TokenizerBottomSheet.tsx321 const listRef = useRef<HTMLDivElement>(null);COMMENT
LOWpackages/core/src/Tokenizer/TokenizerBottomSheet.tsx381 // comes to be: the initial one, an open, a change.COMMENT
LOWpackages/core/src/Tokenizer/TokenizerBottomSheet.tsx461 // clearing. The ref is updated in a layout effect, before any request thisCOMMENT
LOWpackages/core/src/Tokenizer/useEndLaneReserve.ts41//COMMENT
280 more matches not shown…
Fake / Example Data111 hits · 120 pts
SeverityFileLineSnippetContext
LOW…ernal/eslint-plugin-astryx/no-hardcoded-i18n-string.js105 'placeholder',CODE
LOW…ages/core/src/ComplexSelector/ComplexSelector.test.tsx771 triggerLabel="Acme Ltd">CODE
LOW…ages/core/src/ComplexSelector/ComplexSelector.test.tsx779 expect(trigger).toHaveTextContent('Acme Ltd');CODE
LOWpackages/core/src/SideNav/SideNav.test.tsx918 superheading="Acme Corp"CODE
LOWpackages/core/src/SideNav/SideNav.test.tsx924 expect(screen.getByText('Acme Corp')).toBeInTheDocument();CODE
LOWpackages/core/src/TimeInput/TimeInput.test.tsx779 expect(input).toHaveAttribute('placeholder', 'Select a time');CODE
LOWpackages/core/src/TimeInput/TimeInput.test.tsx903 'placeholder',CODE
LOWpackages/core/src/Typeahead/types.ts25 * label: 'Jane Doe',COMMENT
LOWpackages/core/src/Markdown/parser.test.ts1298 children: [{type: 'text', content: 'user@example.com'}],CODE
LOWpackages/core/src/Markdown/parser.test.ts1341 children: [{type: 'text', content: 'user@example.com'}],CODE
LOWpackages/core/src/Markdown/Markdown.test.tsx1364 expect(link!.textContent).toBe('user@example.com');CODE
LOWpackages/core/src/Tokenizer/Tokenizer.test.tsx453 expect(input).not.toHaveAttribute('placeholder', 'Search people...');CODE
LOWpackages/core/src/Tokenizer/Tokenizer.test.tsx469 expect(input).toHaveAttribute('placeholder', ' ');CODE
LOWpackages/core/src/Toast/ToastViewport.test.tsx90const EMPTY_OPTIONS: ToastOptions = {body: 'placeholder'};CODE
LOWpackages/core/src/DateTimeInput/DateTimeInput.test.tsx1087 expect(timeInput).toHaveAttribute('placeholder', 'Select a time');CODE
LOW…ges/core/src/DateTimeInput/DateTimeInputTouch.test.tsx238 expect(dateField()).toHaveAttribute('placeholder', 'Select a date');CODE
LOW…ges/core/src/DateTimeInput/DateTimeInputTouch.test.tsx239 expect(timeField()).toHaveAttribute('placeholder', 'Select a time');CODE
LOW…ges/core/src/DateTimeInput/DateTimeInputTouch.test.tsx263 expect(timeField()).toHaveAttribute('placeholder', 'Pick a time');CODE
LOW…yer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts53 trigger: 'Jane Doe',CODE
LOW…src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts107 trigger: (page: Page) => page.getByText('Jane Doe', {exact: true}),CODE
LOWpackages/core/src/theme/types.ts161 'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit';CODE
LOWpackages/core/src/DateInput/DateInputTouch.test.tsx497 expect(field()).toHaveAttribute('placeholder', 'Select a date');CODE
LOWpackages/core/src/DateInput/DateInputTouch.test.tsx544 expect(field()).toHaveAttribute('placeholder', 'Pick a day');CODE
LOWpackages/core/src/Avatar/AvatarStatusDot.tsx294 * name="John Doe"COMMENT
LOWpackages/core/src/Avatar/Avatar.tsx432 * getInitials('John Doe') // 'JD'COMMENT
LOW⚡packages/core/src/Avatar/Avatar.tsx556 * <Avatar src="/user.jpg" name="John Doe" />COMMENT
LOW⚡packages/core/src/Avatar/Avatar.tsx561 * <Avatar src="/user.jpg" name="John Doe" href="/users/john" />COMMENT
LOW⚡packages/core/src/Avatar/Avatar.tsx562 * <Avatar src="/user.jpg" name="John Doe" onClick={() => openProfile()} />COMMENT
LOW⚡…s/core/src/CommandPalette/CommandPaletteInput.test.tsx181 expect(input).toHaveAttribute('placeholder', 'Search…');CODE
LOW⚡…s/core/src/CommandPalette/CommandPaletteInput.test.tsx187 expect(input).toHaveAttribute('placeholder', 'Search…');CODE
LOW⚡…s/core/src/CommandPalette/CommandPaletteInput.test.tsx194 ).toHaveAttribute('placeholder', 'Type a command...');CODE
LOWpackages/native/apple/Tests/AstryxTests/TextTests.swift31 #expect(color.text(named: "placeholder") == color.textSecondary)COMMENT
LOW…kages/native/apple/Sources/Astryx/Text/TypeStyle.swift73 case "secondary", "placeholder": textSecondaryCODE
LOW…ive/apple/Sources/AstryxNative/Generated/Heading.swift33 case placeholder = "placeholder"CODE
LOW…native/apple/Sources/AstryxNative/Generated/Text.swift30 case placeholder = "placeholder"CODE
LOW…kages/lab/src/MobileTokenizer/MobileTokenizer.test.tsx1076 expect(search).toHaveAttribute('placeholder', 'Search…');CODE
LOW…s/lab/src/MobilePowerSearch/MobilePowerSearch.test.tsx1786 expect(input).toHaveAttribute('placeholder', 'Search content…');CODE
LOWpackages/lab/src/TransferList/TransferList.test.tsx310 expect(search).toHaveAttribute('placeholder', 'Find a column');CODE
LOWpackages/cli/api/search/tree.weights.json1{"classes":["component","hook","doc","template","theme","NONE"],"tokens":{"#bias":[0.5769,-0.5917,-0.0025,-0.3774,-1.222CODE
LOWpackages/cli/api/search/_cards.json261"placeholder",CODE
LOWpackages/cli/api/search/_cards.json588"placeholder",CODE
LOWpackages/cli/api/search/_cards.json653"placeholder",CODE
LOWpackages/cli/api/search/_cards.json1306"placeholder",CODE
LOWpackages/cli/api/search/_cards.json1391"placeholder",CODE
LOWpackages/cli/api/search/_cards.json1482"placeholder",CODE
LOWpackages/cli/api/search/_cards.json2803"placeholder",CODE
LOWpackages/cli/api/search/_cards.json2853"placeholder",CODE
LOWpackages/cli/api/search/_cards.json3044"placeholder",CODE
LOWpackages/cli/api/search/_cards.json3315"placeholder",CODE
LOWpackages/cli/api/search/_cards.json4017"placeholder",CODE
LOWpackages/cli/api/search/_cards.json4052"placeholder"CODE
LOWpackages/cli/api/search/_cards.json4126"placeholder"CODE
LOWpackages/cli/api/search/_cards.json4318"placeholder",CODE
LOWpackages/cli/api/search/_cards.json4623"placeholder",CODE
LOW…es/blocks/components/SideNav/SideNavWithHeaderMenu.tsx82 <ListItem label="Acme Corp" href="#" />CODE
LOW…ates/blocks/components/AppShell/AppShellWithBanner.tsx76 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOW…ates/blocks/components/AppShell/AppShellWithBanner.tsx76 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOW…ates/blocks/components/AppShell/AppShellTopNavOnly.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOW…ates/blocks/components/AppShell/AppShellTopNavOnly.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOW…ocks/components/AppShell/AppShellTopNavWithSideNav.tsx66 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
51 more matches not shown…
Verbosity Indicators16 hits · 33 pts
SeverityFileLineSnippetContext
LOW⚡internal/vibe-tests/src/build-previews.ts310 // Step 1: Collect all 'const xxxRaw = { ... } as const;' blocksCOMMENT
LOW⚡internal/vibe-tests/src/build-previews.ts319 // Step 2: Inline variable references in createTheme callsCOMMENT
LOWinternal/vibe-tests/src/build-previews.ts338 // Step 3: Strip remaining type casts (but not in import lines)COMMENT
LOW⚡internal/vibe-tests/src/build-report.ts285 // Step 1: Ensure universal.json existsCOMMENT
LOW⚡internal/vibe-tests/src/build-report.ts289 // Step 2: If baseline provided, ensure comparisonCOMMENT
LOWinternal/vibe-tests/src/build-report.ts303 // Step 3: Load source code for per-prompt inspectionCOMMENT
LOWinternal/vibe-tests/src/build-report.ts436 // Step 4: Build the data scriptCOMMENT
LOW⚡internal/vibe-tests/src/build-report.ts453 // Step 5: Ensure CSS dist files exist (needed for report build)COMMENT
LOW⚡internal/vibe-tests/src/build-report.ts456 // Step 6: Dev mode or buildCOMMENT
LOWinternal/vibe-tests/src/build-report.ts491 // Step 5: Inject data and styles into the built HTMLCOMMENT
LOW⚡packages/core/src/Markdown/streaming.test.ts128 // Step 1: boundaries = [0, 5, 10]COMMENT
LOW⚡packages/core/src/Markdown/streaming.test.ts136 // Step 2: boundary 0 evicted → boundaries = [5, 10, 14]COMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts65 // Step 1: centerCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts69 // Step 2: azimuthCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts72 // Step 3: elevationCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts75 // Step 4: project to pixelsCOMMENT
Structural Annotation Overuse16 hits · 33 pts
SeverityFileLineSnippetContext
LOW⚡internal/vibe-tests/src/build-previews.ts310 // Step 1: Collect all 'const xxxRaw = { ... } as const;' blocksCOMMENT
LOW⚡internal/vibe-tests/src/build-previews.ts319 // Step 2: Inline variable references in createTheme callsCOMMENT
LOWinternal/vibe-tests/src/build-previews.ts338 // Step 3: Strip remaining type casts (but not in import lines)COMMENT
LOW⚡internal/vibe-tests/src/build-report.ts285 // Step 1: Ensure universal.json existsCOMMENT
LOW⚡internal/vibe-tests/src/build-report.ts289 // Step 2: If baseline provided, ensure comparisonCOMMENT
LOWinternal/vibe-tests/src/build-report.ts303 // Step 3: Load source code for per-prompt inspectionCOMMENT
LOWinternal/vibe-tests/src/build-report.ts436 // Step 4: Build the data scriptCOMMENT
LOW⚡internal/vibe-tests/src/build-report.ts453 // Step 5: Ensure CSS dist files exist (needed for report build)COMMENT
LOW⚡internal/vibe-tests/src/build-report.ts456 // Step 6: Dev mode or buildCOMMENT
LOWinternal/vibe-tests/src/build-report.ts491 // Step 5: Inject data and styles into the built HTMLCOMMENT
LOW⚡packages/core/src/Markdown/streaming.test.ts128 // Step 1: boundaries = [0, 5, 10]COMMENT
LOW⚡packages/core/src/Markdown/streaming.test.ts136 // Step 2: boundary 0 evicted → boundaries = [5, 10, 14]COMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts65 // Step 1: centerCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts69 // Step 2: azimuthCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts72 // Step 3: elevationCOMMENT
LOW⚡packages/lab/src/ThreeD/projection.test.ts75 // Step 4: project to pixelsCOMMENT
AI Slop Vocabulary9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMpackages/core/src/Layout/LayoutPanel.tsx235 // When no divider, collapse spacing for seamless visual flowCOMMENT
MEDIUMpackages/core/src/Layout/LayoutContent.tsx45 // for a seamless visual flow: Layout's middle row sets these to 0px thenCOMMENT
MEDIUMpackages/core/src/utils/color.test.ts172 // robust charts implementation. Composed as `toGLFloats(parseHex(input))`,COMMENT
MEDIUM…ages/cli/assets/templates/pages/shell-top-nav/page.tsx51 // pixel-identical so the transition is seamless.COMMENT
MEDIUM.github/workflows/ci.yml1972 # The gesture, motion and harness interaction proofs in WebKit, the engineCOMMENT
MEDIUM.github/workflows/ci.yml1975 # press helpers and the menu press model, plus the harness and the sharedCOMMENT
MEDIUM.github/workflows/ci.yml2580 # touched. A harness-only PR runs the fixed Chart/ChartLegend smoke scope soCOMMENT
MEDIUM.github/workflows/ci.yml2694 # step can run. An ordinary harness-only change uses the bounded routingCOMMENT
MEDIUMapps/docsite/src/components/ThemeShowcaseTile.tsx315// This is more robust than regex-matching `rgb(...)` because modernCOMMENT
Modern AI Meta-Vocabulary7 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMpackages/cli/test/doc-routes.json2979 "id": "layout#scaffold",CODE
MEDIUMpackages/cli/test/doc-routes.json2981 "oldDocsiteUrl": "/docs/layout#scaffold",CODE
MEDIUMpackages/cli/api/search/tree.weights.json1{"classes":["component","hook","doc","template","theme","NONE"],"tokens":{"#bias":[0.5769,-0.5917,-0.0025,-0.3774,-1.222CODE
MEDIUM…kages/cli/assets/templates/pages/payment-form/page.tsx111// docsite; the CLI swaps these for an inline placeholder on scaffold).COMMENT
MEDIUMapps/docsite/src/content/blog/posts/vibe-tests.md42- [Astryx's API test](https://github.com/meta/astryx/wiki/API-Arbitration#what-to-look-for) judges on: discoverability, CODE
MEDIUMapps/docsite/src/components/codeLinkifiers.ts51 // its namespace's page (`layout/scaffold` -> /docs/layout#scaffold).COMMENT
MEDIUMapps/docsite/src/components/codeLinkifiers.ts51 // its namespace's page (`layout/scaffold` -> /docs/layout#scaffold).COMMENT
Self-Referential Comments2 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMcrowdin.yml20# This file is also read by Crowdin's native GitHub integration, whichCOMMENT
MEDIUM⚡internal/vibe-tests/scripts/smoke-test.sh231 # Create a second iteration (baseline) with the same promptCOMMENT
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHapps/storybook/stories/CodeBlock.stories.tsx313 print(f"Processing {config.input_path}")CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWinternal/vibe-tests/scripts/smoke-test.sh13# Usage:COMMENT
LOWscripts/prune-branches.sh6# Usage:COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWinternal/vibe-tests/scripts/smoke-test.sh305 # Check if this is the known vite theme alias bug (pre-existing, not our fault)COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWapps/storybook/stories/CodeBlock.stories.tsx314 # TODO: implement pipelineCOMMENT
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWinternal/vibe-tests/src/design-judge-gemini.py316 except Exception as e:CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWinternal/vibe-tests/src/design-judge-gemini.py220CODE