AI Slop Code Risk Monitor

tilt-dev/tilt

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

Define your dev environment as code. For microservice apps on Kubernetes.

1.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for tilt-dev/tilt, a Go project with 10,119 GitHub stars. SynthScan examined 223,736 lines of code across 1327 source files, recording 266 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 1.5 (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.5
Adjusted Signal
1.5
Raw Pattern Score
100%
Time Factor
2026-10-26
Last Push
10.1K
Stars
Go
Language
223.7K
Lines of Code
1.3K
Files
266
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.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.9/100 · LOW

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

Agent Over-Engineering Ratio 1.1/100 · LOW

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

PR Review Velocity Impact 6.7/100 · LOW

Which changes need focused human review? 266 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 3HIGH 1MEDIUM 7LOW 255

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 266 distinct pattern matches across 13 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 Block188 hits · 188 pts
SeverityFileLineSnippetContext
LOWweb/src/LogStore.ts541 // We want to print the log line-by-line, but we don't actually store the logsCOMMENT
LOWweb/src/react-table-config.d.ts21 // UseExpandedOptions<D>,COMMENT
LOWweb/src/react-table-config.d.ts61 // UseColumnOrderState<D>,COMMENT
LOWweb/src/react-table-config.d.ts81 D extends Record<string, unknown> = Record<string, unknown>COMMENT
LOWweb/src/OverviewLogPane.tsx561 // Helper function for rendering lines. Returns true if the line wasCOMMENT
LOWintegration/kind-with-registry.sh1#!/bin/shCOMMENT
LOWintegration/fixture_test.go361 // the tests more accurate. We believe that in this particular case,COMMENT
LOWintegration/live_update_selector/restart.sh1#!/bin/shCOMMENT
LOWintegration/live_update_selector/start.sh1#!/bin/shCOMMENT
LOWintegration/onewatch/restart.sh1#!/bin/shCOMMENT
LOWintegration/onewatch/start.sh1#!/bin/shCOMMENT
LOWintegration/dcbuild/restart.sh1#!/bin/shCOMMENT
LOWintegration/dcbuild/start.sh1#!/bin/shCOMMENT
LOWintegration/ignores/restart.sh1#!/bin/shCOMMENT
LOWintegration/ignores/start.sh1#!/bin/shCOMMENT
LOWinternal/tracer/exptel/key.go1// Copyright 2019, OpenTelemetry AuthorsCOMMENT
LOWinternal/tracer/exptel/doc.go1// Package exptel is a fork of core Span types from opentelemetry-go v0.2.0.COMMENT
LOWinternal/tracer/exptel/span.go1// Copyright 2019, OpenTelemetry AuthorsCOMMENT
LOWinternal/docker/env.go41 // The Docker API builders are very complex, with lots of different interfacesCOMMENT
LOWinternal/docker/env.go341 // colima default profile < 0.4 -> ~/.colima/docker.sock -> kubecontext colimaCOMMENT
LOWinternal/docker/run.go21 // If an image will be used multiple times (across containers), prefer explicitly calling ImagePullCOMMENT
LOWinternal/docker/client.go341 dialSession := func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) {COMMENT
LOWinternal/ignore/ephemeral.go21 emacsPatterns := []string{"**/.#*", "**/#*#", "**/flymake_*.*"}COMMENT
LOWinternal/k8s/client.go101 // Updates the entities, creating them if necessary.COMMENT
LOWinternal/k8s/client.go901// Tests whether a string is a valid version for a k8s resource type.COMMENT
LOWinternal/k8s/label.go101 applyLabelsToMap(&s.Selector, labels, overwrite, false)COMMENT
LOWinternal/tiltfile/tiltfile_state.go621 dcRes = append(dcRes, resSet)COMMENT
LOWinternal/tiltfile/tiltfile_state.go1061// k8sResourceForName returns the k8sResource with which this name is associatedCOMMENT
LOWinternal/tiltfile/tiltfile_state.go1241 WithIgnores(ignores)COMMENT
LOWinternal/tiltfile/loaddynamic/load.go1package loaddynamicCOMMENT
LOWinternal/tiltfile/starkit/plugin.go21 // Called before each builtin is calledCOMMENT
LOWinternal/tiltfile/starkit/set_state.go1package starkitCOMMENT
LOWinternal/tiltfile/starkit/doc.go1// Starkit is a toolkit for implementing Starlark interpreters, with support for:COMMENT
LOWinternal/tiltfile/api/__init__.py521 k8s_yaml('foo.yaml')COMMENT
LOWinternal/tiltfile/k8scontext/k8scontext.go101 return s.contextCOMMENT
LOWinternal/filelock/filelock.go21// The usual implementation is *os.File.COMMENT
LOWinternal/filelock/filelock.go41// unspecified.COMMENT
LOWinternal/timecmp/cmp.go1// Package timecmp provides utility functions for comparing apiserver and stdlib times.COMMENT
LOWinternal/cli/build.go1package cliCOMMENT
LOWinternal/cli/demo.go121 // properly supporting remote Docker connections is very tricky - either:COMMENT
LOWinternal/dockerignore/ignore.go41 // does something like:COMMENT
LOWinternal/container/registry.go21func IsEmptyRegistry(reg *v1alpha1.RegistryHosting) bool {COMMENT
LOWinternal/container/reference.go121COMMENT
LOWinternal/rty/tokenizer.go1package rtyCOMMENT
LOWinternal/watch/notify.go41 // A channel to read off incoming file changesCOMMENT
LOWinternal/watch/watcher_naive.go21// A naive file watcher that uses the plain fsnotify API.COMMENT
LOWinternal/ospath/ospath.go41 // If the two paths are equal under case-folding, but not exactly equal,COMMENT
LOWinternal/controllers/klog.go41 err := tmpFlagSet.Parse(flags)COMMENT
LOWinternal/controllers/klog.go61// https://github.com/kubernetes/kubernetes/blob/a4e5239bdc3d85f1f90c7811b03dc153d5121ffe/staging/src/k8s.io/client-go/dCOMMENT
LOWinternal/controllers/apis/cluster/client.go21// This is indicative of a bug in the caller!COMMENT
LOWinternal/controllers/apis/trigger/trigger.go81 for _, t := range typesToWatch {COMMENT
LOWinternal/controllers/apis/restarton/restarton.go61}COMMENT
LOWinternal/controllers/apis/restarton/restarton.go101 return result, nilCOMMENT
LOWinternal/controllers/apis/liveupdate/mode.go1package liveupdateCOMMENT
LOW…nal/controllers/core/kubernetesdiscovery/reconciler.go61 // restartDetector compares a previous version of status with the latest and emits log eventsCOMMENT
LOW…nal/controllers/core/kubernetesdiscovery/reconciler.go81 // uidWatchers are the KubernetesDiscovery objects that have a watch ref for a particular K8s UID,COMMENT
LOW…nal/controllers/core/kubernetesdiscovery/reconciler.go541COMMENT
LOWinternal/controllers/core/dockercomposeservice/logs.go21//COMMENT
LOWinternal/controllers/core/kubernetesapply/reconciler.go741//COMMENT
LOWinternal/controllers/core/liveupdate/reconciler.go281 r.monitors[name] = mCOMMENT
128 more matches not shown…
Hallucination Indicators3 hits · 35 pts
SeverityFileLineSnippetContext
CRITICALinternal/hud/webview/testdata/snapshot.json90 "crashLog": "===\u003e ENV Variables ...\nALLOW_UNSIGNED=false\nCOMPONENT=control-center\nCONFLUENT_CP_CONTROL_CCODE
CRITICAL⚡pkg/snapshot/testdata/snapshot.json1{"Message":"","View":{"Log":"confluent-c…┊ [2019-10-18 14:55:20,631] INFO streams in state=REBALANCING (io.confluent.conCODE
CRITICALpkg/snapshot/testdata/snapshot_new.json90 "crashLog": "===\u003e ENV Variables ...\nALLOW_UNSIGNED=false\nCOMPONENT=control-center\nCONFLUENT_CP_CONTROL_CCODE
Hyper-Verbose Identifiers30 hits · 30 pts
SeverityFileLineSnippetContext
LOWweb/src/OverviewSidebarOptions.test.tsx38function assertSidebarItemsAndOptions(CODE
LOWweb/src/OverviewTableStarResourceButton.tsx44export default function OverviewTableStarResourceButton(CODE
LOWweb/src/OverviewTableTriggerModeToggle.tsx77export default function OverviewTableTriggerModeToggle(CODE
LOWweb/src/ApiButton.testhelpers.tsx11export function cleanupMockUIButtonUpdates() {CODE
LOWweb/src/OverviewResourceSidebar.stories.tsx62function OverviewResourceSidebarHarness(props: { name: string; view: View }) {CODE
LOWweb/src/testdata.tsx697export function oneResourceCrashedOnStart(): UIResource[] {CODE
LOWweb/src/OverviewTable.tsx489export function labeledResourcesToTableCells(CODE
LOWweb/src/SidebarResources.test.tsx47function createSidebarItemsWithAlerts() {CODE
LOWweb/src/ShareSnapshotModal.tsx62export function formatTimestampForFilename(date: moment.Moment) {CODE
LOWweb/src/ResourceStatusSummary.tsx488export function SidebarGroupStatusSummary(CODE
LOWweb/src/BuildButton.test.tsx26function expectManualStartBuildIcon(expected: boolean) {CODE
LOWweb/src/StarredResourcesContext.tsx27export function StarredResourceMemoryProvider(CODE
LOWweb/src/StarredResourcesContext.tsx68export function StarredResourcesContextProvider(CODE
LOWweb/src/ResourceListOptionsContext.tsx54export function ResourceListOptionsProvider(CODE
LOWweb/src/ResourceStatus.ts15export function ClassNameFromResourceStatus(rs: ResourceStatus): string {CODE
LOWweb/src/OverviewResourcePane.stories.tsx59function OverviewResourcePaneHarness(props: {CODE
LOWweb/src/ResourceSelectionContext.tsx44export function ResourceSelectionProvider(CODE
LOWweb/src/testlogs.tsx23export function appendLinesForManifestAndSpan(CODE
LOWweb/src/OverviewTableDisplayOptions.tsx68export function OverviewTableDisplayOptions(props: {CODE
LOWweb/src/InterfaceVersion.tsx41export function FakeInterfaceVersionProvider(props: PropsWithChildren<{}>) {CODE
LOWweb/src/ResourceGroupsContext.tsx40export function ResourceGroupsContextProvider(CODE
LOWweb/src/StarredResourceBar.tsx282export function starredResourcePropsFromView(CODE
LOWweb/src/OverviewTableKeyboardShortcuts.tsx103export function OverviewTableKeyboardShortcuts(props: PublicProps) {CODE
LOWinternal/tiltfile/api/__init__.py1032def workload_to_resource_function(fn: Callable[[K8sObjectID], str]) -> None:CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py544def config_map_disable_source(CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py696def kubernetes_discovery_template_spec(CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py733def kubernetes_image_object_descriptor(CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py783def label_selector_requirement(CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py819def pod_log_stream_template_spec(CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py841def port_forward_template_spec(CODE
Example Usage Blocks15 hits · 22 pts
SeverityFileLineSnippetContext
LOWintegration/live_update_selector/restart.sh8# Usage:COMMENT
LOWintegration/live_update_selector/start.sh8# Usage:COMMENT
LOWintegration/onewatch/restart.sh8# Usage:COMMENT
LOWintegration/onewatch/start.sh8# Usage:COMMENT
LOWintegration/dcbuild/restart.sh8# Usage:COMMENT
LOWintegration/dcbuild/start.sh8# Usage:COMMENT
LOWintegration/ignores/restart.sh8# Usage:COMMENT
LOWintegration/ignores/start.sh8# Usage:COMMENT
LOWscripts/release-update-extension-repo.sh5# Usage:COMMENT
LOWscripts/release-update-tilt-repo.sh5# Usage:COMMENT
LOWscripts/install.sh5# Usage:COMMENT
LOWscripts/release-update-homebrew-core.sh5# Usage:COMMENT
LOWscripts/release-update-tilt-docs-repo.sh5# Usage:COMMENT
LOWscripts/release-build-dry-run.sh7# Usage:COMMENT
LOWscripts/github-app-token.sh5# Usage:COMMENT
AI Slop Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMinternal/k8s/client.go552// better parallelization), we've found that it's more robust to handle entitiesCOMMENT
MEDIUMinternal/tiltfile/tiltextension/plugin_test.go207 // You can leverage this for nested extensions by defining an extension with an underscore andCOMMENT
MEDIUMinternal/tiltfile/links/links.go75 // NOTE(maia): this unfortunately isn't a very robust check, `url.Parse`COMMENT
MEDIUMpkg/apis/core/v1alpha1/uisession_types.go39// easier rather than a robust long-term API.COMMENT
MEDIUMpkg/apis/core/v1alpha1/uiresource_types.go39// easier rather than a robust long-term API.COMMENT
AI Structural Patterns10 hits · 10 pts
SeverityFileLineSnippetContext
LOWinternal/tiltfile/api/__init__.py202CODE
LOWinternal/tiltfile/api/__init__.py348CODE
LOWinternal/tiltfile/api/__init__.py454CODE
LOWinternal/tiltfile/api/__init__.py486CODE
LOWinternal/tiltfile/api/__init__.py951CODE
LOWinternal/tiltfile/api/__init__.py1137CODE
LOWinternal/tiltfile/api/__init__.py1371CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py202CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py355CODE
LOWinternal/tiltfile/api/v1alpha1/__init__.py499CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHinternal/k8s/jsonpath/value.go12// In this implementation, we keep an extra reference to theCOMMENT
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM⚡pkg/snapshot/testdata/snapshot.json1{"Message":"","View":{"Log":"confluent-c…┊ [2019-10-18 14:55:20,631] INFO streams in state=REBALANCING (io.confluent.conCODE
MEDIUM⚡pkg/snapshot/testdata/snapshot.json1{"Message":"","View":{"Log":"confluent-c…┊ [2019-10-18 14:55:20,631] INFO streams in state=REBALANCING (io.confluent.conCODE
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippetContext
LOWweb/src/ApiButton.stories.tsx54 textFieldForUIButton("text1", undefined, "placeholder"),CODE
LOWinternal/tiltfile/v1alpha1/types.go4064 err := dict.SetKey(starlark.String("placeholder"), placeholder)CODE
LOWinternal/tiltfile/v1alpha1/types.go4106 if key == "placeholder" {CODE
LOWinternal/engine/k8swatch/service_watch_test.go75 dummySvc := servicebuilder.New(t, manifest).WithUID("placeholder").Build()CODE
LOWpkg/openapi/zz_generated.openapi.go8631 "placeholder": {CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/ci-has-web-changes.sh3# Check if there are web-related changes.COMMENT
LOWscripts/ci-has-go-changes.sh3# Check if there are Go-related changes (anything outside web/).COMMENT
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWinternal/tiltfile/api/__init__.py133def set_team(team_id: str) -> None:CODE
LOWinternal/tiltfile/api/config/__init__.py114def set_enabled_resources(resources: List[str]) -> None:CODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWinternal/tiltfile/api/config/__init__.py1CODE
LOWinternal/tiltfile/api/config/__init__.py1CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpkg/apis/core/v1alpha1/probe.go121 // TODO: implement a realistic TCP lifecycle hookCOMMENT