AI Slop Code Risk Monitor

skyhook-io/radar

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

The missing open-source Kubernetes UI with a built-in MCP server for AI agents. See what's broken, why, and what changed. Issues, Topology, event timeline, Helm, GitOps, live service traffic, and cluster audits - all in one Go binary.

1.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for skyhook-io/radar, a Go project with 4,002 GitHub stars. SynthScan examined 1,152,829 lines of code across 4130 source files, recording 1990 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.9 (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.9
Adjusted Signal
1.9
Raw Pattern Score
100%
Time Factor
2026-11-01
Last Push
4.0K
Stars
Go
Language
1.2M
Lines of Code
4.1K
Files
2.0K
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 8.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 4.1/100 · LOW

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

PR Review Velocity Impact 8.9/100 · LOW

Which changes need focused human review? 1990 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 4HIGH 0MEDIUM 59LOW 1927

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 1990 distinct pattern matches across 14 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 Block1091 hits · 1077 pts
SeverityFileLineSnippetContext
LOWinstall.sh1#!/bin/shCOMMENT
LOWcmd/testserver/main.go1// cmd/testserver is a standalone binary that starts a Radar server backed byCOMMENT
LOWcmd/explorer/main.go221 // Cloud-mode: Radar runs inside a customer cluster and connects to Radar Hub.COMMENT
LOWcmd/desktop/menu.go41// clipboardAccelerator drops Ctrl+C/Ctrl+X on Linux only. GTK menubarCOMMENT
LOWcmd/desktop/menu.go101 })COMMENT
LOWcmd/desktop/main.go101 log.Printf("Radar Desktop %s starting...", version)COMMENT
LOWweb/src/App.tsx181 issues: 'Issues', helm: 'Helm', helmCompare: 'HelmCompare', traffic: 'Traffic',COMMENT
LOWweb/src/App.tsx401 // the user's pinned state returns when they widen again. Fly-out labels coverCOMMENT
LOWweb/src/App.tsx681 // On a history Pop (back/forward) the URL is authoritative. The URL-writeCOMMENT
LOWweb/src/App.tsx781 // regardless of this callback's memoization.COMMENT
LOWweb/src/App.tsx1041 // fallback during the initial scope fetch.COMMENT
LOWweb/src/App.tsx1081 // Query client for cache invalidationCOMMENT
LOWweb/src/App.tsx1441 // server-side pref has actually been cleared makes React Query refetchCOMMENT
LOWweb/src/RadarApp.tsx1// Top-level React component for Radar's web UI.COMMENT
LOWweb/src/context/DiagnoseCustomization.tsx1// Slot-based injection of a resource-level "Investigate" action, and of theCOMMENT
LOWweb/src/context/ConnectionContext.tsx121 const sseGenerationRef = useRef(0)COMMENT
LOWweb/src/context/ConnectionContext.tsx161 // other (SSE always writes a connected frame on stream open); refreshingCOMMENT
LOWweb/src/context/ConnectionContext.tsx221 const current = connectionRef.currentCOMMENT
LOWweb/src/utils/wails-clipboard.ts1// === Wails Desktop Clipboard ===COMMENT
LOWweb/src/utils/shell-safe.ts1// Remediation commands are typed into an interactive terminal, so quoting isCOMMENT
LOWweb/src/components/cloudConnectHandoff.ts1import { ApiError, type CloudInstallAttempted, type CloudInstallBlocked, type CloudInstallFailure } from '../api/client'COMMENT
LOWweb/src/components/CloudFunnelButton.tsx41//COMMENT
LOWweb/src/components/CloudFunnelButton.tsx141 const inCluster = capabilities.data?.deployment?.mode === 'in-cluster'COMMENT
LOWweb/src/components/CloudFunnelButton.tsx261 // outcome on Back.COMMENT
LOWweb/src/components/traffic/TrafficView.tsx501 // A 'partial' warning is the source telling us this is as complete as it gets —COMMENT
LOWweb/src/components/home/mcpToolCatalog.ts1// Human-facing catalog for the MCP setup dialog (MCPSetupDialog.tsx).COMMENT
LOWweb/src/components/home/TopologyPreview.tsx141 // refusal as zero.COMMENT
LOWweb/src/components/resources/ResourcesView.tsx321COMMENT
LOWweb/src/components/diagnose/AgentSetupNotice.tsx81 {checking ? "Checking…" : "Check again"}COMMENT
LOWweb/src/components/diagnose/ActivityTurn.tsx61 diagnosis: Diagnosis | null;COMMENT
LOW…/components/diagnose/investigationEvidencePartition.ts121 };COMMENT
LOWweb/src/components/diagnose/DiagnoseSurface.tsx201}COMMENT
LOWweb/src/components/diagnose/DiagnoseContext.tsx101// - "needs-restart": a supported agent is installed but investigations areCOMMENT
LOWweb/src/components/diagnose/DiagnoseContext.tsx221const MIN_W = 400;COMMENT
LOWweb/src/components/diagnose/DiagnoseContext.tsx241// hides what it overlays without showing more of itself; fill the contentCOMMENT
LOW…ts/diagnose/investigationEvidence/bodies/inventory.tsx61 // Agents write namespace "" for a cluster-scoped kind; that states none.COMMENT
LOWweb/src/components/workload/WorkloadView.tsx1701}: {COMMENT
LOWweb/src/components/workload/WorkloadView.tsx1801 setProbeError(null)COMMENT
LOWweb/src/components/workload/WorkloadView.tsx1981 // underneath. The baseline is the fingerprint of THE RESULT TRACE ITSELF:COMMENT
LOWweb/src/components/workload/WorkloadView.tsx2041 }, [pendingRunPath, runInClusterTest])COMMENT
LOWweb/src/components/nav/PrimaryNavRail.tsx41COMMENT
LOWweb/src/components/gitops/GitOpsView.tsx241 refetchInterval: GITOPS_ROWS_REFRESH_INTERVAL_MS,COMMENT
LOWweb/src/components/gitops/GitOpsView.tsx421 // Radar-driven Argo suspension is signaled by annotations that record theCOMMENT
LOWweb/src/components/timeline/TimelineView.tsx81COMMENT
LOWweb/src/components/timeline/TimelineView.tsx321 // arm a filter that hides everything. Gate the read on stored pins so the paramCOMMENT
LOWweb/src/components/timeline/TimelineView.tsx401 // on screen to own the range).COMMENT
LOW…b/src/components/timeline/RetainedTimelineScrubber.tsx121 selection: ScrubberRangeCOMMENT
LOW…b/src/components/timeline/RetainedTimelineScrubber.tsx161 enabled: !!fetchOverview,COMMENT
LOWweb/src/components/issues/IssuesPane.tsx41// cpu, node-pinned, zonal PVC, a non-Karpenter managed node group) is NOTCOMMENT
LOWweb/src/hooks/useNavRailPinned.ts1import { useCallback, useEffect, useState } from 'react'COMMENT
LOWweb/src/api/timelineSource.ts1// Timeline data-source abstraction.COMMENT
LOWweb/src/api/timelineSource.ts41 // Only meaningful for 'retained': the maximum lookback the retained backendCOMMENT
LOWweb/src/api/timelineSource.ts101export interface TimelineEventsResult {COMMENT
LOWweb/src/api/timelineSource.ts161 deletes: numberCOMMENT
LOWweb/src/api/timelineSource.ts221}COMMENT
LOWweb/src/api/timelineSource.ts241// Matches the hub's per-response row cap. A window holding more arrives asCOMMENT
LOWweb/src/api/timelineSource.ts261const RETAINED_FULL_RESYNC_MS = 60 * 60 * 1000COMMENT
LOWweb/src/api/timelineSource.ts481 // The delta cursor rides the SAME react-query commit as the events itCOMMENT
LOWweb/src/api/timelineSource.ts501// newest-ringLimit rows within the window too — a server window fetch wouldCOMMENT
LOWweb/src/api/timelineSource.ts541// A frozen window never slides and never polls, so it refetches only on aCOMMENT
1031 more matches not shown…
Hyper-Verbose Identifiers751 hits · 802 pts
SeverityFileLineSnippetContext
LOWweb/src/types/clusterLoadState.ts13export function dashboardClusterLoadState(data?: {CODE
LOWweb/src/contexts/CapabilitiesContext.tsx154export function useNamespacedCapabilities(namespace: string | undefined) {CODE
LOWweb/src/context/DiagnoseCustomization.tsx89export function DiagnoseCustomizationProvider({CODE
LOWweb/src/context/ConnectionContext.tsx54export function refreshQueriesAfterReconnect(queryClient: QueryClient, previousContext: string, nextContext: string) {CODE
LOWweb/src/context/ConnectionContext.tsx65export function shouldAutoRetryConnection(errorType?: string): boolean {CODE
LOWweb/src/context/ConnectionContext.tsx73export function shouldApplyPolledConnection(CODE
LOWweb/src/utils/navigation.ts13export function searchHitToSelectedResource(hit: SearchHit): SelectedResource {CODE
LOWweb/src/utils/navigation.ts45export function getNetworkPolicyResourceTarget(topology: Topology | null): { kind: string; group?: string } | undefined CODE
LOWweb/src/utils/wails-clipboard.ts51export function installWailsClipboardShim(): void {CODE
LOWweb/src/integrations/workspaceRoutes.ts20export function workspaceContextSwitchSearch(pathname: string, search: URLSearchParams): URLSearchParams {CODE
LOWweb/src/components/useContextSwitchFlow.tsx11function shouldSuppressSwitchErrorToast(error: unknown): boolean {CODE
LOW…/src/components/settings/LocalConfigurationDetails.tsx19export function PreviousIntegrationSettingsNotice({ profiles, onNavigate, onDismissed }: {CODE
LOW…/src/components/settings/LocalConfigurationDetails.tsx83export function LocalConfigurationDetails({ onNavigate }: { onNavigate: (section: SettingsSectionId) => void }) {CODE
LOWweb/src/components/settings/settings-state.ts50export function prometheusHeadersFromRows(CODE
LOWweb/src/components/home/NetworkPolicyCoverageCard.tsx11export function NetworkPolicyCoverageCard({ data, onNavigate }: NetworkPolicyCoverageCardProps) {CODE
LOWweb/src/components/whats-new/WhatsNew.tsx76function hadRadarStateBeforeThisSession(): boolean {CODE
LOW…ents/resources/renderers/KarpenterNodePoolRenderer.tsx13export function KarpenterNodePoolRenderer({ data, onNavigate }: KarpenterNodePoolRendererProps) {CODE
LOWweb/src/components/rightsizing/presentation.ts19export function getResourceRequestPresentation(CODE
LOWweb/src/components/rightsizing/RightsizingScanView.tsx61export function getRightsizingScanSurfaceState(input: {CODE
LOWweb/src/components/cost/source.ts18export function costSourcePreferenceLabel(preference?: string): string {CODE
LOWweb/src/components/cost/source.ts105export function costIntegrationUnavailableMessage(CODE
LOWweb/src/components/cost/errors.ts3export function costUnavailableReasonFromError(error: unknown): CostUnavailableReason | undefined {CODE
LOWweb/src/components/cost/format.ts91export function formatProjectedMonthlyCost(hourlyCost: number, currency: string | undefined): string {CODE
LOWweb/src/components/cost/format.ts95export function formatProjectedMonthlyRate(hourlyCost: number, currency: string | undefined): string {CODE
LOWweb/src/components/cost/CostView.tsx809export function resourceKindForCostWorkload(kind: string): string | null {CODE
LOWweb/src/components/cost/ApplicationCostTab.tsx421function ApplicationWorkloadCostRow({CODE
LOWweb/src/components/cost/ApplicationCostTab.tsx527function ApplicationCostDiscovering({CODE
LOWweb/src/components/cost/ApplicationCostTab.tsx559function ApplicationCostUnavailable({CODE
LOWweb/src/components/cost/CostTrendChart.tsx499export function kubecostTrendUnavailableMessage(CODE
LOW…/src/components/shared/LargeClusterNamespacePicker.tsx5export function LargeClusterNamespacePicker({ namespaces, onSelect, ranked = false, renderMeta }: {CODE
LOWweb/src/components/diagnose/investigationExplanation.ts4export function supportsAssessmentExplanation(CODE
LOW…mponents/diagnose/investigationEvidencePresentation.ts70function statusWithoutObservationTimes(status: unknown): unknown {CODE
LOW…mponents/diagnose/investigationEvidencePresentation.ts94function warningWithoutElapsedTime(warning: string): string {CODE
LOWweb/src/components/diagnose/target.ts37export function formatInvestigationTarget(CODE
LOW…rc/components/diagnose/InvestigationCapacityNotice.tsx70export function InvestigationCapacityNotice({CODE
LOW…rc/components/diagnose/InvestigationCapacityNotice.tsx218export function InvestigationCapacityRecovery({CODE
LOW…src/components/diagnose/InvestigationRefusalAction.tsx6export function InvestigationRefusalAction({CODE
LOWweb/src/components/diagnose/toolCallLabel.ts149export function investigationRunningLabel({CODE
LOWweb/src/components/diagnose/InvestigationView.tsx134export function InvestigationStartErrorAlert({CODE
LOWweb/src/components/diagnose/InvestigationView.tsx174export function InvestigationFailureNotice({CODE
LOWweb/src/components/diagnose/InvestigationView.tsx222export function InvestigationStatusCheckNotice({CODE
LOWweb/src/components/diagnose/InvestigationView.tsx264function captureEvidenceCardLayout(container: HTMLElement) {CODE
LOW…/components/diagnose/investigationEvidencePartition.ts61export function evidenceTypePrefersFullRow(CODE
LOW…/components/diagnose/investigationEvidencePartition.ts71export function investigationEvidenceFullRowFlags(CODE
LOW…/components/diagnose/investigationEvidencePartition.ts89export function partitionInvestigationEvidence(CODE
LOW…/components/diagnose/investigationEvidencePartition.ts231export function investigationEvidenceRevealCollection(CODE
LOW…/components/diagnose/investigationEvidencePartition.ts250export function previousDifferentObservations(CODE
LOW…/components/diagnose/investigationEvidencePartition.ts284export function investigationEvidenceShouldRevealHistory(CODE
LOWweb/src/components/diagnose/investigationMetrics.ts83function withoutStringsAndComments(query: string): string {CODE
LOWweb/src/components/diagnose/DiagnoseSurface.tsx267export function unavailableInvestigationMessage(embedded: boolean): string {CODE
LOWweb/src/components/diagnose/DiagnoseSurface.tsx273export function investigationHistoryIsPersistent(input: {CODE
LOWweb/src/components/diagnose/DiagnoseSurface.tsx285export function investigationHeaderPresentation(input: {CODE
LOWweb/src/components/diagnose/DiagnoseSurface.tsx362export function openInvestigationEvidenceResource(CODE
LOWweb/src/components/diagnose/DiagnoseSurface.tsx384function revealInvestigationDestination(CODE
LOW…/components/diagnose/InvestigationResourceEvidence.tsx8export function InvestigationResourceEvidence({CODE
LOW…/src/components/diagnose/InvestigationEvidencePane.tsx60export function InvestigationEvidencePane({CODE
LOW…ponents/diagnose/investigationResourceEvidenceModel.ts89export function isSensitiveInvestigationConfigKey(key: string): boolean {CODE
LOW…ponents/diagnose/investigationResourceEvidenceModel.ts106function isSensitiveInvestigationConfigValue(value: string): boolean {CODE
LOW…ponents/diagnose/investigationResourceEvidenceModel.ts177function sealedSecretEncryptedKeys(CODE
LOW…ponents/diagnose/investigationResourceEvidenceModel.ts251export function buildInvestigationResourceEvidenceModel(CODE
691 more matches not shown…
Decorative Section Separators46 hits · 153 pts
SeverityFileLineSnippetContext
MEDIUMinternal/trace/egress_test.go13// ── builders ──────────────────────────────────────────────────────────────COMMENT
MEDIUMinternal/trace/egress_test.go66// ── chip text + DNS gate ──────────────────────────────────────────────────COMMENT
MEDIUMinternal/trace/egress.go159// ── destination labels ────────────────────────────────────────────────────COMMENT
MEDIUMinternal/trace/egress.go252// ── ports (tooltip phrase only - kept off the chip face to stay calm) ───────COMMENT
MEDIUMinternal/trace/egress.go282// ── DNS coverage ──────────────────────────────────────────────────────────COMMENT
MEDIUMinternal/trace/egress.go554// ── rendering helpers (chips + notes for the Finding) ──────────────────────COMMENT
MEDIUMinternal/trace/egress.go642// ── small utilities ───────────────────────────────────────────────────────COMMENT
MEDIUMinternal/trace/coverage.go2464// ── helpers ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMinternal/server/applications_identity.go167// ── Env-token discovery ──────────────────────────────────────────────────────COMMENT
MEDIUMscripts/rbac-demo.sh60# ── Scenario 1: healthy SA + Role + RoleBinding ──────────────────────────COMMENT
MEDIUMscripts/rbac-demo.sh112# ── Scenario 2: wildcard ClusterRole + SA + Pod ──────────────────────────COMMENT
MEDIUMscripts/rbac-demo.sh161# ── Scenario 3: system:authenticated grant ───────────────────────────────COMMENT
MEDIUMscripts/rbac-demo.sh179# ── Scenario 4: orphan RoleBinding referencing a missing Role ────────────COMMENT
MEDIUMscripts/rbac-demo.sh198# ── Scenario 5: SA with no bindings ──────────────────────────────────────COMMENT
MEDIUMpackages/k8s-ui/src/utils/applications.ts1122// ─── Chip dialect ────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/k8s-ui/src/utils/topology-neighborhood.ts318// ─── Workload ownership tagging ──────────────────────────────────────────────COMMENT
MEDIUM…-ui/src/components/resources/renderers/PodRenderer.tsx123// ── Env vars section — extracted to use hooks (useState for reveal) ──────────COMMENT
MEDIUM…kages/k8s-ui/src/components/logs/LogToolbarSelects.tsx11// ── ContainerSelect ───────────────────────────────────────────────────────────COMMENT
MEDIUM…kages/k8s-ui/src/components/logs/LogToolbarSelects.tsx41// ── LogRangeSelect ────────────────────────────────────────────────────────────COMMENT
MEDIUM…8s-ui/src/components/applications/ApplicationsView.tsx212 // ── App groups ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx144 // ── Hosted chrome (expanded mode) ────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx184 // ── Data (injected by wrapper) ──────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx217 // ── Timeline data ────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx249 // ── Capabilities ─────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx255 // ── Mutations ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx271 // ── Tab state (optional URL sync) ────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx277 // ── GitOps navigation ─────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx313 // ── Render props for platform-specific content ───────────────────────────COMMENT
MEDIUM⚡…ckages/k8s-ui/src/components/workload/WorkloadView.tsx414 // ── Duplicate ────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ckages/k8s-ui/src/components/workload/WorkloadView.tsx418 // ── Download ─────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ckages/k8s-ui/src/components/workload/WorkloadView.tsx422 // ── ResourceActionsBar props (passed through) ────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx969 // ── Collapsed (drawer) mode ──────────────────────────────────────────────COMMENT
MEDIUM…ckages/k8s-ui/src/components/workload/WorkloadView.tsx1166 // ── Expanded (full) mode ─────────────────────────────────────────────────COMMENT
MEDIUMpkg/audit/registry.go65 // ── Security ──────────────────────────────────────────────────────COMMENT
MEDIUMpkg/audit/registry.go184 // ── Reliability ───────────────────────────────────────────────────COMMENT
MEDIUMpkg/audit/registry.go275 // ── Efficiency ────────────────────────────────────────────────────COMMENT
MEDIUMpkg/audit/registry.go345 // ── Cross-resource / lifecycle (emit under Reliability) ────────────COMMENT
MEDIUMpkg/audit/registry.go431 // ── CloudNativePG ─────────────────────────────────────────────────COMMENT
MEDIUMpkg/audit/registry.go443 // ── GitOps coverage (emit under Reliability) ───────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go23 // ── Removed in 1.22 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go33 // ── Removed in 1.25 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go41 // ── Removed in 1.26 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go45 // ── Removed in 1.27 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go48 // ── Removed in 1.29 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go51 // ── Removed in 1.32 ───────────────────────────────────────────────COMMENT
MEDIUM⚡pkg/audit/deprecations.go54 // ── Removed in 1.37 ───────────────────────────────────────────────COMMENT
Structural Annotation Overuse35 hits · 57 pts
SeverityFileLineSnippetContext
LOWweb/src/components/traffic/TrafficWizard.tsx149 // Step 1: Choice screenCOMMENT
LOWweb/src/components/traffic/TrafficWizard.tsx317 // Step 2: Install instructions (for non-Helm installs like gcloud commands)COMMENT
LOWinternal/traffic/hubble.go103 // Step 1: Find hubble-relay pods by label across ALL namespacesCOMMENT
LOW⚡internal/traffic/hubble.go139 // Step 2: Find the hubble-relay service in the same namespaceCOMMENT
LOW⚡internal/traffic/hubble.go146 // Step 3: Check for TLS certsCOMMENT
LOW⚡internal/traffic/hubble.go149 // Step 4: Determine service port and whether it's TLSCOMMENT
LOWinternal/traffic/hubble.go161 // Step 5: Store discovered configuration, unless the request ended: theCOMMENT
LOWinternal/k8s/context_manager.go561 // Step 1: Tear down all subsystems. Stop sessions first — past this point theCOMMENT
LOWinternal/k8s/context_manager.go578 // Step 2: Switch the K8s client to the new contextCOMMENT
LOWinternal/k8s/context_manager.go602 // Step 3: Test connectivity before proceeding with initialization.COMMENT
LOWinternal/k8s/context_manager.go619 // Step 4: Initialize all subsystems (same function as initial boot).COMMENT
LOWinternal/k8s/context_manager.go634 // Step 5: Notify all registered callbacksCOMMENT
LOW⚡internal/k8s/subsystems.go308 // Step 3: dynamic cache. Reset the PolicyReport index first becauseCOMMENT
LOW⚡internal/k8s/subsystems.go315 // Step 2: resource discovery + resource cacheCOMMENT
LOW⚡internal/k8s/subsystems.go319 // Step 1: timelineCOMMENT
LOW.claude/commands/visual-test.md5## Step 1: Verify Playwright MCPCOMMENT
LOW.claude/commands/visual-test.md9## Step 2: Understand What to TestCOMMENT
LOW.claude/commands/visual-test.md22## Step 3: Verify Cluster AccessCOMMENT
LOW.claude/commands/visual-test.md48## Step 4: Check Required Resources ExistCOMMENT
LOW.claude/commands/visual-test.md72## Step 5: Build and Launch RadarCOMMENT
LOW.claude/commands/visual-test.md93## Step 6: Visual Testing with PlaywrightCOMMENT
LOW.claude/commands/visual-test.md162## Step 7: ReportCOMMENT
LOW.claude/commands/visual-test.md185## Step 8: CleanupCOMMENT
LOWdocs/authentication.md433### Step 1: Create a ClusterRole with the permissions you wantCOMMENT
LOWdocs/authentication.md463### Step 2: Bind it to your users or groupsCOMMENT
LOWdocs/authentication.md514### Step 3: VerifyCOMMENT
LOWscripts/test-rbac.sh18# WARNING: This script applies ClusterRoleBindings and RoleBindings to theCOMMENT
LOWpkg/topology/builder.go6023 // Step 1: Find services referenced by ingressesCOMMENT
LOWpkg/topology/builder.go6320 // Step 2: Find all services and check which have podsCOMMENT
LOWpkg/topology/builder.go6351 // Step 3: Build Ingress nodes and edgesCOMMENT
LOWpkg/topology/builder.go7280 // Step 4: Add Internet node if we have ingresses, gateways, Istio gateways, or KNative services with URLsCOMMENT
LOWpkg/topology/builder.go7340 // Step 5: Add Service nodes (only included ones)COMMENT
LOWpkg/topology/builder.go7360 // Step 6: Aggregate pods by owner and create PodGroup nodesCOMMENT
LOWpkg/auth/permissions.go217 // Step 1: Check cluster-wide "list pods" — if allowed, user is effectively cluster-adminCOMMENT
LOWpkg/auth/permissions.go228 // Step 2: Parallel check each namespace for "list pods" OR "list deployments".COMMENT
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippetContext
CRITICALweb/src/components/cnpg/actions/CNPGClusterActions.tsx550 ha.data?.quorum.enabled && switchTarget && ha.data.quorum.status && ha.data.quorum.status.standbyNames.lengtCODE
CRITICALweb/src/components/cnpg/actions/CNPGClusterActions.tsx551 ? `${switchTarget} is not among the recorded potentially synchronous standbys (${ha.data.quorum.status.staCODE
CRITICALinternal/k8s/env_change_evidence.go213 candidate := status.State.Running.StartedAt.Time.Add(-time.Second)CODE
CRITICALinternal/capacity/model_test.go470 if !member.Node.ActualUsage.Quantity.AsOf.Equal(want) {CODE
Verbosity Indicators23 hits · 39 pts
SeverityFileLineSnippetContext
LOWweb/src/components/traffic/TrafficWizard.tsx149 // Step 1: Choice screenCOMMENT
LOWweb/src/components/traffic/TrafficWizard.tsx317 // Step 2: Install instructions (for non-Helm installs like gcloud commands)COMMENT
LOWinternal/traffic/hubble.go103 // Step 1: Find hubble-relay pods by label across ALL namespacesCOMMENT
LOW⚡internal/traffic/hubble.go139 // Step 2: Find the hubble-relay service in the same namespaceCOMMENT
LOW⚡internal/traffic/hubble.go146 // Step 3: Check for TLS certsCOMMENT
LOW⚡internal/traffic/hubble.go149 // Step 4: Determine service port and whether it's TLSCOMMENT
LOWinternal/traffic/hubble.go161 // Step 5: Store discovered configuration, unless the request ended: theCOMMENT
LOWinternal/k8s/context_manager.go561 // Step 1: Tear down all subsystems. Stop sessions first — past this point theCOMMENT
LOWinternal/k8s/context_manager.go578 // Step 2: Switch the K8s client to the new contextCOMMENT
LOWinternal/k8s/context_manager.go602 // Step 3: Test connectivity before proceeding with initialization.COMMENT
LOWinternal/k8s/context_manager.go619 // Step 4: Initialize all subsystems (same function as initial boot).COMMENT
LOWinternal/k8s/context_manager.go634 // Step 5: Notify all registered callbacksCOMMENT
LOW⚡internal/k8s/subsystems.go308 // Step 3: dynamic cache. Reset the PolicyReport index first becauseCOMMENT
LOW⚡internal/k8s/subsystems.go315 // Step 2: resource discovery + resource cacheCOMMENT
LOW⚡internal/k8s/subsystems.go319 // Step 1: timelineCOMMENT
LOWpkg/topology/builder.go6023 // Step 1: Find services referenced by ingressesCOMMENT
LOWpkg/topology/builder.go6320 // Step 2: Find all services and check which have podsCOMMENT
LOWpkg/topology/builder.go6351 // Step 3: Build Ingress nodes and edgesCOMMENT
LOWpkg/topology/builder.go7280 // Step 4: Add Internet node if we have ingresses, gateways, Istio gateways, or KNative services with URLsCOMMENT
LOWpkg/topology/builder.go7340 // Step 5: Add Service nodes (only included ones)COMMENT
LOWpkg/topology/builder.go7360 // Step 6: Aggregate pods by owner and create PodGroup nodesCOMMENT
LOWpkg/auth/permissions.go217 // Step 1: Check cluster-wide "list pods" — if allowed, user is effectively cluster-adminCOMMENT
LOWpkg/auth/permissions.go228 // Step 2: Parallel check each namespace for "list pods" OR "list deployments".COMMENT
Modern AI Meta-Vocabulary6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMdocs/STRUCTURE.md147├── scripts/ # Release scripts + demo-cluster + visual-test orchestrationCODE
MEDIUMscripts/gitops-demo.sh229# setup_rollback_history orchestrates the rollback fixture so it has atCOMMENT
MEDIUMscripts/gitops-demo.sh245 # If we've already done this orchestration on a prior `up` run the pathCOMMENT
MEDIUMscripts/rollouts-demo.sh128# --- Scenario orchestration ------------------------------------------------COMMENT
MEDIUMscripts/gitops-demo/11-flux-zombie.yaml2# Flux config; what makes it a zombie is the post-apply orchestration:COMMENT
MEDIUMscripts/gitops-demo/10-argo-rollback.yaml8# After orchestration the app should land at:COMMENT
Fake / Example Data15 hits · 15 pts
SeverityFileLineSnippetContext
LOWweb/e2e/settings-connections.spec.ts711 await expect(secret).toHaveAttribute('placeholder', 'Saved value')CODE
LOWweb/e2e/settings-connections.spec.ts718 await expect(secret).toHaveAttribute('placeholder', 'Will be removed')CODE
LOWweb/e2e/settings-connections.spec.ts918 if (integration.kind === 'metrics') await expect(page.getByRole('textbox', { name: 'Authorization value', exact: truCODE
LOWweb/e2e/settings-connections.spec.ts919 else await expect(page.getByRole('textbox', { name: integration.kind === 'argocd' ? 'API token' : 'API key', exact: CODE
LOWweb/e2e/settings-connections.spec.ts1200 await expect(page.getByRole('textbox', { name: 'Authorization value' })).toHaveAttribute('placeholder', 'Saved value')CODE
LOWweb/src/components/ConnectionErrorView.test.tsx158 const markup = renderToStaticMarkup(<CopyableCommand command="placeholder" />)CODE
LOWinternal/k8s/context_registry_test.go49 ai.Token = "fake-token-for-" + e.userNameCODE
LOWinternal/k8s/context_registry_test.go1277 cfg.AuthInfos[e.userName] = &clientcmdapi.AuthInfo{Token: "fake-token-for-" + e.userName}CODE
LOWinternal/server/argo_diff_test.go83 _, _ = w.Write([]byte(`{"author":"Jane Doe","date":"2026-07-09T12:00:00Z","message":"fix: bump memory","signatureInfoCODE
LOWinternal/server/argo_diff_test.go557 if meta.Author != "Jane Doe" || meta.Message != "fix: bump memory" {CODE
LOWinternal/ai/signin_test.go29 "email": "user@example.com",CODE
LOWinternal/ai/signin_test.go31 "orgName": "user@example.com's Organization",CODE
LOWscripts/test-oidc-split.sh259 ("login", "admin@example.com"),CODE
LOWscripts/test-oidc-split.sh486check "logged-in username" "admin@example.com" "$username"CODE
LOWpkg/prom/header_patch_test.go27 {{Key: "Authorization", Action: "keep", Value: "placeholder"}},CODE
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMinternal/trace/entries.go180// (`problem:0/N selected pods ready`, emitted when it doesn't) so it's robust toCOMMENT
MEDIUMinternal/issues/source_cnpg.go308 // the version-robust "was up" signal (set on first election, never cleared),COMMENT
MEDIUMpackages/k8s-ui/src/utils/resource-hierarchy.ts1381 // matching the key is robust to any id-shape drift.COMMENT
MEDIUM…k8s-ui/src/components/resources/resource-utils-flux.ts49 // Check health condition for more nuanced statusCOMMENT
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMdeploy/helm/radar/values.yaml592 # Create the default read grant for radar:system: Radar Cloud's alerts workerCOMMENT
MEDIUMdeploy/helm/radar/values.yaml599 # Create the default read grant for radar:ai:reader, used only by automaticCOMMENT
MEDIUMscripts/test-rbac.sh141# Create a couple of instances so list returns non-emptyCOMMENT
Excessive Try-Catch Wrapping6 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/beyla-demo.sh547except Exception:CODE
LOWscripts/beyla-demo.sh558 except Exception:CODE
LOWscripts/beyla-demo.sh572except Exception:CODE
LOWscripts/beyla-demo.sh658except Exception:CODE
LOWscripts/beyla-demo.sh670except Exception:CODE
LOWscripts/beyla-demo.sh685except Exception:CODE
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/test-oidc-split.sh56# Usage:COMMENT
LOWscripts/test-chart.sh9# Usage:COMMENT
LOWscripts/test-proxy-auth.sh12# Usage:COMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/tls-issues-live/check.py18CODE
LOWscripts/tls-issues-live/check.py24CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/tls-issues-live/check.py169CODE