AI Slop Code Risk Monitor

lightdash/lightdash

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

Agentic BI. Analytics at the speed of code ⚡️

0.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for lightdash/lightdash, a TypeScript project with 6,215 GitHub stars. SynthScan examined 2,731,980 lines of code across 10769 source files, recording 976 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 0.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.

0.6
Adjusted Signal
0.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.2K
Stars
TypeScript
Language
2.7M
Lines of Code
10.8K
Files
976
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 1.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 1.4/100 · LOW

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

PR Review Velocity Impact 2.9/100 · LOW

Which changes need focused human review? 976 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 25HIGH 10MEDIUM 167LOW 774

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 976 distinct pattern matches across 19 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.

Decorative Section Separators134 hits · 417 pts
SeverityFileLineSnippetContext
MEDIUMexamples/metricflow-demo/legacy-spec/models/schema.yml28# ── Legacy MetricFlow spec: top-level semantic_models + metrics ──────────────COMMENT
MEDIUMexamples/metricflow-demo/cloud/models/schema.yml28# ── Legacy MetricFlow spec: top-level semantic_models + metrics ──────────────COMMENT
MEDIUMexamples/metricflow-demo/latest-spec/models/orders.yml1# ── Latest MetricFlow spec (dbt Fusion / dbt platform / dbt Core 1.12+) ──────COMMENT
MEDIUMscripts/dev-fast-start.sh66# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh75# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh92# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh109# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh130# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh180# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh325# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh360# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh384# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh420# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh487# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh499# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh543# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh557# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh568# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh585# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh611# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev-fast-start.sh668# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh11# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/k8s-dev/up.sh32# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/k8s-dev/up.sh39# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/k8s-dev/up.sh44# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh65# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh84# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh96# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh136# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh152# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh161# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/k8s-dev/up.sh179# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/aks-dev/up.sh18# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/aks-dev/up.sh26# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/aks-dev/up.sh33# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh51# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh70# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh82# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh133# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh158# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh180# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh190# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh209# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/aks-dev/up.sh226# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts7// ─── Background: the PostgreSQL wire protocol ─────────────────────────────────COMMENT
MEDIUM⚡…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts13// ┌──────┬──────────────┬──────────────────────────┐COMMENT
MEDIUM⚡…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts16// └──────┴──────────────┴──────────────────────────┘COMMENT
MEDIUM…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts40// ─── Why Redshift sends sub-code 13 ───────────────────────────────────────────COMMENT
MEDIUM…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts50// ─── Why the throw crashes the backend ────────────────────────────────────────COMMENT
MEDIUM…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts66// ─── What this guard does ─────────────────────────────────────────────────────COMMENT
MEDIUM…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts82// ─── Scope / blast radius ─────────────────────────────────────────────────────COMMENT
MEDIUM…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts97// ─── Caveat ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…rontend/src/components/SimpleMap/hexbin/hexbinUtils.ts183// ─── Viewport-based empty-cell fill ────────────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts5 // ── RUNNING_TOTAL ─────────────────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts184 // ── ROW_NUMBER ────────────────────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts293 // ── LAG ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts409 // ── defaultOrderBy fallback ───────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts529 // ── LEAD ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts645 // ── CROSS-FUNCTION COMBINATIONS ──────────────────────────────COMMENT
MEDIUMpackages/formula-tests/cases/window.cases.ts780 // ── RANK ───────────────────────────────────────────────────────COMMENT
74 more matches not shown…
Hyper-Verbose Identifiers361 hits · 364 pts
SeverityFileLineSnippetContext
LOW…affle-shop-demo/dbt/scripts/generate_product_events.py82def generate_event_properties(event_type: str, session_context: dict) -> dict:CODE
LOW⚡scripts/merge-freeze-workflow.test.py198 def test_repeated_freeze_keeps_original_slack_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py208 def test_repeated_slack_freeze_keeps_github_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py214 def test_spoofed_or_unconfigured_dispatcher_rejected(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py221 def test_dispatcher_without_identity_rejected(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py226 def test_invalid_slack_inputs_rejected_without_echo(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py236 def test_other_verified_slack_employee_can_unfreeze(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py244 def test_github_user_cannot_unfreeze_slack_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py249 def test_verified_slack_employee_can_unfreeze_github_or_unknown_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py259 def test_owner_unfreezes_and_preserves_ruleset(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py268 def test_direct_github_freeze_and_case_insensitive_unfreeze(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py274 def test_direct_unknown_owner_escape_hatch(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py279 def test_direct_github_without_dispatcher_configuration(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py284 def test_other_github_user_cannot_unfreeze(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py289 def test_repeat_unknown_freeze_does_not_claim_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py296 def test_open_unfreeze_only_cleans_up(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py303 def test_new_status_rule_can_be_added_and_removed(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py310 def test_live_owner_lookup_failure_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py316 def test_failed_or_noop_owner_write_never_freezes(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py324 def test_failed_owner_readback_never_freezes(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py329 def test_invalid_variable_response_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py336 def test_invalid_recorded_owner_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py341 def test_duplicate_owner_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py349 def test_invalid_action_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py353 def test_serialized_requests_use_live_owner(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py362 def test_failed_ruleset_write_can_be_retried(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py369 def test_announcement_mentions_authenticated_slack_user(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py432 def test_invalid_ruleset_pin_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py439 def test_missing_ruleset_pin_never_falls_back(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py444 def test_ineligible_ruleset_pin_never_falls_back(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py453 def test_excluded_ruleset_pin_never_falls_back(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py461 def test_pin_requires_explicit_default_branch_coverage(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py469 def test_known_other_branch_exclusion_allows_pin(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py475 def test_single_match_fallback_honours_exclusions(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py480 def test_another_ruleset_freeze_blocks_freeze_and_unfreeze(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py493 def test_duplicate_ruleset_pin_never_mutates(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py501 def test_organization_freeze_also_blocks_selected_repository_rule(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py509 def test_ambiguous_other_freeze_requires_admin_review(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py517 def test_definitely_excluded_other_freeze_is_untouched(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py526 def test_all_branches_pin_covers_default(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py531 def test_pin_allows_another_employee_and_preserves_other_rulesets(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py572 def test_delayed_status_writer_observes_completed_unfreeze(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py578 def test_unfreeze_reconciles_a_status_writer_that_finishes_first(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py585 def test_repeat_unfreeze_refreshes_stale_statuses(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py592 def test_status_writer_checks_every_page_of_effective_rules(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py599 def test_status_read_failure_does_not_publish_success(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py604 def test_malformed_rules_do_not_publish_success(self):CODE
LOW⚡scripts/merge-freeze-workflow.test.py611 def test_status_and_toggle_share_a_non_replacing_lock(self):CODE
LOWscripts/merge-freeze-workflow.test.py181 def test_trusted_freeze_persists_owner_before_enforcement(self):CODE
LOWscripts/merge-freeze-workflow.test.py400 def test_two_rulesets_without_pin_reproduce_live_failure(self):CODE
LOWscripts/merge-freeze-workflow.test.py406 def test_pin_selects_main_and_preserves_both_rulesets(self):CODE
LOWscripts/merge-freeze-workflow.test.py551 def test_unfreeze_reports_pull_listing_failure(self):CODE
LOWscripts/merge-freeze-workflow.test.py556 def test_invalid_pull_pages_fail_recovery(self):CODE
LOWscripts/sql-migration-lint.ts869export function changedMigrationPathsFromNameStatus(CODE
LOWscripts/sql-migration-lint.ts905export function evaluateMigrationEnforcement(CODE
LOWscripts/release-safety-index.ts55export function appendReleaseSafetyMarker(input: {CODE
LOWscripts/release-safety-pr-comment.ts98function renderDeclaredBreakReasons(marker: Marker): string {CODE
LOWscripts/breaking-change-declarations.ts151function scanTemplateInterpolation(source: string, start: number, line: number): ScannedSource {CODE
LOWscripts/breaking-change-declarations.ts732export function collectChangeDeclarationsFromSources(CODE
LOWscripts/breaking-change-declarations.ts749export function collectChangeDeclarations(CODE
301 more matches not shown…
Hallucination Indicators25 hits · 250 pts
SeverityFileLineSnippetContext
CRITICAL…/DashboardTileStatusProvider.characterization.test.tsx594 mocks.embed.dispatchEmbedEvent.mock.calls.filter(CODE
CRITICAL…end/src/features/learnSandbox/WorkspaceEditor.test.tsx665 const [changed] = stubs.editor.onDidChangeModelContent.mock.calls.at(CODE
CRITICAL…/src/features/documents/editor/documentContent.test.ts68 const types = editor.state.doc.content.content.map((node) =>CODE
CRITICALpackages/backend/src/dbt/DbtMetadataApiClient.ts576 results.environment.applied.models.edges.map(({ node }) => {CODE
CRITICAL…es/backend/src/ee/services/AiAgentAdminService.test.ts4445 h.model.updateReviewRemediationStatus.mock.calls.map(CODE
CRITICAL…services/AiWritebackService/AiWritebackService.test.ts2680 sandbox.commands.run.mock.calls.filter(([command]: [string]) =>CODE
CRITICAL…services/AiWritebackService/AiWritebackService.test.ts2688 sandbox.commands.run.mock.calls.filter(([command]: [string]) =>CODE
CRITICAL…services/AiWritebackService/AiWritebackService.test.ts3568 sandbox.files.write.mock.calls.find(CODE
CRITICAL…AiWritebackService/providers/BitbucketProvider.test.ts772 sandbox.commands.run.mock.calls.filter(([command]) =>CODE
CRITICAL…rateService/AppGenerateService.externalSamples.test.ts405 const promptWrite = sandbox.files.write.mock.calls.find(CODE
CRITICAL…es/backend/src/ee/services/ai/decisions/chartIntent.ts1658 context.artifact.config.queryConfig.dimensions.includes(id),CODE
CRITICAL…/DataAppAnalysisService/DataAppAnalysisService.test.ts952 const [bareCall] = bare.dataAppAnalysisModel.create.mock.calls.map(CODE
CRITICAL…/DataAppAnalysisService/DataAppAnalysisService.test.ts956 withDefault.dataAppAnalysisModel.create.mock.calls.map(CODE
CRITICAL…ificationService/MobilePushNotificationService.test.ts929 dependencies.apnsClient.sendLiveActivityStart.mock.calls.map(CODE
CRITICALpackages/backend/src/services/UserService.ts873 this.lightdashConfig.auth.pat.allowedOrgRoles.includes(CODE
CRITICAL…rc/services/OrganizationService/OrganizationService.ts596 this.lightdashConfig.auth.pat.allowedOrgRoles.includes(CODE
CRITICAL…ces/ProjectService/compileCredentialResolution.test.ts1018 f.featureFlagModel.get.mock.calls.filter(CODE
CRITICAL…ces/ProjectService/compileCredentialResolution.test.ts1363 f.featureFlagModel.get.mock.calls.filter(CODE
CRITICAL…ckend/src/services/UnfurlService/UnfurlService.test.ts1774 const registration = page.pageContext.route.mock.calls.find(CODE
CRITICAL…ckend/src/services/UnfurlService/UnfurlService.test.ts1801 page.pageContext.routeWebSocket.mock.calls.find(CODE
CRITICAL…iServiceAccountService/AiServiceAccountService.test.ts1555 f.analytics.track.mock.calls.map(([event]) => event.event),CODE
CRITICAL…ages/backend/src/services/RolesService/RolesService.ts1274 this.lightdashConfig.auth.pat.allowedOrgRoles.includes(CODE
CRITICAL…ages/backend/src/services/RolesService/RolesService.ts1890 this.lightdashConfig.auth.pat.allowedOrgRoles.includes(CODE
CRITICAL…src/analytics/eventStream/UsageEventsCompactor.test.ts633 metrics.usageProcessing.finish.mock.calls.map(([stage, result]) => [CODE
CRITICALpackages/api-tests/helpers/merge-query-suite.ts1563 started.body.results.appliedDashboardFilters.dimensions.map(CODE
Over-Commented Block133 hits · 132 pts
SeverityFileLineSnippetContext
LOWrelease.config.js61 'pnpm generate-api:backend',COMMENT
LOWrainbow.toml1# rainbow.toml — how Lightdash runs on Rainbow.COMMENT
LOWrainbow.toml41# import them — through turbo, so the `frontend-build` rung below (which bakesCOMMENT
LOWrainbow.toml121EMAIL_SMTP_SENDER_NAME = "Lightdash"COMMENT
LOWrainbow.toml161# a preview, and the port stays private to the environment.COMMENT
LOWrainbow.toml221# and visualization first — viteCOMMENT
LOWpnpm-workspace.yaml121# reinstalls) node_modules before running any package script. The productionCOMMENT
LOWsandboxes/ai-writeback/build-local-image.sh1#!/usr/bin/env bashCOMMENT
LOWsandboxes/microvm-agent/build-microvm-image.sh1#!/usr/bin/env bashCOMMENT
LOWexamples/metricflow-demo/test.sh1#!/usr/bin/env bashCOMMENT
LOWexamples/full-jaffle-shop-demo/dbt/models/events.yml381 # This does NOT produce nested aggregation - it compiles to MAX(...) * COUNT(DISTINCT ...)COMMENT
LOWscripts/dev-ports.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/dev-feature-flags.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/dev-op-pull.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/release-safety-workflow-shape.test.ts21// SPK-857 removed the trigger-level `paths:` filter; SPK-924 (#27139) restoredCOMMENT
LOWscripts/dev-statusline.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/setup-dbt-venvs.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/dev-fast-start.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/dev-fast-start.sh321 echo "WARN: for the full experience run '/docker-dev start ee' (or 'start newux' for the new onboarding UX) — itCOMMENT
LOWscripts/dev-fast-start.sh541fiCOMMENT
LOWscripts/gen-release-safety.ts681 // problem leaves api.rest unchecked and never fails the release. Runs BEFORECOMMENT
LOWscripts/dev-reconcile.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/k8s-dev/reconcile-github.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/aks-dev/build-sandbox-image.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/visualization/src/cartesian/timezoneShift.ts141COMMENT
LOWpackages/visualization/src/cartesian/timezoneShift.ts421 shiftedDim,COMMENT
LOW…uses/src/warehouseClients/DatabricksWarehouseClient.ts81 // SQL_DATA_TYPE: null,COMMENT
LOW…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts1// ============================================================================COMMENT
LOW…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts21//COMMENT
LOW…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts41//COMMENT
LOW…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts61// events, not by throwing out of a socket data handler.COMMENT
LOW…ges/warehouses/src/warehouseClients/pgProtocolGuard.ts81//COMMENT
LOWpackages/frontend/src/ee/providers/Embed/types.ts81 // The saved chart whose persisted custom SQL seeded this Explore. This isCOMMENT
LOW…c/ee/features/homepageBuilder/resolveHomepageLayout.ts41// Where a row narrower than the page's widest sits on the horizontal axis.COMMENT
LOW…ontend/src/ee/features/homepageBuilder/blocks/types.ts1import { type HomepageBlock } from '@lightdash/common';COMMENT
LOW…/aiCopilot/components/Admin/VerifiedArtifactsTable.tsx121 //COMMENT
LOW…ckages/frontend/src/features/apps/utils/chatMessage.ts41 externalConnections: ChatConnection[];COMMENT
LOW…es/frontend/src/features/apps/hooks/useAppSdkBridge.ts641}: UseAppSdkBridgeParams) {COMMENT
LOWpackages/frontend/src/hooks/useExplorerQuery.test.tsx161COMMENT
LOW…s/cartesianChartConfig/useCartesianChartConfig.test.ts721 ['a', 'b', 'c'],COMMENT
LOWpackages/frontend/src/pages/MinimalApp.tsx161 return () => clearTimeout(timer);COMMENT
LOWpackages/frontend/src/pages/AppGenerate.tsx341 // When the user lands here from a space's "+ Add" menu we getCOMMENT
LOWpackages/frontend/src/pages/AppGenerate.tsx1281 );COMMENT
LOWpackages/frontend/src/pages/MinimalDashboard.tsx481 md: filteredAndSortedDashboardTiles.map<Layout>((tile) =>COMMENT
LOWpackages/formula-tests/runner/warehouse-connections.ts381 });COMMENT
LOWpackages/backend/src/App.ts481 // Short-circuit CORS preflights for data-app iframe asset fetches.COMMENT
LOWpackages/backend/src/routers/appPreviewRouter.ts81 // compute in workers created from blob: URLs. Blob workers execute theCOMMENT
LOWpackages/backend/src/routers/appPreviewRouter.ts401 Logger.warn('Failed to record app HTML outcome');COMMENT
LOWpackages/backend/src/database/entities/apps.ts41 // in-flight old code during a deploy.COMMENT
LOWpackages/backend/src/tracing/tracing.ts781 this.otel.initialize();COMMENT
LOWpackages/backend/src/ee/models/ServiceAccountModel.ts141 // CASL still comes from `applyServiceAccountAbilities` via the SA authCOMMENT
LOW…kend/src/ee/services/AiAgentReviewClassifierService.ts161 })[];COMMENT
LOW…c/ee/services/AiWritebackService/AiWritebackService.ts4101 // pause/resume, so a resumed turn would otherwise double-count prior runs.COMMENT
LOW…ackend/src/ee/services/AiWritebackService/templates.ts41// column's emitted TYPE); this one is about SQL STRUCTURE — reusing existingCOMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts1// Where the repo is cloned inside the sandbox, and where the agent runs.COMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts21COMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts81export const SANDBOX_TIMEOUT_MS = 60 * 60 * 1000;COMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts121// Fine-grained tool permissions for the Claude Code CLI — used in place ofCOMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts201export const REPO_CONTEXT_TIMEOUT_MS = 30 * 1000;COMMENT
LOW…ackend/src/ee/services/AiWritebackService/constants.ts221// Last N bytes of the agent's stderr kept for diagnostics on a non-zero exit /COMMENT
73 more matches not shown…
Fake / Example Data130 hits · 131 pts
SeverityFileLineSnippetContext
LOW⚡scripts/breaking-change-gate-policy.ts8 'placeholder',CODE
LOW…e/features/aiCopilot/components/Admin/SearchFilter.tsx11 Pick<TextInputProps, 'placeholder'> & {CODE
LOW…ot/components/Admin/AiAgentAdminMemoriesTable.test.tsx36 user: { uuid: 'user-1', name: 'Jane Doe', email: 'jane@example.com' },CODE
LOW…lot/components/Admin/settings/AiProvidersCard.test.tsx90 'placeholder',CODE
LOW…lot/components/Admin/settings/AiProvidersCard.test.tsx104 'placeholder',CODE
LOW…end/src/features/aiAccess/SnowflakeAgentSetup.test.tsx182 'placeholder',CODE
LOW…end/src/features/aiAccess/SnowflakeAgentSetup.test.tsx186 'placeholder',CODE
LOW…nd/src/features/dashboardControls/LinkPrompts.test.tsx239 'placeholder',CODE
LOW…nd/src/features/dashboardControls/LinkPrompts.test.tsx276 'placeholder',CODE
LOW…c/features/dashboardControls/SectionedFilters.test.tsx1651 expect(input).toHaveAttribute('placeholder', 'Section name');CODE
LOW…features/dashboardControls/ControlsSidebarProvider.tsx377 current: FilterSources & Pick<Latest, 'placeholder'>,CODE
LOW…d/src/features/dashboardControls/FilterEditor.test.tsx616 expect(input).toHaveAttribute('placeholder', 'Label for Status');CODE
LOW…d/src/features/dashboardControls/FilterEditor.test.tsx631 expect(nameInput()).toHaveAttribute('placeholder', 'Filter label');CODE
LOW…d/src/features/dashboardControls/FilterEditor.test.tsx660 'placeholder',CODE
LOW…d/src/features/dashboardControls/FilterEditor.test.tsx683 expect(nameInput()).toHaveAttribute('placeholder', 'Filter label');CODE
LOW…d/src/features/dashboardControls/FilterEditor.test.tsx770 'placeholder',CODE
LOW…c/features/documents/DocumentChartEditorModal.test.tsx290 'placeholder',CODE
LOWpackages/frontend/src/components/Avatar.tsx23 Record<'root' | 'placeholder' | 'image', string>CODE
LOW…/components/ProjectConnection/DbtSourcesPanel.test.tsx300 'placeholder',CODE
LOW⚡…nts/ProjectConnection/WarehouseLocationInputs.test.tsx69 'placeholder',CODE
LOW⚡…nts/ProjectConnection/WarehouseLocationInputs.test.tsx73 'placeholder',CODE
LOW⚡…nts/ProjectConnection/WarehouseLocationInputs.test.tsx83 'placeholder',CODE
LOW…s/frontend/src/components/common/MantineIcon/index.tsx39 'placeholder',CODE
LOW…s/VisualizationConfigs/common/RangeBoundInput.test.tsx33 expect(input).toHaveAttribute('placeholder', 'Auto');CODE
LOWpackages/frontend/src/stories/Modal.stories.tsx688 customer: 'Acme Corp',CODE
LOW…s/frontend/src/hooks/mantineFormCompatibility.test.tsx38 result.current.setFieldValue('user.email', 'user@example.com');CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx33const SUGGESTION_LABEL = /Use "Acme Inc"/;CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx399 expect(nameInput).toHaveValue('Acme Inc');CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx448 expect(nameInput).toHaveValue('Acme Inc');CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx492 expect(nameInput).toHaveValue('Acme Inc');CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx607 expect(body.organizationName).toBe('Acme Inc');CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx644 await waitFor(() => expect(nameInput).toHaveValue('Acme Inc'));CODE
LOWpackages/frontend/src/pages/OrganizationSetup.test.tsx660 organizationName: 'Acme Inc',CODE
LOWpackages/backend/src/clients/AGENTS.md24 recipientEmail: 'user@example.com',CODE
LOWpackages/backend/src/config/parseConfig.test.ts2087 process.env.LD_SETUP_ADMIN_EMAIL = 'admin@example.com';CODE
LOWpackages/backend/src/config/parseConfig.test.ts2641 process.env.LD_SETUP_ADMIN_EMAIL = 'admin@example.com';CODE
LOW…c/ee/models/AiDeepResearchRunModel.integration.test.ts58 uuid: 'placeholder',CODE
LOW…services/HomepageRecommendedActionSkipsService.test.ts60 email: 'admin@example.com',CODE
LOW…es/backend/src/ee/services/AiAgentAdminService.test.ts166 email: 'admin@example.com',CODE
LOW…backend/src/ee/services/ProjectHomepageService.test.ts72 email: 'admin@example.com',CODE
LOW…ckend/src/ee/services/AiWritebackService/utils.test.ts698 name: 'Jane Doe',CODE
LOW…ckend/src/ee/services/AiWritebackService/utils.test.ts703 ).toEqual({ name: 'Jane Doe', email: 'jane@acme.com' });CODE
LOW…c/ee/services/AiWritebackService/AiWritebackService.ts3599 const patched = raw.replace(/\{\{.*?\}\}/g, 'placeholder');CODE
LOW…ackend/src/ee/services/AiWritebackService/templates.ts183 placeholder string (e.g. \`"placeholder"\`). The goal is a syntacticallyCODE
LOW…rc/ee/services/AiRouterService/AiRouterService.test.ts47 email: 'user@example.com',CODE
LOW…es/AiDeepResearchService/AiDeepResearchService.test.ts864 adminEmail: 'admin@example.com',CODE
LOW…ces/ProjectService/provisionOnboardingHomepage.test.ts27 email: 'admin@example.com',CODE
LOW…ices/ProjectService/provisionPlaygroundProject.test.ts37 email: 'admin@example.com',CODE
LOW…rvices/AiAgentCoderService/AiAgentCoderService.test.ts17 email: 'admin@example.com',CODE
LOW…/AppGenerateService/AppGenerateService.appCode.test.ts427 it.each(['compile', 'placeholder'])(CODE
LOW…/src/ee/services/RoadmapService/RoadmapService.test.ts46 email: 'user@example.com',CODE
LOW…/src/ee/services/RoadmapService/RoadmapService.test.ts805 email: 'user@example.com',CODE
LOW…d/src/ee/services/ai/utils/threadDumpSanitizer.test.ts41 expect(sanitized.result).not.toContain('Acme Corp');CODE
LOW…d/src/ee/services/ai/utils/threadDumpSanitizer.test.ts50 result: '```json\n["Acme Corp", "Globex"]\n```',CODE
LOW…ages/backend/src/scheduler/SchedulerTaskTracer.test.ts119 const resolveOrganizationName = vi.fn().mockResolvedValue('Acme Corp');CODE
LOW…ages/backend/src/scheduler/SchedulerTaskTracer.test.ts136 'organization.name': 'Acme Corp',CODE
LOW…ckages/backend/src/models/SpacePermissionModel.test.ts34 email: 'user@example.com',CODE
LOW…ckages/backend/src/models/SpacePermissionModel.test.ts64 email: 'user@example.com',CODE
LOWpackages/backend/src/models/UserModel.test.ts1570 'user@example.com',CODE
LOW…s/backend/src/models/ProjectModel/ProjectModel.test.ts3371 'Jane Doe', // space nameCODE
70 more matches not shown…
Structural Annotation Overuse70 hits · 112 pts
SeverityFileLineSnippetContext
LOW.context/PERMISSIONS.md515### Step 1: Define the ScopeCOMMENT
LOW.context/PERMISSIONS.md531### Step 2: Add CASL Subject (if new subject type)COMMENT
LOW.context/PERMISSIONS.md543### Step 3: Add to System Role MappingCOMMENT
LOW.context/PERMISSIONS.md556### Step 4: Update System Role Ability BuilderCOMMENT
LOW.context/PERMISSIONS.md572### Step 5: Enforce in Service LayerCOMMENT
LOW.context/PERMISSIONS.md590### Step 6: Add Frontend ChecksCOMMENT
LOW.context/PERMISSIONS.md604### Step 7: Test the PermissionCOMMENT
LOW.claude/commands/docker-dev.md23## Step 0: Port Allocation (ALWAYS run first, for ALL commands)COMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md15## Step 1: Fetch PR detailsCOMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md34## Step 2: Rename the PRCOMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md58## Step 3: Checkout the PR branch and regenerate lockfileCOMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md87## Step 4: Analyze changelogs for breaking changesCOMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md120## Step 5: Post PR comment with findingsCOMMENT
LOW.claude/skills/fix-vulnerability/SKILL.md158## Step 6: Return to original branchCOMMENT
LOW.claude/skills/har-replay/SKILL.md14## Step 1: Analyze the HAR fileCOMMENT
LOW.claude/skills/har-replay/SKILL.md120## Step 2: Write a tailored replay serverCOMMENT
LOW.claude/skills/har-replay/SKILL.md157## Step 3: Start the replay server and frontendCOMMENT
LOW.claude/skills/har-replay/SKILL.md173## Step 4: Provide the URLCOMMENT
LOW.claude/skills/har-replay/SKILL.md185## Step 5: Debug any rendering errorsCOMMENT
LOW.claude/skills/breakup-pr/SKILL.md64### Step 1: Analyze the PRCOMMENT
LOW.claude/skills/breakup-pr/SKILL.md81### Step 2: Identify the Feature FlagCOMMENT
LOW.claude/skills/breakup-pr/SKILL.md97### Step 3: Plan the Vertical SlicesCOMMENT
LOW.claude/skills/breakup-pr/SKILL.md146### Step 4: Implement Each SliceCOMMENT
LOW.claude/skills/breakup-pr/SKILL.md199### Step 5: Submit the StackCOMMENT
LOWdocs/audit-logging.md116### Step 1: Use `createAuditedAbility()` Instead of Direct Ability ChecksCOMMENT
LOWdocs/audit-logging.md162### Step 2: Reuse the Audited Ability Within a MethodCOMMENT
LOWdocs/audit-logging.md190### Step 3: Use Bulk Checks for CollectionsCOMMENT
LOWdocs/audit-logging.md212### Step 4: Works with Account Type TooCOMMENT
LOWdocs/audit-logging.md228### Step 5: Always Use `subject()` for Typed SubjectsCOMMENT
LOWdocs/audit-logging.md245### Step 6: Generate UUIDs Before Permission Checks on Create ActionsCOMMENT
LOWpackages/visualization/src/table/config.ts320// Step 1: Identify which fields need min/max calculationCOMMENT
LOWpackages/visualization/src/table/config.ts358 // Step 3: Build field-to-columns mappingCOMMENT
LOWpackages/visualization/src/table/config.ts385 // Step 4: Single-pass collection of all valuesCOMMENT
LOWpackages/visualization/src/table/config.ts415 // Step 5: Calculate min/max for each fieldCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx149 // Step 1: Start with restored filters when returning from theCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx199 // Step 2: Apply SDK FiltersCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx332 // Step 3: Apply interactivity filtering for embedded dashboardsCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx888 // Step 1: Create mapping while duplicating tilesCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx908 // Step 2: Update filters to include new tile mappingsCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx925 // Step 3: Update dashboard filtersCOMMENT
LOW…c/features/sqlRunner/hooks/useSavedSqlChartResults.tsx111 // Step 1: Get the chart. Embed dashboards must use the embed-onlyCOMMENT
LOW…c/features/sqlRunner/hooks/useSavedSqlChartResults.tsx143 // Step 2: Get the resultsCOMMENT
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx96 // Step 1: Refresh the required filters propertyCOMMENT
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx120 // Step 2: Update the dimension filters with the required filtersCOMMENT
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx144 // Step 3: If no model is selected, reset the dimension filtersCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts500 // Step 1: Identify which fields need min/max calculationCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts513 // Step 2: Check cache - avoid recalculation if query and fields haven't changedCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts536 // Step 6: Update cacheCOMMENT
LOW…kend/src/services/DashboardService/DashboardService.ts2424 // Step 1: Count occurrences of each chart UUID for dashboard chartsCOMMENT
LOW⚡…kend/src/services/DashboardService/DashboardService.ts2440 // Step 2: Find chart UUIDs that need duplication (appear more than once)COMMENT
LOW⚡…kend/src/services/DashboardService/DashboardService.ts2447 // Step 3: Create duplicated charts for all tiles that need them (except the first occurrence)COMMENT
LOW…kend/src/services/DashboardService/DashboardService.ts2482 // Step 4: Wait for all duplications and build the final tiles arrayCOMMENT
LOW…ages/backend/src/services/ExcelService/ExcelService.ts1083 // Step 1: When conditional formatting needs color-range min/max,COMMENT
LOW⚡…ages/backend/src/services/ExcelService/ExcelService.ts1097 // Step 2: Get source streamCOMMENT
LOW⚡…ages/backend/src/services/ExcelService/ExcelService.ts1100 // Step 3: Stream JSONL data to Excel temp fileCOMMENT
LOW…ages/backend/src/services/ExcelService/ExcelService.ts1120 // Step 3: Upload temp file to exports bucket (not results bucket)COMMENT
LOW…/common/src/authorization/space/spaceAccessResolver.ts120 // Step 1: Compute highest project-level role (same as existing logic)COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts135 // Step 2: Compute effective space role using "most permissive wins"COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts144 // Step 3: Determine hasDirectAccess (leaf space only)COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts149 // Step 4: Compute projectRole metadata (org + direct project only)COMMENT
10 more matches not shown…
Verbosity Indicators43 hits · 72 pts
SeverityFileLineSnippetContext
LOWpackages/visualization/src/table/config.ts320// Step 1: Identify which fields need min/max calculationCOMMENT
LOWpackages/visualization/src/table/config.ts358 // Step 3: Build field-to-columns mappingCOMMENT
LOWpackages/visualization/src/table/config.ts385 // Step 4: Single-pass collection of all valuesCOMMENT
LOWpackages/visualization/src/table/config.ts415 // Step 5: Calculate min/max for each fieldCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx149 // Step 1: Start with restored filters when returning from theCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx199 // Step 2: Apply SDK FiltersCOMMENT
LOW…ntend/src/providers/Dashboard/DashboardFiltersSync.tsx332 // Step 3: Apply interactivity filtering for embedded dashboardsCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx888 // Step 1: Create mapping while duplicating tilesCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx908 // Step 2: Update filters to include new tile mappingsCOMMENT
LOWpackages/frontend/src/features/dashboardTabs/index.tsx925 // Step 3: Update dashboard filtersCOMMENT
LOW…c/features/sqlRunner/hooks/useSavedSqlChartResults.tsx111 // Step 1: Get the chart. Embed dashboards must use the embed-onlyCOMMENT
LOW…c/features/sqlRunner/hooks/useSavedSqlChartResults.tsx143 // Step 2: Get the resultsCOMMENT
LOW…ontend/src/components/DataViz/visualizations/Table.tsx122 {/* TODO: do we need to check if it's aCODE
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx96 // Step 1: Refresh the required filters propertyCOMMENT
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx120 // Step 2: Update the dimension filters with the required filtersCOMMENT
LOW…nd/src/components/Explorer/FiltersCard/FiltersCard.tsx144 // Step 3: If no model is selected, reset the dimension filtersCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts500 // Step 1: Identify which fields need min/max calculationCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts513 // Step 2: Check cache - avoid recalculation if query and fields haven't changedCOMMENT
LOW…rontend/src/hooks/tableVisualization/useTableConfig.ts536 // Step 6: Update cacheCOMMENT
LOW…ckages/backend/src/models/CatalogModel/CatalogModel.ts594 // For tags, we need to check if ANY of the required tags exist in explore's tags arrayCOMMENT
LOW…es/backend/src/services/RenameService/RenameService.ts850 // When filtering explores, we need to check if the explore exists on from, or toCOMMENT
LOW…kend/src/services/DashboardService/DashboardService.ts2424 // Step 1: Count occurrences of each chart UUID for dashboard chartsCOMMENT
LOW⚡…kend/src/services/DashboardService/DashboardService.ts2440 // Step 2: Find chart UUIDs that need duplication (appear more than once)COMMENT
LOW⚡…kend/src/services/DashboardService/DashboardService.ts2447 // Step 3: Create duplicated charts for all tiles that need them (except the first occurrence)COMMENT
LOW…kend/src/services/DashboardService/DashboardService.ts2482 // Step 4: Wait for all duplications and build the final tiles arrayCOMMENT
LOW…kend/src/services/SchedulerService/SchedulerService.ts329 // If sendNow is true, we need to check if the user has permissions to `create` instead of `manage`COMMENT
LOW…ages/backend/src/services/ExcelService/ExcelService.ts1083 // Step 1: When conditional formatting needs color-range min/max,COMMENT
LOW⚡…ages/backend/src/services/ExcelService/ExcelService.ts1097 // Step 2: Get source streamCOMMENT
LOW⚡…ages/backend/src/services/ExcelService/ExcelService.ts1100 // Step 3: Stream JSONL data to Excel temp fileCOMMENT
LOW…ages/backend/src/services/ExcelService/ExcelService.ts1120 // Step 3: Upload temp file to exports bucket (not results bucket)COMMENT
LOW…/common/src/authorization/space/spaceAccessResolver.ts120 // Step 1: Compute highest project-level role (same as existing logic)COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts135 // Step 2: Compute effective space role using "most permissive wins"COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts144 // Step 3: Determine hasDirectAccess (leaf space only)COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts149 // Step 4: Compute projectRole metadata (org + direct project only)COMMENT
LOW⚡…/common/src/authorization/space/spaceAccessResolver.ts155 // Step 5: Determine inheritedFrom — use chain-wide check (not leaf-only)COMMENT
LOWpackages/api-tests/tests/roles.test.ts715 // Step 1: Assign custom role to userCOMMENT
LOWpackages/api-tests/tests/roles.test.ts737 // Step 2: Assign system role (editor) to the same userCOMMENT
LOWpackages/api-tests/tests/roles.test.ts748 // Step 3: Verify the custom role_uuid was removed and system role appliedCOMMENT
LOWpackages/api-tests/tests/roles.test.ts776 // Step 1: Create a custom role with scopesCOMMENT
LOWpackages/api-tests/tests/roles.test.ts789 // Step 2: Assign custom role to user via v2 APICOMMENT
LOW⚡packages/api-tests/tests/roles.test.ts807 // Step 3: Switch user to system role via deprecated v1 API.COMMENT
LOW⚡packages/api-tests/tests/roles.test.ts816 // Step 4: Verify the role_uuid was cleared - role assignmentCOMMENT
LOWpackages/api-tests/tests/roles.test.ts829 // Step 5: Delete the custom role - should succeed because the v1COMMENT
Modern AI Meta-Vocabulary21 hits · 59 pts
SeverityFileLineSnippetContext
MEDIUMdocs/research/mcp-tool-token-accounting.md35Pi also has a local context estimator. It defines four characters per token, JSON-serializes the complete tool array, anCODE
MEDIUM…/research/ai-agent-exploratory-vs-presented-results.md1# Exploratory vs presented results in agentic data-analysis toolsCOMMENT
MEDIUMscripts/dev-fast-start.sh5# in a single non-interactive run — no agentic step-by-step. The first agenticCOMMENT
MEDIUMscripts/dev-fast-start.sh19# using the documented agentic steps, then patches this script so it won't recur.COMMENT
MEDIUM…es/dataAppActivity/components/DataAppActivityTable.tsx54 // Cached tokens dominate an agentic run — every turn re-sends the systemCOMMENT
MEDIUM…es/organizationDesigns/components/DesignFileUpload.tsx74 // Validate against the theme guardrails client-side before uploading.COMMENT
MEDIUM…ee/services/ManagedAgentService/ManagedAgentService.ts3987 // Verify entity exists, belongs to this project, and apply guardrailsCOMMENT
MEDIUM…ckend/src/ee/services/AppGenerateService/appContext.ts15// Agents (and older scaffold docs) still look for the single file — land themCOMMENT
MEDIUM…c/ee/services/AppGenerateService/AppGenerateService.ts6379 // Backstop for the upload-time and enqueue-time guardrails: a theme canCOMMENT
MEDIUM…c/ee/services/AppGenerateService/AppGenerateService.ts6381 // guardrails). Fail fast with the specific limit message instead ofCOMMENT
MEDIUM…c/ee/services/AppGenerateService/AppGenerateService.ts8196 // iteration too, so enforce the guardrails regardless ofCOMMENT
MEDIUM…end/src/analytics/systemExplores/queryCalendarChart.ts166 // Bound the neutral calendar scaffold independently from the row cap:COMMENT
MEDIUMpackages/cli/src/outputUnchanged.main.json6 "stderr": "Cannot sign in with email/password: Rejected postgres_password_dbt_cloud_user_first.last\n\n🤖 CodCODE
MEDIUMpackages/cli/src/handlers/login.ts153 ` packages/cli/README.md#claude-code--agentic-tools-passwords-with-special-characters`,CODE
MEDIUMpackages/cli/src/handlers/download.ts4690 // No lockfile on disk (the scaffold writes aCOMMENT
MEDIUMpackages/cli/src/handlers/apps/appCodeFiles.ts218 // null = no pnpm-lock.yaml on disk. The download scaffold writes aCOMMENT
MEDIUMpackages/cli/src/handlers/apps/appCodeFiles.test.ts454 // The download scaffold always writes package.json but never a lockfile,COMMENT
MEDIUMpackages/cli/src/handlers/apps/scaffolding.ts175 // 1. Template scaffold files (src/, scripts/, skill.md excluded)COMMENT
MEDIUMpackages/cli/src/handlers/apps/appsDownload.ts465 // Server-provided deps override the scaffold'sCOMMENT
MEDIUMpackages/common/src/ee/apps/code.test.ts122// folder has the scaffold package.json but no pnpm-lock.yaml.COMMENT
MEDIUMskills/developing-in-lightdash/SKILL.md263lightdash apps create "Revenue Explorer" --path "$LD_DIR" # scaffold a new app under $LD_DIR/apps/CODE
Cross-Language Confusion (JS/TS)8 hits · 52 pts
SeverityFileLineSnippetContext
HIGH…s/AsyncQueryService/python/PythonSandboxRunner.test.ts154 code: 'def run(inputs, params):\n return None',CODE
HIGH…ervices/AsyncQueryService/python/pythonQueryHarness.ts304 elif kind == "boolean":CODE
HIGH…ervices/AsyncQueryService/python/pythonQueryHarness.ts308 elif kind in ("date", "timestamp"):CODE
HIGH⚡…ervices/AsyncQueryService/python/pythonQueryHarness.ts336 return NoneCODE
HIGH⚡…ervices/AsyncQueryService/python/pythonQueryHarness.ts338 return NoneCODE
HIGH⚡…ervices/AsyncQueryService/python/pythonQueryHarness.ts340 return NoneCODE
HIGH⚡…ervices/AsyncQueryService/python/pythonQueryHarness.ts348 return NoneCODE
HIGHpackages/common/src/utils/scheduler.ts135 /** This function will return False if:COMMENT
AI Slop Vocabulary9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMsandboxes/microvm-agent/agent.js233// answering both makes the /ready build hook robust to that quirk.COMMENT
MEDIUMscripts/n-minus-one.sh49 # defaults, which this harness does not enable. SCIM provisioning isCOMMENT
MEDIUMscripts/ci/image-artifacts.py38# docker/metadata-action; excluded so a harness build and a release build of theCOMMENT
MEDIUM…ckend/src/ee/services/AiAgentService/AiAgentService.ts7048 // agent manager cannot leverage an org-wide installation they don't control.COMMENT
MEDIUM…ckend/src/ee/services/AiAgentService/AiAgentService.ts7219 // leverage an org-wide installation they don't control.COMMENT
MEDIUM…c/ee/services/AppGenerateService/AppGenerateService.ts4558 // `"$(cat …)"` splices the schema in as a single literal arg — robustCOMMENT
MEDIUMpackages/common/src/utils/loadLightdashProjectConfig.ts38 // This method call extends JSON schema to utilize AJV ErrorsCOMMENT
MEDIUM.github/workflows/release-safety-tests.yml6# job runs them — this workflow is their only harness.COMMENT
MEDIUM.github/workflows/docker-build-test.yml52# from a build-comparison harness into an integration environment. They areCOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…tend/src/components/Explorer/SaveChartButton/index.tsx203 // with an empty name: "<metrics> by <dimensions>". AI-generated metadataCOMMENT
HIGH…/hooks/cartesianChartConfig/computeChartSeries.test.ts19// Saved without pivot values, as AI-generated charts areCOMMENT
Deep Nesting12 hits · 12 pts
SeverityFileLineSnippetContext
LOWexamples/upgrade-automation/scripts/bump-target.py32CODE
LOWexamples/upgrade-automation/scripts/bump-target.py76CODE
LOWexamples/cross-source-dbt-refs/scale/verify.py31CODE
LOWexamples/cross-source-dbt-refs/scale/verify.py49CODE
LOWexamples/cross-source-dbt-refs/scale/tooling/build.py28CODE
LOW…amples/cross-source-dbt-refs/scale/tooling/register.py14CODE
LOW…affle-shop-demo/dbt/scripts/generate_product_events.py82CODE
LOWscripts/merge-freeze-workflow.test.py29CODE
LOWscripts/ci/image-artifacts.py103CODE
LOWscripts/ci/image-artifacts.py170CODE
LOWscripts/mixed-warehouse-scale-test/run.py1073CODE
LOWscripts/mixed-warehouse-scale-test/run.py784CODE
Excessive Try-Catch Wrapping10 hits · 9 pts
SeverityFileLineSnippetContext
LOWscripts/dev-op-pull.sh47 except Exception: passCODE
LOWscripts/dev-op-pull.sh61 except Exception:CODE
LOWscripts/dev-op-pull.sh121 except Exception: passCODE
LOWscripts/dev-op-pull.sh154 except Exception: d = {}CODE
LOWscripts/dev-fast-start.sh627except Exception:CODE
LOWscripts/dev-fast-start.sh640except Exception:CODE
LOWscripts/dev-reconcile.sh33except Exception: ps = []CODE
LOWscripts/dev-reconcile.sh103 except Exception: d = {}CODE
LOW…ervices/AsyncQueryService/python/pythonQueryHarness.ts372 except Exception:CODE
LOW…ervices/AsyncQueryService/python/pythonQueryHarness.ts384 except Exception:CODE
Redundant / Tautological Comments5 hits · 6 pts
SeverityFileLineSnippetContext
LOW…affle-shop-demo/dbt/scripts/generate_product_events.py161 # Check if user progresses to this stageCOMMENT
LOW…c/ee/features/embed/SettingsEmbed/EmbedCodeSnippet.tsx481threadUuid = None # Set this to resume an existing conversation.CODE
LOWpackages/cli/track.sh74 # Check if xcrun is installedCOMMENT
LOWpackages/cli/scripts/build-binaries.sh283 # Check if we have 7z or zip availableCOMMENT
LOW.github/workflows/post-release.yml264 # Check if the CLI or its runtime dependencies changedCOMMENT
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/dev-ports.sh17# Usage:COMMENT
LOWscripts/dev-feature-flags.sh9# Usage:COMMENT
LOWscripts/dev-op-pull.sh11# Usage:COMMENT
LOWscripts/dev-profiles.sh4# Usage:COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMscripts/k8s-dev/lib.sh74# Create a k8s secret only if it doesn't already exist (stable across upgrades).COMMENT
MEDIUM.github/workflows/post-release.yml354 # Create a temporary keychainCOMMENT
TODO Padding3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…nents/DataViz/transformers/getChartConfigAndOptions.ts78 errors: undefined, // TODO: Implement error tracking for table vizCODE
LOW…/src/components/common/SpaceSelector/SpaceSelector.tsx39 isLoading: _isLoading, // TODO: implement loading state for the tree.CODE
LOW…/backend/src/services/PromoteService/PromoteService.ts2566 // TODO: implement path change and call SpaceService.moveCOMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWexamples/cross-source-dbt-refs/scale/tooling/api.py1CODE
LOWexamples/cross-source-dbt-refs/scale/tooling/api.py2CODE
LOWexamples/cross-source-dbt-refs/scale/tooling/api.py3CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMscripts/scope-tours/lib.ts285 'As mentioned earlier, ',CODE