AI Slop Code Risk Monitor

rybbit-io/rybbit

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

🐸 Rybbit - open-source and privacy-friendly alternative to Google Analytics that is 10x more intuitive.

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for rybbit-io/rybbit, a TypeScript project with 13,192 GitHub stars. SynthScan examined 464,050 lines of code across 2184 source files, recording 319 pattern matches distributed across 13 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-26
Last Push
13.2K
Stars
TypeScript
Language
464.1K
Lines of Code
2.2K
Files
319
Pattern Hits
2026-10-31
Scan Date
0.01
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.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

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

Agent Over-Engineering Ratio 2.6/100 · LOW

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

PR Review Velocity Impact 4.7/100 · LOW

Which changes need focused human review? 319 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 10MEDIUM 29LOW 278

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 319 distinct pattern matches across 13 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 Identifiers174 hits · 181 pts
SeverityFileLineSnippetContext
LOWserver/public/script-full.js96 function getOrCreateVisitorId(namespace) {CODE
LOWserver/public/script-full.js338 function isPlausibleScreenDimensions(width, height) {CODE
LOWserver/public/script-full.js344 function getScreenDimensionSignals(width, height, userAgent) {CODE
LOWserver/src/index.ts148function receiveUsageStateFromPrimary(): Promise<void> {CODE
LOWserver/src/mcp/wellKnown.ts43export function createOAuthWellKnownRoutes(dependencies: OAuthWellKnownDependencies = defaultDependencies) {CODE
LOWserver/src/mcp/tools/organizations.ts31export function registerOrganizationTools(server: McpServer, api: RybbitApiClient, guard: ToolGuard, allowed: ScopeCheckCODE
LOWserver/src/mcp/tools/searchConsole.ts36export function registerSearchConsoleTools(CODE
LOWserver/src/lib/subscriptionUtils.test.ts193function listRejectsWhileIterating(message: string) {CODE
LOWserver/src/lib/auth-utils.ts86function resolveBearerTokenFromRequest(req: FastifyRequest): string | null {CODE
LOW⚡server/src/lib/auth-utils.ts270export function invalidateOrganizationSitesCache(organizationId: string) {CODE
LOW⚡server/src/lib/auth-utils.ts275export function invalidateSitesAccessCache(userId: string) {CODE
LOW⚡server/src/lib/auth-utils.ts284async function resolveTargetOrganizationId(options: {CODE
LOWserver/src/lib/auth-utils.ts478export async function getSiteIsPubliclyReadable(req: FastifyRequest, siteId: string | number): Promise<boolean> {CODE
LOWserver/src/lib/auth-utils.ts502export async function getOrganizationSitesForCaller(CODE
LOWserver/src/lib/auth-utils.ts606export async function getUserHasAdminAccessToSite(req: FastifyRequest, siteId: string | number) {CODE
LOWserver/src/lib/auth-middleware.ts41export function assertRouteAccessDeclared(route: RouteOptions): void {CODE
LOWserver/src/lib/api-errors.ts119export function registerApiErrorResponses(server: FastifyInstance): void {CODE
LOWserver/src/lib/subscriptionUtils.ts240export function invalidateStripeSubscriptionCache(stripeCustomerId: string | null): void {CODE
LOWserver/src/lib/subscriptionUtils.ts263export function invalidateAllStripeSubscriptionsCache(): void {CODE
LOWserver/src/lib/subscriptionUtils.ts285export async function getAllStripeSubscriptionsByCustomer(): Promise<Map<string, Stripe.Subscription>> {CODE
LOWserver/src/lib/subscriptionUtils.ts335export function stripeSubscriptionInfoFromSnapshot(CODE
LOWserver/src/lib/subscriptionUtils.ts450export async function hasRenewingStripeSubscription(stripeCustomerId: string | null): Promise<boolean> {CODE
LOWserver/src/lib/subscriptionUtils.ts609function buildStripeSubscriptionInfo(subscription: Stripe.Subscription): StripeSubscriptionInfo | null {CODE
LOWserver/src/lib/subscriptionUtils.ts672export async function getCustomPlanSubscription(CODE
LOWserver/src/lib/subscriptionUtils.ts757export async function getBestSubscriptionFromStripeSub(CODE
LOWserver/src/lib/subscriptionUtils.ts795export function subscriptionIncludesReplay(subscription: SubscriptionInfo): boolean {CODE
LOWserver/src/lib/openrouter.ts82export async function callOpenRouterWithMetadata(CODE
LOWserver/src/lib/cors.ts158export function shouldRejectUntrustedOrigin(request: FastifyRequest, env: NodeJS.ProcessEnv = process.env): boolean {CODE
LOWserver/src/lib/cors.ts176export function createCorsOptionsDelegate(env: NodeJS.ProcessEnv = process.env) {CODE
LOWserver/src/lib/cors.ts182export function createRejectUntrustedOriginHook(env: NodeJS.ProcessEnv = process.env) {CODE
LOWserver/src/lib/apiRateLimitPolicy.ts24async function dailyLimitForOrganization(organizationId: string): Promise<number> {CODE
LOWserver/src/lib/apiRateLimitPolicy.ts97export function invalidateRateLimitPlanCache(ownerId: string): void {CODE
LOWserver/src/lib/apiRateLimitPolicy.ts108export async function consumeRateLimitForIdentity(identity: {CODE
LOWserver/src/lib/auth.ts304async function assertOrganizationNotBilling(organizationId: string, message: string) {CODE
LOWserver/src/lib/auth.ts328async function applyInvitationSiteAccess(invitationId: string, memberId: string) {CODE
LOWserver/src/lib/scopes.ts87export function statementsFromApiKeyPermissions(permissions: unknown): ScopeStatements | null {CODE
LOWserver/src/db/clickhouse/queryUser.ts96async function rowPoliciesHideUnnamedUsers(database: string, user: string): Promise<boolean> {CODE
LOWserver/src/db/clickhouse/clickhouse.test.ts45function findSessionHourlyCreateQuery() {CODE
LOWserver/src/db/clickhouse/schema/liteDashboard.ts38async function ensureSessionHourlyMaterializedView() {CODE
LOWserver/src/db/clickhouse/schema/liteDashboard.ts64export async function initializeLiteDashboardMVs() {CODE
LOWserver/src/api/experiments/getExperimentResults.ts29export function buildExperimentResultQueries({CODE
LOWserver/src/api/experiments/utils.ts26export function getDuplicateExperimentMessage(error: unknown) {CODE
LOWserver/src/api/experiments/utils.ts33export async function validateExperimentReferences(CODE
LOWserver/src/api/experiments/utils.ts71export async function getExperimentWithRelations(CODE
LOWserver/src/api/admin/getAdminServiceEventCount.ts21export async function getAdminServiceEventCount(CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts18export async function getAdminOrganizationOptions(CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts60export async function getAdminSubscriptionPlans(_request: FastifyRequest, reply: FastifyReply) {CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts91export async function updateAdminSubscriptionOverride(CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts156export async function getAdminOrganizationMember(CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts224export async function updateAdminOrganizationMember(CODE
LOWserver/src/api/admin/adminOrganizationManagement.ts283export async function deleteAdminOrganizationMember(CODE
LOWserver/src/api/sites/siteSessionCountsQuery.ts1export function buildSiteSessionCountsQuery(useLiteDashboard: boolean) {CODE
LOWserver/src/api/sites/getSiteExclusions.ts101export function getSiteExcludedUserAgents(request: FastifyRequest, reply: FastifyReply) {CODE
LOWserver/src/api/sites/getSiteExclusions.ts109export function getSiteExcludedQueryParams(request: FastifyRequest, reply: FastifyReply) {CODE
LOWserver/src/api/sites/updateSitePrivateLinkConfig.ts9export async function updateSitePrivateLinkConfig(request: FastifyRequest, reply: FastifyReply) {CODE
LOWserver/src/api/gsc/searchAnalytics.ts93function normalizeFilterExpression(filter: z.infer<typeof filterSchema>): string {CODE
LOWserver/src/api/gsc/searchAnalytics.ts134export function buildSearchAnalyticsRequest(rawQuery: unknown): SearchAnalyticsRequest {CODE
LOWserver/src/api/featureFlags/schemas.ts187export function validateFeatureFlagUpdate(stored: Required<FeatureFlagShape>, patch: FeatureFlagUpdateBody): void {CODE
LOWserver/src/api/featureFlags/index.ts303export async function evaluateServerFeatureFlags(CODE
LOWserver/src/api/featureFlags/index.ts313async function evaluateFeatureFlagsForRuntime(CODE
114 more matches not shown…
Decorative Section Separators22 hits · 66 pts
SeverityFileLineSnippetContext
MEDIUMclient/src/app/[site]/dashboards/examples.ts22 // ── Overview ─────────────────────────────────────────────────────────────--COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts154 // ── Traffic ────────────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts277 // ── Audience ─────────────────────────────────────────────────────────────--COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts353 // ── Behavior (beyond prebuilt) ──────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts695 // ── Behavior: derived insights ─────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts831 // ── Events & interactions ───────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts1093 // ── Events: derived insights ───────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts1171 // ── Performance ────────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts1261 // ── Performance: derived insights ──────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts1294 // ── Marketing ──────────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/examples.ts1417 // ── Power user ─────────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts153// ── X-axis tick formatting ───────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts251// ── Value formatting ─────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts281// ── Single-value (stat) ──────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts297// ── Pie / donut ──────────────────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts320// ── Map (country choropleth) ─────────────────────────────────────────────────COMMENT
MEDIUMclient/src/app/[site]/dashboards/utils.ts341// ── Calendar heatmap ─────────────────────────────────────────────────────────COMMENT
MEDIUM…src/app/[site]/dashboards/components/charts/shared.tsx97// ── Shared periwinkle dataviz ramp (DESIGN.md --dataviz, hue 230) ─────────────COMMENT
MEDIUM…ent/src/app/[site]/journeys/components/journeyUtils.ts19// ───────── page patterns ─────────COMMENT
MEDIUM…ent/src/app/[site]/journeys/components/journeyUtils.ts60// ───────── the graph ─────────COMMENT
MEDIUM…ent/src/app/[site]/journeys/components/journeyUtils.ts173// ───────── one path ─────────COMMENT
MEDIUM…ent/src/app/[site]/journeys/components/journeyUtils.ts198// ───────── layout ─────────COMMENT
Magic Placeholder Names10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHdocs/src/app/[locale]/(home)/for-developers/page.tsx119 { text: '"Authorization: Bearer YOUR_API_KEY"', className: tokenString },CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts36 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts53 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts86 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts122 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts162 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts193 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts223 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts251 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
HIGH…/src/app/[site]/api-playground/utils/codeGenerators.ts278 const { method, url, queryParams, body, apiKey = "YOUR_API_KEY" } = config;CODE
Verbosity Indicators22 hits · 37 pts
SeverityFileLineSnippetContext
LOWserver/src/api/as/activate.ts130 // Step 1: Exchange authorization code for access tokenCOMMENT
LOWserver/src/api/as/activate.ts142 // Step 2: Fetch license key using access tokenCOMMENT
LOWserver/src/api/as/activate.ts154 // Step 3: Check if license already existsCOMMENT
LOWserver/src/api/as/activate.ts181 // Step 4: License doesn't exist - create new recordCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts149 // Step 1: Find matching user IDs and their traits from PostgresCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts174 // Step 2: Get session counts + metadata from ClickHouseCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts194 // Step 3: Build lookup from ClickHouse data keyed by identified_user_id,COMMENT
LOWserver/src/services/usageService.ts361 // Step 0: Pull every customer's subscription from Stripe in one bulk pass (a handful ofCOMMENT
LOW⚡server/src/services/usageService.ts373 // Step 1: Get all sites with their organization IDsCOMMENT
LOW⚡server/src/services/usageService.ts376 // Step 2: Get event and replay counts for all sites (current month, one query each). IfCOMMENT
LOWserver/src/services/usageService.ts391 // Step 3: Build a map of organizationId -> { sites, eventCount, replayCount }COMMENT
LOWserver/src/services/usageService.ts412 // Step 4: Get all organizationsCOMMENT
LOWserver/src/services/usageService.ts430 // Step 5: Process each organizationCOMMENT
LOWclient/src/app/signup/page.tsx48 // Step 1: Account creationCOMMENT
LOWclient/src/app/signup/page.tsx64 // Step 1: Account creation submissionCOMMENT
LOWclient/src/app/signup/page.tsx106 // Step 2: Setup submission — create org + site, then advance (cloud) or redirect (self-hosted)COMMENT
LOW⚡client/src/app/as/callback/page.tsx61 // Step 1: Account creationCOMMENT
LOW⚡client/src/app/as/callback/page.tsx66 // Step 2: Organization creationCOMMENT
LOW⚡client/src/app/as/callback/page.tsx69 // Step 3: Website additionCOMMENT
LOWclient/src/app/as/callback/page.tsx165 // Step 1: Account creation submissionCOMMENT
LOWclient/src/app/as/callback/page.tsx210 // Step 2: Organization creation and AppSumo license activationCOMMENT
LOWclient/src/app/as/callback/page.tsx251 // Step 3: Website addition submissionCOMMENT
Structural Annotation Overuse22 hits · 37 pts
SeverityFileLineSnippetContext
LOWserver/src/api/as/activate.ts130 // Step 1: Exchange authorization code for access tokenCOMMENT
LOWserver/src/api/as/activate.ts142 // Step 2: Fetch license key using access tokenCOMMENT
LOWserver/src/api/as/activate.ts154 // Step 3: Check if license already existsCOMMENT
LOWserver/src/api/as/activate.ts181 // Step 4: License doesn't exist - create new recordCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts149 // Step 1: Find matching user IDs and their traits from PostgresCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts174 // Step 2: Get session counts + metadata from ClickHouseCOMMENT
LOWserver/src/api/analytics/users/getUserTraits.ts194 // Step 3: Build lookup from ClickHouse data keyed by identified_user_id,COMMENT
LOWserver/src/services/usageService.ts361 // Step 0: Pull every customer's subscription from Stripe in one bulk pass (a handful ofCOMMENT
LOW⚡server/src/services/usageService.ts373 // Step 1: Get all sites with their organization IDsCOMMENT
LOW⚡server/src/services/usageService.ts376 // Step 2: Get event and replay counts for all sites (current month, one query each). IfCOMMENT
LOWserver/src/services/usageService.ts391 // Step 3: Build a map of organizationId -> { sites, eventCount, replayCount }COMMENT
LOWserver/src/services/usageService.ts412 // Step 4: Get all organizationsCOMMENT
LOWserver/src/services/usageService.ts430 // Step 5: Process each organizationCOMMENT
LOWclient/src/app/signup/page.tsx48 // Step 1: Account creationCOMMENT
LOWclient/src/app/signup/page.tsx64 // Step 1: Account creation submissionCOMMENT
LOWclient/src/app/signup/page.tsx106 // Step 2: Setup submission — create org + site, then advance (cloud) or redirect (self-hosted)COMMENT
LOW⚡client/src/app/as/callback/page.tsx61 // Step 1: Account creationCOMMENT
LOW⚡client/src/app/as/callback/page.tsx66 // Step 2: Organization creationCOMMENT
LOW⚡client/src/app/as/callback/page.tsx69 // Step 3: Website additionCOMMENT
LOWclient/src/app/as/callback/page.tsx165 // Step 1: Account creation submissionCOMMENT
LOWclient/src/app/as/callback/page.tsx210 // Step 2: Organization creation and AppSumo license activationCOMMENT
LOWclient/src/app/as/callback/page.tsx251 // Step 3: Website addition submissionCOMMENT
Over-Commented Block31 hits · 31 pts
SeverityFileLineSnippetContext
LOWserver/src/utils.ts221 return input;COMMENT
LOWserver/src/scripts/disableUnentitledReplays.ts1// Lists — and with --apply, disables — session replay for sites whose organization'sCOMMENT
LOWserver/src/scripts/backfillLiteDashboardMVs.ts1// Backfill the lite-dashboard materialized view targets from the existingCOMMENT
LOWserver/src/lib/const.ts41export const BASIC_SITE_LIMIT = 1;COMMENT
LOWserver/src/lib/auth.ts341 const { organizationId, hasRestrictedSiteAccess, siteIds, siteRole } = invitationRecord[0];COMMENT
LOWserver/src/db/clickhouse/queryUser.ts1import { randomBytes } from "node:crypto";COMMENT
LOWserver/src/db/clickhouse/client.ts21 // honours it, so the stored epoch no longer depends on the server timezone.COMMENT
LOWserver/src/db/clickhouse/schema/core.ts41 { name: "session_id", definition: "session_id String DEFAULT ''" },COMMENT
LOWserver/src/db/clickhouse/schema/core.ts361 // Successor to session_replay_metadata. The old table is aCOMMENT
LOWserver/src/db/clickhouse/schema/liteDashboard.ts61// Materialized views that back the simplified high-traffic dashboard.COMMENT
LOWserver/src/db/redis/stickyResolveLua.ts1// Lua body for the stickyResolve command. Kept in its own side-effect-freeCOMMENT
LOWserver/src/db/redis/redis.ts101// cand (ZSET) identities recently seen through *datacenter egress* underCOMMENT
LOWserver/src/db/redis/redis.ts261// single round-trip, and because the state lives in Redis every worker/replicaCOMMENT
LOWserver/src/api/routes.ts241//COMMENT
LOWserver/src/api/analytics/lite/utils.ts1import { FilterParams } from "@rybbit/shared";COMMENT
LOWserver/src/api/analytics/lite/utils.ts21 if (!filters) return false;COMMENT
LOWserver/src/api/analytics/utils/timeWindow.test.ts241 expect(result).not.toContain("Z'");COMMENT
LOWserver/src/api/analytics/utils/sessionAttribution.ts1// Session-level attribution aggregations, shared by every query that derives aCOMMENT
LOWserver/src/services/userId/stickyUserId.ts1import crypto from "crypto";COMMENT
LOWserver/src/services/tracker/identityBackfillQueue.ts1import { clickhouse } from "../../db/clickhouse/clickhouse.js";COMMENT
LOW…rver/src/services/tracker/botBlocking/botEventQueue.ts121COMMENT
LOWserver/src/services/tracker/botBlocking/index.ts301COMMENT
LOW…rver/src/services/tracker/botBlocking/anomalyScorer.ts641 const eventToken = nextEventToken(nowMs);COMMENT
LOWserver/src/services/replay/replayClockSkew.ts1// Replay event timestamps come from the browser, not the server, so they carryCOMMENT
LOWshared/src/permissions.ts1// Roles and permissions — the one answer to "what may this role do?".COMMENT
LOW…cs/src/app/[locale]/(home)/compare/data/competitors.ts1import { STANDARD_SITE_LIMIT, STANDARD_TEAM_LIMIT } from "@/lib/const";COMMENT
LOW.github/workflows/claude.yml41 actions: readCOMMENT
LOW…]/main/components/MainSection/annotations/emojiData.ts1// Generated from the Unicode emoji-test.txt data file for Emoji 15.1 — theCOMMENT
LOWclient/src/components/replay/replayEvents.ts1// Maps raw rrweb protocol events into human-meaningful session eventsCOMMENT
LOWclient/src/components/interior/segmented-control.tsx1// Adapted from interior.dev "SegmentedControl" (MIT). See ./THIRD_PARTY_LICENSES.mdCOMMENT
LOWclient/src/lib/motion.ts1import type { Transition } from "framer-motion";COMMENT
Fake / Example Data26 hits · 30 pts
SeverityFileLineSnippetContext
LOWserver/src/lib/email/templates/templates.test.ts48 organizationName: "Acme Inc",CODE
LOWserver/src/lib/email/templates/templates.test.ts92 organizationName: "Acme Inc",CODE
LOWserver/src/lib/email/templates/templates.test.ts106 email: "tay@example.org",CODE
LOWserver/src/lib/email/templates/templates.test.ts110 organizationName: "Acme Inc",CODE
LOWserver/src/lib/email/templates/templates.test.ts129 expect(approachingLimitSubject("Acme Inc", 91_000, 100_000, usage.now)).toBe(CODE
LOWserver/src/lib/email/templates/templates.test.ts205 organizationName: "Acme Inc",CODE
LOWserver/src/lib/email/templates/templates.test.ts273 expect(html).toContain("Acme Inc");CODE
LOWserver/src/lib/email/templates/templates.test.ts283 organizationName: "Acme Inc",CODE
LOW…er/src/api/memberAccess/updateMemberSiteAccess.test.ts104 ('admin', 'Admin', 'admin@example.com'),CODE
LOWserver/src/api/sites/siteTransfers.test.ts100async function startTransfer(email = "tay@example.org") {CODE
LOW⚡server/src/api/sites/siteTransfers.test.ts143 expect(reply.body).toMatchObject({ recipientEmail: "tay@example.org", url: expect.stringContaining("/transfer/") });CODE
LOW⚡server/src/api/sites/siteTransfers.test.ts145 expect.objectContaining({ email: "tay@example.org", sentBy: "barnaby@agency.io", siteDomain: "tay.example.org" })CODE
LOW⚡server/src/api/sites/siteTransfers.test.ts153 const first = await startTransfer("first@example.org");CODE
LOW⚡server/src/api/sites/siteTransfers.test.ts154 await startTransfer("tay@example.org");CODE
LOW⚡server/src/api/sites/siteTransfers.test.ts157 { id: expect.not.stringMatching(first.body.id), recipient_email: "tay@example.org" },CODE
LOWserver/src/api/sites/siteTransfers.test.ts184 request({ params: { siteId: "1" }, body: { email: "tay@example.org" }, user: undefined }),CODE
LOWserver/src/api/sites/siteTransfers.test.ts196 expect(shown.body.transfer).toMatchObject({ recipientEmail: "tay@example.org" });CODE
LOWserver/src/api/sites/siteTransfers.test.ts222 expect(asMallory.body).toMatchObject({ reason: "wrong_account", recipientEmailHint: "t••@example.org" });CODE
LOWserver/src/api/sites/siteTransfers.test.ts223 expect(JSON.stringify(asMallory.body)).not.toContain("tay@example.org");CODE
LOWserver/src/api/sites/siteTransfers.ts216/** "tay@example.org" → "t••@example.org": enough to recognise, not to register. */COMMENT
LOWserver/src/services/trialGrace/trialGraceEmails.test.ts78const org = { id: "org_1", name: "Acme Inc" };CODE
LOWserver/src/services/trialGrace/trialGraceEmails.test.ts112 organizationName: "Acme Inc",CODE
LOW…/settings/organization/components/CreateUserDialog.tsx115 placeholder="John Doe"CODE
LOWclient/src/app/transfer/[transferId]/page.tsx364 // The server only reveals a masked address, e.g. "t••@example.org".COMMENT
LOW…/src/app/[site]/api-playground/utils/endpointConfig.ts195 email: "user@example.com",CODE
LOWclient/src/components/OrganizationSelector.tsx50 <SelectItem value="placeholder" disabled>CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALserver/public/rrweb.min.js80***************************************************************************** */function Fn(s,e){var t=typeof Symbol=="fCODE
CRITICALdocs/src/lib/agent-readiness.test.ts166 assert.ok(document.components.schemas.ApiError.required.includes("resolution"));CODE
Self-Referential Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/docker-publish.yml70 # Create a temporary directory to store digestsCOMMENT
MEDIUM.github/workflows/docker-publish.yml133 # Create a temporary directory to store digestsCOMMENT
MEDIUM.github/workflows/docker-publish.yml205 # Create a manifest list and push to GHCRCOMMENT
MEDIUM.github/workflows/docker-publish.yml242 # Create a manifest list and push to GHCRCOMMENT
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWrestart.sh11# Check if .env file existsCOMMENT
LOWsetup.sh82# Check if domain name argument is providedCOMMENT
LOWupdate.sh20# Check if .env file existsCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdocs/package-lock.json11696 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…ale]/(home)/tools/(social-media-tools)/[slug]/page.tsx1366 "Yes. The generated names are starting points. Feel free to modify them, combine elements from different suggeCODE
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMops/seo/voice/stories.md55- Facts (September 2026): Rybbit ran an A/B test of a new homepage design against the existing one using its own tags; tCODE