AI Slop Code Risk Monitor

tektoncd/pipeline

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

A cloud-native Pipeline resource.

1.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for tektoncd/pipeline, a Go project with 9,093 GitHub stars. SynthScan examined 395,763 lines of code across 1461 source files, recording 486 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.4 (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.4
Adjusted Signal
1.4
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
9.1K
Stars
Go
Language
395.8K
Lines of Code
1.5K
Files
486
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 6.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 6.5/100 · LOW

Which changes need focused human review? 486 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 21LOW 464

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 486 distinct pattern matches across 10 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 Block430 hits · 425 pts
SeverityFileLineSnippetContext
LOWDEVELOPMENT.md581If you want to debug your controller you first need to update its deployment configuration and comment the probes. If yoCOMMENT
LOWcmd/entrypoint/namespaces_test.go21import (COMMENT
LOWtest/e2e-common.sh1#!/usr/bin/env bashCOMMENT
LOWtest/artifacts_test.go1//go:build e2eCOMMENT
LOWtest/metrics_otel_test.go281COMMENT
LOWtest/step_when_test.go1//go:build e2eCOMMENT
LOWtest/e2e-tests.sh1#!/usr/bin/env bashCOMMENT
LOWtest/pipelinerun_pinp_test.go161 } else {COMMENT
LOWtest/presubmit-tests.sh1#!/usr/bin/env bashCOMMENT
LOWtest/e2e-tests-upgrade.sh1#!/usr/bin/env bashCOMMENT
LOW…ustom-task-ctrls/wait-task-beta/config/controller.yaml121 app.kubernetes.io/instance: defaultCOMMENT
LOW…h-timeout/config/resolver_with_timeout_deployment.yaml1# Copyright 2024 The Tekton AuthorsCOMMENT
LOWconfig/config-info.yaml1# Copyright 2021 The Tekton AuthorsCOMMENT
LOWconfig/webhook.yaml1# Copyright 2020 The Tekton AuthorsCOMMENT
LOWconfig/webhook.yaml101 value: config-observabilityCOMMENT
LOWconfig/events.yaml1# Copyright 2023 The Tekton AuthorsCOMMENT
LOWconfig/config-tracing.yaml1# Copyright 2023 The Tekton AuthorsCOMMENT
LOWconfig/config-tracing.yaml41 # to users that `kubectl edit` this config map.COMMENT
LOWconfig/config-feature-flags.yaml1# Copyright 2019 The Tekton AuthorsCOMMENT
LOWconfig/config-feature-flags.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-feature-flags.yaml41 # accounts for secrets matching a specified format and automaticallyCOMMENT
LOWconfig/config-feature-flags.yaml61 # running. For clusters that use injected sidecars, setting thisCOMMENT
LOWconfig/config-feature-flags.yaml81 # config-events ConfigMap. This flag only affects CustomRuns; it has no effect onCOMMENT
LOWconfig/config-feature-flags.yaml101 # "sidecar-logs" is now a beta feature.COMMENT
LOWconfig/config-feature-flags.yaml121 # This feature is in preview mode and not implemented yet. Please check #7693 for updates.COMMENT
LOWconfig/config-feature-flags.yaml141 # For advanced tuning of backoff parameters, update the 'wait-exponential-backoff' ConfigMap.COMMENT
LOWconfig/config-feature-flags.yaml161 #COMMENT
LOWconfig/config-spire.yaml1# Copyright 2022 The Tekton AuthorsCOMMENT
LOWconfig/config-spire.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-spire.yaml41 #COMMENT
LOWconfig/controller.yaml1# Copyright 2019 The Tekton AuthorsCOMMENT
LOWconfig/webhook-hpa.yaml1# Copyright 2020 The Tekton AuthorsCOMMENT
LOWconfig/config-observability.yaml1# Copyright 2019 The Tekton AuthorsCOMMENT
LOWconfig/config-observability.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-observability.yaml41 # OpenTelemetry Metrics ConfigurationCOMMENT
LOWconfig/config-observability.yaml61 #COMMENT
LOWconfig/config-leader-election-controller.yaml1# Copyright 2020 Tekton Authors LLCCOMMENT
LOWconfig/config-leader-election-controller.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-leader-election-controller.yaml41 # renew-deadline is how long a leader will try to renew the lease beforeCOMMENT
LOWconfig/200-clusterrole.yaml1# Copyright 2020-2022 The Tekton AuthorsCOMMENT
LOWconfig/201-clusterrolebinding.yaml1# Copyright 2019 The Tekton AuthorsCOMMENT
LOWconfig/config-wait-exponential-backoff.yaml1# Copyright 2025 The Tekton AuthorsCOMMENT
LOWconfig/201-rolebinding.yaml1# Copyright 2020 The Tekton AuthorsCOMMENT
LOWconfig/200-role.yaml1# Copyright 2020 The Tekton AuthorsCOMMENT
LOWconfig/clusterrole-aggregate-edit.yaml1# Copyright 2019-2022 The Tekton AuthorsCOMMENT
LOWconfig/config-leader-election-events.yaml1# Copyright 2023 Tekton Authors LLCCOMMENT
LOWconfig/config-leader-election-events.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-leader-election-events.yaml41 # renew-deadline is how long a leader will try to renew the lease beforeCOMMENT
LOWconfig/config-logging.yaml1# Copyright 2019 Tekton Authors LLCCOMMENT
LOWconfig/clusterrole-aggregate-view.yaml1# Copyright 2019-2022 The Tekton AuthorsCOMMENT
LOWconfig/config-events.yaml1# Copyright 2023 The Tekton AuthorsCOMMENT
LOWconfig/config-events.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-events.yaml41 # the only format supported today is "tektonv1". An empty string is notCOMMENT
LOWconfig/500-webhooks.yaml1# Copyright 2020 The Tekton AuthorsCOMMENT
LOWconfig/config-defaults.yaml1# Copyright 2019 The Tekton AuthorsCOMMENT
LOWconfig/config-defaults.yaml21 app.kubernetes.io/instance: defaultCOMMENT
LOWconfig/config-defaults.yaml41 # minutes to use for TaskRun and PipelineRun, if none is specified.COMMENT
LOWconfig/config-defaults.yaml61 # PipelineRun, the default-affinity-assistant-pod-template is merged withCOMMENT
LOWconfig/config-defaults.yaml81COMMENT
LOWconfig/config-defaults.yaml101 # default-maximum-resolution-timeout specifies the default duration used by theCOMMENT
370 more matches not shown…
Self-Referential Comments12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMtest/git-resolver/gitea.yaml1# This file is used to install gitea into the e2e test cluster to be used in resolvers_test.go's TestGitResolver_API.COMMENT
MEDIUMhack/setup-kind.sh223# Create a cluster!COMMENT
MEDIUMhack/setup-kind.sh293# Create a registry-credentials secret and attach it to the list of service accounts in the namespace.COMMENT
MEDIUMhack/setup-kind.sh298 # Create a secret resource with the contents of the docker auth configured above.COMMENT
MEDIUMhack/generate-dependabot.go102# This file is generated by hack/generate-dependabot.shCOMMENT
MEDIUMexamples/v1/taskruns/authenticating-git-commands.yaml95 # Create the git repo we're going to test against.COMMENT
MEDIUMexamples/v1/taskruns/readonly-internal-dir.yaml1# This file is primarily used for test validation of internal TektonCOMMENT
MEDIUM…ples/v1/taskruns/beta/authenticating-git-commands.yaml96 # Create the git repo we're going to test against.COMMENT
MEDIUM.github/dependabot.config.yml2# This file defines the base configuration and branches for dependabot updates.COMMENT
MEDIUM.github/dependabot.yml2# This file is generated by hack/generate-dependabot.shCOMMENT
MEDIUM.github/workflows/nightly-builds.yaml135 # Create a Kubernetes secret for GHCR authentication.COMMENT
MEDIUM.github/workflows/dependabot-regen.yml62 # Create a new branchCOMMENT
Structural Annotation Overuse14 hits · 25 pts
SeverityFileLineSnippetContext
LOWdocs/resolution-getting-started.md30## Step 1: Install Tekton Pipelines and the ResolversCOMMENT
LOWdocs/resolution-getting-started.md35## Step 2: Ensure Pipelines is configured to enable resolversCOMMENT
LOWdocs/resolution-getting-started.md49## Step 3: Try it out!COMMENT
LOWdocs/resolution-getting-started.md128## Step 4: Monitor the PipelineRunCOMMENT
LOWpkg/termination/write_test.go333 // Step 1: Verify this exceeds the 4KB limit without compressionCOMMENT
LOWpkg/termination/write_test.go346 // Step 2: Verify the same results fit with compressionCOMMENT
LOWpkg/termination/write_test.go358 // Step 3: Verify all results survive the round-tripCOMMENT
LOWpkg/reconciler/pipelinerun/pipelinerun_pinp_test.go1019 // Step 1: Reconcile A's PipelineRun — should create child for B (no cycle)COMMENT
LOWpkg/reconciler/pipelinerun/pipelinerun_pinp_test.go1045 // Step 2: Reconcile B's PipelineRun — should detect cycle (A is in ancestor chain)COMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go366 // Step 1: running, no message — L1 missCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go371 // Step 2: running, message "step 2/3" — L1 miss (new condition state)COMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go376 // Step 3: same state repeated — L1 hit → skipCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go380 // Step 4: succeeded — L1 missCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go387 // Step 5: succeeded with different message — L1 miss (message changed)COMMENT
Verbosity Indicators14 hits · 25 pts
SeverityFileLineSnippetContext
LOWpkg/apis/pipeline/v1/param_types.go510 // data so we need to check if it is empty.COMMENT
LOWpkg/apis/pipeline/v1/types/param_types.go68 // data so we need to check if it is empty.COMMENT
LOWpkg/apis/pipeline/v1beta1/param_types.go460 // data so we need to check if it is empty.COMMENT
LOWpkg/termination/write_test.go333 // Step 1: Verify this exceeds the 4KB limit without compressionCOMMENT
LOWpkg/termination/write_test.go346 // Step 2: Verify the same results fit with compressionCOMMENT
LOWpkg/termination/write_test.go358 // Step 3: Verify all results survive the round-tripCOMMENT
LOWpkg/workspace/apply.go73 // If it's a PVC, we need to check if we've encountered it before so we avoid mounting it twiceCOMMENT
LOWpkg/reconciler/pipelinerun/pipelinerun_pinp_test.go1019 // Step 1: Reconcile A's PipelineRun — should create child for B (no cycle)COMMENT
LOWpkg/reconciler/pipelinerun/pipelinerun_pinp_test.go1045 // Step 2: Reconcile B's PipelineRun — should detect cycle (A is in ancestor chain)COMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go366 // Step 1: running, no message — L1 missCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go371 // Step 2: running, message "step 2/3" — L1 miss (new condition state)COMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go376 // Step 3: same state repeated — L1 hit → skipCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go380 // Step 4: succeeded — L1 missCOMMENT
LOW⚡pkg/reconciler/events/cache/cache_test.go387 // Step 5: succeeded with different message — L1 miss (message changed)COMMENT
Slop Phrases7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMtest/resolvers_test.go97 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUMtest/resolvers_test.go157 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUMtest/resolvers_test.go437 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUMtest/resolvers_test.go543 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUMexamples/v1/pipelineruns/beta/git-resolver.yaml11 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUM…/v1/pipelineruns/no-ci/git-resolver-custom-apiurl.yaml11 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
MEDIUM…/v1/pipelineruns/no-ci/git-resolver-custom-secret.yaml11 - ReadWriteOnce # access mode may affect how you can use this volume in parallel tasksCODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHexamples/v1/pipelineruns/beta/isolated-workspaces.yaml1# In this example a PipelineRun accepts a workspaceCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpkg/apis/resolution/v1beta1/resolution_request_types.go65 // path to file, the kind of authentication to leverage, etc.COMMENT
MEDIUM…g/apis/resolution/v1alpha1/resolution_request_types.go64 // path to file, the kind of authentication to leverage, etc.COMMENT
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWtest/excessive_reconciliation_test.go92 # Set timeout to 0 to disable timeout and trigger the excessive reconciliation bugCOMMENT
LOWconfig/config-feature-flags.yaml110 # Set it to "false" if the generated security contexts are incompatible with the injectedCOMMENT
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…remoteresolution/resolver/framework/reconciler_test.go364 expectedErr: errors.New(`invalid resource request "foo/rr": missing fake-key`),CODE
LOWpkg/remoteresolution/resolver/framework/fakeresolver.go43 FakeParamName string = "fake-key"CODE
LOWpkg/resolution/resolver/framework/fakeresolver.go40 FakeParamName string = "fake-key"CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpkg/reconciler/notifications/testing/assets.go69// Example usage:COMMENT