Repository Analysis

nteract/semiotic

React data visualization library for streaming, networks, and AI-assisted development

6.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of nteract/semiotic, a TypeScript project with 2,691 GitHub stars. SynthScan v2.0 examined 931,956 lines of code across 2581 source files, recording 2497 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 6.3 places this repository in the Low AI signal 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).

6.3
Adjusted Score
6.3
Raw Score
100%
Time Factor
2026-08-27
Last Push
2.7K
Stars
TypeScript
Language
932.0K
Lines of Code
2.6K
Files
2.5K
Pattern Hits
2026-08-29
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 2HIGH 1MEDIUM 1597LOW 897

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 2497 distinct pattern matches across 12 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.

Decorative Section Separators1592 hits · 4871 pts
SeverityFileLineSnippetContext
MEDIUMintegration-tests/process-sankey.spec.ts203// ── Visual regression baselines ────────────────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts89// ─── Grey fill regression tests ──────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts136// ─── Legend regression tests ─────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts169// ─── Tooltip regression tests ────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts203// ─── LineChart infinite loop regression ──────────────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts233// ─── Force-directed graph centering regression ───────────────────────────────COMMENT
MEDIUMintegration-tests/streaming-regression.spec.ts292// ─── No JS errors during streaming ───────────────────────────────────────────COMMENT
MEDIUMintegration-tests/ssr-parity-fixtures.js710// ── SSR-fix regression fixtures data ───────────────────────────────────COMMENT
MEDIUMintegration-tests/ssr-parity-fixtures.js1569 // ── SSR-fix regression fixtures ────────────────────────────────────COMMENT
MEDIUMintegration-tests/brush-selection.spec.ts278// ── Interaction-state visual snapshot ───────────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-views.spec.ts9 // ── Linked hover cross-highlighting ───────────────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-views.spec.ts55 // ── ChartGrid with emphasis ───────────────────────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-views.spec.ts78 // ── Empty state ───────────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-views.spec.ts93 // ── Three-way linked charts ───────────────────────────────────────────COMMENT
MEDIUMintegration-tests/ordinal-frame.spec.ts261// ── Default-theme HOC coverage backfill ──────────────────────────────COMMENT
MEDIUMintegration-tests/realtime-charts.spec.ts132// ── Default-theme HOC coverage backfill (static fixtures) ────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts5// ─── 1. Canvas aria-labels describe chart type and data shape ─────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts68// ─── 2. AriaLiveTooltip region with aria-live="polite" ────────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts118// ─── 3. Legend keyboard traversal ─────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts237// ─── 4. Focus rings appear on keyboard focus ─────────────────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts326// ─── 5. SVG overlays have title/desc elements ────────────────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts408// ─── 6. ChartContainer toolbar buttons have aria-labels ───────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts499// ─── 7. Automated axe-core accessibility scanning ───────────────────────────COMMENT
MEDIUMintegration-tests/accessibility.spec.ts540// ─── Smoke test: no JS errors on page load ───────────────────────────────────COMMENT
MEDIUMintegration-tests/geo-charts.spec.ts186// ── Default-theme HOC coverage backfill ──────────────────────────────COMMENT
MEDIUMintegration-tests/xy-frame.spec.ts285// ── Default-theme HOC coverage backfill ──────────────────────────────COMMENT
MEDIUMintegration-tests/xy-frame.spec.ts314// ── Interaction-state visual snapshots ──────────────────────────────COMMENT
MEDIUMintegration-tests/network-frame.spec.ts97// ── Default-theme HOC coverage backfill ──────────────────────────────COMMENT
MEDIUMintegration-tests/xy-examples/index.js255 // ── Default-theme HOC coverage backfill ─────────────────────────────COMMENT
MEDIUMintegration-tests/xy-examples/index.js364 // ── Interaction-state fixtures ──────────────────────────────────────COMMENT
MEDIUMintegration-tests/xy-examples/index.js426 // ── Multi-tooltip fixtures ───────────────────────────────────────────COMMENT
MEDIUMintegration-tests/xy-examples/index.js481 // ── xExtent / yExtent override variants ────────────────────────────COMMENT
MEDIUMintegration-tests/status-scale-theme-examples/index.js24// ── Deterministic data ─────────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/status-scale-theme-examples/index.js120 // ── Waterfall: themeSemantic.success / .danger ────────────────────────COMMENT
MEDIUMintegration-tests/status-scale-theme-examples/index.js132 // ── Heatmap: themeSequential ──────────────────────────────────────────COMMENT
MEDIUMintegration-tests/status-scale-theme-examples/index.js146 // ── Likert: themeDiverging ────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/realtime-examples/index.js143// ── Static bounded fixtures for visual snapshots ─────────────────────COMMENT
MEDIUMintegration-tests/realtime-examples/index.js225 // ── Default-theme HOC coverage backfill (static) ────────────────────COMMENT
MEDIUMintegration-tests/network-examples/index.js143 // ── Default-theme HOC coverage backfill ────────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js27// ── 1. Streaming Stacked Bar (grey fill + legend regression) ─────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js63// ── 2. Streaming Pie (grey fill + legend regression) ─────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js94// ── 3. Streaming Bubble (grey fill regression) ───────────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js127// ── 4. Streaming Grouped Bar (grey fill + legend regression) ─────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js161// ── 5. Streaming Stacked Area (grey fill regression) ─────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js193// ── 6. Area chart tooltip (shows "-" regression) ─────────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js215// ── 7. LineChart streaming (infinite loop regression) ─────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js249// ── 8. Force-Directed Graph centering ────────────────────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js274// ── 9. Streaming Chord (blue-only regression) ────────────────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js301// ── 10. Streaming Donut (grey fill + legend regression) ──────────────────────COMMENT
MEDIUM…tegration-tests/streaming-regression-examples/index.js332// ── 11. Streaming Scatterplot (grey fill regression) ─────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-examples/index.js96// ── Shared test data (deterministic) ────────────────────────────────────COMMENT
MEDIUMintegration-tests/coordinated-examples/index.js979// ── Test cases ──────────────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/ordinal-examples/index.js405 // ── Default-theme HOC coverage backfill ─────────────────────────────COMMENT
MEDIUMintegration-tests/ordinal-examples/index.js436 // ── valueExtent override variants ─────────────────────────────────COMMENT
MEDIUMintegration-tests/themed-examples/index.js23// ── Deterministic data ─────────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/themed-examples/index.js90// ── Charts to snapshot per theme ──────────────────────────────────────────COMMENT
MEDIUMintegration-tests/themed-examples/index.js150// ── Render grid ────────────────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/custom-layout-examples/index.js156// ── Glyph unit chart: composite-pictogram scene nodes fed by unitize ────────COMMENT
MEDIUMintegration-tests/chart-modes-examples/index.js36// ── Deterministic fixtures ─────────────────────────────────────────────────COMMENT
MEDIUMintegration-tests/primitive-props-examples/index.js34// ── Deterministic data ─────────────────────────────────────────────────────COMMENT
1532 more matches not shown…
Hyper-Verbose Identifiers734 hits · 784 pts
SeverityFileLineSnippetContext
LOWetc/api-surface/semiotic-server.api.md16function renderPhysicsToAnimatedGif(props: PhysicsGifFrameProps, options?: PhysicsGifOptions | undefined): Promise<BuffeCODE
LOWetc/api-surface/semiotic-network.api.md22function diagnoseProcessSankeyLayout(layout: Pick<ProcessSankeyLayout, "compressedPadding" | "crossingsAfter" | "layoutQCODE
LOWetc/api-surface/semiotic-network.api.md23function diagnoseProcessSankeyProps(props: Record<string, unknown>): Diagnosis[]CODE
LOWetc/api-surface/semiotic-network.api.md24function explainProcessSankeyLayout(layout: Pick<ProcessSankeyLayout, "compressedPadding" | "crossingsAfter" | "layoutQuCODE
LOWetc/api-surface/semiotic-network.api.md40function registerBuiltInNetworkLayouts(): voidCODE
LOWetc/api-surface/semiotic-physics-rapier.api.md17function optionalEngineDependencyError(details: PhysicsOptionalEngineInstallDetails, cause?: unknown): PhysicsOptionalEnCODE
LOWetc/api-surface/semiotic-physics-rapier.api.md18function rapierPhysicsDependencyError(cause?: unknown): ErrorCODE
LOWetc/api-surface/semiotic-controls.api.md9function DirectManipulationControl({ value, onChange, pointerToValue, min, max, step, largeStep, x, y, controlType, contCODE
LOWetc/api-surface/semiotic-controls.api.md12function auditVisualizationControls({ controls, minimumTargetSize, }: AuditVisualizationControlsOptions): ControlAuditReCODE
LOWetc/api-surface/semiotic-controls.api.md14function createControlObservationAdapter({ controlType, controlId, chartId, chartType, onObservation, }: ControlObservatCODE
LOWetc/api-surface/semiotic-recipes.api.md70function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControlCODE
LOWetc/api-surface/semiotic-recipes.api.md71function computeTransitDiagramPositions(nodes: readonly {id: string; data: Datum;}[], edges: readonly TransitDiagramEdgeCODE
LOWetc/api-surface/semiotic-recipes.api.md73function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsControllerCODE
LOWetc/api-surface/semiotic-recipes.api.md74function createDependencyGateController(options: DependencyGateOptions): DependencyGateControllerCODE
LOWetc/api-surface/semiotic-recipes.api.md76function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): PrCODE
LOWetc/api-surface/semiotic-recipes.api.md77function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelControllerCODE
LOWetc/api-surface/semiotic-recipes.api.md78function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolControllerCODE
LOWetc/api-surface/semiotic-recipes.api.md87function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatusCODE
LOWetc/api-surface/semiotic-recipes.api.md143function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions | undefined): MobileChartFamilyRecipeCODE
LOWetc/api-surface/semiotic-recipes.api.md164function parallelCoordinatesLayout(*: OrdinalLayoutContext<import("../semiotic-recipes-core").ParallelCoordinatesConfig>CODE
LOWetc/api-surface/semiotic-recipes.api.md187function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[] | undefined): {label: string; vaCODE
LOWetc/api-surface/semiotic-recipes.api.md221function tokenTaskIntentToCapabilityIntents(intent: TokenTaskIntent): TokenCapabilityIntent[]CODE
LOWetc/api-surface/semiotic-recipes.api.md232function wordTrailsProgressiveReveal(options: WordTrailsProgressiveRevealOptions): Pick<WordTrailsConfig, "weightOpacityCODE
LOWetc/api-surface/semiotic-geo.api.md34function resolveReferenceGeography(name: ReferenceGeography): Promise<import("geojson").Feature<import("geojson").GeometCODE
LOWetc/api-surface/semiotic-physics-matter.api.md16function matterBodiesToPhysicsColliders(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions | undefined)CODE
LOWetc/api-surface/semiotic-physics-matter.api.md17function matterBodiesToPhysicsSpawns(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions | undefined): PCODE
LOWetc/api-surface/semiotic-physics-matter.api.md18function matterBodyToPhysicsBodySpec(body: MatterBodyLike, index?: number | undefined, options?: MatterMigrationOptions CODE
LOWetc/api-surface/semiotic-physics-matter.api.md19function matterBodyToPhysicsColliderSpec(body: MatterBodyLike, index?: number | undefined, options?: MatterMigrationOptiCODE
LOWetc/api-surface/semiotic-physics-matter.api.md20function matterPhysicsDependencyError(cause?: unknown): ErrorCODE
LOWetc/api-surface/semiotic-physics-matter.api.md21function optionalEngineDependencyError(details: PhysicsOptionalEngineInstallDetails, cause?: unknown): PhysicsOptionalEnCODE
LOWetc/api-surface/semiotic-recipes-core.api.md69function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControlCODE
LOWetc/api-surface/semiotic-recipes-core.api.md70function computeTransitDiagramPositions(nodes: readonly {id: string; data: Datum;}[], edges: readonly TransitDiagramEdgeCODE
LOWetc/api-surface/semiotic-recipes-core.api.md72function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsControllerCODE
LOWetc/api-surface/semiotic-recipes-core.api.md73function createDependencyGateController(options: DependencyGateOptions): DependencyGateControllerCODE
LOWetc/api-surface/semiotic-recipes-core.api.md75function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): PrCODE
LOWetc/api-surface/semiotic-recipes-core.api.md76function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelControllerCODE
LOWetc/api-surface/semiotic-recipes-core.api.md77function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolControllerCODE
LOWetc/api-surface/semiotic-recipes-core.api.md86function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatusCODE
LOWetc/api-surface/semiotic-recipes-core.api.md142function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions | undefined): MobileChartFamilyRecipeCODE
LOWetc/api-surface/semiotic-recipes-core.api.md163function parallelCoordinatesLayout(*: OrdinalLayoutContext<import("../semiotic-recipes-core").ParallelCoordinatesConfig>CODE
LOWetc/api-surface/semiotic-recipes-core.api.md186function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[] | undefined): {label: string; vaCODE
LOWetc/api-surface/semiotic-recipes-core.api.md220function tokenTaskIntentToCapabilityIntents(intent: TokenTaskIntent): TokenCapabilityIntent[]CODE
LOWetc/api-surface/semiotic-recipes-core.api.md230function wordTrailsProgressiveReveal(options: WordTrailsProgressiveRevealOptions): Pick<WordTrailsConfig, "weightOpacityCODE
LOWetc/api-surface/semiotic-access.api.md11function createChartAccessContract({ component, props, options }: ChartAccessContractInput): ChartAccessContractCODE
LOWetc/api-surface/semiotic-physics.api.md104function bodiesToAnnotationAnchors(bodies: readonly PhysicsBodyState[]): PhysicsAnnotationAnchorNode[]CODE
LOWetc/api-surface/semiotic-physics.api.md110function buildCruciblePhysicsConfig(seed: number | string | undefined, colliders: readonly PhysicsColliderSpec[]): PhysiCODE
LOWetc/api-surface/semiotic-physics.api.md111function buildCrucibleProductEvents(options: BuildCrucibleProductEventsOptions): CrucibleEvent[]CODE
LOWetc/api-surface/semiotic-physics.api.md118function buildPhysicsAnnotationContext(options: {width: number; height: number; pointNodes?: PhysicsAnnotationAnchorNodeCODE
LOWetc/api-surface/semiotic-physics.api.md131function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControlCODE
LOWetc/api-surface/semiotic-physics.api.md133function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsControllerCODE
LOWetc/api-surface/semiotic-physics.api.md134function createDefaultPhysicsEngineAdapter(options?: PhysicsKernelOptions | undefined): PhysicsEngineAdapterCODE
LOWetc/api-surface/semiotic-physics.api.md135function createDependencyGateController(options: DependencyGateOptions): DependencyGateControllerCODE
LOWetc/api-surface/semiotic-physics.api.md140function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): PrCODE
LOWetc/api-surface/semiotic-physics.api.md141function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelControllerCODE
LOWetc/api-surface/semiotic-physics.api.md142function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolControllerCODE
LOWetc/api-surface/semiotic-physics.api.md144function crucibleBoundaryColliders(layout: CrucibleLayout): PhysicsColliderSpec[]CODE
LOWetc/api-surface/semiotic-physics.api.md151function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatusCODE
LOWetc/api-surface/semiotic-physics.api.md153function evaluatePhysicsBodyBudget(input: PhysicsBodyBudgetInput): PhysicsBodyBudgetDecisionCODE
LOWetc/api-surface/semiotic-physics.api.md164function normalizePhysicsAnnotations(annotations: Datum[] | undefined): Datum[] | undefinedCODE
LOWetc/api-surface/semiotic-physics.api.md168function physicsProcessBoundaryColliders(shape: PhysicsColliderShape, options?: PhysicsProcessBoundaryOptions | undefineCODE
674 more matches not shown…
Over-Commented Block115 hits · 110 pts
SeverityFileLineSnippetContext
LOWdeploy/cloud-run-nightly/cloudbuild.yaml1# Repository-built nightly deployment for the us-central1 Cloud Run serviceCOMMENT
LOW.agents/skills/blog-post/templates/narrative.js1// TEMPLATE — narrative / case studyCOMMENT
LOW.agents/skills/blog-post/templates/narrative.js141// 2. Add metadata-only copy to docs/src/blog/entries-meta.js.COMMENT
LOW.agents/skills/blog-post/templates/release-summary.js101 date: "TODO YYYY-MM-DD", // release date from CHANGELOGCOMMENT
LOW.agents/skills/blog-post/templates/chart-explainer.js1// TEMPLATE — chart explainerCOMMENT
LOWintegration-tests/helpers.ts121 state.stableCount = 0COMMENT
LOWintegration-tests/ordinal-frame.spec.ts41 // SwarmPlot's `valueExtent` prop maps to the frame's `rExtent`. EachCOMMENT
LOWintegration-tests/realtime-charts.spec.ts121 // by `computeCanvasAriaLabel` — it only carries a node countCOMMENT
LOWintegration-tests/status-scale-theme-examples/index.js1// Status-aware + scale theme matrix for Phase A milestone 3.COMMENT
LOWintegration-tests/realtime-examples/index.js141}COMMENT
LOWintegration-tests/ordinal-examples/index.js441 // • [undefined, max] — only the max pinned, min stays data-derivedCOMMENT
LOW…gration-tests/histogram-theme-stroke-examples/index.js1// RealtimeHistogram theme-aware stroke regression harness.COMMENT
LOWintegration-tests/background-graphics-examples/index.js1import * as Semiotic from "../../dist/semiotic.module.min.js"COMMENT
LOWintegration-tests/chart-modes-examples/index.js1// Chart-mode visual regression matrix.COMMENT
LOWintegration-tests/primitive-props-examples/index.js1// Primitive-props matrix for Phase B.COMMENT
LOW…gration-tests/primitive-theme-matrix-examples/index.js1// Primitive-theme matrix: Ordinal / Network / Geo under light + dark.COMMENT
LOWdocs/src/blog/entries/difference-chart.jsx1import React, { useRef } from "react"COMMENT
LOWdocs/src/components/codegen.js1// Pure code-string generation for LiveExample.COMMENT
LOWdocs/src/components/reshapeSuggestions.js1// Generative reshape suggestions — the "your flat table could become this" layer.COMMENT
LOWdocs/src/examples/recipes/AnscombesSankey.jsx41// starting from ER. The total path defines the patient's wardCOMMENT
LOWdocs/src/examples/recipes/PatientJourneys.jsx41// edge; (2) the band gains a bit more breathing room which makes theCOMMENT
LOWdocs/src/examples/recipes/data/kstreamsTopology.js1// ─────────────────────────────────────────────────────────────────────────COMMENT
LOWdocs/src/examples/recipes/data/dagLayout.js1// ─────────────────────────────────────────────────────────────────────────COMMENT
LOWdocs/src/pages/custom-charts/CustomLayoutsPage.jsx61// (h=32) — top edges align, bottom edges don't.COMMENT
LOWdocs/src/pages/charts/ProcessSankeyPage.jsx221 { id: "s-w1-b", source: "Service", target: "Worker1", value: 3, startTime: D(2026, 2, 1), endTime: D(2026, 2, 8) }COMMENT
LOWdocs/src/pages/charts/ProcessSankeyPage.jsx241// The Sankey edge itself only encodes the routing transition (startCOMMENT
LOWdocs/src/pages/examples/data/worldDevelopment.js1// Real data: World Bank, World Development Indicators (data.worldbank.org),COMMENT
LOWdocs/src/pages/examples/data/worldDevelopment.js601COMMENT
LOWdocs/src/pages/examples/data/urineWheel.js1// The Wheel of Urines — data for a medieval uroscopy diagnostic chart.COMMENT
LOWdocs/src/pages/examples/data/gestaltData.js1// Data + small deterministic layout helpers for the chapterizedCOMMENT
LOWdocs/src/pages/accessibility/AccessibilityPage.jsx201COMMENT
LOWai/mcp-server.ts3341 // building a server per request — trivial at this QPS, and we use neitherCOMMENT
LOWscripts/check-ssr-alignment.js241COMMENT
LOWscripts/check-ssr-alignment.js281COMMENT
LOWscripts/rollback-release.sh1#!/usr/bin/env bashCOMMENT
LOW.github/workflows/node.js.yml461 e2e:COMMENT
LOWsrc/components/LinkedCharts.tsx301 // `maxWidth` — so any label over ~100px causes the items to wrap oneCOMMENT
LOWsrc/components/Tooltip/Tooltip.tsx601}COMMENT
LOWsrc/components/Tooltip/Tooltip.tsx621 return undefinedCOMMENT
LOWsrc/components/Tooltip/Tooltip.tsx681 datum = datum.dataCOMMENT
LOWsrc/components/Tooltip/FlippingTooltip.tsx141 // Heuristic fallback on first render (before measurement)COMMENT
LOWsrc/components/stream/StreamXYFrame.hydration.test.tsx121 const html = renderToString(<StreamXYFrame {...baseProps} />)COMMENT
LOWsrc/components/stream/StreamXYFrame.tsx681COMMENT
LOWsrc/components/stream/StreamXYFrame.tsx1221 const hasAnnotations = (annotations && annotations.length > 0) || falseCOMMENT
LOWsrc/components/stream/useFrame.ts241 // (coalescing). The scheduler releases the token immediately before anCOMMENT
LOWsrc/components/stream/useFrame.ts261 cancelRender: () => voidCOMMENT
LOWsrc/components/stream/restylePaint.frame.test.tsx1import "../../test-utils/registerBuiltInXYPlugins"COMMENT
LOWsrc/components/stream/sampleCurvePath.test.ts41 ]COMMENT
LOWsrc/components/stream/geoPipelineHelpers.ts81): Style {COMMENT
LOWsrc/components/stream/PipelineStore.ts1421 // immediately rather than leaving the new configuration inert until aCOMMENT
LOWsrc/components/stream/SceneToSVGOrdinal.tsx221 case "glyph": {COMMENT
LOWsrc/components/stream/useHydration.ts181 cancelRender?.()COMMENT
LOWsrc/components/stream/NetworkPipelineStore.ts121 // without an index. Above QUADTREE_THRESHOLD circles we lazily build aCOMMENT
LOWsrc/components/stream/NetworkPipelineStore.ts421 sankeyWidth: 0,COMMENT
LOWsrc/components/stream/PipelineStore.stackOrder.test.ts141 // Regression: areaScene used to enter the totals branch for anyCOMMENT
LOWsrc/components/stream/OrdinalPipelineStore.ts481 }COMMENT
LOWsrc/components/stream/OrdinalPipelineStore.ts701COMMENT
LOWsrc/components/stream/OrdinalPipelineStore.ts1501 Object.assign(this.config, config)COMMENT
LOWsrc/components/stream/StreamNetworkFrame.test.tsx101 // so identity comparison isn't meaningful here. Verify the user'sCOMMENT
LOWsrc/components/stream/NetworkCanvasHitTester.ts321 if (!path || !ctx) return nullCOMMENT
55 more matches not shown…
Structural Annotation Overuse26 hits · 46 pts
SeverityFileLineSnippetContext
LOWMIGRATION.md30## Step 1: Update ReactCOMMENT
LOWMIGRATION.md41## Step 2: Install Semiotic v3COMMENT
LOWMIGRATION.md47## Step 3: Understand the Frame ChangesCOMMENT
LOWMIGRATION.md120## Step 4: Check for Removed APIsCOMMENT
LOWMIGRATION.md172## Step 5: Adopt Chart HOCs (Recommended)COMMENT
LOWMIGRATION.md228## Step 6: Use Streaming (Optional)COMMENT
LOWMIGRATION.md300## Step 7: Use Granular Imports for Smaller BundlesCOMMENT
LOWMIGRATION.md325## Step 8: TypeScript (Optional)COMMENT
LOWMIGRATION.md351## Step 9: Next.js / SSR FrameworksCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts217 // Step 1: Parse CSVCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts220 // Step 2: Transform to typed pointsCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts232 // Step 3: Calculate extentsCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts245 // Step 4: Project points (accessor application)COMMENT
LOWbenchmarks/unit/hierarchy-processing.bench.ts175 // Step 1: Build hierarchy + layoutCOMMENT
LOWbenchmarks/unit/hierarchy-processing.bench.ts181 // Step 2: Flatten to nodes/edgesCOMMENT
LOWscripts/rollback-release.sh78# Step 1: Deprecate the bad versionCOMMENT
LOWscripts/rollback-release.sh84# Step 2: Point dist-tag to previous good versionCOMMENT
LOWscripts/rollback-release.sh90# Step 3: VerifyCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts502 // Step 1: Resolve projectionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts506 // Step 2: Compute bounds and fit projectionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts512 // Step 3: Build scales objectCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts556 // Step 5: Apply distance cartogram transformCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts561 // Step 6: Apply realtime encodingsCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts569 // Step 7: Intro animation — synthesize center-origin prev scene on first renderCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts583 // Step 8: Data-change transitionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts528 // Step 4: Build scene nodesCOMMENT
Verbosity Indicators17 hits · 34 pts
SeverityFileLineSnippetContext
LOWbenchmarks/unit/large-dataset-processing.bench.ts217 // Step 1: Parse CSVCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts220 // Step 2: Transform to typed pointsCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts232 // Step 3: Calculate extentsCOMMENT
LOWbenchmarks/unit/large-dataset-processing.bench.ts245 // Step 4: Project points (accessor application)COMMENT
LOWbenchmarks/unit/hierarchy-processing.bench.ts175 // Step 1: Build hierarchy + layoutCOMMENT
LOWbenchmarks/unit/hierarchy-processing.bench.ts181 // Step 2: Flatten to nodes/edgesCOMMENT
LOWscripts/rollback-release.sh78# Step 1: Deprecate the bad versionCOMMENT
LOWscripts/rollback-release.sh84# Step 2: Point dist-tag to previous good versionCOMMENT
LOWscripts/rollback-release.sh90# Step 3: VerifyCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts502 // Step 1: Resolve projectionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts506 // Step 2: Compute bounds and fit projectionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts512 // Step 3: Build scales objectCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts556 // Step 5: Apply distance cartogram transformCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts561 // Step 6: Apply realtime encodingsCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts569 // Step 7: Intro animation — synthesize center-origin prev scene on first renderCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts583 // Step 8: Data-change transitionCOMMENT
LOWsrc/components/stream/GeoPipelineStore.ts528 // Step 4: Build scene nodesCOMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALdocs/src/pages/examples/aestheticPolicyStudio.test.js44 const hierarchy = organization.selection.selected.report.features.find(CODE
CRITICALsrc/__tests__/scenarios/chart-specs-round-trip.test.ts103 events.items.properties.effects.items.oneOf.map(CODE
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/node.js.yml406 # authored examples rather than the packaged visual harness. Keep it in anCOMMENT
MEDIUMsrc/components/charts/shared/formatUtils.ts256 // Use median gap to be robust against one-off outliersCOMMENT
MEDIUMsrc/components/charts/shared/formatUtils.test.ts106 // The local getters in the expected value make this robust in every CI TZ,COMMENT
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/src/IndexPages.jsx304 in real time with auto-generated code.CODE
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUM…cs/src/pages/examples/last-scarcity/FreedTimeWheel.jsx156 { id: "sleep", label: "Sleep", hours: 8.5, color: "#aeb9ae", source: "scaffold" },CODE
MEDIUMsrc/components/charts/custom/NetworkCustomChart.tsx169 // Selection / linked-hover wiring — the custom-chart scaffold is theCOMMENT
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/add-legend-to-hocs.sh20 # Check if createLegend import already existsCOMMENT
LOWscripts/add-legend-to-hocs.sh27 # Check if showLegend prop already existsCOMMENT
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWdocs/src/pages/playground/DonutChartPlayground.jsx36 { category: "Acme Corp", amount: 34 },CODE
LOWdocs/src/pages/playground/DonutChartPlayground.jsx64 { category: "Acme Corp", amount: 34 },CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/rollback-release.sh6# Usage:COMMENT