AI Slop Code Risk Monitor

PrivateBin/PrivateBin

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

A minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.

2.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for PrivateBin/PrivateBin, a PHP project with 8,722 GitHub stars. SynthScan examined 51,114 lines of code across 192 source files, recording 101 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 2.3 (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.

2.3
Adjusted Signal
2.3
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
8.7K
Stars
PHP
Language
51.1K
Lines of Code
192
Files
101
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 9.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.0/100 · LOW

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

Agent Over-Engineering Ratio 8.8/100 · LOW

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

PR Review Velocity Impact 10.3/100 · LOW

Which changes need focused human review? 101 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 2MEDIUM 0LOW 99

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 101 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 Identifiers86 hits · 94 pts
SeverityFileLineSnippetContext
LOWjs/zlib-1.3.2.js1async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENCODE
LOWjs/privatebin.js3052 function printDragAndDropFileNames(fileNames) {CODE
LOWjs/privatebin.js5710 function handleCopyLinkButtonClick() {CODE
LOWjs/test/emailTemplateTest.js27function buildEmailDomWithShortUrl() {CODE
LOWtst/ModelTest.php275 public function testCommentDuplicateOtherParent()CODE
LOWtst/ModelTest.php308 public function testCommentNonexistentParent()CODE
LOWtst/ModelTest.php417 public function testInvalidCommentDeletedPaste()CODE
LOWtst/ModelTest.php499 public function testCommentWithDisabledVizhash()CODE
LOW⚡tst/FilterTest.php8 public function testFilterMakesTimesHumanlyReadable()CODE
LOW⚡tst/FilterTest.php16 public function testFilterFailTimesHumanlyReadable()CODE
LOW⚡tst/FilterTest.php23 public function testFilterMakesSizesHumanlyReadable()CODE
LOWtst/MigrateTest.php85 public function testDamagedSourcePasteIsPreserved()CODE
LOWtst/TemplateSwitcherTest.php30 public function testSetAvailableTemplates()CODE
LOWtst/TemplateSwitcherTest.php62 public function testGetAvailableTemplates()CODE
LOWtst/JsonApiTest.php366 public function testShortenViaShlinkFailureHttp($baseUri)CODE
LOWtst/JsonApiTest.php392 public function testShortenViaShlinkSuccessButMissingShortUrl($baseUri)CODE
LOWtst/JsonApiTest.php437 public function testShortenViaYourlsFailure()CODE
LOWtst/JsonApiTest.php454 public function testShortenViaShlinkFailure()CODE
LOWtst/AdministrationOptionsTest.php17 public function testRejectsAmbiguousArguments($arguments)CODE
LOWtst/ControllerTest.php80 public function testViewLanguageSelection()CODE
LOWtst/ControllerTest.php100 public function testViewForceLanguageDefault()CODE
LOWtst/ControllerTest.php121 public function testViewForceRegionalLanguageDefault()CODE
LOWtst/ControllerTest.php222 public function testCreateInvalidTimelimit()CODE
LOWtst/ControllerTest.php395 public function testCreateValidExpireWithDiscussion()CODE
LOWtst/ControllerTest.php483 public function testCreateInvalidOpenDiscussion()CODE
LOWtst/ControllerTest.php634 public function testCreateCommentDiscussionDisabled()CODE
LOWtst/ControllerTest.php661 public function testCreateCommentInvalidPaste()CODE
LOWtst/ControllerTest.php685 public function testCreateDuplicateComment()CODE
LOWtst/ControllerTest.php928 public function testDeleteInvalidBurnAfterReading()CODE
LOWtst/RequestTest.php208 public function testPostInvalidRoutingParameters($parameters)CODE
LOWtst/RequestTest.php221 public function provideInvalidRoutingParameters()CODE
LOWtst/RequestTest.php247 public function testReadWithXhtmlNegotiation()CODE
LOWtst/RequestTest.php261 public function testApiReadWithNegotiation()CODE
LOWtst/RequestTest.php275 public function testReadWithFailedNegotiation()CODE
LOWtst/Bootstrap.php350 public static function updateSubresourceIntegrity(): voidCODE
LOWtst/ViewTest.php81 public function testTemplateRendersCorrectly()CODE
LOWtst/AdministrationEmptyDirsTest.php33 public function testEmptyDirsSupportsStoragePathsWithSpaces()CODE
LOW⚡tst/ConfigurationTest.php43 public function testHandleFreshConfigFile()CODE
LOW⚡tst/ConfigurationTest.php50 public function testHandleMissingConfigFile()CODE
LOW⚡tst/ConfigurationTest.php59 public function testHandleBlankConfigFile()CODE
LOW⚡tst/ConfigurationTest.php67 public function testHandleMinimalConfigFile()CODE
LOWtst/MigrateWriteFailureTest.php43 public function testSourceIsPreservedWhenDestinationWriteFails()CODE
LOWtst/MigrateWriteFailureTest.php58 public function testSourceIsPreservedWhenDestinationCommentWriteFails()CODE
LOWtst/MigrateForceOverwriteTest.php42 public function testForceReplacesPasteAndDiscussion()CODE
LOW⚡tst/I18nTest.php53 public function testCookieLanguageDeDetection()CODE
LOW⚡tst/I18nTest.php63 public function testBrowserLanguageDeDetection()CODE
LOW⚡tst/I18nTest.php73 public function testBrowserLanguageFrDetection()CODE
LOW⚡tst/I18nTest.php83 public function testEqualQualityPreservesBrowserOrder()CODE
LOW⚡tst/I18nTest.php91 public function testBulgarianMonthExpirationTranslation()CODE
LOWtst/I18nTest.php106 public function testBrowserLanguageLtDetection()CODE
LOW⚡tst/I18nTest.php120 public function testBrowserLanguageNoDetection()CODE
LOW⚡tst/I18nTest.php130 public function testBrowserLanguageOcDetection()CODE
LOW⚡tst/I18nTest.php140 public function testBrowserLanguageZhDetection()CODE
LOW⚡tst/I18nTest.php150 public function testBrowserLanguageZhHantDetection()CODE
LOWtst/I18nTest.php171 public function testBrowserLanguagePlDetection()CODE
LOWtst/I18nTest.php186 public function testBrowserLanguageRuDetection()CODE
LOWtst/I18nTest.php197 public function testBrowserLanguageSlDetection()CODE
LOWtst/I18nTest.php212 public function testBrowserLanguageCsDetection()CODE
LOWtst/I18nTest.php223 public function testInvalidBrowserLanguageQualityIsIgnored()CODE
LOWtst/I18nTest.php229 public function testBrowserLanguageAnyDetection()CODE
26 more matches not shown…
Fake / Example Data11 hits · 11 pts
SeverityFileLineSnippetContext
LOWjs/privatebin.js2812 placeholder = document.getElementById('placeholder');CODE
LOWjs/test/PasteViewer.js11 '<div id="placeholder" class="hidden">+++ no document text +++</div>' +CODE
LOWjs/test/PasteViewer.js48 document.getElementById('placeholder').classList.contains('hidden') &&CODE
LOWjs/test/PasteViewer.js69 !document.getElementById('placeholder').classList.contains('hidden') &&CODE
LOWjs/test/PasteViewer.js89 document.getElementById('placeholder').classList.contains('hidden') &&CODE
LOWjs/test/PasteViewer.js145 '<div id="placeholder" class="hidden">+++ no document text ' +CODE
LOWjs/test/CopyToClipboard.js23 '<div id="placeholder" class="hidden">+++ no document text ' +CODE
LOWjs/test/CopyToClipboard.js65 '<div id="placeholder">+++ no document text ' +CODE
LOWjs/test/Controller.js30 <div id="placeholder" class="hidden"></div>CODE
LOWjs/test/Editor.js24 '<div id="placeholder" class="hidden">+++ no document text +++</div>' +CODE
LOWtpl/bootstrap5.php480 <div id="placeholder" class="col-md-12 hidden"><?php echo I18n::_('+++ no document text +++'); ?></div>CODE
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHcfg/conf.sample.php283; apikey = "your_api_key"CODE
HIGHcfg/conf.sample.php294; apikey = "your_api_key"CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWrobots.txt1# "A robots.txt a day keeps the robots away."COMMENT
LOW.github/workflows/codacy-analysis.yml41 with:COMMENT