AI Slop Code Risk Monitor

super-linter/super-linter

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

Combination of multiple linters to run as a GitHub Action or standalone

2.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for super-linter/super-linter, a Shell project with 10,644 GitHub stars. SynthScan examined 49,142 lines of code across 430 source files, recording 88 pattern matches distributed across 9 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-31
Last Push
10.6K
Stars
Shell
Language
49.1K
Lines of Code
430
Files
88
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 9.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 4.3/100 · LOW

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

PR Review Velocity Impact 10.0/100 · LOW

Which changes need focused human review? 88 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 8LOW 80

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 88 distinct pattern matches across 9 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 Identifiers41 hits · 41 pts
SeverityFileLineSnippetContext
LOWtest/testUtils.sh137function AssertArraysElementsContentMatch() {CODE
LOWtest/testUtils.sh154function CheckUnexpectedGitChanges() {CODE
LOWtest/lib/linterRulesTest.sh66function GetLinterRulesEmptyDotRulesPathTest() {CODE
LOWtest/lib/linterRulesTest.sh83function GetLinterRulesEmptyRootRulesPathTest() {CODE
LOWtest/lib/linterRulesTest.sh100function LinterRulesVariablesExportTest() {CODE
LOWtest/lib/linterRulesTest.sh142function CodespellDefaultConfigurationSkipsPackageLockFilesTest() {CODE
LOWtest/lib/detectFilesTest.sh88function RecognizeShebangWithBlankTest() {CODE
LOWtest/lib/githubEventTest.sh15function GetGithubPushEventCommitCountTest() {CODE
LOWtest/lib/githubEventTest.sh64function GetGithubPullRequestEventCommitCountTest() {CODE
LOWtest/lib/githubEventTest.sh89function GetGithubRepositoryDefaultBranchTest() {CODE
LOWtest/lib/githubEventTest.sh113function GetPullRequestHeadShaTest() {CODE
LOWtest/lib/outputTest.sh30function WriteSummaryMarkdownTableHeaderTest() {CODE
LOWtest/lib/outputTest.sh53function WriteSummaryMarkdownTableLineSuccessTest() {CODE
LOWtest/lib/outputTest.sh67function WriteSummaryMarkdownTableLineFailureTest() {CODE
LOWtest/lib/outputTest.sh81function WriteSummaryMarkdownTableFooterSuccessTest() {CODE
LOWtest/lib/outputTest.sh102function WriteSummaryMarkdownTableFooterFailureTest() {CODE
LOWtest/lib/setupSSHTest.sh21function GetGitHubSshRsaKeyFingerprintTest() {CODE
LOWtest/lib/setupSSHTest.sh41function SetupGithubComSshKeysTest() {CODE
LOWtest/lib/globalsLanguagesTest.sh13function LanguageArrayNotEmptyTest() {CODE
LOWtest/lib/linterCommandsTest.sh69function LinterCommandPresenceTest() {CODE
LOWtest/lib/linterCommandsTest.sh173function GitleaksCommandCustomLogLevelTest() {CODE
LOWtest/lib/linterCommandsTest.sh222function InitFixModeOptionsAndCommandsTest() {CODE
LOWtest/lib/validationTest.sh40function ValidateDeprecatedVariablesTest() {CODE
LOWtest/lib/validationTest.sh157function ValidateSuperLinterSummaryOutputPathTest() {CODE
LOWtest/lib/validationTest.sh253function ValidateAnsibleDirectoryTest() {CODE
LOWtest/lib/validationTest.sh295function ValidateValidationVariablesTest() {CODE
LOWtest/lib/validationTest.sh369function ValidationVariablesExportTest() {CODE
LOWtest/lib/validationTest.sh394function ValidateCheckModeAndFixModeVariablesTest() {CODE
LOWlib/functions/githubEvent.sh6function GetGithubPushEventCommitCount() {CODE
LOWlib/functions/githubEvent.sh57function GetGithubPullRequestEventCommitCount() {CODE
LOWlib/functions/githubEvent.sh93function GetGithubRepositoryDefaultBranch() {CODE
LOWlib/functions/validation.sh3function ValidateBooleanConfigurationVariables() {CODE
LOWlib/functions/validation.sh120function ValidateValidationVariables() {CODE
LOWlib/functions/validation.sh184function ValidateCheckModeAndFixModeVariables() {CODE
LOWlib/functions/validation.sh276function ValidateLocalGitRepository() {CODE
LOWlib/functions/validation.sh525function CheckovConfigurationFileContainsDirectoryOption() {CODE
LOWlib/functions/validation.sh576function ValidateSuperLinterSummaryOutputPath() {CODE
LOWlib/functions/validation.sh655function WarnIfDeprecatedValueForConfigurationVariableIsSet() {CODE
LOWlib/functions/validation.sh711function ValidateDeprecatedVariables() {CODE
LOWlib/functions/buildFileList.sh3function IssueHintForFullGitHistory() {CODE
LOWlib/functions/setupSSH.sh14function GetGitHubSshRsaKeyFingerprint() {CODE
Redundant / Tautological Comments16 hits · 24 pts
SeverityFileLineSnippetContext
LOWtest/run-super-linter-tests.sh802# Check if Super-linter created files if any file to lint contains a subshellCOMMENT
LOWtest/run-super-linter-tests.sh815# Check if super-linter leaves leftovers behindCOMMENT
LOWtest/testUtils.sh156 # Check if there are unexpected changes in the working directory:COMMENT
LOWtest/inspec/super-linter/controls/super_linter.rb258 # Check if the linter needs an option that is different from the one thatCOMMENT
LOWtest/lib/validationTest.sh599 # Set EXPECTED_GITHUB_BEFORE_SHA to the initial commit because it's the onlyCOMMENT
LOWtest/lib/validationTest.sh648 # Set EXPECTED_GITHUB_BEFORE_SHA to the initial commit because it's the onlyCOMMENT
LOWtest/lib/logTest.sh32 # Set LOG_LEVEL to a value that allows to emit all messages (as DEBUG), butCOMMENT
LOWlib/linter.sh981# Check if potentially conflicting tools are enabledCOMMENT
LOWlib/functions/linterRules.sh19 # Check if the language rules variables are definedCOMMENT
LOWlib/functions/output.sh362 # Check if there's an existing summary comment to updateCOMMENT
LOWlib/functions/validation.sh99 # Check if first char is '/'COMMENT
LOWlib/functions/validation.sh431 # Set GIT_BEFORE_SHA_HEAD to the empty tree hash because there's noCOMMENT
LOWlib/functions/detectFiles.sh20 # Check if in the users .github, or the super linter test suiteCOMMENT
LOWlib/functions/detectFiles.sh105 # Check if file has AWS Template info or AWS ReferencesCOMMENT
LOWlib/functions/buildFileList.sh363 # Check if the file is a shell script with the sh extension, without shebangCOMMENT
LOWlib/functions/buildFileList.sh609 # Check if we should lint a Go moduleCOMMENT
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMtest/lib/linterCommandsTest.sh54# Initialize the variables we're going to use to verify tests before running testsCOMMENT
MEDIUMtest/lib/validationTest.sh1139 # Create a local repository to simulate a remote.COMMENT
MEDIUMtest/lib/validationTest.sh1140 # Create the simulated remote inside ${GITHUB_WORKSPACE} to benefit from automatic cleanupCOMMENT
MEDIUMscripts/build-venvs.sh34 # Create the virtual environment without its own copy of pip, and installCOMMENT
MEDIUM.github/linters/.golangci.yml1# This file is only used in testsCOMMENT
MEDIUMlib/functions/detectFiles.sh337 # Define the path to an empty Terraform data directoryCOMMENT
Over-Commented Block13 hits · 13 pts
SeverityFileLineSnippetContext
LOWtest/linters/perl/perl_bad_1.pl1#!/usr/bin/perlCOMMENT
LOWtest/linters/perl/perl_good_1.pl1#!/usr/bin/perlCOMMENT
LOWtest/linters/r/r_good_1.r1# Each of the default linters should throw at least one lint on this fileCOMMENT
LOWtest/linters/r/r_bad_1.r1# Each of the default linters should throw at least one lint on this fileCOMMENT
LOWtest/linters/jscpd/good/r_good_1.r1# Each of the default linters should throw at least one lint on this fileCOMMENT
LOWtest/linters/jscpd/good/perl_good_1.pl1#!/usr/bin/perlCOMMENT
LOWtest/linters/checkov/bad/bad_chart/Chart.yaml1apiVersion: v2COMMENT
LOWtest/linters/checkov/bad/bad_chart/Chart.yaml21# incremented each time you make changes to the application. Versions are not expected toCOMMENT
LOWtest/linters/checkov/good/good_chart/Chart.yaml1apiVersion: v2COMMENT
LOWtest/linters/checkov/good/good_chart/Chart.yaml21# incremented each time you make changes to the application. Versions are not expected toCOMMENT
LOW.github/linters/.checkov-test-linters-success.yaml1---COMMENT
LOWTEMPLATES/.openapirc.yml1---COMMENT
LOWTEMPLATES/.markdown-lint.yml1---COMMENT
Unused Imports7 hits · 7 pts
SeverityFileLineSnippetContext
LOWtest/linters/python_ruff/python_bad_1.py1CODE
LOWtest/linters/python_ruff/python_bad_1.py2CODE
LOWtest/linters/python_isort/python_bad_1.py1CODE
LOWtest/linters/python_isort/python_bad_1.py2CODE
LOWtest/linters/python_isort/python_bad_1.py2CODE
LOWtest/linters/python_isort/python_bad_1.py3CODE
LOWtest/linters/python_isort/python_bad_1.py4CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMaction.yml12# to see a comprehensive list of all environment variables that can be passedCOMMENT
MEDIUMslim/action.yml12# to see a comprehensive list of all environment variables that can be passedCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/lib/outputTest.sh364 if ! GITHUB_API_OUT="$(CallGitHubApi "http://fake-url" "fake-token" "${LARGE_INPUT}" "POST")"; thenCODE
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/linters/jscpd/bad/python_bad_1.py186 except Exception as error:CODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/linters/jscpd/bad/python_bad_1.py120CODE