AI Slop Code Risk Monitor

metabase/metabase

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

The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for metabase/metabase, a Clojure project with 50,043 GitHub stars. SynthScan examined 2,168,288 lines of code across 16055 source files, recording 2953 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
50.0K
Stars
Clojure
Language
2.2M
Lines of Code
16.1K
Files
3.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 6.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

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

Agent Over-Engineering Ratio 6.0/100 · LOW

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

PR Review Velocity Impact 7.4/100 · LOW

Which changes need focused human review? 2953 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 15HIGH 24MEDIUM 67LOW 2847

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 2953 distinct pattern matches across 24 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 Identifiers2410 hits · 2535 pts
SeverityFileLineSnippetContext
LOWfrontend/parse-deps.js77function getFilePathFromImportPath(name) {CODE
LOW…t-plugin-metabase/rules/no-unsafe-element-filtering.js72function isPreviousALengthAssertion(node) {CODE
LOW…/lint/eslint-plugin-metabase/rules/jtag-missing-key.js42 function isDirectChildOfTemplateExpression(node) {CODE
LOWfrontend/test/__support__/utils.ts58export function mockGetBoundingClientRect(rect: Partial<DOMRect> = {}) {CODE
LOWfrontend/test/__support__/intersection-observer.ts11export function setupMockIntersectionObserver() {CODE
LOWfrontend/test/__support__/storybook.tsx137export function createWaitForResizeToStopDecorator(timeoutMs: number = 1000) {CODE
LOWfrontend/test/__support__/storybook.tsx138 return function WaitForResizeToStopDecorator(Story: ComponentType) {CODE
LOWfrontend/test/__support__/storybook.tsx173export function createWaitForChartsDecorator({CODE
LOWfrontend/test/__support__/storybook.tsx247export function ForceDocumentCardRenderDecorator(Story: ComponentType) {CODE
LOWfrontend/test/__support__/enterprise.js60export function setupEnterpriseOnlyPlugin(pluginName) {CODE
LOWfrontend/test/__support__/metadata.ts31export function createMockMetadataFromState(CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts11export function setupTableSelectionInfoEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts17export function setupPublishTablesEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts23export function setupPublishTablesEndpointError() {CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts29export function setupUnpublishTablesEndpoint() {CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts35export function setupUnpublishTablesEndpointError() {CODE
LOW⚡frontend/test/__support__/server-mocks/data-studio.ts41export function setupTablePublishingInfoEndpoint(CODE
LOWfrontend/test/__support__/server-mocks/data-studio.ts53export function setupTablePublishingInfoEndpointError(tableId: TableId) {CODE
LOW⚡frontend/test/__support__/server-mocks/glossary.ts7export function setupListGlossaryEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/glossary.ts13export function setupCreateGlossaryEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/glossary.ts19export function setupUpdateGlossaryEndpoint(item: GlossaryItem) {CODE
LOW⚡frontend/test/__support__/server-mocks/glossary.ts23export function setupDeleteGlossaryEndpoint(id: GlossaryItem["id"]) {CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts13export function setupDependencyCountsEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts23export function setupDependencyCountsErrorEndpoint() {CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts27export function setupListGraphNodeDependentsEndpoint(nodes: DependencyNode[]) {CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts31export function setupListBreakingGraphNodesEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts37export function setupListBrokenGraphNodesEndpoint(nodes: DependencyNode[]) {CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts41export function setupListUnreferencedGraphNodesEndpoint(CODE
LOW⚡frontend/test/__support__/server-mocks/dependencies.ts47export function setupDependencyGraphEndpoint(response: DependencyGraph) {CODE
LOWfrontend/test/__support__/server-mocks/oauth.ts5export function setupOAuthAuthorizationsEndpoint(CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts16export function setupMfaStatusEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts24export function setupMfaEnrollEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts32export function setupMfaDisableEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts36export function setupMfaRecoveryCodesEndpoint(recoveryCodes: string[]) {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts42export function setupMfaRecoveryCodesEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts46export function setupMfaAdminOverviewEndpoint(overview: MfaAdminOverview) {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts56export function setupMfaEnrolledUsersEndpoint(users: MfaEnrolledUser[]) {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts63export function setupMfaEnrolledUsersEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts67export function setupMfaUnenrolledUsersEndpoint(users: MfaAdminUser[]) {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts74export function setupMfaUnenrolledUsersEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts78export function setupMfaAdminRemoveEndpoint() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts82export function setupMfaAdminRemoveEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts90export function setupMfaVerifyEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts94export function setupMfaEnrollOnLoginEndpoint(recoveryCodes: string[]) {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts101export function setupMfaEnrollOnLoginEndpointError() {CODE
LOW⚡…end/test/__support__/server-mocks/multi-factor-auth.ts105export function setupMfaSendEmailOtpEndpoint() {CODE
LOW⚡frontend/test/__support__/server-mocks/slack.ts6export function setupSlackManifestEndpoint() {CODE
LOW⚡frontend/test/__support__/server-mocks/slack.ts10export function setupSlackSettingsEndpoint() {CODE
LOW⚡frontend/test/__support__/server-mocks/slack.ts14export function setupSlackAppInfoEndpoint(appInfo?: Partial<SlackAppInfo>) {CODE
LOW…d/test/__support__/server-mocks/content-translation.ts5export function setupContentTranslationEndpoints({CODE
LOWfrontend/test/__support__/server-mocks/geojson.ts24export function setupMalformedGeoJSONEndpoint({CODE
LOWfrontend/test/__support__/server-mocks/geojson.ts48export function setupGeoJSONEndpointWithError({CODE
LOWfrontend/test/__support__/server-mocks/performance.ts4export function setupPerformanceEndpoints(cacheConfigs: CacheConfig[]) {CODE
LOWfrontend/test/__support__/server-mocks/performance.ts40export function setupPerformanceEndpointsError() {CODE
LOWfrontend/test/__support__/server-mocks/table.ts46export function setupTableQueryMetadataEndpoint(table: Table) {CODE
LOWfrontend/test/__support__/server-mocks/table.ts50export function setupTableQueryMetadataEndpointError(CODE
LOWfrontend/test/__support__/server-mocks/table.ts106export function setupUploadManagementEndpoint(tables: Table[]) {CODE
LOWfrontend/test/__support__/server-mocks/table.ts114export function setupDeleteUploadManagementDeleteEndpoint(failureId?: number) {CODE
LOWfrontend/test/__support__/server-mocks/segment.ts6export function setupSegmentRevisionsEndpointError(segmentId: number) {CODE
LOWfrontend/test/__support__/server-mocks/segment.ts17export function setupSegmentEndpointError(segmentId: number) {CODE
2350 more matches not shown…
Fake / Example Data224 hits · 244 pts
SeverityFileLineSnippetContext
LOW…ase-lib/v1/metadata/utils/saved-questions.unit.spec.ts42 schemaName: "John Doe's Personal collection",CODE
LOW⚡…src/metabase/static-viz/lib/truncate-text.unit.spec.ts27 expect(truncateText("John Doe", 48, test.measurer, fontStyle)).toBe(CODE
LOW⚡…src/metabase/static-viz/lib/truncate-text.unit.spec.ts28 "John Doe",CODE
LOW⚡…src/metabase/static-viz/lib/truncate-text.unit.spec.ts33 expect(truncateText("John Doe", 48, test.measurer, fontStyle)).toBe(CODE
LOW⚡…src/metabase/static-viz/lib/truncate-text.unit.spec.ts34 "John Doe",CODE
LOW⚡…src/metabase/static-viz/lib/truncate-text.unit.spec.ts39 expect(truncateText("John Doe", 0, test.measurer, fontStyle)).toBe("…");CODE
LOW…onents/MetricDimensions/MetricDimensions.unit.spec.tsx444 "placeholder",CODE
LOW…ase/ui/components/overlays/Popover/Popover.stories.tsx93 Lorem ipsum dolor sit amet, consectetur adipiscing elit. SedCODE
LOW…ase/ui/components/overlays/Popover/Popover.stories.tsx93 Lorem ipsum dolor sit amet, consectetur adipiscing elit. SedCODE
LOW…ts/MonitorBreadcrumbs/MonitorBreadcrumbs.unit.spec.tsx25 ["Jane Doe", "/conversations?user=1"],CODE
LOW…ts/MonitorBreadcrumbs/MonitorBreadcrumbs.unit.spec.tsx32 expect(within(breadcrumbs).getByText("Jane Doe")).toBeInTheDocument();CODE
LOW…ts/MonitorBreadcrumbs/MonitorBreadcrumbs.unit.spec.tsx60 ["Jane Doe", "/conversations?user=1"],CODE
LOW…ts/MonitorBreadcrumbs/MonitorBreadcrumbs.unit.spec.tsx67 const user = screen.getByRole("link", { name: "Jane Doe" });CODE
LOW…ts/MetabotChat/MetabotChatEditor/MetabotChatEditor.tsx16 | "placeholder"CODE
LOWfrontend/src/metabase/setup/tests/setup.tsx131 email = "john@example.org",CODE
LOWfrontend/src/metabase/setup/tests/common.unit.spec.tsx286 formData.append("EMAIL", "john@example.org"); // email from user stepCODE
LOW…s/components/SettingsLdapForm.enterprise.unit.spec.tsx126 expect(filterInput).toHaveAttribute("placeholder", "(member={dn})");CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx294 expect(userFilter).toHaveAttribute("placeholder", DEFAULT_USER_FILTER);CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx297 expect(port).toHaveAttribute("placeholder", "389");CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx303 "placeholder",CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx307 "placeholder",CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx311 "placeholder",CODE
LOW⚡…min/settings/components/SettingsLdapForm.unit.spec.tsx321 expect(port).toHaveAttribute("placeholder", "636");CODE
LOW…ettingsPages/test/AuthenticationSettingsPage.setup.tsx35 common_name: "John Doe",CODE
LOW…ettingsPages/test/AuthenticationSettingsPage.setup.tsx51 common_name: "Jane Doe",CODE
LOW…ettings/components/ApiKeys/ManageApiKeys.unit.spec.tsx41 common_name: "John Doe",CODE
LOW…ettings/components/ApiKeys/ManageApiKeys.unit.spec.tsx57 common_name: "Jane Doe",CODE
LOW…onents/widgets/Notifications/WebhookForm.unit.spec.tsx119 "foo@bar.com",CODE
LOW…onents/widgets/Notifications/WebhookForm.unit.spec.tsx134 "auth-username": "foo@bar.com",CODE
LOW…min/databases/containers/DatabaseListApp.unit.spec.tsx23const LIST_ERROR_MESSAGE = "Lorem ipsum dolor sit amet, consectetur adip";CODE
LOW…min/databases/containers/DatabaseListApp.unit.spec.tsx23const LIST_ERROR_MESSAGE = "Lorem ipsum dolor sit amet, consectetur adip";CODE
LOW…etabase/admin/ai/OAuthAuthorizationsPage.unit.spec.tsx99 user_email: "user@example.com",CODE
LOW…etabase/admin/ai/OAuthAuthorizationsPage.unit.spec.tsx110 expect(within(table).getByText("user@example.com")).toBeInTheDocument();CODE
LOW…ents/GroupMembersTable/GroupMembersTable.unit.spec.tsx17 email: "user@example.com",CODE
LOW…c/metabase/admin/performance/components/test-utils.tsx126 expect(input).toHaveAttribute("placeholder", expectedPlaceholder.toString());CODE
LOW⚡frontend/src/metabase/dashboard/sections.ts62 const card = createVirtualCard("placeholder");CODE
LOW…bar/AddEditSidebar/EmailAttachmentPicker.unit.spec.tsx479 creator: { id: 1, common_name: "Test", email: "test@test.com" } as any,CODE
LOW…bar/AddEditSidebar/EmailAttachmentPicker.unit.spec.tsx536 creator: { id: 1, common_name: "Test", email: "test@test.com" } as any,CODE
LOW…ashboardSubscriptionsSidebar/tests/common.unit.spec.ts222 expect(await screen.findByText("John Doe")).toBeInTheDocument();CODE
LOW…ashboardSubscriptionsSidebar/tests/common.unit.spec.ts442 "placeholder",CODE
LOW…nd/src/metabase/dashboard/components/DashCard/utils.ts19const VIZ_WITH_CUSTOM_MAPPING_UI = ["heading", "placeholder"];CODE
LOW…e/dashboard/components/DashCard/Dashcard.unit.spec.tsx1222 ["placeholder", createMockPlaceholderDashboardCard()],CODE
LOW…abase/dashboard/visualizations/DashCardPlaceholder.tsx133 identifier: "placeholder",CODE
LOW…/src/metabase/common/components/UserForm.unit.spec.tsx328 createMockTenant({ id: 1, name: "Acme Corp" }),CODE
LOW…/src/metabase/common/components/UserForm.unit.spec.tsx371 await userEvent.click(await screen.findByText("Acme Corp"));CODE
LOW…ItemsTable/BaseItemsTable/BaseItemsTable.unit.spec.tsx93 expect(screen.getByText("John Doe")).toBeInTheDocument();CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx18 common_name: "Jane Doe",CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx96 await screen.findByRole("option", { name: "Jane Doe" }),CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx103 expect(getUserQueries()).not.toContain("Jane Doe");CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx115 await screen.findByRole("option", { name: "Jane Doe" }),CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx126 expect(getUserQueries()).not.toContain("Jane Doe");CODE
LOW…/common/components/UserPicker/UserPicker.unit.spec.tsx155 await screen.findByRole("option", { name: "Jane Doe" }),CODE
LOW…nts/upsells/components/UpsellCardContent.unit.spec.tsx32 email: "user@example.com",CODE
LOW…sualizations/lib/register-jsx-formatting.unit.spec.tsx719 setup("user@example.com", {CODE
LOW…sualizations/lib/register-jsx-formatting.unit.spec.tsx725 clicked: { value: "user@example.com" },CODE
LOW…dTransformsBanner/LockedTransformsBanner.unit.spec.tsx16 email: "user@example.com",CODE
LOW…formsHoverCard/LockedTransformsHoverCard.unit.spec.tsx18 email: "user@example.com",CODE
LOW…components/TagMultiSelect/TagMultiSelect.unit.spec.tsx83 expect(input).toHaveAttribute("placeholder", "Tags are read-only");CODE
LOW…/transforms/pages/TransformListPage/utils.unit.spec.ts118 email: "user@example.com",CODE
LOWfrontend/src/metabase/urls/collections.ts30 // `originalName` keeps the original name like "John Doe's Personal Collection"COMMENT
164 more matches not shown…
Hallucination Indicators15 hits · 150 pts
SeverityFileLineSnippetContext
CRITICAL…extensions/HandleEditorDrop/DropHandlers/cardToCard.ts39 const flexContainer = view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…extensions/HandleEditorDrop/DropHandlers/cardToCard.ts45 const wrapper = view.state.schema.nodes.resizeNode.create(CODE
CRITICAL…s/HandleEditorDrop/DropHandlers/cardToFlexContainer.ts108 const newContainer = view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…s/HandleEditorDrop/DropHandlers/cardToFlexContainer.ts202 const wrappedRemainingCard = view.state.schema.nodes.resizeNode.create(CODE
CRITICAL…s/HandleEditorDrop/DropHandlers/cardToFlexContainer.ts241 view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…s/HandleEditorDrop/DropHandlers/cardToFlexContainer.ts296 const newTargetFlexContainer = view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…s/HandleEditorDrop/DropHandlers/cardToFlexContainer.ts373 const newFlexContainer = view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…nsions/HandleEditorDrop/DropHandlers/cardToDocument.ts75 view.state.schema.nodes.resizeNode.create(CODE
CRITICAL…nsions/HandleEditorDrop/DropHandlers/cardToDocument.ts106 const newFlexContainer = view.state.schema.nodes.flexContainer.create(CODE
CRITICAL…nsions/HandleEditorDrop/DropHandlers/cardToDocument.ts139 const wrappedNode = view.state.schema.nodes.resizeNode.create(CODE
CRITICAL…nsions/HandleEditorDrop/DropHandlers/cardToDocument.ts164 const wrappedNode = view.state.schema.nodes.resizeNode.create(CODE
CRITICAL…mponents/editor-extensions/CardEmbed/CardEmbedNode.tsx393 editor.view.state.schema.nodes.flexContainer.create(CODE
CRITICALfrontend/src/metabase/redux/downloads.ts647 title: t`Results for ${action.meta.arg.opts.question.card().name}`,CODE
CRITICALfrontend/src/metabase/redux/downloads.ts661 title: t`Image for ${action.meta.arg.opts.question.card().name}`,CODE
CRITICAL…dk-package/data-app-dev/dev-plugin/plugin.unit.spec.ts583 server.ws.send.mock.calls.filter(CODE
Decorative Section Separators37 hits · 129 pts
SeverityFileLineSnippetContext
MEDIUMmise.toml4# =================================COMMENT
MEDIUMmise.toml17# ------------------------------------------COMMENT
MEDIUMmise.toml48# =============================================================================COMMENT
MEDIUMmise.toml50# =============================================================================COMMENT
MEDIUMmise.toml73# =============================================================================COMMENT
MEDIUMmise.toml75# =============================================================================COMMENT
MEDIUM…tabase/metrics-viewer/components/MetricSearch/utils.ts652// ── Positioned token type (internal) ────────────────────────────────────────COMMENT
MEDIUM…rics-viewer/components/MetricSearch/utils.unit.spec.ts1496 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…rics-viewer/components/MetricSearch/utils.unit.spec.ts1504 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx190// ── Collapsed view (pills) ──────────────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx257// ── Expanded view (focused text input) ─────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx299// ── Blur / unfocus behavior ─────────────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx364// ── Run button and validation ───────────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx432// ── Removing items ──────────────────────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx498// ── Expression pill display after Run ────────────────────────────────────────COMMENT
MEDIUM…arch/MetricSearchInput/MetricSearchInput.unit.spec.tsx574// ── Typing / onChange ───────────────────────────────────────────────────────COMMENT
MEDIUM…MetricSearch/MetricSearchInput/metricTokenHighlight.ts46// ── Identity tracking ──────────────────────────────────────────────────────COMMENT
MEDIUM…MetricSearch/MetricSearchInput/metricTokenHighlight.ts144// ── Token highlighting ─────────────────────────────────────────────────────COMMENT
MEDIUM…nfigModal/NotificationChannelConfigModal.unit.spec.tsx28// ── UI behaviour tests (mocked hook) ────────────────────────────────COMMENT
MEDIUM…nfigModal/NotificationChannelConfigModal.unit.spec.tsx248// ── Save‐payload tests (real hook + context) ────────────────────────COMMENT
MEDIUM…nfigModal/NotificationChannelConfigModal.unit.spec.tsx478// ── Send-test-notification payload tests (real hook + context) ──────COMMENT
MEDIUM⚡bin/utils/tools.sh16# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh18# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh27# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh29# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh39# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh41# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh51# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh53# =============================================================================COMMENT
MEDIUMbin/utils/tools.sh116# =============================================================================COMMENT
MEDIUMbin/utils/tools.sh118# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh137# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh139# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh149# =============================================================================COMMENT
MEDIUM⚡bin/utils/tools.sh151# =============================================================================COMMENT
MEDIUM.github/scripts/run-backend-test-jvms.sh7# ----------------------------COMMENT
MEDIUM.github/scripts/run-backend-test-jvms.sh20# --------------------COMMENT
Over-Commented Block91 hits · 91 pts
SeverityFileLineSnippetContext
LOW.pre-commit-config.yaml1repos:COMMENT
LOWmise.toml1#:schema https://mise.jdx.dev/schema/mise.jsonCOMMENT
LOWmise.toml21# 1. Use mise shims (recommended for IDEs):COMMENT
LOWmise.toml61# Clojure CLI - for backend development and REPLCOMMENT
LOWrspack.embedding-sdk-bundle.config.js221 // Scope hoisting: merges ES modules into fewer closures, reducing parse overheadCOMMENT
LOW…tabase/rules/no-unconditional-metabase-links-render.js1//------------------------------------------------------------------------------COMMENT
LOWfrontend/test/jest-setup-eager.js1// Jest compiles imports lazily (see jest.base.conf.js), so a module runs theCOMMENT
LOWfrontend/test/jest-setup-env-core.js1import { createMockSettings } from "metabase-types/api/mocks";COMMENT
LOW…nd/src/embedding-sdk-bundle/embedding-sdk-bootstrap.ts1import { SDK_BUNDLE_ERROR } from "embedding-sdk-shared/constants/event-names";COMMENT
LOWfrontend/src/embedding-sdk-bundle/types/globals.d.ts1interface Window {COMMENT
LOW…src/embedding-sdk-bundle/analytics/component-events.ts121const firedKeys = new Set<string>();COMMENT
LOW…ui/components/overlays/overlay-stack/overlay-stack.tsx41COMMENT
LOWfrontend/src/metabase/settings/api.ts121 listTag("setup-guide-checklist"),COMMENT
LOWfrontend/src/metabase/settings/api.ts161 // empty when we tried to patch it, because the boot-time settingsCOMMENT
LOW…nd/src/metabase/explorations/pages/ExplorationPage.tsx341 // bringing in fresh interestingness scores) re-derives theCOMMENT
LOW…tabase/viz-core/echarts/cartesian/constants/dataset.ts21// When working with time series or numeric scales, we process x-axis values for EChartsCOMMENT
LOWfrontend/src/metabase/utils/fonts.ts1import type { MetabaseFontFamily } from "metabase-types/api/fonts";COMMENT
LOWfrontend/src/metabase/utils/noop.ts1// there's nothing here!COMMENT
LOWfrontend/src/metabase/common/components/UndoListing.tsx301 const [heights, setHeights] = useState<number[]>([]);COMMENT
LOW…visualizations/tests/timeseries-intervals.unit.spec.ts401 // shouldn't move to a more granular interval than what was passedCOMMENT
LOW…ase/visualizations/visualizations/Scalar/definition.ts81 },COMMENT
LOWfrontend/src/metabase/metadata-store/hydration.ts241 // Deferred so the write cannot re-enter the action that triggered it.COMMENT
LOWfrontend/src/metabase/api/client/request-handlers.ts41 overrideRequestsForPublicEmbeds: noop,COMMENT
LOWfrontend/src/metabase/api/client/request-handlers.ts61 // Installed by SDK auth (`embedding-sdk-ee/auth`).COMMENT
LOWfrontend/src/metabase/querying/run-query.ts121 signal?: AbortSignal,COMMENT
LOW…rc/metabase/visualizer/visualizations/pie.unit.spec.ts161 // TODO Enable when VIZ-652 is closedCOMMENT
LOW…-enterprise/custom_viz/sandbox/distortions-dom-read.ts1import { BLOCKED_TAGS } from "metabase/utils/scripts-sandbox";COMMENT
LOW…rc/embedding/data-picker/DataSelector/DataSelector.tsx241COMMENT
LOWbin/build.sh1#!/usr/bin/env bashCOMMENT
LOWbin/custom-viz/resolve-release.sh1#!/usr/bin/env bashCOMMENT
LOWbin/utils/files.sh1# bin/utils/files.sh - File utilitiesCOMMENT
LOWbin/utils/logging.sh1# bin/utils/logging.sh - Logging and output functionsCOMMENT
LOWbin/utils/tools.sh1# bin/utils/tools.sh - Tool detection and version checking utilitiesCOMMENT
LOWbin/utils/prompts.sh1# bin/utils/prompts.sh - Interactive prompt utilitiesCOMMENT
LOWresources/liquibase_legacy_migrations.yaml5621#COMMENT
LOWresources/liquibase_legacy_migrations.yaml10561 'type/Country',COMMENT
LOWresources/liquibase_legacy_migrations.yaml10581 #COMMENT
LOWresources/python-sources/sql_tools.py1941COMMENT
LOWresources/automagic_dashboards/table/example.yaml1# Each automagic dashboard heuristic produces one dashboard and is primarily drawingCOMMENT
LOWresources/automagic_dashboards/table/example.yaml21# Each metric is a map of metric name to metric definition which is again a map withCOMMENT
LOWresources/automagic_dashboards/table/example.yaml41# Each filter has the form of a map of filter name to filter definition,COMMENT
LOWrelease/ci-conductor/src/contract.ts1// The normalized shape every adapter produces and every consumer reads.COMMENT
LOWrelease/ci-conductor/src/collect-failed-backend.ts1#!/usr/bin/env bunCOMMENT
LOWrelease/ci-conductor/src/report-backend.ts1#!/usr/bin/env bunCOMMENT
LOWrelease/ci-conductor/src/report-frontend.ts1#!/usr/bin/env bunCOMMENT
LOWrelease/ci-conductor/src/adapters/frontend.ts1// Frontend (jest) adapter: jest-junit's JUnit XML → NormalizedTest[].COMMENT
LOWrelease/ci-conductor/src/adapters/backend.ts1// Backend (Clojure/hawk) adapter: hawk's JUnit XML → NormalizedTest[].COMMENT
LOWcross-version/dev.sh1#!/usr/bin/env bashCOMMENT
LOWdocs/util/check-links.sh1#!/usr/bin/env bashCOMMENT
LOWdocs/developers-guide/drivers/plugins.md81COMMENT
LOWdocs/developers-guide/drivers/plugins.md101# You can list any dependencies needed by the plugin by specifying aCOMMENT
LOWdocs/developers-guide/drivers/plugins.md121 for more detailsCOMMENT
LOWdocs/developers-guide/drivers/plugins.md141# that multiple drivers currently still must share the same dependenciesCOMMENT
LOWdocs/developers-guide/drivers/plugins.md201# Steps to take to initialize the plugin. For lazy-load drivers, thisCOMMENT
LOW.github/workflows/backend.yml221 run: bun run build-static-vizCOMMENT
LOW.github/workflows/release-embedding-sdk.yml1# Step 2 of the SDK release process: merging a version-bump PR (opened byCOMMENT
LOW.github/workflows/backend-cloverage.yml1name: Backend-CloverageCOMMENT
LOW.github/workflows/test.profile-backend.yml1name: Profile BackendCOMMENT
LOW.github/workflows/cache-warm.yml1# Writes the shared dependency caches. Every other job restores them and none of them writes.COMMENT
LOW.github/workflows/cache-warm.yml101 # of what each job resolves at runtime.COMMENT
31 more matches not shown…
Structural Annotation Overuse50 hits · 88 pts
SeverityFileLineSnippetContext
LOWfrontend/src/embedding-sdk-bundle/bootstrap-auth.ts158 // Step 1: SSO discovery (skip if jwtProviderUri provided)COMMENT
LOWfrontend/src/embedding-sdk-bundle/bootstrap-auth.ts185 // Step 4: Fetch user and site settings in parallel (bootstrap-specific)COMMENT
LOW.claude/skills/analytics-events/SKILL.md79#### Step 1: Create Tracking FunctionsCOMMENT
LOW.claude/skills/analytics-events/SKILL.md99#### Step 2: Use in ComponentsCOMMENT
LOW.claude/skills/emotion-migrate/SKILL.md139### Step 1: Read and UnderstandCOMMENT
LOW.claude/skills/emotion-migrate/SKILL.md148### Step 2: Classify Each Styled ComponentCOMMENT
LOW.claude/skills/emotion-migrate/SKILL.md166### Step 3: Create CSS Module (if needed)COMMENT
LOW.claude/skills/emotion-migrate/SKILL.md212### Step 4: Update the Component TSXCOMMENT
LOW.claude/skills/emotion-migrate/SKILL.md233### Step 5: Delete the `.styled.tsx` FileCOMMENT
LOW.claude/skills/emotion-migrate/SKILL.md237### Step 6: VerifyCOMMENT
LOWdocs/databases/ssl-certificates.md22## Step 1: Download the root certificate from your providerCOMMENT
LOWdocs/databases/ssl-certificates.md33## Step 2: Save the certificateCOMMENT
LOW⚡docs/databases/ssl-certificates.md45## Step 3: Add your databaseCOMMENT
LOW⚡docs/databases/ssl-certificates.md49## Step 4: Toggle on the "Use a secure connection (SSL)" optionCOMMENT
LOW⚡docs/databases/ssl-certificates.md53## Step 5: Add additional connection string optionsCOMMENT
LOW⚡docs/data-modeling/semantic-layer/remote-sync.md253### Step 1: Create a new branchCOMMENT
LOW⚡docs/data-modeling/semantic-layer/remote-sync.md257### Step 2: Create content in your development MetabaseCOMMENT
LOW⚡docs/data-modeling/semantic-layer/remote-sync.md261### Step 3: Push to your development branchCOMMENT
LOW⚡docs/data-modeling/semantic-layer/remote-sync.md265### Step 4: Create a pull requestCOMMENT
LOW⚡docs/data-modeling/semantic-layer/remote-sync.md273### Step 5: Production automatically updatesCOMMENT
LOW⚡docs/data-modeling/transforms/python-runner.md54### Step 1: Generate a secure authentication tokenCOMMENT
LOW⚡docs/data-modeling/transforms/python-runner.md62### Step 2: Set up S3 storageCOMMENT
LOW⚡docs/data-modeling/transforms/python-runner.md66### Step 3: Start the containersCOMMENT
LOW⚡docs/installation-and-operation/serialization.md397### Step 1: Set up an API keyCOMMENT
LOW⚡docs/installation-and-operation/serialization.md402### Step 2: ExportCOMMENT
LOWdocs/installation-and-operation/serialization.md425### Step 3: ImportCOMMENT
LOW…nstallation-and-operation/running-metabase-on-azure.md11## Step 1: Create the resource group (resource grouping)COMMENT
LOW…nstallation-and-operation/running-metabase-on-azure.md23## Step 2: Create the VNET (virtual network)COMMENT
LOW…nstallation-and-operation/running-metabase-on-azure.md46## Step 3: Create the Application Database (PostgreSQL)COMMENT
LOW…nstallation-and-operation/running-metabase-on-azure.md67## Step 4: Create the private endpoint connectionCOMMENT
LOW…nstallation-and-operation/running-metabase-on-azure.md88## Step 5: Create web application (deploy Metabase)COMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx524 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx527 // Step 2: Navigate to question by clicking on dashcard titleCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx537 // Step 3: First drill - click on Product ID cellCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx544 // Step 4: Second drillCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx551 // Step 5: One back click should undo BOTH drills and return to the questionCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx558 // Step 6: Another back click should return to the dashboardCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx583 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx586 // Step 2: First drill directly from dashboard (click on User ID cell - no custom click behavior)COMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx600 // Step 3: Second drill on the drill resultCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx607 // Step 4: One back click should go directly back to Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx681 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx684 // Step 2: Navigate from Dashboard A to Dashboard B via click behaviorCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx693 // Step 3: Navigate from Dashboard B to question via click behaviorCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx737 // Step 6: Perform third drillCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx747 // Step 7: One back click should revert ALL drills and return to the original questionCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx756 // Step 8: Go back to Dashboard BCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx763 // Step 9: Go back to Dashboard ACOMMENT
LOW…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx705 // Step 4: Perform first drill on the question (click on Product ID to drill)COMMENT
LOW…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx721 // Step 5: Perform second drillCOMMENT
Magic Placeholder Names13 hits · 78 pts
SeverityFileLineSnippetContext
HIGH⚡docs/people-and-groups/api-keys.md80Replace `YOUR_API_KEY` with the API key you generated above.CODE
HIGH⚡docs/people-and-groups/api-keys.md84-H 'X-API-Key: YOUR_API_KEY' \CODE
HIGH⚡docs/people-and-groups/api-keys.md93export METABASE_API_KEY="YOUR_API_KEY"CODE
HIGH…nteractive-embedding-quick-start-guide/sso-with-jwt.ts9const METABASE_JWT_SHARED_SECRET = "YOUR_SECRET_HERE";CODE
HIGHdocs/embedding/sdk/snippets/quickstart/example.tsx13 apiKey: "YOUR_API_KEY",CODE
HIGH…mbedding/sdk/snippets/authentication/express-server.ts11const METABASE_JWT_SHARED_SECRET = "YOUR_SECRET_HERE";CODE
HIGH…ng/sdk/snippets/authentication/auth-config-api-key.tsx8 apiKey: "YOUR_API_KEY",CODE
HIGH…s/authentication/express-server-interactive-and-sdk.ts8const METABASE_JWT_SHARED_SECRET = "YOUR_SECRET_HERE";CODE
HIGHdocs/ai/agent-api.md60X-API-Key: YOUR_API_KEYCODE
HIGH⚡docs/installation-and-operation/serialization.md408 -H 'X-API-Key: YOUR_API_KEY' \CODE
HIGH⚡docs/installation-and-operation/serialization.md413 substituting `YOUR_API_KEY` with your API key and `your-metabase-url` with the URL of your Metabase instance.CODE
HIGHdocs/installation-and-operation/serialization.md441 -H 'X-API-Key: YOUR_API_KEY' \CODE
HIGHdocs/installation-and-operation/serialization.md447 substituting `YOUR_API_KEY` with your API key and `your-metabase-url` with your Metabase instance URL.CODE
AI Slop Vocabulary12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/src/metabase/viz-core/lib/sensibility.ts206 // the sankey sensibility check is quite robust, so we recommend it whenever it's sensibleCOMMENT
MEDIUM…base/utils/scripts-sandbox/distortions-blocked-apis.ts24// property of the global. Walk the chain so the lookup is robust.COMMENT
MEDIUM…transforms/pages/RunListPage/RunListPage.unit.spec.tsx133 // Resolve the Duration column's index from the headers (robust toCOMMENT
MEDIUM…tabase/documents/components/DocumentPage.unit.spec.tsx71 // doesn't exist *anymore* should be more robustCOMMENT
MEDIUM…ateExternalUserButton/ReactivateExternalUserButton.tsx9 // Making the same API request, so we can leverage the cached resultCOMMENT
MEDIUM…metabase_enterprise/search/semantic/docker-compose.yml1# Dev harness for a DEDICATED pgvector database (MB_PGVECTOR_DB_URL). A dedicated database is notCOMMENT
MEDIUMbin/embedding-sdk/change-react-version.bash47 # Install React and Cypress React test harnessCOMMENT
MEDIUM.github/file-paths.yaml283# e2e harness/support code (commands, support file, runner). Not in theCOMMENT
MEDIUM.github/workflows/semantic-search.yml282 # MB_PGVECTOR_DB_URL is deliberately unset. The dedicated-harness tests gate themselves off; theCOMMENT
MEDIUM.github/workflows/test.bundle-load-stats.yml91 # Only the harness comes from this tree. The app under test is theCOMMENT
MEDIUM.github/workflows/test.bundle-load-stats.yml160 # checked out above is the harness rather than the measured commit, soCOMMENT
MEDIUM.github/actions/create-backport/create-backport-test.sh258# Test harnessCOMMENT
Verbosity Indicators21 hits · 35 pts
SeverityFileLineSnippetContext
LOWfrontend/src/embedding-sdk-bundle/bootstrap-auth.ts158 // Step 1: SSO discovery (skip if jwtProviderUri provided)COMMENT
LOWfrontend/src/embedding-sdk-bundle/bootstrap-auth.ts185 // Step 4: Fetch user and site settings in parallel (bootstrap-specific)COMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx524 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx527 // Step 2: Navigate to question by clicking on dashcard titleCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx537 // Step 3: First drill - click on Product ID cellCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx544 // Step 4: Second drillCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx551 // Step 5: One back click should undo BOTH drills and return to the questionCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx558 // Step 6: Another back click should return to the dashboardCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx583 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx586 // Step 2: First drill directly from dashboard (click on User ID cell - no custom click behavior)COMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx600 // Step 3: Second drill on the drill resultCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx607 // Step 4: One back click should go directly back to Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx681 // Step 1: Verify we start on Dashboard ACOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx684 // Step 2: Navigate from Dashboard A to Dashboard B via click behaviorCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx693 // Step 3: Navigate from Dashboard B to question via click behaviorCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx737 // Step 6: Perform third drillCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx747 // Step 7: One back click should revert ALL drills and return to the original questionCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx756 // Step 8: Go back to Dashboard BCOMMENT
LOW⚡…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx763 // Step 9: Go back to Dashboard ACOMMENT
LOW…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx705 // Step 4: Perform first drill on the question (click on Product ID to drill)COMMENT
LOW…cenarios/embedding-sdk/internal-navigation.cy.spec.tsx721 // Step 5: Perform second drillCOMMENT
Self-Referential Comments11 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMmise.toml6# This file defines the tools required for Metabase development.COMMENT
MEDIUMbin/verify-doc-links/verify-doc-links.unit.spec.ts81 "# Alerts\n## Create an alert\n",CODE
MEDIUMresources/liquibase_legacy_migrations.yaml3# This file contains the legacy migrations that used to bootstrap metabase, now this file should beCOMMENT
MEDIUMresources/liquibase_legacy_migrations.yaml5496# Create the TaskHistory table, intended to provide debugging info on our background/quartz processesCOMMENT
MEDIUMresources/liquibase_legacy_migrations.yaml6768# Create the native query snippets table, intended to store snippets and their metadataCOMMENT
MEDIUMresources/liquibase_legacy_migrations.yaml10169 # Create the magic Permissions Groups if they don't already exist.COMMENT
MEDIUMresources/python-sources/sql_tools.py541 # Create the Into expression with the table identifierCOMMENT
MEDIUMresources/python-sources/sql_tools.py1430 # Create a fake column to reuse column resolutionCOMMENT
MEDIUMcross-version/test.sh199# This function is idempotent - it takes a version string and handles everything internally.COMMENT
MEDIUM.github/workflows/optimize-images.yml38 # Initialize tracking variablesCOMMENT
MEDIUM.github/actions/fetch-artifact/action.yml107 # Create a temporary directory for extraction to avoid conflictsCOMMENT
Cross-Language Confusion6 hits · 19 pts
SeverityFileLineSnippetContext
HIGH⚡resources/python-sources/sql_tools.py163 [[null, null, "users"], [null, "public", "orders"], ["myproject", "dataset", "events"]]STRING
HIGH⚡resources/python-sources/sql_tools.py172 => '[[null, null, "users"]]'STRING
HIGH⚡resources/python-sources/sql_tools.py175 => '[[null, "public", "users"]]'STRING
HIGHresources/python-sources/sql_tools.py191 [[null, null, "users", "id"], [null, "public", "orders", "total"]]STRING
HIGHresources/python-sources/sql_tools.py207 => '[[null, null, "users", "id"]]'STRING
HIGHresources/python-sources/sql_tools.py210 => '[[null, "public", "users", "*"]]'STRING
Overly Generic Function Names16 hits · 16 pts
SeverityFileLineSnippetContext
LOW…-sdk-shared/.storybook/msw-public/mockServiceWorker.js122async function handleRequest(event, requestId) {CODE
LOW…ents/DatabaseCacheScheduleField/ScheduleModePicker.tsx43function getData(): SelectData<ScheduleMode> {CODE
LOW…itor/tools/components/LogLevelsModal/DurationInput.tsx48function getData() {CODE
LOW…ase/monitor/tools/components/TaskPicker/TaskPicker.tsx40function getData(uniqueTasks?: string[]) {CODE
LOW…tools/components/TaskStatusPicker/TaskStatusPicker.tsx38function getData() {CODE
LOW…d/src/metabase/metadata/components/DataSourceInput.tsx48function getData({CODE
LOWfrontend/src/metabase/metadata/components/UserInput.tsx128function getData(CODE
LOW…onents/FieldValuesTypePicker/FieldValuesTypePicker.tsx50function getData() {CODE
LOW…adata/components/FieldOrderPicker/FieldOrderPicker.tsx45function getData(): SegmentedControlItem<TableFieldOrder>[] {CODE
LOW…/metadata/components/CurrencyPicker/CurrencyPicker.tsx84function getData() {CODE
LOW…pingPicker/DisplayValuesPicker/DisplayValuesPicker.tsx95function getData(options: RemappingValue[], value: RemappingValue) {CODE
LOW…adata/components/UnfoldJsonPicker/UnfoldJsonPicker.tsx44function getData() {CODE
LOW…onents/FieldVisibilityPicker/FieldVisibilityPicker.tsx66function getData() {CODE
LOW…a/components/SemanticTypePicker/SemanticTypePicker.tsx71function getData({ field, value }: Pick<Props, "field" | "value">) {CODE
LOW…/metadata/components/FkTargetPicker/FkTargetPicker.tsx167function getData(comparableIdFields: Field[], includeSchema: boolean) {CODE
LOW.storybook/msw-public/mockServiceWorker.js123async function handleRequest(event, requestId) {CODE
Example Usage Blocks10 hits · 15 pts
SeverityFileLineSnippetContext
LOWbin/utils/colors.sh4# Usage:COMMENT
LOWbin/utils/files.sh4# Usage:COMMENT
LOWbin/utils/logging.sh4# Usage:COMMENT
LOWbin/utils/tools.sh4# Usage:COMMENT
LOWbin/utils/all.sh4# Usage:COMMENT
LOWbin/utils/prompts.sh4# Usage:COMMENT
LOWcross-version/dev.sh11# Usage:COMMENT
LOWcross-version/test.sh5# Usage:COMMENT
LOWdev/src/dev/mq_perf_multi.sh4# Usage:COMMENT
LOWe2e/cross-version/run.sh7# Usage:COMMENT
Redundant / Tautological Comments8 hits · 13 pts
SeverityFileLineSnippetContext
LOWbin/openapi-check.sh29# Check if there are any differences between generated and committed versionsCOMMENT
LOW⚡bin/utils/tools.sh20# Check if a command/tool is availableCOMMENT
LOWresources/python-sources/sql_tools.py1139 # Check if it's a CTE referenceCOMMENT
LOWresources/python-sources/sql_tools.py1679 # Check if it looks like a dict (frozenset of 2-tuples)COMMENT
LOWcross-version/test.sh388# Check if Metabase refuses to start (downgrade detection)COMMENT
LOW.github/workflows/optimize-images.yml65 # Output results for use in commit messageCOMMENT
LOW.github/workflows/report.update-e2e-timings.yml76 # Check if anything changed before commit/pushCOMMENT
LOW.github/workflows/sync-fork.yml168 # Check if branch exists on originCOMMENT
Slop Phrases3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…ing-sdk-package/cli/snippets/express-server-snippet.ts18 // This is hard-coded for demonstration purposes.COMMENT
MEDIUM…mbedding/sdk/snippets/authentication/express-server.ts17 // Here it's hardcoded for demonstration purposesCOMMENT
MEDIUM…s/authentication/express-server-interactive-and-sdk.ts21 // Here it's hardcoded for demonstration purposesCOMMENT
Modern AI Meta-Vocabulary4 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMdocs/embedding/sdk/api/UseMetabotResult.html20</div></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="contextwindowpercentusage"><span>cCODE
MEDIUMdocs/embedding/sdk/api/UseMetabotResult.html29</div></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="iscontextwindowfull"><span>is<wbr/CODE
MEDIUMdocs/ai/agent-api.md8The [Agent API](../api.html#tag/apiagent) is a REST API for building headless, agentic BI applications on top of MetabasCODE
MEDIUMdocs/ai/agent-api.md26Check out the [Metabase Agent API demo](https://github.com/metabase/metabase-agent-api-demo) for a working example of anCODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…rc/metabase/query_builder/actions/core/initializeQB.ts414 // This handles cases like AI-generated queries with model references {{#1}}COMMENT
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…t/scenarios/organization/timelines-question.cy.spec.js693 // I've added comments that hopefully make this easier for the next person to understand.COMMENT
Deep Nesting12 hits · 7 pts
SeverityFileLineSnippetContext
LOWresources/python-sources/sql_tools.py186CODE
LOWresources/python-sources/sql_tools.py552CODE
LOWresources/python-sources/sql_tools.py635CODE
LOWresources/python-sources/sql_tools.py1803CODE
LOWresources/python-sources/sql_tools.py673CODE
LOWresources/python-sources/sql_tools.py881CODE
LOWresources/python-sources/sql_tools.py1194CODE
LOWresources/python-sources/sql_tools.py1261CODE
LOWresources/python-sources/sql_tools.py1440CODE
LOWresources/python-sources/sql_tools.py1598CODE
LOWresources/python-sources/sql_tools.py1670CODE
LOWresources/python-sources/sql_tools.py741CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHresources/python-sources/sql_tools.py636 Replace schema, table, and column names in a SQL query. SECURITY NOTE: Replacement values are injected into thSTRING
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHresources/python-sources/sql_tools.py73except:CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…scenarios/data-studio/transforms/transforms.cy.spec.ts3231 print("Hello, world!")CODE
Excessive Try-Catch Wrapping4 hits · 2 pts
SeverityFileLineSnippetContext
LOWresources/python-sources/sql_tools.py460 except Exception as e:CODE
LOWresources/python-sources/sql_tools.py2145 except Exception as e:CODE
LOWresources/python-sources/sql_tools.py1849 except Exception as e:STRING
LOWresources/python-sources/sql_tools.py1865 except Exception:STRING
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…src/metabase/search/containers/SearchApp.unit.spec.tsx206 // TODO: Add tests for other filters as they comeCOMMENT