AI Slop Code Risk Monitor

growthbook/growthbook

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

Open Source Feature Flags, Experimentation, and Product Analytics

2.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for growthbook/growthbook, a TypeScript project with 8,554 GitHub stars. SynthScan examined 1,258,757 lines of code across 4863 source files, recording 3296 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 2.8 (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.

2.8
Adjusted Signal
2.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
8.6K
Stars
TypeScript
Language
1.3M
Lines of Code
4.9K
Files
3.3K
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 11.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.2/100 · LOW

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

Agent Over-Engineering Ratio 10.7/100 · LOW

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

PR Review Velocity Impact 13.3/100 · LOW

Which changes need focused human review? 3296 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 2HIGH 22MEDIUM 87LOW 3185

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 3296 distinct pattern matches across 20 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 Identifiers2709 hits · 2634 pts
SeverityFileLineSnippetContext
LOWdocs/docs-ui.js12function hideMintlifyAssistantChrome() {CODE
LOWpackages/stats-ts/src/contextualBanditWeights.ts144function assertSupportedContextualBanditMetric(CODE
LOWpackages/stats-ts/src/contextualBanditWeights.ts269function sumOfSquaredErrorsPerVariationFromArms(CODE
LOWpackages/stats-ts/src/contextualBanditWeights.ts326function compactGroupSsePerVariation(CODE
LOWpackages/stats-ts/src/contextualBanditWeights.ts373function bestExhaustiveBinarySplit(CODE
LOWpackages/stats-ts/src/contextualBanditWeights.ts1138export function computeContextualBanditWeights(CODE
LOWpackages/stats-ts/src/settings.ts264export function getContextualBanditSettings(CODE
LOWpackages/stats-ts/src/banditWeights.ts128function probKthArmIsBiggestGaussHermite(CODE
LOWpackages/stats-ts/src/banditWeights.ts144export function bestArmProbabilitiesGaussHermite(CODE
LOW⚡packages/sdk-js/src/core.ts1226function getStickyBucketExperimentKey(CODE
LOW⚡packages/sdk-js/src/core.ts1234export function getStickyBucketAttributeKey(CODE
LOW⚡packages/sdk-js/src/core.ts1241function getStickyBucketAssignments(CODE
LOWpackages/sdk-js/src/core.ts1275function generateStickyBucketAssignmentDoc(CODE
LOWpackages/sdk-js/src/core.ts1306function deriveStickyBucketIdentifierAttributes(CODE
LOWpackages/sdk-js/src/core.ts1338export async function getAllStickyBucketAssignmentDocs(CODE
LOWpackages/sdk-js/src/core.ts1347export function getStickyBucketAttributes(CODE
LOWpackages/sdk-js/src/util.ts404export function getAutoExperimentChangeType(CODE
LOWpackages/shared/test/decisionCriteria.test.ts40function setMetricsOnResultsStatus({CODE
LOW…ckages/shared/test/exploration-config-encoding.test.ts9function encodeLegacyExplorationConfig(config: ExplorationConfig): string {CODE
LOWpackages/shared/test/snapshot-analysis-chunks.test.ts89function makeExperimentSnapshotAnalysisChunk(CODE
LOWpackages/shared/scripts/gen-sdk-resources.ts12function defineSDKCapabilityVersion(sdk: string, capabilities: string[]) {CODE
LOWpackages/shared/src/dates.ts100export function dateStringArrayBetweenDates(CODE
LOWpackages/shared/src/sql.ts322export function usesBackslashStringEscapes(CODE
LOWpackages/shared/src/notifications.ts1008export function notificationEventsForLevel(CODE
LOWpackages/shared/src/notifications.ts1034export function notificationEventSelection(CODE
LOWpackages/shared/src/api-model.ts359function getDefaultCrudActionSummary(CODE
LOWpackages/shared/src/journeys.ts25export function journeyResultToStepValues(CODE
LOWpackages/shared/src/journeys.ts88export function journeyMinUnusedLookahead(CODE
LOWpackages/shared/src/journeys.ts411function journeyOptionsCoverRequested(CODE
LOWpackages/shared/src/journeys.ts438export function journeyCacheCandidateVerdict({CODE
LOWpackages/shared/src/journeys.ts674export function journeyDisplayLookaheadDepth(CODE
LOWpackages/shared/src/journeys.ts687export function toClientJourneyExploration(CODE
LOWpackages/shared/src/journeys.ts748function journeyConfigExceedsRowCap(params: {CODE
LOWpackages/shared/src/journeys.ts757export function canIncreaseJourneyOptions(params: {CODE
LOWpackages/shared/src/journeys.ts848export function validateJourneyStepColumns(CODE
LOWpackages/shared/src/ai-chat.ts90export function stringifyToolResultForStorage(output: unknown): string {CODE
LOWpackages/shared/src/ai.ts234export function anthropicStructuredOutputMode(CODE
LOWpackages/shared/src/ai.ts461export function resolveImageModelIdForSdk(model: string): string {CODE
LOWpackages/shared/src/ai.ts553export function buildImageAspectInstruction({CODE
LOWpackages/shared/src/ai.ts604export function getProviderFromEmbeddingModel(CODE
LOWpackages/shared/src/ai.ts730export function getAIModelSettingsUsingProvider(CODE
LOWpackages/shared/src/ai.ts853export function formatAIRateLimitRetryMessage(CODE
LOWpackages/shared/src/funnels.ts22export function conversionWindowToSeconds(window: {CODE
LOWpackages/shared/src/funnels.ts218export function getFunnelBuilderViolations(CODE
LOWpackages/shared/src/funnels.ts254export function funnelDatasetToFunnelSettings(CODE
LOWpackages/shared/src/funnels.ts267export function funnelSettingsToFunnelDataset(CODE
LOWpackages/shared/src/snapshot-analysis-chunks.ts64export function encodeSnapshotAnalysisChunks(CODE
LOWpackages/shared/src/snapshot-analysis-chunks.ts229export function decodeSnapshotAnalysisChunks(CODE
LOWpackages/shared/src/snapshot-analysis-chunks.ts378export function migrateLegacySnapshotAnalysisChunkData(CODE
LOWpackages/shared/src/populations.ts30export function getPopulationFactTableIds(steps: PopulationStep[]): string[] {CODE
LOWpackages/shared/src/populations.ts35export function getPopulationRuleViolations({CODE
LOWpackages/shared/src/power/power.ts430export function sequentialPowerSequentialVariance(CODE
LOWpackages/shared/src/power/power.ts447export function sequentialPowerStandardError(CODE
LOWpackages/shared/src/power/power.ts476function getSequentialTuningParameter(CODE
LOWpackages/shared/src/power/power.ts727function calculatePriorMeanSpecified(CODE
LOWpackages/shared/src/power/power.ts739function calculatePriorVarianceSpecified(CODE
LOWpackages/shared/src/power/power.ts759function calculatePriorVarianceDGP(CODE
LOWpackages/shared/src/power/power.ts784function getMarginalVarianceTauHat(CODE
LOW…ed/src/settings/resolvers/genMetricOverrideResolver.ts12export default function genMetricOverrideResolver(CODE
LOWpackages/shared/src/sdk-versioning/index.ts294export function getMinSupportedSDKVersions(CODE
2649 more matches not shown…
Over-Commented Block228 hits · 210 pts
SeverityFileLineSnippetContext
LOW.agents/guides/permissions.md221 footprint,COMMENT
LOWcharts/growthbook/values.yaml101 - name: ENCRYPTION_KEYCOMMENT
LOWcharts/growthbook/values.yaml121 # - name: EMAIL_HOST_USERCOMMENT
LOWcharts/growthbook/values.yaml141 # value: ""COMMENT
LOWcharts/growthbook/values.yaml161 # # not required when deployed to GCP with an instance service accountCOMMENT
LOWcharts/growthbook/values.yaml201 # hosts:COMMENT
LOWcharts/growthbook/charts/server/Chart.yaml1apiVersion: v2COMMENT
LOWcharts/growthbook/charts/server/Chart.yaml21# incremented each time you make changes to the application. Versions are not expected toCOMMENT
LOWcharts/growthbook/charts/server/values.yaml81 # kubernetes.io/tls-acme: "true"COMMENT
LOWpackages/sdk-js/pnpm-workspace.yaml1# Makes this package its own pnpm project when it is installed as a GitCOMMENT
LOWpackages/sdk-js/scripts/bump-version.js1// Import package.json in this project and bump the versionCOMMENT
LOWpackages/shared/types/feature.d.ts61// `environments: string[]`. Upgraded by `upgradeV0Feature`.COMMENT
LOWpackages/shared/types/fact-table.d.ts121 > | null;COMMENT
LOWpackages/shared/types/query.d.ts101 | "aggregatedFactTableInsertData"COMMENT
LOWpackages/shared/types/integrations.d.ts81 // to produce the final metric value.COMMENT
LOWpackages/shared/types/integrations.d.ts541 factTable: FactTableInterface;COMMENT
LOWpackages/shared/types/sql.d.ts181 ) => string;COMMENT
LOWpackages/shared/types/organization.d.ts321 // Project-scoped rules; absent/no-match = strict.COMMENT
LOWpackages/shared/types/organization.d.ts341 // When enabled, a feature draft whose base version is behind the currentCOMMENT
LOWpackages/shared/types/stats.d.ts21// comparisons / display strings) or any single piece of it without pullingCOMMENT
LOWpackages/shared/src/ai.ts101 // Intentional rolling alias — Anthropic hasn't published a dated snapshotCOMMENT
LOWpackages/shared/src/ai.ts461export function resolveImageModelIdForSdk(model: string): string {COMMENT
LOWpackages/shared/src/snapshot-analysis-chunks.ts341// -- Legacy chunk migration --COMMENT
LOWpackages/shared/src/sdk-versioning/resolveConstants.ts21 // when merged into this map (see the resolution-universe loader), so only twoCOMMENT
LOW…es/shared/src/enterprise/validators/dashboard-block.ts281// override them per the block's globalControlSettings opt-in (seeCOMMENT
LOW…es/shared/src/enterprise/validators/dashboard-block.ts301 // Custom Date Range). Legacy string presets are migrated to this shape inCOMMENT
LOWpackages/shared/src/util/diffFormats.ts1// Schema-keyed JSON formats for change-sets (feature revisions, etc.). TheseCOMMENT
LOWpackages/shared/src/util/diffFormats.ts241// {COMMENT
LOWpackages/shared/src/util/diffFormats.ts301COMMENT
LOWpackages/shared/src/util/ruleId.ts161 } catch {COMMENT
LOWpackages/shared/src/util/format-json.ts1// Format a parsed JSON value for display/storage with one design rule:COMMENT
LOWpackages/shared/src/util/features.ts421// keys present in the rule value override the default; the rest fall back toCOMMENT
LOWpackages/shared/src/util/features.ts521 return serializeExtendsObject(patchRefs, patch);COMMENT
LOWpackages/shared/src/util/features.ts1721 // An approved draft whose approval no longer reflects the current live stateCOMMENT
LOWpackages/shared/src/util/features.ts1921// Granular three-way merge of two diverged rule arrays (matched by id).COMMENT
LOWpackages/shared/src/util/managedWarehouse.ts601 const path = `${MANAGED_WAREHOUSE_ATTRIBUTES_COLUMN}.${chIdentifier(COMMENT
LOWpackages/shared/src/util/index.ts461 rule: FeatureRule;COMMENT
LOWpackages/shared/src/util/index.ts701// NOT for persistence — content-identical rules across envs come out asCOMMENT
LOWpackages/shared/src/util/configs.ts41// flavors out of list views / feature `baseConfig` selectors / the lineage treeCOMMENT
LOWpackages/shared/src/util/configs.ts661 //COMMENT
LOWpackages/shared/src/util/configs.ts941// Validate a config's FULLY-RESOLVED, concrete value (an object with allCOMMENT
LOWpackages/shared/src/util/config-schema/invariants.ts1import { evalCondition } from "@growthbook/growthbook";COMMENT
LOWpackages/shared/src/util/config-schema/json-schema.ts21 const m = /^#\/(?:\$defs|definitions)\/(.+)$/.exec(ref);COMMENT
LOWpackages/shared/src/util/config-schema/validate.ts101 } else {COMMENT
LOWpackages/shared/src/util/config-schema/types.ts1import { SchemaField, SimpleSchema } from "shared/types/feature";COMMENT
LOWpackages/shared/src/util/config-schema/types.ts21 | "undeclared-rule-field";COMMENT
LOWpackages/shared/src/util/config-schema/index.ts1// Portable schema/value import-export core, shared between the front-end editorCOMMENT
LOWpackages/shared/src/experiments/experiments.ts241// active data source. A span in that quote is a *quoted identifier* (soCOMMENT
LOWpackages/shared/src/experiments/experiments.ts401 }COMMENT
LOWpackages/shared/src/experiments/experiments.ts981 }COMMENT
LOWpackages/shared/src/permissions/publishFootprint.ts301 // A patch WITHOUT an `environments` key does not touch the fieldCOMMENT
LOWpackages/shared/src/dialects/snowflake.ts61 // point is its own APPROX_PERCENTILE_ESTIMATE call in the SELECT list —COMMENT
LOW…kages/shared/src/validators/revision-publish-failed.ts21 bulkPublishId: bulkPublishIdField,COMMENT
LOWpackages/shared/src/validators/ramp-schedule.ts161COMMENT
LOWpackages/shared/src/validators/constant.ts21COMMENT
LOWpackages/shared/src/validators/features.ts121 description: z.string().max(MAX_DESCRIPTION_LENGTH),COMMENT
LOWpackages/shared/src/validators/features.ts661 .object({COMMENT
LOWpackages/shared/src/validators/features.ts701 // The live feature version at the moment this revision was approved.COMMENT
LOWpackages/shared/src/validators/features.ts741 // updateRevision's $addToSet; may be empty if no content edits have been made.COMMENT
LOWpackages/shared/src/validators/features.ts761 // The schedule is then treated as "dangerous": it can't be edited inlineCOMMENT
168 more matches not shown…
Decorative Section Separators65 hits · 196 pts
SeverityFileLineSnippetContext
MEDIUMpackages/shared/src/util/features.ts1797// ── Scheduled / deferred publish ────────────────────────────────────────────COMMENT
MEDIUMpackages/shared/src/revisions/helpers.ts742// ── Revision display helpers ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/shared/src/revisions/scheduledPublish.ts1// ── Scheduled / deferred publish ────────────────────────────────────────────COMMENT
MEDIUM…/front-end/test/components/RampScheduleSection.test.ts232 // ── Timing changes must NOT break the match ───────────────────────────────COMMENT
MEDIUM…rprise/components/ProductAnalytics/ExplorerContext.tsx77 // ─── State ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…rprise/components/ProductAnalytics/ExplorerContext.tsx108 // ─── Modifiers ─────────────────────────────────────────────────────────COMMENT
MEDIUM…rprise/components/ProductAnalytics/ExplorerContext.tsx132 // ─── Funnel metric link ────────────────────────────────────────────────COMMENT
MEDIUMpackages/front-end/styles/global.scss4002// ── rrweb-player control bar overrides ───────────────────────────────────────COMMENT
MEDIUM…-end/components/RampSchedule/RampMonitoringSignals.tsx968 // ── Signal-aware buttons (rollback / hold) ──────────────────────────────COMMENT
MEDIUM…-end/components/RampSchedule/RampMonitoringSignals.tsx1070 // ── Approval CTA ────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx30// ─── helpers ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx156// ─── PopoverEffectRow ─────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx179// ─── Popover patch display ────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx340// ─── Node popover content ─────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx570// ─── NodeDot ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx596// ─── Node ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx671// ─── Connector ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx693// ─── RampTimeline ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx703// ─── Exported helpers (used by parent pages to build header rows) ─────────────COMMENT
MEDIUM…ges/front-end/components/RampSchedule/RampTimeline.tsx754// ─── RampTimeline ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx29// ─── Types ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx40// ─── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx131// ─── Component ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx150 // ── Ramp section state ───────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx157 // ── Save ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ront-end/components/RampSchedule/RampScheduleModal.tsx225 // ── Render ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss1// ─── Theme-aware color tokens ────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss16// ─── constants (mirrored from TSX) ──────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss41// ─── NodeDot ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss74// ─── Node ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss100// ─── Connector ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss127// ─── PopoverEffectRow ─────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss138// ─── NodePopoverContent ───────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss150// ─── Scheduled date two-line label ───────────────────────────────────────────COMMENT
MEDIUM…t-end/components/RampSchedule/RampTimeline.module.scss156// ─── RampTimeline root ───────────────────────────────────────────────────────COMMENT
MEDIUM…s/front-end/components/Features/FeatureDiffRenders.tsx284// ─── Ramp schedule diff helpers ──────────────────────────────────────────────COMMENT
MEDIUM…s/front-end/components/Features/FeatureDiffRenders.tsx1774// ─── Prerequisite diff helpers ───────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/SavedGroups/SavedGroupDiffRenders.tsx151// ─── Section renders ─────────────────────────────────────────────────────────COMMENT
MEDIUM…t-end/components/SavedGroups/SavedGroupDiffRenders.tsx583// ─── Badge getters ────────────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx44// ─── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx138// ─── Section renders ──────────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx176 // ── Attribute targeting (condition) ──────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx204 // ── Saved group targeting ─────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx230 // ── Prerequisite targeting ────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx258 // ── Traffic (coverage + weights) ─────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx286 // ── Namespace ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx307 // ── Hash seed ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx576 // ── Bandit schedule / burn-in ──────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx610 // ── Long-text fields ───────────────────────────────────────────────────────COMMENT
MEDIUM…nt-end/components/Experiment/ExperimentDiffRenders.tsx625 // ── Fallback for any future/unhandled fields ───────────────────────────────COMMENT
MEDIUM⚡…nt-end/components/Experiment/ExperimentDiffRenders.tsx739// ─── Badge getters ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/front-end/components/Reviews/diffCopyFormats.ts175// ── "LLM / agents": XML-wrapped before/after per entity ──────────────────────COMMENT
MEDIUM…nt-end/components/Reviews/Feature/revisionLogReplay.ts7// ─── Log replay engine ────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/test/services/rampSchedule.test.ts1275 // ── condition ────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/test/services/rampSchedule.test.ts1302 // ── savedGroups ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/test/services/rampSchedule.test.ts1329 // ── prerequisites ────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/test/services/rampSchedule.test.ts1356 // ── force (null is a valid value, not a clear signal) ────────────────────COMMENT
MEDIUMpackages/back-end/test/services/rampSchedule.test.ts1375 // ── cross-field independence ──────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/src/events/eventEnvironments.ts12// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/back-end/src/events/eventEnvironments.ts35// ─────────────────────────────────────────────────────────────────────────────COMMENT
5 more matches not shown…
Fake / Example Data167 hits · 170 pts
SeverityFileLineSnippetContext
LOWpackages/shared/test/permissions.test.ts16 ownerEmail: "test@test.com",CODE
LOWpackages/shared/test/permissions.test.ts1244 ownerEmail: "test@test.com",CODE
LOWpackages/shared/test/permissions.test.ts1300 ownerEmail: "test@test.com",CODE
LOWpackages/shared/test/permissions.test.ts1682 ownerEmail: "test@test.com",CODE
LOWpackages/shared/test/permissions.test.ts1742 ownerEmail: "test@test.com",CODE
LOWpackages/shared/test/resolveConstants.test.ts335 expect(resolveConstantRefs("{{ @const:full }}", map)).toBe("Jane Doe");CODE
LOW…es/shared/test/validators/dashboard-api-blocks.test.ts130 owner: "admin@example.com",CODE
LOW…es/shared/test/validators/dashboard-api-blocks.test.ts134 expect(parsed.owner).toBe("admin@example.com");CODE
LOWpackages/front-end/ui/MultiSelectField.tsx293 | "placeholder"CODE
LOWpackages/front-end/ui/MultiSelectField.tsx403 | "placeholder"CODE
LOWpackages/front-end/components/Forms/SelectField.tsx59 | "placeholder"CODE
LOW…front-end/components/CustomFields/CustomFieldModal.tsx439 {...form.register("placeholder")}CODE
LOW…s/front-end/components/CustomHooks/CustomHookModal.tsx76 email: "user@example.com",CODE
LOW…s/front-end/components/CustomHooks/CustomHookModal.tsx114 owner: "user@example.com",CODE
LOW…s/front-end/components/CustomHooks/CustomHookModal.tsx312 email: "user@example.com",CODE
LOWpackages/back-end/README.md4531. Run `yarn workspace back-end generate-dummy-data`. This will create CSV files in `/tmp/csv`CODE
LOWpackages/back-end/package.json25 "generate-dummy-data": "ts-node ./test/data-generator/new-generator.ts",CODE
LOWpackages/back-end/test/restrictedProjects.test.ts12 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/additionalRoles.test.ts7 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/approvalCoverage.test.ts11 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2279 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2340 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2355 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2387 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2402 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2420 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/migrations.test.ts2438 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/envScopedReview.test.ts11 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3560// ownerEmail: "test@test.com",COMMENT
LOWpackages/back-end/test/permissions.test.ts3628// ownerEmail: "test@test.com",COMMENT
LOWpackages/back-end/test/permissions.test.ts36 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts1795 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts1956 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2172 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2331 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2449 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2608 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2698 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2799 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts2894 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3084 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3152 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3220 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3288 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3356 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3424 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3492 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3697 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3784 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3905 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts3992 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4079 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4170 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4294 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4385 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4594 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts4838 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts5047 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts5159 ownerEmail: "test@test.com",CODE
LOWpackages/back-end/test/permissions.test.ts5307 ownerEmail: "test@test.com",CODE
107 more matches not shown…
Cross-Language Confusion (JS/TS)13 hits · 88 pts
SeverityFileLineSnippetContext
HIGH…ghlighting/Snippets/MultivariateFeatureCodeSnippet.tsx167print(value)CODE
HIGH…ghlighting/Snippets/MultivariateFeatureCodeSnippet.tsx220print(value)CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx734 print("Viewed Experiment")CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx735 print("Experiment Id: ", experiment.key)CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx736 print("Variation Id: ", experimentResult.key)CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1053 print("Viewed Experiment")CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1054 print("Experiment Id: " + experiment.key)CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1055 print("Variation Id: " + result.key)CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1204 print('Viewed Experiment');CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1205 print('Experiment Id: ' + trackData.experiment.key);CODE
HIGH⚡…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1206 print('Variation Id: ' + trackData.experimentResult.key);CODE
HIGH…taxHighlighting/Snippets/BooleanFeatureCodeSnippet.tsx190 print("Feature is enabled!")CODE
HIGHpackages/back-end/src/services/notebook.ts244print(create_notebook(CODE
Structural Annotation Overuse23 hits · 42 pts
SeverityFileLineSnippetContext
LOW.agents/guides/backend/api-patterns.md72#### Step 1: Create the OpenAPI specCOMMENT
LOW.agents/guides/backend/api-patterns.md106#### Step 2: Wire up the API config in the modelCOMMENT
LOW.agents/guides/backend/api-patterns.md129#### Step 3: Register the model for routingCOMMENT
LOW.agents/guides/backend/api-patterns.md133#### Step 4: Implement `toApiInterface`COMMENT
LOW.agents/guides/backend/model-patterns.md11### Step 1: Create the Base ClassCOMMENT
LOW.agents/guides/backend/model-patterns.md38### Step 2: Extend with Permission LogicCOMMENT
LOW.agents/guides/backend/model-patterns.md64### Step 3: Add to the RequestContext so it can be used from anywhereCOMMENT
LOWpackages/sdk-js/README.md41### Step 1: Configure your appCOMMENT
LOWpackages/sdk-js/README.md74### Step 2: Start Feature Flagging!COMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx432 // Step 1: Extract metadataCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx435 // Step 2: Get sorted x-axis valuesCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx438 // Step 3: Build lookup map for efficient row accessCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx444 // Step 4: Build column headersCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx451 // Step 5: Build rows (with or without dimensions)COMMENT
LOWpackages/sdk-react/README.md38### Step 1: Configure your appCOMMENT
LOWpackages/sdk-react/README.md81### Step 2: Start feature flagging!COMMENT
LOW⚡…ages/back-end/test/funnelIncrementalRefreshSql.test.ts236 // Step 0: decomposable MIN into the resolved-ts column.COMMENT
LOW⚡…ages/back-end/test/funnelIncrementalRefreshSql.test.ts240 // Step 1: sorted array (BigQuery ARRAY_AGG ... IGNORE NULLS ORDER BY).COMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1087 // Step 0: baseline for bothCOMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1092 // Step 1: only TARGET_A coverage updateCOMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1094 // Step 2: only TARGET_B condition updateCOMMENT
LOWpackages/back-end/test/services/rampSchedule.test.ts1455 // Step 2: sum = 300 (step 0) + 0 (pure approval, step 1) + 600 (step 2) = 900COMMENT
LOWpackages/back-end/test/services/rampSchedule.test.ts4773 // Step 0: pure approval (no interval). Step 1: instant (no interval, no holds).COMMENT
Synthetic Comment Markers5 hits · 38 pts
SeverityFileLineSnippetContext
HIGHpackages/shared/src/ai.ts473// When an AI-generated image replaces an existing one on the page, it dropsCOMMENT
HIGHpackages/back-end/src/util/secrets.ts422// Kraken.io credentials — AI-generated images are resized + re-encoded toCOMMENT
HIGHpackages/back-end/src/api/visual-editor-ai/scopeCss.ts1// Scopes a stylesheet under a single root selector so an AI-generatedCOMMENT
HIGH…/back-end/src/api/visual-editor-ai/postPromoteImage.ts7// Moves an AI-generated image out of the throwaway `gen/` quarantine prefixCOMMENT
HIGHpackages/back-end/src/services/imageOptimization.ts11// AI-generated images are optimized via the Kraken.io API (resize + WebP),COMMENT
Modern AI Meta-Vocabulary12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMpackages/shared/test/decisionCriteria.test.ts678 // All guardrails losing - should matchCOMMENT
MEDIUM…d/src/enterprise/decision-criteria/decisionCriteria.ts942 // Safe rollouts do not expand metric-group guardrails yet.COMMENT
MEDIUM…-end/components/RampSchedule/RampMonitoringSignals.tsx970 // guardrails or active hold signals always take priority over the approvalCOMMENT
MEDIUM…-end/components/SafeRollout/Results/CompactResults.tsx150 // Only include goals in calculation, not secondary or guardrailsCOMMENT
MEDIUM…ents/DecisionCriteria/DecisionCriteriaModalContent.tsx53// Direction options for guardrailsCOMMENT
MEDIUMpackages/front-end/hooks/useExperimentTableRows.ts318 // Only include goals in calculation, not secondary or guardrailsCOMMENT
MEDIUM…es/front-end/services/importing/eppo/eppo-importing.ts202 // Deprecated in Eppo's API; guardrails are now defined by a cutoffCOMMENT
MEDIUMpackages/back-end/src/util/migrations.ts942 // We know the metric ids included, but don't know if they were goals or guardrailsCOMMENT
MEDIUMpackages/back-end/src/models/ExperimentModel.ts1848 // Remove from guardrailsCOMMENT
MEDIUMpackages/back-end/src/services/rampSchedule.ts1845 // guardrails here is the required mechanism to get them into analysisSummary.COMMENT
MEDIUMpackages/back-end/src/services/rampScheduleEvaluator.ts50 // guardrails/health, min sample size, signal metrics) has already cleared.COMMENT
MEDIUM…services/experimentChanges/experimentStoppedResults.ts88 // (but not secondaries or guardrails).COMMENT
Verbosity Indicators13 hits · 27 pts
SeverityFileLineSnippetContext
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx432 // Step 1: Extract metadataCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx435 // Step 2: Get sorted x-axis valuesCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx438 // Step 3: Build lookup map for efficient row accessCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx444 // Step 4: Build column headersCOMMENT
LOW⚡packages/front-end/components/DataViz/PivotTable.tsx451 // Step 5: Build rows (with or without dimensions)COMMENT
LOWpackages/front-end/services/sqlAutoComplete.ts151 // So we need to check if the path is empty before adding it to the completionsCOMMENT
LOW⚡…ages/back-end/test/funnelIncrementalRefreshSql.test.ts236 // Step 0: decomposable MIN into the resolved-ts column.COMMENT
LOW⚡…ages/back-end/test/funnelIncrementalRefreshSql.test.ts240 // Step 1: sorted array (BigQuery ARRAY_AGG ... IGNORE NULLS ORDER BY).COMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1087 // Step 0: baseline for bothCOMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1092 // Step 1: only TARGET_A coverage updateCOMMENT
LOW⚡packages/back-end/test/services/rampSchedule.test.ts1094 // Step 2: only TARGET_B condition updateCOMMENT
LOWpackages/back-end/test/services/rampSchedule.test.ts1455 // Step 2: sum = 300 (step 0) + 0 (pure approval, step 1) + 600 (step 2) = 900COMMENT
LOWpackages/back-end/test/services/rampSchedule.test.ts4773 // Step 0: pure approval (no interval). Step 1: instant (no interval, no holds).COMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALpackages/back-end/src/api/projects/putProject.ts15 req.context.models.projects.updateValidator.parse(req.body),CODE
CRITICALpackages/back-end/src/api/projects/postProject.ts8 const payload = req.context.models.projects.createValidator.parse(req.body);CODE
AI Slop Vocabulary7 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMpackages/stats-ts/src/contextualBanditWeights.ts461 // with the approximate splitter and to stay robust if that ever changes.COMMENT
MEDIUM…kages/front-end/styles/_bootstrap-theme-overrides.scss529 // Absolutely centered inside the host cell — the in-flow icon was forcingCOMMENT
MEDIUMpackages/front-end/components/Features/RuleList.tsx331 // A feature reaching >1 project gets project-nuanced conflict messaging.COMMENT
LOWpackages/stats/gbstats/gbstats.py340 # if there are no goal metrics, just use 1 as the number of testsCOMMENT
MEDIUMpackages/back-end/src/app.ts256 // TODO: more robust health check?COMMENT
MEDIUM…s/back-end/src/routers/revision/revision.controller.ts1056 // is robust to benign serialization drift between the client's cachedCOMMENT
MEDIUMpackages/back-end/src/services/features.ts2989 // We might want to investigate a more robust solution in the future.COMMENT
Unused Imports17 hits · 15 pts
SeverityFileLineSnippetContext
LOWpackages/stats/tests/test_utils.py1CODE
LOWpackages/stats/tests/test_utils.py3CODE
LOWpackages/stats/tests/test_utils.py6CODE
LOWpackages/stats/tests/test_utils.py7CODE
LOWpackages/stats/tests/test_midexperimentpower.py1CODE
LOWpackages/stats/tests/test_midexperimentpower.py2CODE
LOWpackages/stats/tests/test_midexperimentpower.py3CODE
LOWpackages/stats/tests/test_midexperimentpower.py5CODE
LOWpackages/stats/tests/test_midexperimentpower.py6CODE
LOWpackages/stats/tests/test_gbstats.py9CODE
LOWpackages/stats/tests/test_gbstats.py9CODE
LOWpackages/stats/tests/test_gbstats.py27CODE
LOWpackages/stats/tests/test_gbstats.py33CODE
LOWpackages/stats/tests/test_devtools.py1CODE
LOWpackages/stats/tests/test_devtools.py2CODE
LOWpackages/stats/tests/test_devtools.py3CODE
LOWpackages/stats/tests/test_devtools.py6CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHpackages/stats/gbstats/models/tests.py0return uninformative output when ab test analysis can't be performed adequatelySTRING
HIGHpackages/stats/gbstats/frequentist/tests.py0return uninformative output when ab test analysis can't be performed adequatelySTRING
HIGHpackages/stats/gbstats/bayesian/tests.py0return uninformative output when ab test analysis can't be performed adequatelySTRING
Deep Nesting15 hits · 12 pts
SeverityFileLineSnippetContext
LOWpackages/stats/tests/frequentist/test_tests.py39CODE
LOWpackages/stats/tests/frequentist/test_post_strat.py170CODE
LOWpackages/stats/tests/bayesian/test_tests.py27CODE
LOWpackages/stats/gbstats/gbstats.py162CODE
LOWpackages/stats/gbstats/gbstats.py198CODE
LOWpackages/stats/gbstats/gbstats.py286CODE
LOWpackages/stats/gbstats/gbstats.py323CODE
LOWpackages/stats/gbstats/gbstats.py751CODE
LOWpackages/stats/gbstats/gbstats.py1060CODE
LOWpackages/stats/gbstats/gbstats.py1394CODE
LOWpackages/stats/gbstats/models/tests.py1368CODE
LOWpackages/stats/gbstats/models/tests.py1527CODE
LOWpackages/stats/gbstats/devtools/simulation.py150CODE
LOWpackages/stats/gbstats/devtools/simulation.py292CODE
LOW…back-end/test/integrations/integration-query-runner.py295CODE
Self-Referential Comments3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUM…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx924# Create a context for the current user/requestCOMMENT
MEDIUM⚡packages/stats/gbstats/gbstats.py944 # Create a copy to avoid SettingWithCopy warnings or mutating the originalCOMMENT
MEDIUMpackages/stats/gbstats/gbstats.py1089 # Create the variation response objectCOMMENT
Excessive Try-Catch Wrapping8 hits · 9 pts
SeverityFileLineSnippetContext
LOWpackages/stats/gbstats/utils.py180 except Exception as e:CODE
LOWpackages/stats/gbstats/gbstats.py1200 except Exception as e:CODE
LOWpackages/stats/gbstats/gbstats.py1474 except Exception as e:CODE
LOW…back-end/test/integrations/integration-query-runner.py317 except Exception as e:CODE
MEDIUM…back-end/test/integrations/integration-query-runner.py280def read_queries_cache() -> dict:CODE
LOWpackages/back-end/scripts/stats_server.py18 except Exception as e:CODE
LOWpackages/back-end/scripts/stats_server.py35 except Exception as e:CODE
LOWpackages/back-end/scripts/stats_server.py49 except Exception as e:CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHpackages/back-end/src/scripts/generate-openapi.ts432 parts.push(` -H 'Authorization: Bearer YOUR_API_KEY'`);CODE
Redundant / Tautological Comments2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡packages/stats/gbstats/gbstats.py954 # Check if the original column exists before trying to replace itCOMMENT
LOW.github/workflows/auto-approve-docs-changes.yml75 # Check if any non-markdown or non-mdx files existCOMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…axHighlighting/Snippets/GrowthBookSetupCodeSnippet.tsx1451async function handleRequest(event) {CODE
AI Structural Patterns2 hits · 1 pts
SeverityFileLineSnippetContext
LOWpackages/stats/gbstats/gbstats.py931CODE
LOWpackages/stats/gbstats/gbstats.py1057CODE