An open source design system that's fully customizable and agent ready
This report presents the forensic synthetic code analysis of facebook/astryx, a TypeScript project with 8,903 GitHub stars. SynthScan v2.0 examined 410,904 lines of code across 2306 source files, recording 554 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 2.4 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 554 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 66 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 68 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 87 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 89 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 121 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 123 | # ------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | internal/vibe-tests/scripts/smoke-test.sh | 225 | # ------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | internal/vibe-tests/scripts/smoke-test.sh | 227 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 290 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 292 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 321 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 323 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 338 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 340 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 353 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | internal/vibe-tests/scripts/smoke-test.sh | 355 | # ------------------------------------------------------- | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.tsx | 95 | // ─── Base Props (shared across all modes) ───────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.tsx | 155 | // ─── Mode-specific Props (discriminated union) ──────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 34 | // ─── Basic Rendering ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 115 | // ─── Selection ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 141 | // ─── Navigation ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 185 | // ─── Date Constraints ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 223 | // ─── Multi-Month ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 270 | // ─── Display Options ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 305 | // ─── Range Mode ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 462 | // ─── Accessibility ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 548 | // ─── Bug Regression Tests ─────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 740 | // ─── RTL (#3388) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Calendar/Calendar.test.tsx | 740 | // ─── RTL (#3388) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Field/Field.tsx | 250 | // ─── Horizontal-labels mode ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Field/Field.tsx | 280 | // ─── Default mode (vertical / horizontal) ───────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Field/Field.test.tsx | 296 | // ─── width prop (#2755) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Field/Field.test.tsx | 296 | // ─── width prop (#2755) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/Field/Field.test.tsx | 355 | // ─── Horizontal-labels context ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 27 | // ─── Basic rendering ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 66 | // ─── Direction modes ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 97 | // ─── Context propagation ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 126 | // ─── Nesting ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 157 | // ─── Snapshot tests ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/FormLayout/FormLayout.test.tsx | 189 | // ─── Horizontal-labels with real Field children ───────────────────────── | COMMENT |
| MEDIUM | packages/core/src/theme/expandTypeScale.ts | 304 | // ── Layer 1: Raw size tokens (rem) ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/theme/expandTypeScale.ts | 310 | // ── Layer 2: Semantic tokens ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/core/src/hooks/useImageMode.test.ts | 98 | // ── Reproduction for BB-001 (cluster C6) ──────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 140 | // ─── Color assignment ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 156 | // ─── Layout pass ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 185 | // ─── Event dispatch ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 235 | // ─── Context for interactions + v1 chrome ───────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 253 | // ─── Legend ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/Chart.tsx | 268 | // ─── Render ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/ChartTooltip.tsx | 186 | // ─── Card positioning ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/ChartTooltip.tsx | 245 | // ─── Subscribe to pointer events ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/ChartTooltip.tsx | 263 | // ─── Derived data ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/ChartTooltip.tsx | 397 | // ─── Render ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 111 | // ─── 1. X scale ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 133 | // ─── 2. Y domain from all series dataKeys ──────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 215 | // ─── Resolve the final y-domain ────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 268 | // ─── 2b. Categorical y band scale ──────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 282 | // ─── 3. Stacking ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 299 | // ─── 4. Bar grouping ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/charts/src/layout.ts | 318 | // ─── 5. Resolve each series ────────────────────────────────────────── | COMMENT |
| 112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/app/src/report/Report.tsx | 90 | function MaintainabilityMetricsCard({ | CODE |
| LOW | internal/vibe-tests/src/deploy-report.ts | 271 | function injectScreenshotsIntoReport( | CODE |
| LOW | internal/vibe-tests/src/interactive.ts | 994 | function generateSubagentInstructions( | CODE |
| LOW | internal/vibe-tests/src/universal-eval.ts | 784 | function countMagicAndSemanticValues( | CODE |
| LOW | scripts/sync-templates.js | 203 | function generateBlockRouteWrapper(block) { | CODE |
| LOW | …e/src/InteractiveRoleContext/InteractiveRoleContext.ts | 51 | export function useInteractiveRoleContext(): InteractiveRole | null { | CODE |
| LOW | packages/core/src/Kbd/Kbd.tsx | 117 | function subscribeToPlatformChanges(): () => void { | CODE |
| LOW | packages/core/src/Kbd/Kbd.tsx | 121 | function getServerPlatformSnapshot(): boolean { | CODE |
| LOW | packages/core/src/Calendar/dayCellUtils.ts | 249 | export function computeDayNeighborContinuity(input: { | CODE |
| LOW | packages/core/src/CodeBlock/highlightRanges.ts | 46 | function ensureDynamicHighlightType(tokenType: string): void { | CODE |
| LOW | packages/core/src/CodeBlock/highlightRanges.ts | 205 | export function applyHighlightRangesChunked( | CODE |
| LOW | packages/core/src/CodeBlock/highlightRanges.ts | 333 | export function applyHighlightRangesBatch( | CODE |
| LOW | packages/core/src/Markdown/Markdown.tsx | 1014 | function computeTableColumnMinWidths(node: { | CODE |
| LOW | packages/core/src/Markdown/parser.perf.test.ts | 51 | function simulateStreamingFullReparse( | CODE |
| LOW | packages/core/src/Markdown/parser.perf.test.ts | 61 | function simulateStreamingIncremental( | CODE |
| LOW | packages/core/src/Markdown/parser.ts | 725 | function peelTrailingPunctAndParens(url: string): string { | CODE |
| LOW | packages/core/src/utils/plainDate.ts | 209 | export function plainDateSetEndOfWeekExclusive( | CODE |
| LOW | packages/core/src/Link/computeTargetAndRel.ts | 12 | export function computeTargetAndRel( | CODE |
| LOW | packages/core/src/theme/generateThemeRules.ts | 56 | function appendPseudoToSelectorList(selector: string, pseudo: string): string { | CODE |
| LOW | packages/core/src/theme/useTheme.ts | 103 | function getRootThemeAttrServerSnapshot(): 'light' | 'dark' | null { | CODE |
| LOW | packages/core/src/theme/useTheme.ts | 117 | function notifyRootThemeAttrListeners(): void { | CODE |
| LOW | packages/core/src/theme/expandTypeScale.ts | 357 | export function generateTypeScaleComponents( | CODE |
| LOW | packages/core/src/theme/syntax/defineSyntaxTheme.ts | 101 | export function resolveSyntaxTokenForMode( | CODE |
| LOW | …le/plugins/pagination/useTablePagination-perf.test.tsx | 110 | function PaginationRenderCountTable({ | CODE |
| LOW | …core/src/Table/plugins/filtering/useTableFiltering.tsx | 571 | function MultiSelectorFilterControl({ | CODE |
| LOW | …able/plugins/selection/useTableSelection-perf.test.tsx | 83 | function SelectionRenderCountTable({ | CODE |
| LOW | …s/core/src/SegmentedControl/SegmentedControlContext.ts | 38 | export function useSegmentedControlContext(): SegmentedControlContextValue { | CODE |
| LOW | packages/core/src/TopNav/TopNavMegaMenuFeaturedCard.tsx | 126 | export function TopNavMegaMenuFeaturedCard({ | CODE |
| LOW | packages/core/src/NavMenu/NavMenuContext.tsx | 32 | export function useNavHeadingCloseContext(): NavHeadingCloseContextValue | null { | CODE |
| LOW | …ckages/core/src/PowerSearch/PowerSearchValueEditor.tsx | 64 | function enumItemsToSearchableItems( | CODE |
| LOW | packages/lab/src/Schedule/shared.tsx | 357 | export function eventPastSurfaceColorStyle( | CODE |
| LOW | packages/lab/src/Schedule/shared.tsx | 464 | export function formatTimezoneAbbreviation( | CODE |
| LOW | packages/lab/src/Schedule/shared.tsx | 517 | export function formatEventAccessibilityLabel( | CODE |
| LOW | packages/lab/src/Schedule/shared.tsx | 530 | export function getMinutesSinceStartOfDay( | CODE |
| LOW | packages/lab/src/Schedule/MonthlyView.tsx | 343 | export function createScheduleMonthlyView({ | CODE |
| LOW | packages/lab/src/Schedule/zonedDateTime.ts | 63 | export function scheduleRangeToZonedDateTimeRange( | CODE |
| LOW | packages/lab/src/Schedule/TimeGridView.tsx | 280 | function TimeGridAccessibilityGrid({ | CODE |
| LOW | packages/lab/src/Schedule/TimeGridView.tsx | 377 | function formatTimeGridAccessibilityCellLabel({ | CODE |
| LOW | packages/lab/src/Schedule/TimeGridView.tsx | 555 | function getAvailableTimedEventLevel( | CODE |
| LOW | packages/lab/src/Schedule/dateMath.ts | 29 | export function getScheduleRangeFromDates({ | CODE |
| LOW | packages/lab/src/Schedule/plugins/PaginationPlugin.tsx | 28 | function SchedulePaginationControls() { | CODE |
| LOW | packages/lab/src/Schedule/plugins/PaginationPlugin.tsx | 53 | function createSchedulePaginationPlugin({ | CODE |
| LOW | packages/lab/src/Schedule/plugins/PaginationPlugin.tsx | 91 | export function useSchedulePaginationPlugin({ | CODE |
| LOW | packages/lab/src/Chart/getChartColors.ts | 129 | export function getChartColorsFromResolver( | CODE |
| LOW | packages/charts/src/getChartColors.ts | 189 | export function getChartColorsFromResolver( | CODE |
| LOW | packages/charts/src/tooltip.ts | 36 | export function deriveTooltipSeriesValues( | CODE |
| LOW | packages/charts/src/webgl.ts | 223 | export function registerContextLossHandlers( | CODE |
| LOW | …ents/ChatMessageMetadata/ChatMessageMetadataStatus.tsx | 21 | export default function ChatMessageMetadataStatus() { | CODE |
| LOW | …ts/ChatMessageMetadata/ChatMessageMetadataShowcase.tsx | 23 | export default function ChatMessageMetadataShowcase() { | CODE |
| LOW | …ents/ChatMessageMetadata/ChatMessageMetadataFooter.tsx | 23 | export default function ChatMessageMetadataFooter() { | CODE |
| LOW | …s/ChatMessageMetadata/ChatMessageMetadataTimestamp.tsx | 13 | export default function ChatMessageMetadataTimestamp() { | CODE |
| LOW | …onents/ChatMessageList/ChatMessageListFullFeatured.tsx | 19 | export default function ChatMessageListFullFeatured() { | CODE |
| LOW | …ts/ChatDictationButton/ChatDictationButtonShowcase.tsx | 16 | export default function ChatDictationButtonShowcase() { | CODE |
| LOW | …locks/components/Tooltip/TooltipInlineTextTooltips.tsx | 8 | export default function TooltipInlineTextTooltips() { | CODE |
| LOW | …onents/ToggleButtonGroup/ToggleButtonGroupShowcase.tsx | 13 | export default function ToggleButtonGroupShowcase() { | CODE |
| LOW | …onents/ToggleButtonGroup/ToggleButtonGroupVertical.tsx | 10 | export default function ToggleButtonGroupVertical() { | CODE |
| LOW | …onents/ChatMessageBubble/ChatMessageBubbleVariants.tsx | 13 | export default function ChatMessageBubbleVariants() { | CODE |
| LOW | …onents/ChatMessageBubble/ChatMessageBubbleMetadata.tsx | 18 | export default function ChatMessageBubbleMetadata() { | CODE |
| LOW | …onents/ChatMessageBubble/ChatMessageBubbleShowcase.tsx | 13 | export default function ChatMessageBubbleShowcase() { | CODE |
| LOW | …onents/ChatMessageBubble/ChatMessageBubbleGrouping.tsx | 15 | export default function ChatMessageBubbleGrouping() { | CODE |
| 109 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vitest.config.ts | 81 | execArgv: ['--max-old-space-size=4096'], | COMMENT |
| LOW | internal/vibe-tests/scripts/publish-report.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | internal/vibe-tests/scripts/smoke-test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/core/src/Typeahead/BaseTypeahead.tsx | 341 | COMMENT | |
| LOW | packages/core/src/Markdown/parser.ts | 101 | // Duck-type the legacy `ReadonlySet<string>` form: any object whose | COMMENT |
| LOW | packages/core/src/Toast/ToastViewport.tsx | 121 | // (via F6). Used to restore focus once all toasts are dismissed so focus | COMMENT |
| LOW | packages/core/src/AppShell/AppShell.tsx | 621 | // ========================================================================= | COMMENT |
| LOW | packages/core/src/TabList/TabList.tsx | 141 | // allowance for tab strips (ArrowRight/ArrowDown advance, ArrowLeft/ArrowUp | COMMENT |
| LOW | packages/core/src/Button/Button.tsx | 561 | // a spinner. Interruptible loading is delayed too, so rapid re-clicks settle | COMMENT |
| LOW | packages/core/src/theme/tokens.stylex.ts | 361 | // can override them via typography.scale in defineTheme. | COMMENT |
| LOW | packages/core/src/theme/useTheme.test.tsx | 141 | expect(result.current.token('--color-accent-muted')).not.toContain( | COMMENT |
| LOW | …/Table/plugins/stickyColumns/useTableStickyColumns.tsx | 161 | COMMENT | |
| LOW | packages/core/src/SegmentedControl/SegmentedControl.tsx | 161 | COMMENT | |
| LOW | packages/core/src/HoverCard/HoverCard.tsx | 241 | COMMENT | |
| LOW | packages/lab/src/Drawer/Drawer.tsx | 61 | COMMENT | |
| LOW | packages/cli/templates/pages/mixed-gallery/page.tsx | 1 | // Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | packages/cli/templates/pages/editor/page.tsx | 301 | // Styles | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 101 | // Backgrounds — Figma-style flat with a single lifted surface. | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 161 | '--color-icon-secondary': ['#737373', '#a3a3a3'], | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 181 | // destructive button bg. Dark mode uses an alpha | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 201 | COMMENT | |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 221 | // border light=T80 pastel dark=T60 mid-bright (>=5.8:1 vs body) | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 321 | // ========================================================================= | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 381 | // Badge — | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 421 | 'variant:warning': { | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 481 | color: 'var(--color-text-gray)', | COMMENT |
| LOW | packages/cli/templates/themes/neutral/neutralTheme.ts | 521 | '--color-text-primary': 'var(--color-text-red)', | COMMENT |
| LOW | packages/cli/templates/themes/stone/stoneTheme.ts | 141 | COMMENT | |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 101 | // Backgrounds — Figma-style flat with a single lifted surface. | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 161 | '--color-icon-secondary': ['#737373', '#a3a3a3'], | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 181 | // destructive button bg. Dark mode uses an alpha | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 201 | COMMENT | |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 221 | // border light=T80 pastel dark=T60 mid-bright (>=5.8:1 vs body) | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 321 | // ========================================================================= | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 381 | // Badge — | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 421 | 'variant:warning': { | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 481 | color: 'var(--color-text-gray)', | COMMENT |
| LOW | packages/themes/neutral/src/neutralTheme.ts | 521 | '--color-text-primary': 'var(--color-text-red)', | COMMENT |
| LOW | packages/themes/stone/src/stoneTheme.ts | 141 | COMMENT | |
| LOW | .github/workflows/release.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/release.yml | 21 | # 2. Run this workflow to publish the bumped versions. | COMMENT |
| LOW | .github/workflows/cleanup-previews.yml | 41 | COMMENT | |
| LOW | .github/workflows/codemod-verify.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/deploy.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/deploy.yml | 121 | # broke the post-merge deploy of the XDS un-prefix migration (#2941): | COMMENT |
| LOW | .github/workflows/pr-comment.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/review-signal.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/review-signal.yml | 21 | # area-gated — a theme/template edit is where design | COMMENT |
| LOW | .github/workflows/review-signal.yml | 41 | # self-serve code. | COMMENT |
| LOW | .github/workflows/review-signal.yml | 141 | COMMENT | |
| LOW | .github/workflows/review-signal.yml | 221 | // | COMMENT |
| LOW | .github/workflows/review-signal.yml | 281 | codeReasons.push('core change'); | COMMENT |
| LOW | .github/workflows/review-signal.yml | 321 | // --- Resolve approvals by reading reviews (fork-safe). --- | COMMENT |
| LOW | .github/workflows/review-signal.yml | 441 | } | COMMENT |
| LOW | .github/workflows/review-clear.yml | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | .github/workflows/ci.yml | 301 | # | COMMENT |
| LOW | apps/example-nextjs-stylex/next-env.d.ts | 1 | // Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | apps/example-nextjs-source/next-env.d.ts | 1 | // Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | apps/example-nextjs-tailwind/next-env.d.ts | 1 | // Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | apps/sandbox/next-env.d.ts | 1 | // Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/core/src/SideNav/SideNav.test.tsx | 572 | superheading="Acme Corp" | CODE |
| LOW | packages/core/src/SideNav/SideNav.test.tsx | 578 | expect(screen.getByText('Acme Corp')).toBeInTheDocument(); | CODE |
| LOW | packages/core/src/TimeInput/TimeInput.test.tsx | 495 | expect(input).toHaveAttribute('placeholder', 'Select a time'); | CODE |
| LOW | packages/core/src/Typeahead/types.ts | 25 | * label: 'Jane Doe', | COMMENT |
| LOW | packages/core/src/Markdown/parser.test.ts | 705 | children: [{type: 'text', content: 'user@example.com'}], | CODE |
| LOW | packages/core/src/Markdown/parser.test.ts | 737 | children: [{type: 'text', content: 'user@example.com'}], | CODE |
| LOW | packages/core/src/Markdown/Markdown.test.tsx | 542 | expect(link!.textContent).toBe('user@example.com'); | CODE |
| LOW | packages/core/src/Tokenizer/Tokenizer.test.tsx | 337 | expect(input).not.toHaveAttribute('placeholder', 'Search people...'); | CODE |
| LOW | packages/core/src/Toast/ToastViewport.test.tsx | 28 | const EMPTY_OPTIONS: ToastOptions = {body: 'placeholder'}; | CODE |
| LOW | packages/core/src/DateTimeInput/DateTimeInput.test.tsx | 740 | expect(timeInput).toHaveAttribute('placeholder', 'Select a time'); | CODE |
| LOW | packages/core/src/theme/types.ts | 164 | | 'placeholder' | CODE |
| LOW | packages/core/src/Avatar/AvatarStatusDot.tsx | 170 | * name="John Doe" | COMMENT |
| LOW | packages/core/src/Avatar/Avatar.tsx | 221 | * getInitials('John Doe') | COMMENT |
| LOW | packages/core/src/Avatar/Avatar.tsx | 260 | * <Avatar src="/user.jpg" name="John Doe" /> | COMMENT |
| LOW | …es/blocks/components/SideNav/SideNavWithHeaderMenu.tsx | 60 | <ListItem label="Acme Corp" href="#" /> | CODE |
| LOW | …ates/blocks/components/AppShell/AppShellWithBanner.tsx | 78 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …ates/blocks/components/AppShell/AppShellWithBanner.tsx | 78 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …ates/blocks/components/AppShell/AppShellTopNavOnly.tsx | 42 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …ates/blocks/components/AppShell/AppShellTopNavOnly.tsx | 42 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …ocks/components/AppShell/AppShellTopNavWithSideNav.tsx | 68 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …ocks/components/AppShell/AppShellTopNavWithSideNav.tsx | 68 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …tes/blocks/components/AppShell/AppShellSideNavOnly.tsx | 61 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …tes/blocks/components/AppShell/AppShellSideNavOnly.tsx | 61 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …tes/blocks/components/AppShell/AppShellContentOnly.tsx | 15 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …tes/blocks/components/AppShell/AppShellContentOnly.tsx | 15 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …plates/blocks/components/AppShell/AppShellShowcase.tsx | 56 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …plates/blocks/components/AppShell/AppShellShowcase.tsx | 56 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …s/components/FormLayout/FormLayoutHorizontalLabels.tsx | 12 | const [displayName, setDisplayName] = useState('Jane Doe'); | CODE |
| LOW | …es/blocks/components/Avatar/AvatarInitialsFallback.tsx | 10 | {name: 'John Doe', note: 'First + last'}, | CODE |
| LOW | …cks/components/HoverCard/HoverCardProfileHoverCard.tsx | 19 | <Avatar name="Jane Doe" size={48} style={{flexShrink: 0}} /> | CODE |
| LOW | …ates/blocks/components/HoverCard/HoverCardShowcase.tsx | 18 | <Avatar name="Jane Doe" size="medium" /> | CODE |
| LOW | …es/cli/templates/blocks/components/Text/TextColors.tsx | 26 | color: 'placeholder' as const, | CODE |
| LOW | …s/components/SideNavHeading/SideNavHeadingShowcase.tsx | 34 | superheading="Acme Corp" | CODE |
| LOW | packages/cli/templates/pages/payment-form/page.tsx | 374 | placeholder="123 Main Street" | CODE |
| LOW | packages/cli/templates/pages/payment-form/page.tsx | 610 | placeholder="John Doe" | CODE |
| LOW | packages/cli/templates/pages/payment-form/page.tsx | 629 | placeholder="123 Main Street" | CODE |
| LOW | packages/cli/templates/pages/detail-page/page.tsx | 124 | user: 'Jane Doe', | CODE |
| LOW | packages/cli/templates/pages/detail-page/page.tsx | 202 | <Avatar name="Jane Doe" size="xsmall" /> | CODE |
| LOW | packages/cli/templates/pages/shell-side-nav/page.tsx | 71 | name: 'Acme Corp', | CODE |
| LOW | .github/instructions/templates.instructions.md | 81 | "Lorem ipsum"/"Item 1"/"foo"); no dead code. | CODE |
| LOW | apps/storybook/stories/FormLayout.stories.tsx | 83 | const [displayName, setDisplayName] = useState('Jane Doe'); | CODE |
| LOW | apps/storybook/stories/FormLayout.stories.tsx | 231 | const [name, setName] = useState('Jane Doe'); | CODE |
| LOW | apps/storybook/stories/Timestamp.stories.tsx | 63 | 'placeholder', | CODE |
| LOW | apps/storybook/stories/AppShell.stories.tsx | 69 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/storybook/stories/AppShell.stories.tsx | 69 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/storybook/stories/Link.stories.tsx | 27 | 'placeholder', | CODE |
| LOW | apps/storybook/stories/Dialog.stories.tsx | 254 | {i + 1}. Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/storybook/stories/Dialog.stories.tsx | 254 | {i + 1}. Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/storybook/stories/Dialog.stories.tsx | 541 | {i + 1}. Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/storybook/stories/Dialog.stories.tsx | 541 | {i + 1}. Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/storybook/stories/Avatar.stories.tsx | 89 | name: 'John Doe', | CODE |
| LOW | apps/storybook/stories/Avatar.stories.tsx | 157 | <Avatar name="John Doe" size="medium" /> | CODE |
| LOW | …/storybook/stories/ToolbarEdgeCompensation.stories.tsx | 62 | : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.'} | CODE |
| LOW | …/storybook/stories/ToolbarEdgeCompensation.stories.tsx | 62 | : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.'} | CODE |
| LOW | apps/storybook/stories/Heading.stories.tsx | 23 | 'placeholder', | CODE |
| LOW | apps/storybook/stories/Heading.stories.tsx | 158 | <Heading level={2} color="placeholder"> | CODE |
| LOW | apps/storybook/stories/Text.stories.tsx | 39 | 'placeholder', | CODE |
| LOW | apps/storybook/stories/Text.stories.tsx | 164 | <Text type="body" color="placeholder"> | CODE |
| LOW | apps/storybook/stories/SideNav.stories.tsx | 151 | <ListItem label="Acme Corp" href="#" /> | CODE |
| LOW | apps/example-nextjs-tailwind/src/app/page.tsx | 235 | <Avatar name="Jane Doe" size="small" /> | CODE |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/src/deploy-report.ts | 93 | // Step 1: Build previews if result files exist (.tsx or .json) | COMMENT |
| LOW | internal/vibe-tests/src/deploy-report.ts | 127 | // Step 2: Build the report | COMMENT |
| LOW | internal/vibe-tests/src/deploy-report.ts | 157 | // Step 3: Deploy to gh-pages | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-previews.ts | 309 | // Step 1: Collect all 'const xxxRaw = { ... } as const;' blocks | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-previews.ts | 318 | // Step 2: Inline variable references in createTheme calls | COMMENT |
| LOW | internal/vibe-tests/src/build-previews.ts | 337 | // Step 3: Strip remaining type casts (but not in import lines) | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 285 | // Step 1: Ensure universal.json exists | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 289 | // Step 2: If baseline provided, ensure comparison | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 303 | // Step 3: Load source code for per-prompt inspection | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 436 | // Step 4: Build the data script | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 453 | // Step 5: Ensure CSS dist files exist (needed for report build) | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 456 | // Step 6: Dev mode or build | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 491 | // Step 5: Inject data and styles into the built HTML | COMMENT |
| LOW⚡ | packages/core/src/Markdown/streaming.test.ts | 128 | // Step 1: boundaries = [0, 5, 10] | COMMENT |
| LOW⚡ | packages/core/src/Markdown/streaming.test.ts | 136 | // Step 2: boundary 0 evicted → boundaries = [5, 10, 14] | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 65 | // Step 1: center | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 69 | // Step 2: azimuth | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 72 | // Step 3: elevation | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 75 | // Step 4: project to pixels | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/src/deploy-report.ts | 93 | // Step 1: Build previews if result files exist (.tsx or .json) | COMMENT |
| LOW | internal/vibe-tests/src/deploy-report.ts | 127 | // Step 2: Build the report | COMMENT |
| LOW | internal/vibe-tests/src/deploy-report.ts | 157 | // Step 3: Deploy to gh-pages | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-previews.ts | 309 | // Step 1: Collect all 'const xxxRaw = { ... } as const;' blocks | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-previews.ts | 318 | // Step 2: Inline variable references in createTheme calls | COMMENT |
| LOW | internal/vibe-tests/src/build-previews.ts | 337 | // Step 3: Strip remaining type casts (but not in import lines) | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 285 | // Step 1: Ensure universal.json exists | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 289 | // Step 2: If baseline provided, ensure comparison | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 303 | // Step 3: Load source code for per-prompt inspection | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 436 | // Step 4: Build the data script | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 453 | // Step 5: Ensure CSS dist files exist (needed for report build) | COMMENT |
| LOW⚡ | internal/vibe-tests/src/build-report.ts | 456 | // Step 6: Dev mode or build | COMMENT |
| LOW | internal/vibe-tests/src/build-report.ts | 491 | // Step 5: Inject data and styles into the built HTML | COMMENT |
| LOW⚡ | packages/core/src/Markdown/streaming.test.ts | 128 | // Step 1: boundaries = [0, 5, 10] | COMMENT |
| LOW⚡ | packages/core/src/Markdown/streaming.test.ts | 136 | // Step 2: boundary 0 evicted → boundaries = [5, 10, 14] | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 65 | // Step 1: center | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 69 | // Step 2: azimuth | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 72 | // Step 3: elevation | COMMENT |
| LOW⚡ | packages/lab/src/ThreeD/projection.test.ts | 75 | // Step 4: project to pixels | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/core/src/Layout/LayoutPanel.tsx | 235 | // When no divider, collapse spacing for seamless visual flow | COMMENT |
| MEDIUM | packages/core/src/Layout/LayoutContent.tsx | 46 | // When header has no divider, collapse top padding for seamless visual flow | COMMENT |
| MEDIUM | packages/core/src/Layout/LayoutContent.tsx | 53 | // When footer has no divider, collapse bottom padding for seamless visual flow | COMMENT |
| MEDIUM | packages/cli/templates/pages/shell-top-nav/page.tsx | 51 | // pixel-identical so the transition is seamless. | COMMENT |
| MEDIUM | apps/docsite/src/components/ThemeShowcaseTile.tsx | 316 | // This is more robust than regex-matching `rgb(...)` because modern | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/storybook/stories/CodeBlock.stories.tsx | 134 | print(f"Processing {config.input_path}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/scripts/publish-report.sh | 8 | # Usage: | COMMENT |
| LOW | internal/vibe-tests/scripts/smoke-test.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/prune-branches.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | internal/vibe-tests/scripts/smoke-test.sh | 231 | # Create a second iteration (baseline) with the same prompt | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/src/design-judge-gemini.py | 316 | except Exception as e: | CODE |
| MEDIUM | internal/vibe-tests/src/post-design-results.py | 228 | print("Error: --iteration is required (or iterationId must be in scores file)", file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/cli/templates/pages/payment-form/page.tsx | 111 | // docsite; the CLI swaps these for an inline placeholder on scaffold). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/scripts/smoke-test.sh | 305 | # Check if this is the known vite theme alias bug (pre-existing, not our fault) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/storybook/stories/CodeBlock.stories.tsx | 135 | # TODO: implement pipeline | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/vibe-tests/src/design-judge-gemini.py | 220 | CODE |