AI Slop Code Risk Monitor

vitejs/vite

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

Next generation frontend tooling. It's fast!

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for vitejs/vite, a TypeScript project with 83,630 GitHub stars. SynthScan examined 164,287 lines of code across 2285 source files, recording 209 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
83.6K
Stars
TypeScript
Language
164.3K
Lines of Code
2.3K
Files
209
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 6.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.6/100 · LOW

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

Agent Over-Engineering Ratio 5.1/100 · LOW

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

PR Review Velocity Impact 7.9/100 · LOW

Which changes need focused human review? 209 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 5HIGH 0MEDIUM 9LOW 195

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 209 distinct pattern matches across 7 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers173 hits · 173 pts
SeverityFileLineSnippetContext
LOWplayground/test-utils.ts273export function readDepOptimizationMetadata(CODE
LOWplayground/vitestSetupUtils.ts520function setupConsoleWarnCollector(logs: string[]) {CODE
LOWplayground/vitestSetupUtils.ts532function stripTrailingSlashIfNeeded(url: string, base: string): string {CODE
LOWplayground/dynamic-import/dep-cjs-umd/index.js2;(function webpackUniversalModuleDefinition(root, factory) {CODE
LOWplayground/backend-integration/vite.config.js9function BackendIntegrationExample() {CODE
LOWplayground/hmr/vite.config.ts94function virtualInvalidationPlugin(): Plugin {CODE
LOWplayground/ssr/src/app.js51async function renderForkedDeadlockStaticImports(rootDir) {CODE
LOWplayground/ssr/src/app.js57async function renderForkedDeadlockDynamicImports(rootDir) {CODE
LOW…nd/ssr/src/forked-deadlock/fuse-stuck-bridge-module.js6export function fuseStuckBridgeModuleExport() {CODE
LOW…d-deadlock/dynamic-imports/fuse-stuck-bridge-module.js6export function fuseStuckBridgeModuleExport() {CODE
LOWplayground/hmr-full-bundle-mode/vite.config.ts14function waitBundleCompleteUntilAccess(): Plugin {CODE
LOWplayground/css-lightningcss/vite.config.js20function testLightningcssVisitorDuringMinify() {CODE
LOWplayground/lib/__tests__/serve.ts147function setupConsoleWarnCollector() {CODE
LOWplayground/assets/index.html720 function testDynamicImportMetaUrlWithComma(name, i) {CODE
LOWplayground/assets/index.html731 function testDynamicImportMetaUrlWithQuery(name, i) {CODE
LOWplayground/assets/index.html742 function testDynamicImportMetaUrlWithTernaryOperator(name, i) {CODE
LOWplayground/js-sourcemap/foo-with-sourcemap-plugin.ts8export default function transformFooWithInlineSourceMap(): Plugin {CODE
LOWplayground/js-sourcemap/__tests__/js-sourcemap.spec.ts49function expectConsoleLogArgumentMapsToOriginalX(CODE
LOWplayground/js-sourcemap/__tests__/js-sourcemap.spec.ts116function expectVarInitMapsBackToExportConst(CODE
LOWplayground/optimize-deps/vite.config.js184function injectImportIntoOptimizedDep() {CODE
LOWdocs/guide/api-environment-runtimes.md136function createWorkerdDevEnvironment(CODE
LOWdocs/guide/api-environment-frameworks.md221function vitePluginVirtualIndexHtml(): Plugin {CODE
LOWdocs/guide/api-environment-plugins.md165function PerEnvironmentCountTransformedModulesPlugin() {CODE
LOWdocs/changes/shared-plugins-during-build.md24function CountTransformedModulesPlugin() {CODE
LOWdocs/changes/shared-plugins-during-build.md44function PerEnvironmentCountTransformedModulesPlugin() {CODE
LOWdocs/changes/shared-plugins-during-build.md65function PerEnvironmentCountTransformedModulesPlugin() {CODE
LOWdocs/_data/acknowledgements.data.ts113function parseBundledDependenciesFromLicense(licensePath: string): string[] {CODE
LOWscripts/mergeChangelog.ts101function findPreviousStableVersion(lines: string[], startIdx: number): string {CODE
LOWpackages/plugin-legacy/src/index.ts188function resolveLegacyOutputMinify(CODE
LOWpackages/plugin-legacy/src/index.ts1073function prependModenChunkLegacyGuardPlugin(): Plugin {CODE
LOWpackages/plugin-legacy/src/index.ts1110function recordAndRemovePolyfillBabelPlugin(CODE
LOWpackages/plugin-legacy/src/index.ts1126function replaceLegacyEnvBabelPlugin(): BabelPlugin {CODE
LOWpackages/plugin-legacy/src/index.ts1139function replaceModernEnvBabelPlugin(): BabelPlugin {CODE
LOWpackages/create-vite/src/index.ts1057function updateReactCompilerReadme(root: string, newBody: string) {CODE
LOWpackages/vite/rolldown.config.ts178function enableSourceMapsInWatchModePlugin(): Plugin {CODE
LOWpackages/vite/rolldown.config.ts207function externalizeDepsInWatchPlugin(): Plugin {CODE
LOWpackages/vite/rolldown.config.ts302function buildTimeImportMetaUrlPlugin(): Plugin {CODE
LOWpackages/vite/rolldown.dts.config.ts163function stringifyModuleExportName(node: ModuleExportName): string {CODE
LOWpackages/vite/rolldown.dts.config.ts267function replaceConfusingTypeNames(CODE
LOWpackages/vite/rolldown.dts.config.ts438function esmifyPostcssLoadConfigDts(): Plugin {CODE
LOWpackages/vite/src/shared/forwardConsole.ts27export function setupForwardConsoleHandler(CODE
LOWpackages/vite/src/shared/utils.ts81export function getAsyncFunctionDeclarationPaddingLineCount(): number {CODE
LOWpackages/vite/src/shared/ssrTransform.ts23export function analyzeImportedModDifference(CODE
LOWpackages/vite/src/node/external.ts35export function createIsConfiguredAsExternal(CODE
LOWpackages/vite/src/node/plugin.ts411export async function resolveEnvironmentPlugins(CODE
LOWpackages/vite/src/node/http.ts169async function getAvailableEphemeralPort(CODE
LOWpackages/vite/src/node/utils.ts736function windowsMappedRealpathSync(path: string) {CODE
LOWpackages/vite/src/node/utils.ts967export function getLocalhostAddressIfDiffersFromDNS():CODE
LOWpackages/vite/src/node/utils.ts1035export function extractHostnamesFromCerts(CODE
LOWpackages/vite/src/node/utils.ts1141export function extractHostnamesFromSubjectAltName(CODE
LOWpackages/vite/src/node/utils.ts1201function backwardCompatibleWorkerPlugins(plugins: any) {CODE
LOWpackages/vite/src/node/utils.ts1364function setupRollupOptionCompatForEnvironment(environment: any): any {CODE
LOWpackages/vite/src/node/utils.ts1375export function hasBothRollupOptionsAndRolldownOptions(CODE
LOWpackages/vite/src/node/utils.ts1976export function formatAndTruncateFileList(files: string[]): {CODE
LOWpackages/vite/src/node/deprecations.ts44export function isFutureDeprecationEnabled(CODE
LOWpackages/vite/src/node/packages.ts176export function findNearestMainPackageData(CODE
LOWpackages/vite/src/node/config.ts260function defaultCreateClientDevEnvironment(CODE
LOWpackages/vite/src/node/config.ts272function defaultCreateDevEnvironment(name: string, config: ResolvedConfig) {CODE
LOWpackages/vite/src/node/config.ts819async function loadDevToolsIntegrationPlugins(CODE
LOWpackages/vite/src/node/config.ts961export function resolveDevEnvironmentOptions(CODE
113 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALplayground/html/__tests__/html.spec.ts546 viteServer.environments.client.moduleGraph.urlToModuleMap.has(CODE
CRITICALplayground/html/__tests__/html.spec.ts551 viteServer.environments.client.moduleGraph.urlToModuleMap.has(CODE
CRITICALpackages/vite/src/node/server/middlewares/static.ts384${server.config.server.fs.allow.map((i) => `- ${i}`).join('\n')}CODE
CRITICALpackages/vite/src/node/server/middlewares/indexHtml.ts185 server.environments.client.moduleGraph.urlToModuleMap.get(moduleUrl)CODE
CRITICAL…rc/node/server/middlewares/__tests__/indexHtml.spec.ts167 server.environments.client.moduleGraph.urlToModuleMap.get('/src/main.ts')CODE
Over-Commented Block19 hits · 19 pts
SeverityFileLineSnippetContext
LOWplayground/css/vite.config.js81 css: {COMMENT
LOWplayground/ssr-deps/module-condition/module.js1// this is written in ESM but the file extension implies this is evaluated as CJS.COMMENT
LOWplayground/chunk-importmap/shared-dep.js1// CSS-only module (no JS exports) shared by multiple dynamic chunks, so it isCOMMENT
LOW…nd/lazy-compilation/__tests__/lazy-compilation.spec.ts1import type { Response, Route } from 'playwright-chromium'COMMENT
LOW…mize-deps/dynamic-use-dep-alias-using-absolute-path.js1// This is used to setup a test scenario, where dep scannerCOMMENT
LOWplayground/optimize-deps/unused-split-entry.js1import msg from '@vitejs/test-added-in-entries'COMMENT
LOW…d/optimize-deps/dep-alias-using-absolute-path/index.js1// Importing a shared dependency used by other modules,COMMENT
LOWpackages/vite/types/import-meta.d.ts1/// <reference path="./importMeta.d.ts" />COMMENT
LOWpackages/vite/src/types/ws.d.ts1// Modified and inlined to avoid extra dependencyCOMMENT
LOWpackages/vite/src/node/config.ts1361 rolldownOptions.platform = merged.esbuildOptions.platformCOMMENT
LOWpackages/vite/src/node/config.ts1381 // - alias (it probably does not work the same with `resolve.alias`)COMMENT
LOWpackages/vite/src/node/optimizer/rolldownDepPlugin.ts281 // create the Proxy in the prototype to workaround esbuild issue. Why?COMMENT
LOWpackages/vite/src/node/optimizer/optimizer.ts261 // For dev, we run the scanner and the first optimizationCOMMENT
LOWpackages/vite/src/node/optimizer/optimizer.ts581COMMENT
LOWpackages/vite/src/node/plugins/html.ts481 // position, or the newline at the end of the previous line's node.COMMENT
LOWpackages/vite/src/node/plugins/esbuild.ts281 cjs: 'cjs',COMMENT
LOWpackages/vite/src/node/server/transformRequest.ts81 options: TransformOptionsInternal,COMMENT
LOW…/node/__tests__/optimizer/discoverBeforeListen.spec.ts81 ])COMMENT
LOWpackages/vite/src/client/bundledDevHmrClient.ts381 update: Extract<HmrUpdate, { type: 'update' }>,COMMENT
Modern AI Meta-Vocabulary8 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMdocs/guide/index.md123You can also use a tool like [tiged](https://github.com/tiged/tiged) to scaffold your project with one of the templates.CODE
MEDIUMdocs/guide/ssr.md26You can also scaffold these projects locally by [running `create-vite`](./index.md#scaffolding-your-first-vite-project) CODE
MEDIUMdocs/blog/announcing-vite8.md45Play online with Vite 8 using [vite.new](https://vite.new) or scaffold a Vite app locally with your preferred framework CODE
MEDIUMdocs/blog/announcing-vite8-1.md43Play online with Vite 8.1 using [vite.new](https://vite.new) or scaffold a Vite app locally with your preferred frameworCODE
MEDIUMdocs/blog/announcing-vite7.md50Play online with Vite 7 using [vite.new](https://vite.new) or scaffold a Vite app locally with your preferred framework CODE
MEDIUMpackages/create-vite/README.md84create-vite is a tool to quickly start a project from a basic template for popular frameworks. Check out Awesome Vite foCODE
MEDIUMpackages/create-vite/README.md84create-vite is a tool to quickly start a project from a basic template for popular frameworks. Check out Awesome Vite foCODE
MEDIUMpackages/create-vite/__tests__/cli.spec.ts35// Underscore-prefixed files are renamed to dot-prefixed on scaffoldCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/guide/static-deploy-github-pages.yaml2# This file is extracted as a separate file so that renovate can update the action versionsCOMMENT
Fake / Example Data2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/vite/src/node/plugins/css.ts3503 // lightningcss always generates `url("placeholder")`COMMENT
LOWpackages/vite/src/node/plugins/css.ts3504 // (`url('placeholder')`, `url(placeholder)` is not generated)COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…kages/vite/src/node/server/middlewares/htmlFallback.ts53 // so we need to check if the file existsCOMMENT