AI Slop Code Risk Monitor

wxt-dev/wxt

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

⚡ Next-gen Web Extension Framework

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for wxt-dev/wxt, a TypeScript project with 10,681 GitHub stars. SynthScan examined 71,189 lines of code across 565 source files, recording 82 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
10.7K
Stars
TypeScript
Language
71.2K
Lines of Code
565
Files
82
Pattern Hits
2026-10-31
Scan Date
0.01
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 5.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.1/100 · LOW

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

Agent Over-Engineering Ratio 5.0/100 · LOW

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

PR Review Velocity Impact 7.4/100 · LOW

Which changes need focused human review? 82 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 3HIGH 0MEDIUM 0LOW 79

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 82 distinct pattern matches across 4 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 Identifiers75 hits · 73 pts
SeverityFileLineSnippetContext
LOWscripts/upgrade-deps.ts96async function getPackageJsonDependencies(CODE
LOWscripts/upgrade-deps.ts145function validateNoMultipleVersions(CODE
LOWpackages/wxt/src/create-server.ts194function getExternalOutputDependencies(server: WxtDevServer) {CODE
LOWpackages/wxt/src/zip.ts197function addOverridesToPackageJson(CODE
LOWpackages/wxt/src/internal/validation.ts29function validateContentScriptEntrypoint(CODE
LOWpackages/wxt/src/internal/find-entrypoints.ts198function preventDuplicateEntrypointNames(files: EntrypointInfo[]) {CODE
LOWpackages/wxt/src/internal/find-entrypoints.ts290async function getUnlistedPageEntrypoint(CODE
LOWpackages/wxt/src/internal/find-entrypoints.ts303async function getUnlistedScriptEntrypoint(CODE
LOWpackages/wxt/src/internal/find-entrypoints.ts336async function getContentScriptEntrypoint(CODE
LOWpackages/wxt/src/internal/runtime-env-entries.ts53export function getEntrypointRuntimeEnvEntries(entrypointName: string) {CODE
LOWpackages/wxt/src/internal/transform.ts50function removeUnusedTopLevelVariables(mod: ProxifiedModule): number {CODE
LOWpackages/wxt/src/internal/transform.ts136function removeUnusedTopLevelFunctions(mod: ProxifiedModule): number {CODE
LOWpackages/wxt/src/internal/generate-wxt-dir.ts144function renderPublicPathUnionMember(entry: {CODE
LOWpackages/wxt/src/internal/generate-wxt-dir.ts253async function getRuntimeEnvDeclarationEntry(): Promise<WxtDirFileEntry> {CODE
LOWpackages/wxt/src/internal/manifest.ts579export function getContentScriptCssWebAccessibleResources(CODE
LOWpackages/wxt/src/internal/manifest.ts652export function stripPathFromMatchPattern(pattern: string) {CODE
LOWpackages/wxt/src/internal/manifest.ts681function moveHostPermissionsToPermissions(CODE
LOWpackages/wxt/src/internal/detect-dev-changes.ts142export function getRelevantDevChangedFiles(CODE
LOWpackages/wxt/src/internal/builders/vite/index.ts431export function getRunnerProfileWatchIgnores(CODE
LOW…ilders/vite/plugins/remove-entrypoint-main-function.ts11export function removeEntrypointMainFunction(CODE
LOW…s/wxt/src/internal/environments/browser-environment.ts8export function getBrowserEnvironmentGlobals(): EnvGlobals {CODE
LOW…wxt/src/internal/environments/extension-environment.ts5export function createExtensionEnvironment(): Environment {CODE
LOW…wxt/src/internal/environments/extension-environment.ts9export function getExtensionEnvironmentGlobals() {CODE
LOWpackages/wxt/src/internal/builtin-modules/unimport.ts72async function getImportsDeclarationEntry(CODE
LOW…ges/wxt/src/internal/builtin-modules/escape-unicode.ts39function escapeNonCharacterUnicode(text: string): string {CODE
LOWpackages/wxt/src/internal-utils/content-script-utils.ts50export function mapWxtOptionsToContentScript(CODE
LOWpackages/wxt/src/internal-utils/content-script-utils.ts70export function mapWxtOptionsToRegisteredContentScript(CODE
LOW…ckages/wxt/src/virtual/utils/reload-content-scripts.ts50async function reloadManifestContentScriptNow(CODE
LOW…ckages/wxt/src/virtual/utils/reload-content-scripts.ts108async function reloadTabsForContentScript(contentScript: ContentScript) {CODE
LOW⚡packages/browser/src/gen/index.d.ts6147 function clearDefaultFixedFontSize(details?: { [key: string]: unknown }): Promise<void>;CODE
LOW⚡packages/browser/src/gen/index.d.ts6148 function clearDefaultFixedFontSize(callback: () => void): void;CODE
LOW⚡packages/browser/src/gen/index.d.ts6149 function clearDefaultFixedFontSize(CODE
LOW⚡packages/browser/src/gen/index.d.ts7122 function setAssistiveWindowButtonHighlighted(CODE
LOW⚡packages/browser/src/gen/index.d.ts7125 function setAssistiveWindowButtonHighlighted(CODE
LOW⚡packages/browser/src/gen/index.d.ts7135 function setCandidateWindowProperties(parameters: CandidateWindowParameter): Promise<boolean>;CODE
LOW⚡packages/browser/src/gen/index.d.ts7136 function setCandidateWindowProperties(CODE
LOW⚡packages/browser/src/gen/index.d.ts10519 function getRegisteredContentScripts(filter?: ContentScriptFilter): Promise<RegisteredContentScript[]>;CODE
LOW⚡packages/browser/src/gen/index.d.ts10520 function getRegisteredContentScripts(callback: (scripts: RegisteredContentScript[]) => void): void;CODE
LOW⚡packages/browser/src/gen/index.d.ts10521 function getRegisteredContentScripts(CODE
LOW⚡packages/browser/src/gen/index.d.ts11336 function overscanCalibrationComplete(id: string): void;CODE
LOW⚡packages/browser/src/gen/index.d.ts11346 function showNativeTouchCalibration(id: string): Promise<boolean>;CODE
LOW⚡packages/browser/src/gen/index.d.ts11347 function showNativeTouchCalibration(id: string, callback: (success: boolean) => void): void;CODE
LOW⚡packages/browser/src/gen/index.d.ts11355 function startCustomTouchCalibration(id: string): void;CODE
LOW⚡packages/browser/src/gen/index.d.ts11364 function completeCustomTouchCalibration(pairs: TouchCalibrationPairQuad, bounds: Bounds): void;CODE
LOWpackages/browser/src/gen/index.d.ts3396 function registerRecorderExtensionPlugin(CODE
LOWpackages/browser/src/gen/index.d.ts4550 function getDeviceAnnotatedLocation(): Promise<string>;CODE
LOWpackages/browser/src/gen/index.d.ts4551 function getDeviceAnnotatedLocation(callback: (annotatedLocation: string) => void): void;CODE
LOWpackages/browser/src/gen/index.d.ts4602 function exitCurrentManagedGuestSession(): Promise<void>;CODE
LOWpackages/browser/src/gen/index.d.ts4603 function exitCurrentManagedGuestSession(callback: () => void): void;CODE
LOWpackages/browser/src/gen/index.d.ts4826 function isAllowedFileSchemeAccess(): Promise<boolean>;CODE
LOWpackages/browser/src/gen/index.d.ts4827 function isAllowedFileSchemeAccess(callback: (isAllowedAccess: boolean) => void): void;CODE
LOWpackages/browser/src/gen/index.d.ts7108 function setAssistiveWindowProperties(CODE
LOWpackages/browser/src/gen/index.d.ts7111 function setAssistiveWindowProperties(CODE
LOWpackages/browser/src/gen/index.d.ts7531 function getPermissionWarningsById(id: string): Promise<string[]>;CODE
LOWpackages/browser/src/gen/index.d.ts7532 function getPermissionWarningsById(id: string, callback: (permissionWarnings: string[]) => void): void;CODE
LOWpackages/browser/src/gen/index.d.ts7557 function getPermissionWarningsByManifest(manifestStr: string): Promise<string[]>;CODE
LOWpackages/browser/src/gen/index.d.ts7558 function getPermissionWarningsByManifest(CODE
LOWpackages/browser/src/gen/index.d.ts7685 function abortAndFallbackToNativeHandler(): Promise<void>;CODE
LOWpackages/browser/src/gen/index.d.ts7686 function abortAndFallbackToNativeHandler(callback: () => void): void;CODE
LOWpackages/browser/src/gen/index.d.ts8365 function verifyTLSServerCertificate(details: VerificationDetails): Promise<VerificationResult>;CODE
15 more matches not shown…
Hallucination Indicators3 hits · 45 pts
SeverityFileLineSnippetContext
CRITICAL⚡packages/auto-icons/src/__test__/index.test.ts646 const manifestHook = mockWxt.hooks.hook.mock.calls.find(CODE
CRITICAL⚡packages/auto-icons/src/__test__/index.test.ts649 const buildHook = mockWxt.hooks.hook.mock.calls.find(CODE
CRITICAL⚡packages/auto-icons/src/__test__/index.test.ts652 const pathsHook = mockWxt.hooks.hook.mock.calls.find(CODE
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippetContext
LOWdocs/assets/extension-showcase.yml1# Add extension entries to end of the list. On the website, extensions will be sorted by a combination of users and ratiCOMMENT
LOWscripts/benchmarks/browser-startup.sh1#!/bin/bashCOMMENT
LOW…rc/virtual/content-script-isolated-world-entrypoint.ts21COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/list-unreleased-commits.sh21 # Check if the package name is in the ignored directories listCOMMENT