AI Slop Code Risk Monitor

vercel-labs/native

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

Toolkit for building native desktop apps

1.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for vercel-labs/native, a Zig project with 7,820 GitHub stars. SynthScan examined 229,116 lines of code across 934 source files, recording 347 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.8 (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.8
Adjusted Signal
1.8
Raw Pattern Score
100%
Time Factor
2026-10-21
Last Push
7.8K
Stars
Zig
Language
229.1K
Lines of Code
934
Files
347
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 8.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

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

Agent Over-Engineering Ratio 1.0/100 · LOW

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

PR Review Velocity Impact 8.7/100 · LOW

Which changes need focused human review? 347 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 0HIGH 1MEDIUM 33LOW 313

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 347 distinct pattern matches across 8 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.

Over-Commented Block258 hits · 252 pts
SeverityFileLineSnippetContext
LOWevals/sandbox/build-image.sh1#!/usr/bin/env bashCOMMENT
LOWevals/src/agent.ts21 "Bash(node *)",COMMENT
LOWevals/src/authoring-metrics.ts1// Authoring-joy metrics, computed from finished eval runs' transcripts.COMMENT
LOWevals/src/authoring-metrics.ts21// - teaching-error encounters: failing compliance runs that carried aCOMMENT
LOWevals/src/efficiency.ts1// Transcript-derived efficiency analysis, shared by the runner (main.ts stampsCOMMENT
LOWevals/src/efficiency.ts21//COMMENT
LOWtools/prepare-example-music.sh1#!/usr/bin/env bashCOMMENT
LOWtools/prepare-example-music.sh21# five fields: title, artist, album, date, track (the track's 1-basedCOMMENT
LOWtools/prepare-example-music.sh301# the prepared file's exact size, the cache integrity gate for streamedCOMMENT
LOWtools/bench-render-budgets.txt1# Render-benchmark p50 budgets, in microseconds per scenario.COMMENT
LOWtools/bench-render-budgets.txt21# observed 3971-5010 across healthy runs, so the budget carries extraCOMMENT
LOWtools/bench-render-budgets.txt41# README-sized doc. Theme-token syntax highlighting emits separate textCOMMENT
LOWtools/guest-mac/src/vm_host.m1// guest-mac VM engine implementation. See vm_host.h for the contract.COMMENT
LOWtools/guest-mac/src/vm_host.h1// guest-mac VM engine: Apple Virtualization.framework behind a C ABI, houseCOMMENT
LOWtools/guest-mac/src/vm_host.h61// Current engine state (guest_mac_vm_state_t). Reflects on-disk bundleCOMMENT
LOWtools/guest-mac/src/vm_host.h81// devices, and a graphics device sized for the display view. Must beCOMMENT
LOWtools/guest-mac/src/vm_host.h101COMMENT
LOWtools/linux-truth/lib.sh1#!/usr/bin/env bashCOMMENT
LOWtools/linux-truth/run-all.sh1#!/usr/bin/env bashCOMMENT
LOWtools/corewire/core.test.ts41 const ts = require("@typescript/old");COMMENT
LOWtools/corewire/invocation.test.ts1import assert from "node:assert/strict";COMMENT
LOWtests/ts-core/markup_fixture.ts1// The markup-view fixture core: a small task board whose entire view isCOMMENT
LOWtests/ts-core/markup_fixture.ts261 return null;COMMENT
LOWtests/ts-core/fixture.ts1// The end-to-end fixture core: a small status poller exercising everyCOMMENT
LOWtests/ts-core/fixture.ts441 // verify against a size the app never declared.COMMENT
LOWtests/ts-core/fixture.ts461 // frees the id for a same-id retry.COMMENT
LOWtests/compiled-core/build_core.sh1#!/bin/shCOMMENT
LOWtests/compiled-core/build_core.sh101# 1. bare-specifier resolution — the staged tree carries the SDKCOMMENT
LOWtests/compiled-core/build_core.sh141 sed -e 's|^export interface \([A-Za-z0-9_]*\) {|export type \1 = {|' \COMMENT
LOWtests/compiled-core/fence_check.sh1#!/bin/shCOMMENT
LOWdocs/src/components/code-toggle.tsx1"use client";COMMENT
LOWdocs/src/components/code-toggle.tsx21// The children are server-rendered and cross the RSC boundary as one opaqueCOMMENT
LOWdocs/src/components/ui/segmented-control.tsx1"use client";COMMENT
LOWthird_party/sqlite/sqlite3.h81# define SQLITE_APICALLCOMMENT
LOWthird_party/sqlite/sqlite3.h441**COMMENT
LOWthird_party/sqlite/sqlite3.h461#define SQLITE_CORRUPT 11 /* The database disk image is malformed */COMMENT
LOWthird_party/sqlite/sqlite3.h501#define SQLITE_ERROR_RETRY (SQLITE_ERROR | (2<<8))COMMENT
LOWthird_party/sqlite/sqlite3.h521#define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8))COMMENT
LOWthird_party/sqlite/sqlite3.h541#define SQLITE_IOERR_CODEC (SQLITE_IOERR | (36<<8))COMMENT
LOWthird_party/sqlite/sqlite3.h561#define SQLITE_READONLY_DIRECTORY (SQLITE_READONLY | (6<<8))COMMENT
LOWthird_party/sqlite/sqlite3.h601** error in future versions of SQLite.COMMENT
LOWthird_party/sqlite/sqlite3.h1241** </ul>COMMENT
LOWthird_party/sqlite/sqlite3.h1261#define SQLITE_FCNTL_HAS_MOVED 20COMMENT
LOWthird_party/sqlite/sqlite3.h2221#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */COMMENT
LOWthird_party/sqlite/sqlite3.h2701#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */COMMENT
LOWthird_party/sqlite/sqlite3.h3501** top-level SQL code.COMMENT
LOWthird_party/sqlite/sqlite3.h3521#define SQLITE_INSERT 18 /* Table Name NULL */COMMENT
LOWthird_party/sqlite/sqlite3.h4401** <dd>The maximum depth of recursion for triggers, and the maximumCOMMENT
LOWthird_party/sqlite/sqlite3.h8581*/COMMENT
LOWthird_party/sqlite/sqlite3.h8681** as the first argument to [sqlite3_test_control()].COMMENT
LOWthird_party/sqlite/sqlite3.h8701#define SQLITE_TESTCTRL_OPTIMIZATIONS 15COMMENT
LOWthird_party/sqlite/sqlite3.h11341#define CARRAY_INT32 0 /* Data is 32-bit signed integers */COMMENT
LOWexamples/soundboard/src/core.ts1// soundboard core: the soundboard's whole logic tier in the TypeScriptCOMMENT
LOWexamples/soundboard/src/core.ts21// surface (the "player" key), every report arrives on the `audio_event`COMMENT
LOWexamples/soundboard/src/core.ts101const CLOCK_TICK_MS = 250;COMMENT
LOWexamples/soundboard/src/core.ts201 /// new playback's `loaded` acknowledgment. One audio channel servesCOMMENT
LOWexamples/soundboard/src/core.ts221 /// The library page's scroll offset, echoed from markup's `on-scroll`COMMENT
LOWexamples/chatbot/src/api.ts1// Chatbot API module: the Vercel AI Gateway's OpenAI-compatibleCOMMENT
LOWexamples/chatbot/src/api.ts41COMMENT
LOWexamples/chatbot/src/core.ts1// Chatbot core: a streaming chat client for the Vercel AI Gateway'sCOMMENT
198 more matches not shown…
Modern AI Meta-Vocabulary22 hits · 66 pts
SeverityFileLineSnippetContext
MEDIUMevals/README.md41 # scaffold + skill delivery, print env + claude argv,COMMENT
MEDIUMevals/README.md42 # run the graders against the untouched scaffoldCOMMENT
MEDIUMevals/src/main.ts179 // One crashed trial (sandbox provisioning, scaffold failure, ...) shouldCOMMENT
MEDIUMevals/src/main.ts227 // In --dry-run, grader failures against the untouched scaffold are expectedCOMMENT
MEDIUMevals/src/main.ts322 // builder calls. In --dry-run this measures the untouched scaffold.COMMENT
MEDIUMevals/src/scaffold.ts56 // build.zig.zon is computed the same way as the repo's scaffold CI job.COMMENT
MEDIUMevals/src/authoring-metrics.ts12// starters compile clean, so they would grade the scaffold, not the agent.COMMENT
MEDIUMevals/src/sandbox.ts192 // linux-sandbox lane: repo-root zig build, scaffold + skill, pre-warm,COMMENT
MEDIUMpackages/core/sdk/bytes_text_methods.d.ts4// every core's program) and of the editor surface the scaffold ships; atCOMMENT
MEDIUMpackages/native-sdk/scripts/copy-framework.js22// package.json (the bundled version every scaffold pin follows), andCOMMENT
MEDIUMpackages/native-sdk/scripts/check-version-sync.js6// the version every TS scaffold, example and test app pin follows), and theCOMMENT
MEDIUMpackages/native-sdk/scripts/check-version-sync.js97// exactly — half-bumped, a published CLI would scaffold pins npm cannotCOMMENT
MEDIUMpackages/native-sdk/scripts/sync-version.js15// scaffold pins (templates read the bundled manifest) and the editor copyCOMMENT
MEDIUMpackages/native-sdk/scripts/sync-version.js118// scaffold's, so a post-publish `npm install` resolves the same contentCOMMENT
MEDIUM.github/workflows/ci.yml93 # The default TypeScript scaffold must link a signed UIKit dev bundleCOMMENT
MEDIUM.github/workflows/ci.yml399 # The scaffold default is the TypeScript core; its frontend andCOMMENT
MEDIUM.github/workflows/ci.yml402 # No WebKitGTK dev package, same as linux-canvas-smoke: the scaffoldCOMMENT
MEDIUM.github/workflows/ci.yml513 # The default scaffold is a TypeScript core: its build runs theCOMMENT
MEDIUM.github/workflows/ci.yml524 # Slim scaffold: no build files — the CLI's generated graph drives it.COMMENT
MEDIUM.github/workflows/ci.yml548 # Every scaffold ships a CI workflow; parse it as real YAML.COMMENT
MEDIUM.github/scripts/linux-dev-smoke.sh2# Linux DEBUG-scaffold smoke under Xvfb — the `native dev` shape, pinned.COMMENT
MEDIUM.github/scripts/linux-dev-smoke.sh68# ---- scaffold the default template (ts-core, native frontend) --------------COMMENT
Hyper-Verbose Identifiers42 hits · 45 pts
SeverityFileLineSnippetContext
LOWexamples/chatbot/src/api.ts79export function encodeChatRequestWithinLimit(CODE
LOWpackages/core/sdk/text.ts197export function sanitizedSingleLineTextInputEvent(event: TextInputEvent): TextInputEvent | null {CODE
LOWpackages/core/sdk/text.ts365export function textWordSelectionAtOffset(text: Uint8Array, offset: number): TextSelection {CODE
LOWpackages/core/sdk/text.ts382export function textLineSelectionAtOffset(text: Uint8Array, offset: number): TextSelection {CODE
LOWpackages/core/sdk/text.ts574function deleteWordBackwardTextEdit(state: TextEditState, capacity: number): TextEditState | null {CODE
LOWpackages/core/sdk/text.ts593function deleteWordForwardTextEdit(state: TextEditState, capacity: number): TextEditState | null {CODE
LOWpackages/core/sdk/text.ts638function deleteToLineStartTextEdit(state: TextEditState, capacity: number): TextEditState | null {CODE
LOW⚡packages/core/sdk/text.d.ts64export declare function sanitizedSingleLineTextInputEvent(event: TextInputEvent): TextInputEvent | null;CODE
LOW⚡packages/core/sdk/text.d.ts74export declare function textWordSelectionAtOffset(text: Uint8Array, offset: number): TextSelection;CODE
LOW⚡packages/core/sdk/text.d.ts76export declare function textLineSelectionAtOffset(text: Uint8Array, offset: number): TextSelection;CODE
LOWpackages/core/sdk/internal/markdown_policy.ts835function nscvMarkdownContentPolicy(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/automation_interactions.ts5export function nscvAutomationInteractions(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/canvas_presentation_lifecycle.ts3function nscvCanvasPresentationLifecycle(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/service_contract.ts102function isServiceCancellationType(tast: TypedAst, node: ts.TypeNode | undefined): boolean {CODE
LOWpackages/core/src/service_contract.ts117function explicitThrowIsKindTagged(tast: TypedAst, expr: ts.Expression): boolean {CODE
LOWpackages/core/src/service_contract.ts174function supportedOperationIdentifier(name: string): boolean {CODE
LOWpackages/core/src/service_contract.ts338function emitServiceClientDocument(document: {CODE
LOWpackages/core/src/service_contract.ts408function emitServiceClientDeclarations(document: {CODE
LOWpackages/core/src/canvas_scene_observation.ts7function nscvCanvasSceneObservation(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/canvas_frame_coordination.ts3function nscvCanvasFrameCoordination(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/sqlite_codegen.ts419function hasTopLevelCompoundSelect(sql: string): boolean {CODE
LOWpackages/core/src/sqlite_codegen.ts478function topLevelSelectExpressions(sql: string): string[] {CODE
LOWpackages/core/src/sqlite_codegen.ts713export function generatedDeclarationFragments(analysis: SqliteAnalysis): { types: string[]; cmds: string[]; subs: stringCODE
LOW⚡packages/core/src/control_appearance.ts36function nscvAppearanceWriteVisual(visual: NscAppearanceVisual): Uint8Array {CODE
LOW⚡packages/core/src/control_appearance.ts44function nscvAppearanceNonNegative(value: number, numeric = 0): number { if (Number.isNaN(value)) return 0; if (value ==CODE
LOW⚡packages/core/src/control_appearance.ts52function nscvAppearanceTransparent(): NscAppearanceColor { return new Uint8Array(16); }CODE
LOWpackages/core/src/control_appearance.ts75function nscvAppearanceControlState(c: NscAppearanceContext, fallback: NscAppearanceColor): NscAppearanceColor {CODE
LOWpackages/core/src/control_appearance.ts124function nscvAppearanceButtonBorder(c: NscAppearanceContext): NscAppearanceColor {CODE
LOWpackages/core/src/control_appearance.ts140function nscvAppearanceBadgeBackground(c: NscAppearanceContext): NscAppearanceColor {CODE
LOWpackages/core/src/status_validation.ts65function nscvStatusPresentationError(input: Uint8Array, value: NscvStatusPresentation): number {CODE
LOWpackages/core/src/view_components.ts651function nscvKeyboardParticipation(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/view_components.ts1573function nscvTextCompositionHistory(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/control_payloads.ts67function nscvControlPayloadGeometry(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/runtime_policy.ts2699function requestCoordinationPolicy(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/runtime_policy.ts3086function componentCoordinationPolicy(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/runtime_policy.ts3339export function snapshotCoordinationPolicy(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/runtime_policy.ts3562export function snapshotSerializationPolicy(request: Uint8Array): Uint8Array {CODE
LOWpackages/core/src/sqlite_runtime_policy.ts143export function relationalTableReferences(sql: string): readonly RelationalTableReference[] {CODE
LOWpackages/core/src/text_run_layout.ts8function nscvTextRunSequenceLength(byte: number): nscContracts.NoThrow<nscContracts.Int32> { return (byte & 128) === 0 ?CODE
LOWpackages/core/src/widget_presentation.ts29function nscvPresentationTransform(c: NscPresentationContext, slot: number, motion: boolean, preview: boolean, outer: NsCODE
LOWpackages/core/src/widget_presentation.ts107function nscvPresentationPutTransform(w: DataView, at: number, t: NscRenderAffine | null): void {CODE
LOWpackages/native-sdk/scripts/check-runtime-types.js137function bridgePlatformFeatureAliases() {CODE
AI Slop Vocabulary10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMdocs/src/components/component-index-grid.tsx34 #0a0a0a dark) keep any rounding slivers seamless. */}COMMENT
MEDIUMexamples/mobile-canvas/ios/verify_layout.sh162# ------------------------------------------- XCUITest rotation harnessCOMMENT
MEDIUMscripts/mobile-e2e.sh142# ---- the battery harness ----------------------------------------------------COMMENT
MEDIUMscripts/mobile-e2e.sh206# floor is the EMBEDDER contract; this harness is lane tooling.COMMENT
MEDIUMscripts/gate.sh71# the --perf harness it is headless, in-process, and seconds-long once theCOMMENT
MEDIUMscripts/perf-gpu-dashboard.sh5# load-tolerant latency sample; this harness measures a distribution:COMMENT
MEDIUMscripts/perf-gpu-dashboard.sh17# 4. Starts one harness-controlled retained animation and requires a 60 Hz-classCOMMENT
MEDIUMscripts/perf-gpu-dashboard.sh231# harness-controlled loop even when the operator prefers reduced productCOMMENT
MEDIUMscripts/perf-gpu-dashboard.sh233# input until the harness explicitly stops it.COMMENT
MEDIUMpackages/core/src/infer.ts925 // Definitely-float sources: round/sqrt of NaN/Infinity is not anCOMMENT
Fake / Example Data9 hits · 9 pts
SeverityFileLineSnippetContext
LOWtests/platform/appkit_accessibility.m52 @"placeholder": present(e.accessibilityPlaceholderValue), @"min": present(e.accessibilityMinValue), @"max": presCODE
LOWdocs/src/lib/component-vocab.json324 "name": "placeholder",CODE
LOWpackages/core/test/view_frontend.test.ts26 for (const field of ["text", "label", "placeholder", "icon"]) if (item[field + "Bytes"] !== undefined) {CODE
LOWpackages/core/test/markup_values.test.ts238 const initial = (raw: string | Uint8Array, aware: number, name: string) => new Packet(31).word(0).blob(raw).word(awareCODE
LOWpackages/core/test/markup_values.test.ts240 for (const name of ["text", "placeholder", "label"]) assert.equal(initial(raw, 1, name).action, 81);CODE
LOWpackages/core/src/markup_elements.ts113 if (a11y === 3 && !nsceNonblank(node, "label") && !nsceNonblank(node, "placeholder") && !(schemaText && hasName)) { nsCODE
LOWpackages/core/src/view_frontend.ts1000 } else if (["label", "text", "placeholder", "command"].includes(name)) {CODE
LOWpackages/core/src/view_frontend.ts1002 if (name === "placeholder" && !["input", "text-field", "search-field", "textarea", "combobox", "select"].includeCODE
LOWpackages/core/src/view_evaluator.ts168 case "placeholder": node.placeholder = nscvdString(value); return;CODE
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWexamples/mobile-canvas/ios/verify_layout.sh20# Usage:COMMENT
LOWexamples/mobile-canvas/ios/run.sh7# Usage:COMMENT
LOWexamples/mobile-canvas/ios/verify_input.sh21# Usage:COMMENT
LOWexamples/mobile-canvas/android/run.sh19# Usage:COMMENT
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtools/corewire/core_emission.ts40 print(text: string, args: string[]): void { this.out += formatCode(text, args); }CODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/release.yml248 # =============================================================COMMENT