AI Slop Code Risk Monitor

fission/fission

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

Fast and Simple Serverless Functions for Kubernetes

3.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for fission/fission, a Go project with 8,938 GitHub stars. SynthScan examined 284,436 lines of code across 1475 source files, recording 877 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.3
Adjusted Signal
3.3
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
8.9K
Stars
Go
Language
284.4K
Lines of Code
1.5K
Files
877
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 13.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 1.3/100 · LOW

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

PR Review Velocity Impact 16.0/100 · LOW

Which changes need focused human review? 877 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 2HIGH 11MEDIUM 21LOW 843

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 877 distinct pattern matches across 12 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 Block837 hits · 772 pts
SeverityFileLineSnippetContext
LOWcmd/fission-bundle/main.go141COMMENT
LOWcmd/fetcher/app/server.go121COMMENT
LOWcmd/preupgradechecks/applycrds.go21// crdFieldManager is the server-side-apply field manager the hook owns. It isCOMMENT
LOWcmd/preupgradechecks/applycrds.go41//COMMENT
LOWcmd/preupgradechecks/generateauth.go21const (COMMENT
LOWcmd/preupgradechecks/generateauth.go41// renderer `lookup` returns empty — Argo and Flux run `helm template` — so theCOMMENT
LOWcmd/preupgradechecks/generateauth.go121 }COMMENT
LOWcmd/preupgradechecks/generateauth.go161func newMaster() ([]byte, error) {COMMENT
LOWcmd/preupgradechecks/adoptsecrets.go21// keepPolicyAnnotation tells Helm never to delete an object it would otherwiseCOMMENT
LOWcmd/preupgradechecks/adoptsecrets.go41// it exists in the cluster at delete time, NOT from the stored releaseCOMMENT
LOWcmd/builder/app/server.go41 })COMMENT
LOWcrds/crds.go1// SPDX-FileCopyrightText: The Fission AuthorsCOMMENT
LOWtest/benchmark/config/scenarios.default.yaml1# Default scenario parameters for `fission-benchmark run --config`.COMMENT
LOWtest/benchmark/config/thresholds.yaml1# Absolute pass/fail bounds for `fission-benchmark report --thresholds`.COMMENT
LOWtest/benchmark/pkg/cluster/hmac.go21// topic admin API (/v1/eventing/).COMMENT
LOWtest/benchmark/pkg/scenario/upgrade_podwatch.go21COMMENT
LOWtest/benchmark/pkg/scenario/asyncinvoke.go21 asyncQueueDepthQuery = `sum(fission_async_queue_depth)`COMMENT
LOWtest/benchmark/pkg/scenario/upgrade.go21 fv1 "github.com/fission/fission/pkg/apis/core/v1"COMMENT
LOWtest/benchmark/pkg/scenario/upgrade.go41// fail without an attribution header (e.g. a 404 from a rebuilt-but-emptyCOMMENT
LOWtest/benchmark/pkg/scenario/upgrade.go61}COMMENT
LOWtest/benchmark/pkg/scenario/upgrade.go341 gens[deps.Items[i].Name] = deps.Items[i].GenerationCOMMENT
LOWtest/benchmark/pkg/scenario/scenario.go441COMMENT
LOWtest/benchmark/pkg/scenario/assets.go1// SPDX-FileCopyrightText: The Fission AuthorsCOMMENT
LOWtest/benchmark/pkg/scenario/upgrade_record.go21)COMMENT
LOWtest/benchmark/pkg/scenario/eventing.go21 "github.com/fission/fission/test/benchmark/pkg/report"COMMENT
LOWtest/benchmark/pkg/loadgen/httptarget.go41}COMMENT
LOWtest/integration/testdata/embed.go1//go:build integrationCOMMENT
LOWtest/integration/testdata/nodejs/state/whoami.js1// SPDX-FileCopyrightText: The Fission AuthorsCOMMENT
LOWtest/integration/suites/common/memory_soak_test.go21const (COMMENT
LOWtest/integration/suites/common/archive_pruner_test.go21 "github.com/stretchr/testify/require"COMMENT
LOWtest/integration/suites/common/cors_test.go21COMMENT
LOWtest/integration/suites/common/mcp_test.go21 "github.com/stretchr/testify/require"COMMENT
LOWtest/integration/suites/common/kubectl_test.go21)COMMENT
LOW…t/integration/suites/common/function_logs_loki_test.go21// TestFunctionLogsLokiCorrelation exercises the RFC-0016 OTLP logging read pathCOMMENT
LOWtest/integration/suites/common/streaming_test.go21 "github.com/fission/fission/test/integration/framework"COMMENT
LOW…integration/suites/common/versioned_specialize_test.go61 // idleTimeoutSeconds is set low (well below the default 120s) so theCOMMENT
LOW…integration/suites/common/versioning_lifecycle_test.go1// SPDX-FileCopyrightText: The Fission AuthorsCOMMENT
LOW…integration/suites/common/versioning_lifecycle_test.go41// setVersioningCLI opts fnName into RFC-0025 versioning via `fission fnCOMMENT
LOW…integration/suites/common/versioning_lifecycle_test.go81 require.LessOrEqualf(t, got, want, "function %q must not mint a version beyond the expected %d during the settle windoCOMMENT
LOW…integration/suites/common/versioning_lifecycle_test.go181// end to end, both its automatic (event-driven) sweep and `fission fnCOMMENT
LOW…integration/suites/common/versioning_lifecycle_test.go381 assert.Contains(t, impactOut, aliasName)COMMENT
LOWtest/integration/suites/common/cli_inspect_test.go21// TestCLICommands covers fission CLI commands that had no integration coverage:COMMENT
LOWtest/integration/suites/common/spec_merge_test.go21COMMENT
LOWtest/integration/suites/common/spec_idempotency_test.go21 "github.com/fission/fission/test/integration/framework"COMMENT
LOWtest/integration/suites/common/secret_cfgmap_test.go21)COMMENT
LOWtest/integration/suites/common/jvm_jersey_env_test.go21// TestJVMJerseyEnv covers the jvm-jersey environment via two paths, merged intoCOMMENT
LOW…st/integration/suites/common/archive_isolation_test.go21 "github.com/fission/fission/pkg/fission-cli/cmd"COMMENT
LOWtest/integration/suites/common/canary_alias_test.go21)COMMENT
LOWtest/integration/suites/common/canary_alias_test.go61 // TestAliasKeyedStateContinuity). Passing byte-identical code left theCOMMENT
LOWtest/integration/suites/common/go_env_test.go21 "github.com/fission/fission/test/integration/framework"COMMENT
LOWtest/integration/suites/common/java_env_test.go21// TestJavaEnv covers the JVM (Spring Boot) environment via two paths, mergedCOMMENT
LOWtest/integration/suites/common/env_runtimeclass_test.go21 "github.com/fission/fission/test/integration/framework"COMMENT
LOWtest/integration/suites/common/spec_archive_test.go21)COMMENT
LOW…/integration/suites/common/idle_objects_reaper_test.go21COMMENT
LOWtest/integration/suites/common/env_podspec_test.go21)COMMENT
LOWtest/integration/suites/common/archive_cli_test.go21 "github.com/stretchr/testify/require"COMMENT
LOWtest/integration/suites/common/rust_env_test.go21// The Rust environment always builds through its builder image: even a singleCOMMENT
LOW…ntegration/suites/common/fn_test_alias_version_test.go1// SPDX-FileCopyrightText: The Fission AuthorsCOMMENT
LOW…integration/suites/common/package_content_hash_test.go181}COMMENT
LOWtest/integration/suites/common/gateway_test.go21COMMENT
777 more matches not shown…
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHcrds/v1/fission.io_functions.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_kuberneteswatchtriggers.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_timetriggers.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_httptriggers.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_functionversions.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_workflows.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_messagequeuetriggers.yaml0') || self.alias.matches(''^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'')' - message: functionref.version must be a valid dns1123 laSTRING
HIGHcrds/v1/fission.io_functions.yaml0type: string resourcefieldref: description: |- selects a resource of the container: only resources limits and requests (STRING
HIGHcrds/v1/fission.io_functionversions.yaml0type: string resourcefieldref: description: |- selects a resource of the container: only resources limits and requests (STRING
HIGHcrds/v1/fission.io_messagequeuetriggers.yaml0type: string resourcefieldref: description: |- selects a resource of the container: only resources limits and requests (STRING
Hallucination Indicators2 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALpkg/apis/core/v1/types.go1776 // +kubebuilder:validation:XValidation:rule="!has(self.container) || !has(self.container.securityContext) || !has(self.COMMENT
CRITICALpkg/apis/core/v1/types.go1832 // +kubebuilder:validation:XValidation:rule="!has(self.container) || !has(self.container.securityContext) || !has(self.COMMENT
Decorative Section Separators8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMdocs/examples/terraform/main.tf38# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf40# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf61# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf63# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf99# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf101# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf140# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/examples/terraform/main.tf142# ---------------------------------------------------------------------------COMMENT
Modern AI Meta-Vocabulary6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUM…c/0029-gitops-native-install-declarative-management.md165- `--watch`/builder conflicts (#555) and scaffolding refresh (#1037, #1574) ride along as the DX batch.CODE
MEDIUMpkg/webhook/service.go23 //+kubebuilder:scaffold:importsCOMMENT
MEDIUMpkg/mcp/tracing.go8// Blast-radius note: pkg/mcp serves every MCP client, agentic or not, soCOMMENT
MEDIUMpkg/fission-cli/cmd/function/publish.go95// to util.DefaultWaitTimeout, mirroring util.WaitOn. The poll scaffoldCOMMENT
MEDIUMpkg/fission-cli/cmd/functionalias/resolve_wait.go30// scaffold itself is util.PollUntil, shared with util.WaitForCondition andCOMMENT
MEDIUMpkg/fission-cli/util/wait.go22// PollUntil is the shared poll scaffold behind every fission-cli wait loopCOMMENT
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMcharts/fission-all/values.yaml726 ## NOTE: replicas alone does not make upgrades seamless on the default certCOMMENT
MEDIUM.github/workflows/benchmark.yaml48 # path (or the benchmark harness) is caught against a real cluster before merge.COMMENT
MEDIUMpkg/storagesvc/authz.go31// robust to a subDir change between releases. "" maps a legacy id to theCOMMENT
MEDIUMpkg/fission-cli/cmd/function/run.go74 // Phase 5 — debugger. Extra published port for delve/debugpy (0 = none).COMMENT
Self-Referential Comments3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUM…dejs/spec_archive/specs/fission-deployment-config.yaml1# This file is generated by the 'fission spec init' command.COMMENT
MEDIUM…nodejs/spec_merge/specs/fission-deployment-config.yaml1# This file is generated by the 'fission spec init' command.COMMENT
MEDIUMpkg/fission-cli/cmd/spec/init.go119 msg := []byte("# This file is generated by the 'fission spec init' command.\n" +CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpkg/router/endpointcache/metrics.go126// alertable as requested != effective rather than as an absent series.COMMENT
Redundant / Tautological Comments3 hits · 7 pts
SeverityFileLineSnippetContext
LOW⚡hack/deploy.sh17# Check if kubectl is installedCOMMENT
LOW⚡hack/deploy.sh23# Check if minikube is installedCOMMENT
LOW⚡hack/deploy.sh29# Check if helm is installedCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…integration/testdata/misc/huge_response/generated.json1502 "about": "Aliqua ex mollit duis cupidatat aliqua mollit. Sunt ea sit culpa sit voluptate fugiat laboris sint. Et ullCODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/integration/testdata/python/multifile/main.py2CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWhack/release.sh82echo "Don't forget to push chart repo changes & update CHANGELOG.md"CODE