AI Slop Code Risk Monitor

pion/webrtc

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

Pure Go implementation of the WebRTC API

1.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for pion/webrtc, a Go project with 16,867 GitHub stars. SynthScan examined 79,331 lines of code across 371 source files, recording 96 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-29
Last Push
16.9K
Stars
Go
Language
79.3K
Lines of Code
371
Files
96
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 4.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.5/100 · LOW

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

Agent Over-Engineering Ratio 0.1/100 · LOW

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

PR Review Velocity Impact 6.0/100 · LOW

Which changes need focused human review? 96 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 1LOW 95

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 96 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.

Over-Commented Block84 hits · 72 pts
SeverityFileLineSnippetContext
LOWsettingengine.go221// it only works if DetachDataChannels is enabled.COMMENT
LOWsettingengine.go321COMMENT
LOWsettingengine.go341// The public IP address will be used for the host candidate in the SDP.COMMENT
LOWicecandidatetype.go21 // candidate obtained by binding to a specific port from an IP address onCOMMENT
LOWpeerconnectionstate.go21 // "checking" state and none of them is in the "failed" state.COMMENT
LOWdatachannel_js.go301// value, it will not change.COMMENT
LOWconfiguration.go1// SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>COMMENT
LOWconfiguration.go21COMMENT
LOWconfiguration.go41 // handshake, which establishes which certificates are allowed. TheCOMMENT
LOWbundlepolicy.go21COMMENT
LOWofferansweroptions.go1// SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>COMMENT
LOWpeerconnection_js.go181 // if len(configuration.Certificates) != len(existingConfiguration.Certificates) {COMMENT
LOWmimetype.go1// SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>COMMENT
LOWmimetype.go21 MimeTypeVP9 = "video/VP9"COMMENT
LOWtrack_local.go101COMMENT
LOWwebrtc.go1// SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>COMMENT
LOWdatachannelinit.go1// SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>COMMENT
LOWstats.go341 FIRCount uint32 `json:"firCount"`COMMENT
LOWstats.go361 // can be calculated by dividing the JitterBufferDelay with the JitterBufferEmittedCount.COMMENT
LOWstats.go381COMMENT
LOWstats.go401 // Does not exist for video.COMMENT
LOWstats.go441 // TotalDecodeTime is the total number of seconds that have been spent decoding the FramesDecodedCOMMENT
LOWstats.go521COMMENT
LOWstats.go541COMMENT
LOWstats.go561 AverageRTCPInterval float64 `json:"averageRtcpInterval"`COMMENT
LOWstats.go581 FramesReceived uint32 `json:"framesReceived"`COMMENT
LOWstats.go601COMMENT
LOWstats.go701COMMENT
LOWstats.go761 // been discarded due to socket errors, i.e. a socket error occurred when handingCOMMENT
LOWstats.go781 // which the statistics were generated by the local endpoint.COMMENT
LOWstats.go801 // FrameHeight represents the height of the last encoded frame. The resolution of theCOMMENT
LOWstats.go821COMMENT
LOWstats.go841 // a packet is emitted from the RTP packetizer until it is handed over to the OS network socket.COMMENT
LOWstats.go861 // The counter is initially zero and increases when the resolution goes up or down.COMMENT
LOWstats.go1081 // PacketsSent is the total number of RTP packets sent for this SSRC.COMMENT
LOWstats.go1101 // reasons, including full buffer or no available memory.COMMENT
LOWstats.go1161 // by inspecting the same underlying object.COMMENT
LOWstats.go1221 // the sound pressure level from 0 dBov.COMMENT
LOWstats.go1241 EchoReturnLoss float64 `json:"echoReturnLoss"`COMMENT
LOWstats.go1341 // Timestamp is the timestamp associated with this object.COMMENT
LOWstats.go1361 SynthesizedSamplesDuration float64 `json:"synthesizedSamplesDuration"`COMMENT
LOWstats.go1401 // Type is the object's StatsTypeCOMMENT
LOWstats.go1561 //COMMENT
LOWstats.go1581 // V bit in the extension header, as defined in [RFC6464].COMMENT
LOWstats.go1601 TotalSamplesSent uint64 `json:"totalSamplesSent"`COMMENT
LOWstats.go1621COMMENT
LOWstats.go1641COMMENT
LOWstats.go1661 // e.g slide changes in the streamed presentation. If a huge frame is also a key frame,COMMENT
LOWstats.go1761 // Type is the object's StatsTypeCOMMENT
LOWstats.go1781 // is 0.5, the AudioLevel is expected to be half that value.COMMENT
LOWstats.go1801 // Can be used with TotalAudioEnergy to compute an average audio level over different intervals.COMMENT
LOWstats.go1821 JitterBufferDelay float64 `json:"jitterBufferDelay"`COMMENT
LOWstats.go1861 // FrameWidth represents the width of the last processed frame for this track.COMMENT
LOWstats.go1881 //COMMENT
LOWstats.go1901COMMENT
LOWstats.go2141 Type StatsType `json:"type"`COMMENT
LOWstats.go2181 // not including headers or padding.COMMENT
LOWstats.go2201COMMENT
LOWstats.go2221 // that are sent in order to verify consent. The average round trip time canCOMMENT
LOWstats.go2241 // IP or other transport layers like TCP or UDP. It is similar to the TIAS definedCOMMENT
24 more matches not shown…
Fake / Example Data7 hits · 8 pts
SeverityFileLineSnippetContext
LOWpeerconnection_js_test.go81 Credential: "placeholder",CODE
LOWpeerconnection_js_test.go87 Credential: "placeholder",CODE
LOWiceserver_test.go26 Credential: "placeholder",CODE
LOWiceserver_test.go32 Credential: "placeholder",CODE
LOW⚡iceserver_test.go99 []byte(`{"urls":"NOTAURL","username":"unittest","credential":"placeholder","credentialType":"password"}`),CODE
LOW⚡iceserver_test.go100 []byte(`{"urls":["turn:[2001:db8:1234:5678::1]?transport=udp"],"username":"unittest","credential":"placeholder","credCODE
LOW⚡iceserver_test.go101 []byte(`{"urls":["turn:[2001:db8:1234:5678::1]?transport=udp"],"username":6,"credential":"placeholder","credentialTypCODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsdp.go114 // Essentially lines like `a=ssrc-group:FID 2231627014 632943048` are processed by this sectionCOMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWexamples/sctp-interleaving-inspect/index.html344 function waitForIceGatheringComplete(peer) {CODE
LOWexamples/sctp-interleaving-inspect/index.html452 function recordServerPressureProbe(message) {CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWgathering_complete_promise.go21 // promise might have been created after the gathering is finished. Therefore, we need to check if the ICE gatheringCOMMENT
Redundant / Tautological Comments1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.golangci.yml28 - godot # Check if comments end in a periodCODE