AI Slop Code Risk Monitor

dubinc/dub

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

The modern link attribution platform. Loved by world-class engineering teams at Twilio, Zillow, Jobber, Vercel, Raycast, and more.

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for dubinc/dub, a TypeScript project with 25,051 GitHub stars. SynthScan examined 255,528 lines of code across 2298 source files, recording 196 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.0 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
25.1K
Stars
TypeScript
Language
255.5K
Lines of Code
2.3K
Files
196
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 3.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 3.2/100 · LOW

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

PR Review Velocity Impact 4.3/100 · LOW

Which changes need focused human review? 196 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 0HIGH 1MEDIUM 11LOW 184

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 196 distinct pattern matches across 8 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 Identifiers137 hits · 137 pts
SeverityFileLineSnippetContext
LOWpackages/ui/src/tooltip-advanced-link-features.tsx31export function AdvancedLinkFeaturesTooltip() {CODE
LOWpackages/ui/src/hooks/use-router-stuff.ts16export function consumePendingDashboardScrollTop(): number | null {CODE
LOWpackages/ui/src/rich-text-area/campaign-editor-image.ts132export function configureCampaignEditorImage(CODE
LOWpackages/ui/src/rich-text-area/table-keyboard.ts95export function deleteTableStructureOnKey(CODE
LOW…kages/utils/src/constants/pricing/plan-period-utils.ts15export function getMonthlyLimitFromPeriod({CODE
LOWpackages/utils/src/constants/pricing/trial-limits.ts31export function getTrialLimitFeaturePhrase(kind: TrialLimitResource): string {CODE
LOWpackages/utils/src/constants/pricing/trial-limits.ts35export function getTrialLimitResourceForOverageBanner({CODE
LOWpackages/utils/src/constants/pricing/trial-limits.ts49export function isWorkspaceBillingTrialActive(CODE
LOW…s/utils/src/functions/is-click-on-interactive-child.ts3export function isClickOnInteractiveChild(e: MouseEvent) {CODE
LOW…s/email/src/templates/folder-edit-access-requested.tsx17export default function FolderEditAccessRequested({CODE
LOWapps/web/ui/layout/upgrade-banner.tsx24export function useUpgradeBannerVisibility() {CODE
LOWapps/web/ui/layout/sidebar/workspace-dropdown.tsx104function WorkspaceDropdownPlaceholder() {CODE
LOWapps/web/ui/modals/update-workspace-user-role.tsx120export function useWorkspaceUserRoleModal({CODE
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx22function LinkConversionTrackingModal(props: LinkConversionTrackingModalProps) {CODE
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx33function LinkConversionTrackingModalInner({CODE
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx175export function useLinkConversionTrackingModal({CODE
LOWapps/web/ui/modals/trial-limit-activate-modal.tsx22function TrialLimitActivateModalInner({CODE
LOWapps/web/ui/modals/trial-limit-activate-modal.tsx124export function useTrialLimitActivateModal() {CODE
LOWapps/web/ui/modals/domain-auto-renewal-modal.tsx138export function useDomainAutoRenewalModal({ domain }: { domain: DomainProps }) {CODE
LOWapps/web/ui/modals/remove-workspace-user-modal.tsx224export function useRemoveWorkspaceUserModal({ user }: { user: UserProps }) {CODE
LOWapps/web/ui/modals/cancel-subscription-modal.tsx191export function useCancelSubscriptionModal({CODE
LOWapps/web/ui/modals/uninstall-integration-modal.tsx15function UninstallIntegrationModal({CODE
LOWapps/web/ui/modals/uninstall-integration-modal.tsx105export function useUninstallIntegrationModal({CODE
LOWapps/web/ui/modals/register-domain-success-modal.tsx74export function useRegisterDomainSuccessModal() {CODE
LOWapps/web/ui/modals/invite-workspace-user-modal.tsx48export function useInviteWorkspaceUserModal({CODE
LOWapps/web/ui/modals/add-edit-utm-template.modal.tsx176export function useAddEditUtmTemplateModal({CODE
LOWapps/web/ui/modals/forward-dns-instructions-modal.tsx20function ForwardDnsInstructionsModal({CODE
LOWapps/web/ui/modals/forward-dns-instructions-modal.tsx108export function useForwardDnsInstructionsModal(CODE
LOW…i/modals/link-builder/advanced-link-features-modal.tsx14function AdvancedLinkFeaturesModal({CODE
LOW…i/modals/link-builder/advanced-link-features-modal.tsx177export function useAdvancedLinkFeaturesModal() {CODE
LOWapps/web/ui/logs/log-utils.ts1export function getStatusCodeBadgeVariant(statusCode: number) {CODE
LOW…link-builder/controls/link-builder-folder-selector.tsx6export function LinkBuilderFolderSelector() {CODE
LOW…ps/web/ui/guides/install-stripe-integration-button.tsx13export function InstallStripeIntegrationButton() {CODE
LOWapps/web/ui/webhooks/webhook-event-details-sheet.tsx24function WebhookEventDetailsSheetContent({CODE
LOWapps/web/ui/webhooks/webhook-trigger-selector.tsx46export function isWebhookTriggerSelectionInvalid(CODE
LOWapps/web/ui/analytics/chart-section.tsx149function ConversionTrackingPaywall() {CODE
LOWapps/web/app/password/[linkId]/page.tsx58export default async function PasswordProtectedLinkPage(props: {CODE
LOW…dub.co/embed/support-chat/dynamic-height-messenger.tsx5export function SupportChatDynamicHeightMessenger() {CODE
LOW…(auth)/oauth/authorize/authorize-workspace-context.tsx35export function AuthorizeWorkspaceProvider({CODE
LOW…(auth)/oauth/authorize/authorize-workspace-context.tsx89function getDefaultAuthorizeWorkspace({CODE
LOW…uth)/auth/confirm-email-change/[token]/page-client.tsx13export default function ConfirmEmailChangePageClient({CODE
LOW…]/(ee)/settings/integrations/featured-integrations.tsx170export function FeaturedIntegrationsLoader() {CODE
LOW…settings/integrations/integrations-subpage-context.tsx16export function IntegrationsSubpageProvider({CODE
LOW…settings/integrations/integrations-subpage-context.tsx42export function SetIntegrationsSubpageTitle({ title }: { title: string }) {CODE
LOW…)/settings/integrations/integrations-layout-client.tsx49function IntegrationsLayoutContent({ children }: { children: ReactNode }) {CODE
LOW…rd)/[slug]/(ee)/settings/integrations/enabled/page.tsx28async function EnabledIntegrationsPageRSC({ slug }: { slug: string }) {CODE
LOW….co/(dashboard)/[slug]/(ee)/settings/tracking/page.tsx8export default function WorkspaceTrackingSettingsPage() {CODE
LOW…rd)/[slug]/(ee)/settings/notifications/page-client.tsx16export default function NotificationsSettingsPageClient() {CODE
LOW…dashboard)/[slug]/(ee)/settings/notifications/page.tsx3export default function NotificationsSettingsPage() {CODE
LOW…shboard)/[slug]/(ee)/settings/billing/upgrade/page.tsx56export default function WorkspaceBillingUpgradePage() {CODE
LOW…pp/app.dub.co/(dashboard)/[slug]/links/page-client.tsx75export function WorkspaceLinksPageControls() {CODE
LOW….dub.co/(dashboard)/[slug]/links/utm/template-card.tsx195function TemplateCardKeyboardShortcuts({CODE
LOW…pp.dub.co/(dashboard)/[slug]/links/utm/page-client.tsx22export default function WorkspaceUtmTemplatesClient() {CODE
LOWapps/web/app/(ee)/api/cron/workspaces/delete/utils.ts22export async function enqueueNextWorkspaceDeleteStep({CODE
LOWapps/web/app/(ee)/api/cron/trial-emails/route.ts23async function executeTrialEmailCronBatch(startingAfter?: string) {CODE
LOW…)/api/stripe/webhook/payment-intent-requires-action.ts5export async function paymentIntentRequiresAction(CODE
LOW…e)/api/stripe/webhook/customer-subscription-deleted.ts16export async function customerSubscriptionDeleted(CODE
LOW…e)/api/stripe/webhook/customer-subscription-deleted.ts213async function voidLatestInvoiceIfPayable(subscription: Stripe.Subscription) {CODE
LOWapps/web/app/(ee)/api/stripe/webhook/charge-refunded.ts33async function processDomainRenewalInvoice({ invoice }: { invoice: Invoice }) {CODE
LOW…ps/web/app/(ee)/api/stripe/webhook/charge-succeeded.ts73async function processDomainRenewalInvoice({ invoice }: { invoice: Invoice }) {CODE
77 more matches not shown…
Structural Annotation Overuse28 hits · 47 pts
SeverityFileLineSnippetContext
LOW⚡apps/web/playwright/workspaces/auth.setup.ts17 // Step 1: Enter email and reveal password fieldCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts21 // Step 2: Enter password and submitCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts27 // Step 3: Verify email via OTP from MailHogCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts36 // Step 4: Wait for redirect to onboarding after auto-submitCOMMENT
LOWapps/web/guides/gtm-client-sdk.md3## Step 1: Create a New TagCOMMENT
LOWapps/web/guides/gtm-client-sdk.md13## Step 2: Add the Dub client-side scriptCOMMENT
LOWapps/web/guides/gtm-client-sdk.md44## Step 3: Configure the TriggerCOMMENT
LOWapps/web/guides/gtm-client-sdk.md52## Step 4: Save and PublishCOMMENT
LOWapps/web/guides/gtm-track-sale.md5## Step 1: Create a GTM Variable to read the dub_id CookieCOMMENT
LOWapps/web/guides/gtm-track-sale.md19## Step 2: Tracking sale eventsCOMMENT
LOWapps/web/guides/better-auth.md3## Step 1: Install the @dub/better-auth pluginCOMMENT
LOWapps/web/guides/better-auth.md14## Step 2: Configure the pluginCOMMENT
LOW⚡apps/web/guides/clerk.md3## Step 1: Add environment variablesCOMMENT
LOW⚡apps/web/guides/clerk.md16## Step 2: Add a custom claim to your Clerk session tokenCOMMENT
LOW⚡apps/web/guides/clerk.md26## Step 3: Extend the `@dub/analytics` package with Clerk's `useUser` hookCOMMENT
LOWapps/web/guides/clerk.md97## Step 4: Implement the `trackLead` server actionCOMMENT
LOWapps/web/guides/segment-track-lead.md3## Step 1: Add Dub (Actions) destinationCOMMENT
LOWapps/web/guides/segment-track-lead.md9## Step 2: Configure Dub API KeyCOMMENT
LOWapps/web/guides/segment-track-lead.md21## Step 3: Add MappingCOMMENT
LOWapps/web/guides/segment-track-lead.md37## Step 4: Send lead events to DubCOMMENT
LOWapps/web/guides/react.md3### Step 1: Install packageCOMMENT
LOWapps/web/guides/react.md11### Step 2: Initialize package in your codeCOMMENT
LOWapps/web/guides/segment-track-sale.md5## Step 1: Add Dub (Actions) destinationCOMMENT
LOWapps/web/guides/segment-track-sale.md11## Step 2: Configure Dub API KeyCOMMENT
LOWapps/web/guides/segment-track-sale.md23## Step 3: Add MappingCOMMENT
LOWapps/web/guides/segment-track-sale.md39## Step 4: Send sale events to DubCOMMENT
LOWapps/web/guides/gtm-track-lead.md5## Step 1: Create a GTM Variable to read the dub_id CookieCOMMENT
LOWapps/web/guides/gtm-track-lead.md19## Step 2: Tracking lead eventsCOMMENT
Decorative Section Separators10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx30// ─── Constants ────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx40// ─── Shared form body ─────────────────────────────────────────────────────────COMMENT
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx316// ─── Segmented control ────────────────────────────────────────────────────────COMMENT
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx381// ─── Color section ────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx418// ─── Style icons ──────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx590// ─── Download / Copy popovers ─────────────────────────────────────────────────COMMENT
MEDIUMapps/web/lib/qr/index.tsx159// ─── SVG string helpers for download ─────────────────────────────────────────COMMENT
MEDIUMapps/web/lib/qr/index.tsx242// ─── Canvas helpers for finder patterns ──────────────────────────────────────COMMENT
MEDIUMapps/web/lib/qr/index.tsx313// ─── Public download helpers ──────────────────────────────────────────────────COMMENT
MEDIUMapps/web/lib/qr/utils.tsx340// ─── SVG path helpers for compound finder-pattern shapes ─────────────────────COMMENT
Fake / Example Data11 hits · 11 pts
SeverityFileLineSnippetContext
LOWapps/web/ui/domains/add-edit-domain-form.tsx748 id: "placeholder",CODE
LOWapps/web/ui/modals/add-customer-modal.tsx382 placeholder="John Doe"CODE
LOWapps/web/ui/modals/edit-customer-modal.tsx90 placeholder="John Doe"CODE
LOWapps/web/ui/modals/forward-dns-instructions-modal.tsx92 placeholder="admin@example.com"CODE
LOW…p.dub.co/(onboarding)/[slug]/wrapped/[year]/client.tsx31 item: "placeholder",CODE
LOW…p.dub.co/(onboarding)/[slug]/wrapped/[year]/client.tsx199 {item === "placeholder" ? (CODE
LOWapps/web/guides/stripe-checkout.md16 email: "user@example.com",CODE
LOWapps/web/guides/manual-track-lead.md17 customerName: "John Doe",CODE
LOWapps/web/guides/manual-track-lead.md36 customerName: "John Doe",CODE
LOWapps/web/guides/stripe-customers.md10 email: "user@example.com",CODE
LOWapps/web/guides/stripe-customers.md33 email: "user@example.com",CODE
Verbosity Indicators5 hits · 10 pts
SeverityFileLineSnippetContext
LOW⚡apps/web/playwright/workspaces/auth.setup.ts17 // Step 1: Enter email and reveal password fieldCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts21 // Step 2: Enter password and submitCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts27 // Step 3: Verify email via OTP from MailHogCOMMENT
LOW⚡apps/web/playwright/workspaces/auth.setup.ts36 // Step 4: Wait for redirect to onboarding after auto-submitCOMMENT
LOWapps/web/lib/auth/options.ts368 // If the user is not using SAML, we need to check if SAML is enforced for the email domainCOMMENT
Magic Placeholder Names1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH⚡apps/web/guides/clerk.md13DUB_API_KEY=your_api_keyCODE
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…s/email/src/templates/trial/trial-3-days-remaining.tsx22 Don't forget to review your selected plan and billing details.CODE
MEDIUMapps/web/scripts/dev/data.json73 "readme": "This is the official Make.com integration for Dub. Make.com lets you connect Dub with thousands of the CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWapps/web/tests/tracks/track-click.test.ts121 // path: "/track/click",COMMENT
LOWapps/web/lib/openapi/mcp-document.ts1import { document } from ".";COMMENT