AI Slop Code Risk Monitor

cloudflare/capnweb

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

JavaScript/TypeScript-native, low-boilerplate, object-capability RPC system

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for cloudflare/capnweb, a TypeScript project with 4,028 GitHub stars. SynthScan examined 44,383 lines of code across 208 source files, recording 67 pattern matches distributed across 5 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-28
Last Push
4.0K
Stars
TypeScript
Language
44.4K
Lines of Code
208
Files
67
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 7.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 4.2/100 · LOW

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

PR Review Velocity Impact 8.1/100 · LOW

Which changes need focused human review? 67 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 0MEDIUM 4LOW 63

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 67 distinct pattern matches across 5 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 Block33 hits · 33 pts
SeverityFileLineSnippetContext
LOW__tests__/test-server.ts1// Copyright (c) 2025 Cloudflare, Inc.COMMENT
LOW__tests__/test-server.ts41 });COMMENT
LOW__tests__/test-server-workerd.js1// Copyright (c) 2025 Cloudflare, Inc.COMMENT
LOW__tests__/flow-control.test.ts1// Copyright (c) 2026 Cloudflare, Inc.COMMENT
LOWpackages/docs/src/components/logo-paths.ts1// GENERATED -- do not hand-edit. Run `scripts/build-wordmark.mjs`.COMMENT
LOWpackages/docs/src/pages/og/_og-card-config.ts21// elliptical accents over it, which that cannot express.COMMENT
LOWsrc/inject-workers-module.ts1// Copyright (c) 2025 Cloudflare, Inc.COMMENT
LOWsrc/types.d.ts1// Copyright (c) 2025 Cloudflare, Inc.COMMENT
LOWsrc/types.d.ts181// declared `Promise<RpcStub<T>>` return interchangeable with a `Promise<T>` return.COMMENT
LOWsrc/types.d.ts201COMMENT
LOWsrc/index-workers.ts1// Copyright (c) 2025 Cloudflare, Inc.COMMENT
LOWsrc/map.ts121 // It appears someone did something like:COMMENT
LOWsrc/core.ts221 createReadableStreamHook(stream: ReadableStream): StubHook;COMMENT
LOWsrc/core.ts261 if (pulled instanceof Promise) {COMMENT
LOWsrc/core.ts281 //COMMENT
LOWsrc/core.ts301 // The returned hook is NOT considered a promise, so will not resolve to a payload (you can useCOMMENT
LOWsrc/core.ts321 // payload.COMMENT
LOWsrc/core.ts601 }COMMENT
LOWsrc/core.ts741// through the system.COMMENT
LOWsrc/core.ts761// more efficient.COMMENT
LOWsrc/core.ts781// necessary at some point to make a list of all the stubs (including promise stubs) present inCOMMENT
LOWsrc/core.ts801 // The payload does NOT take ownership of any stubs in `value`, and but promises not to modifyCOMMENT
LOWsrc/core.ts881 // The payload value.COMMENT
LOWsrc/core.ts901 // All promises found in `value`. The locations of each promise are provided to allowCOMMENT
LOWsrc/core.ts921 //COMMENT
LOWsrc/core.ts1921 // RpcTarget. In that case, if this deep copy discovers an RpcTarget embedded in the result,COMMENT
LOWsrc/core.ts2021 Promise.reject(err);COMMENT
LOWsrc/streams.ts121 // The caller would notice when write/close/abort fails.COMMENT
LOWsrc/serialize.ts41 // Maximum number of magnitude digits permitted in a ["bigint", "..."] wire value, excluding aCOMMENT
LOWsrc/serialize.ts221// Converts fully-hydrated messages into object trees that are JSON-serializable for sending overCOMMENT
LOWsrc/serialize.ts441 // trying to create a valid RequestInit object.COMMENT
LOWsrc/serialize.ts581 // heavy or sensitive fields explicitly.COMMENT
LOWsrc/serialize.ts781// asynchronous, so we'll have to swap in a promise here. This potentially breaks e-order butCOMMENT
Hyper-Verbose Identifiers29 hits · 29 pts
SeverityFileLineSnippetContext
LOWpackages/capnweb-validate/__tests__/helpers.ts135export function createVirtualTransformContext(CODE
LOWpackages/capnweb-validate/src/index.ts71function uncompiledDecoratorMarker(CODE
LOWpackages/capnweb-validate/src/internal/core.ts537function rejectSharedArrayBufferBacking(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts283function collectServiceSurfaceNames(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts395function hasSkipRpcValidationDecorator(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts948function rejectSharedArrayBufferView(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts963function containsSharedArrayBufferType(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts986function isDirectSharedArrayBufferType(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts1226function isPlatformInheritedMember(decl: ts.Declaration): boolean {CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts1254function isWorkersLifecycleBaseSymbol(sym: ts.Symbol): boolean {CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts1263export function collectPlatformMethodNames(CODE
LOW…es/capnweb-validate/src/transform/type-introspector.ts1326function extendsRpcReferenceTarget(CODE
LOW…ges/capnweb-validate/src/transform/transform-module.ts517function getDecoratorTypeArgumentNode(CODE
LOW…ges/capnweb-validate/src/transform/transform-module.ts539function warnGenericDefaultedToAny(CODE
LOW…ges/capnweb-validate/src/transform/transform-module.ts607function rejectSkippedMethodsOutsideSurface(CODE
LOW…ges/capnweb-validate/src/transform/transform-module.ts641function collectClassSkipRpcValidationMethods(CODE
LOW…ges/capnweb-validate/src/transform/transform-module.ts709function formatUnsupportedLocation(issue: UnsupportedTypeIssue): string {CODE
LOWpackages/capnweb-validate/src/transform/context.ts88export function fileMatchesTransformFilters(CODE
LOW__type-tests__/rpc-promise-semantics.test.ts106async function assertResolvedPromiseShapes() {CODE
LOW__type-tests__/capnweb-validate.test.ts106async function assertValidatedStubShapes() {CODE
LOW__type-tests__/pipelining-and-depth-regressions.test.ts91async function assertPipelinedAndAwaitedShapes() {CODE
LOW__type-tests__/pipelining-and-depth-regressions.test.ts234async function assertUnknownInferenceShapes() {CODE
LOW__type-tests__/rpc-base-cases.test.ts184async function assertAwaitedConstructedPromiseShapes() {CODE
LOW__type-tests__/accepted-types-coverage.test.ts194async function assertAcceptedAwaitedShapes() {CODE
LOWsrc/websocket.ts28export function newWorkersWebSocketRpcResponse(CODE
LOWsrc/bun.ts39export function newBunWebSocketRpcHandler(createMain: () => RpcTargetBranded, options?: RpcSessionOptions) {CODE
LOWsrc/map.ts181function throwMapperBuilderUseError(): never {CODE
LOWsrc/core.ts659export function unwrapStubTakingOwnership(stub: RpcStub): StubHook {CODE
LOWsrc/streams.ts316function createWritableStreamFromHook(hook: StubHook): WritableStream {CODE
Decorative Section Separators3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM__type-tests__/generic-unstubify-regression.test.ts5// ── User's original repro ──────────────────────────────────────────────────────COMMENT
MEDIUM__type-tests__/generic-unstubify-regression.test.ts49// ── Generic nested object with branded target ───────────────────────────────────COMMENT
MEDIUM__type-tests__/generic-unstubify-regression.test.ts68// ── Generic tuple / readonly array params ───────────────────────────────────────COMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMpackages/docs/AGENTS.md42nimbus.json # what the scaffold and the registry installed. Committed.CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/capnweb-validate/__tests__/plugin.test.ts232 writeFileSync(join(src, "out"), "placeholder");CODE