AI Slop Code Risk Monitor

nuxt/nuxt

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

The full-stack Vue framework.

1.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for nuxt/nuxt, a TypeScript project with 61,005 GitHub stars. SynthScan examined 205,667 lines of code across 1361 source files, recording 151 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.1 (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.1
Adjusted Signal
1.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
61.0K
Stars
TypeScript
Language
205.7K
Lines of Code
1.4K
Files
151
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.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.3/100 · LOW

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

Agent Over-Engineering Ratio 2.8/100 · LOW

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

PR Review Velocity Impact 5.0/100 · LOW

Which changes need focused human review? 151 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 6HIGH 0MEDIUM 2LOW 143

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 151 distinct pattern matches across 6 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 Identifiers112 hits · 116 pts
SeverityFileLineSnippetContext
LOWbench/lib/targets.ts69export async function installFixtureDependencies (target: Target, dir: string): Promise<boolean> {CODE
LOWtest/nuxt/loading-indicator.test.ts95 async function expectNavigatesWithLoading (path: string | RouteLocationRaw, onLoad?: () => void) {CODE
LOWdocs/4.api/3.utils/define-nuxt-route-middleware.md16export function defineNuxtRouteMiddleware (middleware: RouteMiddleware): RouteMiddlewareCODE
LOWdocs/4.api/5.kit/18.dependencies.md34function ensureDependencyInstalled (names: string, options?: EnsureDependencyInstalledOptions): Promise<boolean>CODE
LOWdocs/4.api/5.kit/18.dependencies.md35function ensureDependencyInstalled (names: string[], options?: EnsureDependencyInstalledOptions): Promise<true | string[CODE
LOWpackages/vite-server/src/ssr.ts75function AppServerEnvironmentsPlugin (nuxt: Nuxt): Plugin {CODE
LOWpackages/vite-server/src/ssr.ts259function ServerRuntimeModulesPlugin (serverRuntime: NuxtServerRuntime): Plugin {CODE
LOWpackages/nitro-server/src/vite.ts98export function setupNitroViteEnvironment (nuxt: Nuxt & { _nitro?: Nitro }, nitro: Nitro, serverRuntime: NuxtServerRuntiCODE
LOWpackages/nitro-server/src/registrations.ts21export function collectServerRegistrations (nuxt: Nuxt, nitroConfig: NitroConfig): string[] {CODE
LOWpackages/nitro-server/src/utils.ts71export function getLayerNodeModulesExcludePattern (layerRoots: Iterable<string>): RegExp {CODE
LOWpackages/nitro-server/src/imports.ts100export function getNuxtServerImportsPreset (overrides: Record<string, string> = {}): Array<{ from: string, imports: striCODE
LOWpackages/nitro-server/src/index.ts1221function getDevHandlerAllowedHosts (nuxt: Nuxt): ReadonlySet<string> | true {CODE
LOWpackages/nitro-server/src/route-rules.ts15export function normalizeLegacyRouteRules (routeRules: NitroConfig['routeRules']): void {CODE
LOWpackages/nitro-server/src/compat.ts52export function resolveNitroLegacyOptions (input: boolean | NitroLegacyOptions | undefined): ResolvedNitroLegacyOptions CODE
LOWpackages/nitro-server/src/compat.ts422export function getNitroPackageResolutions (): Record<string, string> {CODE
LOWpackages/nitro-server/src/compat.ts556export function getLegacyRuntimeConfigPath (): string {CODE
LOWpackages/nitro-server/src/compat.ts1253function normalizeLegacyHandlerRoute (handler: { route?: string, middleware?: boolean, handler: string }, unrouted: striCODE
LOWpackages/nitro-server/src/compat.ts1303function createNitroFallbackResolvePlugin (nitroResolutions: Record<string, string>, conditions: () => string[] | undefiCODE
LOWpackages/nitro-server/src/compat.ts1322function createLegacyResolvePlugin (CODE
LOWpackages/nitro-server/src/auto-imports.ts122 function flushDisabledPresetReports () {CODE
LOWpackages/nitro-server/src/auto-imports.ts247export function resolveNestedServerUtilsDirs (nuxt: Nuxt): string[] {CODE
LOW…ges/nitro-server/src/runtime/compat/render-response.ts29export async function applyLegacyRenderResponse (event: H3Event, hooks: LegacyHooks, body: Pick<RenderBody, 'html'> | unCODE
LOW…ges/nitro-server/src/runtime/compat/render-response.ts175export async function applyLegacyRenderResponseTo (event: H3Event, hooks: LegacyHooks, response: Response, createResponsCODE
LOWpackages/nitro-server/src/runtime/utils/prerender.ts30export function applyIslandPrerenderHints (event: H3Event): void {CODE
LOWpackages/kit/src/template.ts275async function resolveExtensionlessTarget (absolutePath: string): Promise<string | undefined> {CODE
LOW⚡packages/kit/src/dependency.ts46export async function ensureDependencyInstalled (names: string, options?: EnsureDependencyInstalledOptions): Promise<booCODE
LOW⚡packages/kit/src/dependency.ts47export async function ensureDependencyInstalled (names: string[], options?: EnsureDependencyInstalledOptions): Promise<tCODE
LOW⚡packages/kit/src/dependency.ts48export async function ensureDependencyInstalled (names: string | string[], options: EnsureDependencyInstalledOptions = {CODE
LOWpackages/kit/src/dependency.ts142export function findPackageMissingSubpath (specifier: string, searchPaths: string[]): string | undefined {CODE
LOWpackages/kit/src/module/compatibility.ts7function resolveNuxtModuleEntryName (m: NuxtOptions['modules'][number]): string | false {CODE
LOWpackages/kit/src/module/compatibility.ts33export async function hasNuxtModuleCompatibility (module: string | NuxtModule, semverVersion: string, nuxt: Nuxt = useNuCODE
LOWpackages/kit/src/internal/jiti.ts70export function describeNativeImportFailure (error: unknown): string {CODE
LOWpackages/kit/src/internal/jiti.ts127export function shouldReportJitiFallbackOnce (filePath: string, rootDir: string, compatibilityVersion: number): boolean CODE
LOWpackages/kit/src/loader/config.ts628function reorderLocalLayersByExtends (CODE
LOW…/webpack/src/plugins/strip-invalid-pure-annotations.ts13export function stripInvalidPureAnnotations (code: string): string {CODE
LOWpackages/webpack/src/utils/config.ts22export function createWebpackConfigContext (nuxt: Nuxt): WebpackConfigContext {CODE
LOWpackages/vite/src/plugins/ssr-styles.ts45function wrapStringGenerateScopedName (CODE
LOWpackages/vite/src/plugins/ssr-styles.ts733function getStaticImportSpecifiers (program: ReturnType<Rollup.PluginContext['parse']>) {CODE
LOWpackages/vite/src/plugins/public-dirs.ts129export function useResolveFromPublicAssets () {CODE
LOWpackages/vite/src/plugins/vite-node.ts279 function collectInvalidatedSsrModules (ssrServer: ViteDevServer) {CODE
LOWpackages/vite/src/plugins/vite-node.ts385function createViteNodeSocketServer (nuxt: Nuxt, ssrServer: ViteDevServer, clientServer: ViteDevServer, invalidates: SetCODE
LOWpackages/vite/src/plugins/module-preload-polyfill.ts7export function ModulePreloadPolyfillPlugin (): Plugin {CODE
LOWpackages/vite/src/utils/optimize-deps.ts53export async function resolveOptimizeDepsInclude (nuxt: Nuxt, include: string[]): Promise<string[]> {CODE
LOWpackages/vite/src/utils/config.ts9export function resolveClientManifestFile (manifest: string | boolean | undefined) {CODE
LOWpackages/nuxt/test/compiler.test.ts213 function getFirstParsedFunctionCall (code: string, functions: RegExp): FunctionCallMetadata | null {CODE
LOWpackages/nuxt/src/core/app.ts467export function checkForCircularDependencies (_plugins: AnnotatedPlugin[]) {CODE
LOWpackages/nuxt/src/core/external-config-files.ts13export async function checkForExternalConfigurationFiles () {CODE
LOWpackages/nuxt/src/core/templates.ts703function hasActiveComponentIslands (ctx: { nuxt: { options: NuxtOptions }, app: NuxtApp }) {CODE
LOWpackages/nuxt/src/core/templates.ts711function shouldEnableComponentIslands (nuxt: { options: NuxtOptions }, app: NuxtApp) {CODE
LOWpackages/nuxt/src/core/nuxt.ts1373function warnUnresolvableGlobalCss (nuxt: Nuxt) {CODE
LOWpackages/nuxt/src/core/template-diagnostics.ts15export function setTemplateDiagnosticsRouteMatcher (nuxt: Nuxt, matcher: RouteMatcher | undefined): void {CODE
LOWpackages/nuxt/src/core/template-diagnostics.ts64function resolveServerComponentTags (components: Component[]): Set<string> {CODE
LOWpackages/nuxt/src/core/perf.ts85function getRetainedMemorySnapshot (): MemorySnapshot {CODE
LOWpackages/nuxt/src/core/plugins/prehydrate.ts9export function PrehydrateTransformPlugin () {CODE
LOWpackages/nuxt/src/core/plugins/import-protection.ts18export function createImportProtectionPatterns (nuxt: { options: NuxtOptions }, options: NuxtImportProtectionOptions) {CODE
LOWpackages/nuxt/src/core/plugins/plugin-metadata.ts48export function setPluginDependenciesForMode (nuxt: Nuxt, mode: PluginBuildMode, plugins: Array<{ src: string, dependsOnCODE
LOWpackages/nuxt/src/core/plugins/plugin-metadata.ts104function isFunctionPluginExpression (node: ESTree.Expression | ESTree.SpreadElement): boolean {CODE
LOWpackages/nuxt/src/core/plugins/template-diagnostics.ts45export function createTemplateDiagnostics (options: TemplateDiagnosticsOptions = {}): { nodeTransform: NodeTransform } {CODE
LOWpackages/nuxt/src/core/utils/parse-utils.ts152 function getParsedMemberExpression (memberExpression: ESTree.MemberExpression): Omit<FunctionCallMetadata, 'callExpresCODE
LOWpackages/nuxt/src/core/utils/parse-utils.ts267export function parseStaticExportIdentifiers (node: ESTree.ExportNamedDeclaration | ESTree.ExportDefaultDeclaration | ESCODE
52 more matches not shown…
Hallucination Indicators6 hits · 80 pts
SeverityFileLineSnippetContext
CRITICAL⚡docs/3.guide/4.modules/5.recipes-advanced.md181nuxt.options.typescript.tsConfig.include.push(resolve('./augments.d.ts'))CODE
CRITICAL⚡docs/3.guide/4.modules/5.recipes-advanced.md185nuxt.options.typescript.sharedTsConfig.include.push(resolve('./augments.d.ts'))CODE
CRITICAL⚡docs/3.guide/4.modules/5.recipes-advanced.md189nuxt.options.typescript.nodeTsConfig.include.push(resolve('./augments.d.ts'))CODE
CRITICAL⚡docs/3.guide/4.modules/5.recipes-advanced.md193nuxt.options.typescript.serverTsConfig.include.push(resolve('./augments.d.ts'))CODE
CRITICALpackages/vite/test/resolve-deep-imports.test.ts42 return plugin.resolveId.filter.id.exclude.some((re: RegExp) => re.test(id))CODE
CRITICALpackages/nuxt/src/pages/module.ts865 nuxt.options.vite.resolve.dedupe.push('vue-router')CODE
Over-Commented Block15 hits · 15 pts
SeverityFileLineSnippetContext
LOWtest/setup-env.ts21// for (const t of ['uncaughtException', 'unhandledRejection'] as const) {COMMENT
LOWtest/bundle.test.ts281 normalized = normalized.replaceAll(pattern, '')COMMENT
LOWtest/e2e/ssr-streaming.test.ts421COMMENT
LOWdocs/4.api/5.kit/1.modules.md221 onInstall (nuxt) {COMMENT
LOWdocs/6.bridge/10.configuration.md21 // vite: true,COMMENT
LOWdocs/6.bridge/10.configuration.md41 // Disable Nuxt 3 compatible `nuxtApp` interfaceCOMMENT
LOWpackages/nitro-server/src/index.ts201 overrides: async () => {COMMENT
LOWpackages/webpack/src/presets/base.ts201COMMENT
LOWpackages/webpack/src/presets/base.ts281 // name: ctx.name,COMMENT
LOWpackages/vite/src/plugins/ssr-styles.ts81 }, nuxt)COMMENT
LOWpackages/vite/src/plugins/vite-node.ts261 // most recent invalidation/HMR timestamp we've observed so we can pickCOMMENT
LOWpackages/nuxt/src/core/perf.ts141COMMENT
LOWpackages/nuxt/src/app/composables/fetch.ts121 // applicable signature. Their request parameter is left un-intersected, because intersecting aCOMMENT
LOWpackages/nuxt/src/runtime/server/renderer/index.ts721 }COMMENT
LOW.github/workflows/scorecards.yml41 with:COMMENT
Fake / Example Data14 hits · 14 pts
SeverityFileLineSnippetContext
LOWdocs/4.api/2.composables/use-head.md116const profile = ref({ name: 'John Doe' })CODE
LOWdocs/4.api/5.kit/10.templates.md229 name: 'John Doe',CODE
LOWdocs/1.getting-started/18.upgrade.md1413- <MyComponent class="placeholder" style="min-height: 200px" />CODE
LOWdocs/1.getting-started/18.upgrade.md1417+ <div class="placeholder" style="min-height: 200px"></div>CODE
LOWdocs/3.guide/5.recipes/4.sessions-and-authentication.md62 name: 'John Doe',CODE
LOWdocs/3.guide/6.going-further/1.events.md30 name: 'John Doe',CODE
LOWdocs/3.guide/6.going-further/1.events.md45 name: 'John Doe',CODE
LOWdocs/3.guide/6.going-further/1.events.md50 name: 'John Doe',CODE
LOWpackages/nuxt/src/app/components/server-placeholder.ts9 return clientNodePlaceholder ? createCommentVNode('placeholder') : createElementBlock('div')CODE
LOWpackages/nuxt/src/app/components/client-only.ts16 return el.nodeName === '#comment' && el.nodeValue === 'placeholder'CODE
LOWpackages/nuxt/src/app/components/client-only.ts23 return clientNodePlaceholder ? createCommentVNode('placeholder') : h('div')CODE
LOWpackages/nuxt/src/app/components/client-only.ts45 props: ['fallback', 'placeholder', 'placeholderTag', 'fallbackTag'],CODE
LOW…ages/nuxt/src/app/components/client-fallback.server.ts105 ssrRenderSlot(ctx.$slots, fallback ? 'fallback' : 'placeholder', {}, null, push, parent)CODE
LOW…ckages/nuxt/src/components/runtime/client-component.ts10 return clientNodePlaceholder ? createCommentVNode('placeholder') : h('div')CODE
AI Slop Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMpackages/nuxt/src/app/components/welcome.vue30<div class="antialiased bg-white dark:bg-neutral-950 dark:text-white flex flex-col items-center justify-center min-h-scrCODE
MEDIUM…/nuxt/src/compiler/plugins/keyed-function-factories.ts437 // TODO: use sth more robust for rewriting optionalsCOMMENT
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/webpack/src/webpack.ts295// TODO: implement upstream in `webpack-dev-middleware`COMMENT
LOWpackages/nuxt/src/pages/module.ts399 // TODO: implement redirect supportCOMMENT