AI Slop Code Risk Monitor

thunderbird/thunderbolt

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

AI You Control: Choose your models. Own your data. Eliminate vendor lock-in.

1.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for thunderbird/thunderbolt, a TypeScript project with 4,818 GitHub stars. SynthScan examined 537,520 lines of code across 2722 source files, recording 368 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 1.2 (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.2
Adjusted Signal
1.2
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
4.8K
Stars
TypeScript
Language
537.5K
Lines of Code
2.7K
Files
368
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 2.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

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

Agent Over-Engineering Ratio 2.7/100 · LOW

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

PR Review Velocity Impact 5.4/100 · LOW

Which changes need focused human review? 368 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 0MEDIUM 115LOW 253

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 368 distinct pattern matches across 9 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 Separators93 hits · 294 pts
SeverityFileLineSnippetContext
MEDIUM⚡deploy/k8s/values.yaml21# =============================================================================COMMENT
MEDIUM⚡deploy/k8s/values.yaml23# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml47# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml49# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml64# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml66# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml81# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml83# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml138# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml140# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml174# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml176# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml209# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml211# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml250# =============================================================================COMMENT
MEDIUMdeploy/k8s/values.yaml252# =============================================================================COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts236 // ─── First-device bootstrap ─────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts401 // ─── Approve via challenge signature ────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts592 // ─── GET /encryption/challenge ──────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts661 // ─── Wrapped-DEK keyring ────────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts740 // ─── AK rotation ────────────────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts1462 // ─── v1→v2 upgrade ──────────────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts1669 // ─── deny (challenge proof) ─────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts1715 // ─── Org escrow (THU-804) ───────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts1941 // ─── canary metadata (v2 shape) ─────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts1976 // ─── Device–session binding (THU-873) ───────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption-v2.test.ts2212 // ─── Security notifications + step-up request (THU-875) ─────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts155 // ─── POST /devices ──────────────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts423 // ─── GET /devices/me/envelope ───────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts541 // ─── GET /encryption/canary ─────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts586 // ─── POST /devices/me/node-id (self-enroll) ─────────────────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts699 // ─── GET /devices/allowlist ─────────────────────────────────────────COMMENT
MEDIUMbackend/src/api/encryption.test.ts794 // ─── POST /devices/bridge (register bridge) ─────────────────────────COMMENT
MEDIUMbackend/src/dal/encryption.ts16// ─── Envelopes ────────────────────────────────────────────────────────COMMENT
MEDIUMbackend/src/dal/encryption.ts64// ─── Org-escrow envelopes (THU-804) ───────────────────────────────────COMMENT
MEDIUMbackend/src/dal/encryption.ts88// ─── Encryption metadata ──────────────────────────────────────────────COMMENT
MEDIUMbackend/src/dal/encryption.ts298// ─── Wrapped keys (versioned DEK keyring) ─────────────────────────────COMMENT
MEDIUMbackend/src/dal/encryption.ts354// ─── Challenge nonces ─────────────────────────────────────────────────COMMENT
MEDIUMscripts/reset-migrations.sh7# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/reset-migrations.sh9# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/reset-migrations.sh21# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/drop-preview-db.sh7# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/drop-preview-db.sh9# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/drop-preview-db.sh34# -----------------------------------------------------------------------------COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml97 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml100 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml104 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml111 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml119 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml129 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml158 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml164 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml171 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml176 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/thunder-deep-review.yml183 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/thunder-deep-review.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/thunder-deep-review.yml22# =============================================================================COMMENT
MEDIUM.github/workflows/thunder-deep-review.yml143 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/thunder-deep-review.yml220 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/thunder-deep-review.yml339 # ─────────────────────────────────────────────────────────────────────COMMENT
33 more matches not shown…
Over-Commented Block142 hits · 133 pts
SeverityFileLineSnippetContext
LOWindex.html21 <body>COMMENT
LOWplaywright.e2ee.config.ts21// the multi-minute `vite build` is pure waste on repeat runs. Requires aCOMMENT
LOWvite.config.ts101 // bail-out symptom: literal <Trans> at runtime with a green build), soCOMMENT
LOWvite.config.ts181 // `@earendil-works/pi-coding-agent` CLI — and its cross-spawn / which / undici /COMMENT
LOWminiapps/bunfig.toml1# Mini App packages install and run on their own (see the `workspaces` field inCOMMENT
LOWcrates/thunderbolt-acp-client/build.sh1#!/usr/bin/env bashCOMMENT
LOWcrates/thunderbolt-acp-client/.cargo/config.toml1# getrandom 0.3 needs an explicit backend cfg for wasm32 — without it the wasmCOMMENT
LOWcrates/thunderbolt-acp-client/src/lib.rs1/* This Source Code Form is subject to the terms of the Mozilla PublicCOMMENT
LOWcrates/thunderbolt-acp-client/src/lib.rs81 /// We deliberately do NOT pre-warm the relay here (no `endpoint.online()`):COMMENT
LOWcrates/thunderbolt-acp-client/src/lib.rs121 /// `thunderbolt iroh allow <node-id>`.COMMENT
LOWweb/src/styles/starlight.css501 border-radius: 0 !important;COMMENT
LOWdeploy/docker/backend-entrypoint.sh1#!/bin/shCOMMENT
LOWdeploy/docker/postgres-init/01-powersync.sh1#!/bin/shCOMMENT
LOWdeploy/k8s/values.yaml1# -- Global image pull secrets for private registries (e.g. GHCR)COMMENT
LOWdeploy/k8s/values.yaml21# =============================================================================COMMENT
LOWdeploy/k8s/values.yaml101 # -- Minimum compatible app semver.COMMENT
LOWdeploy/k8s/values.yaml121 # same place as `powersyncUrl` if you run PowerSync outside the cluster,COMMENT
LOWdeploy/k8s/values.yaml141postgres:COMMENT
LOWdeploy/k8s/values.yaml161 passwordBase64: cG9zdGdyZXM=COMMENT
LOWdeploy/k8s/values.yaml181 # with tests/powersync-config_test.yaml, deploy/docker/powersync.Dockerfile, bothCOMMENT
LOWdeploy/k8s/values.yaml221 port: 8080COMMENT
LOWdeploy/k8s/values.yaml261 # -- Optional per-service hostnames ("preview-style" host-header routing).COMMENT
LOWdeploy/k8s/templates/secrets.yaml21 # signing secret (k8s base64-decodes anything under `data:` once). This entryCOMMENT
LOWdeploy/k8s/templates/backend.yaml41 value: productionCOMMENT
LOWdeploy/k8s/templates/backend.yaml121 {{- end }}COMMENT
LOWdeploy/iroh-relay/config.example.toml1# Production config for a self-hosted iroh relay (iroh-relay v1.0.x).COMMENT
LOWdeploy/iroh-relay/docker-compose.yml1# Self-hosted iroh relay for local development.COMMENT
LOWdeploy/render/public-agent.yaml1# Render Blueprint for a public, anonymous Thunderbolt deployment with a hostedCOMMENT
LOWdeploy/pulumi/index.ts21const platform = config.get('platform') || 'fargate'COMMENT
LOWdeploy/pulumi/src/shared.ts441 // each register their own `keycloak.openid.Client` resource in `per-pr-stack.ts`COMMENT
LOWdeploy/pulumi/src/services.ts321 essential: true,COMMENT
LOWbackend/src/proxy/routes.ts361 })COMMENT
LOWbackend/src/proxy/routes.test.ts841 )COMMENT
LOWbackend/src/config/settings.ts121COMMENT
LOWbackend/src/config/settings.ts221 // `corsAllowHeaders` is no longer consumed by any production mount: bothCOMMENT
LOWbackend/src/config/settings.ts241COMMENT
LOWbackend/src/config/settings.ts261 // Rollout order: docs/self-hosting/configuration.md#command-line-client-rollout.COMMENT
LOWbackend/src/config/settings.ts321 // Trusted proxy (controls which proxy headers are trusted for IP extraction)COMMENT
LOWbackend/src/config/settings.ts621 secret: 'order-book-template-dev-secret-xx',COMMENT
LOWbackend/src/lib/step-up-otp.test.ts121 const first = await requestStepUpOtp(db, action, cooldownEmail)COMMENT
LOWbackend/src/api/account.ts321 // THU-873: pin the caller to the device its session is bound to. TheCOMMENT
LOWbackend/src/api/config.ts61 // pre-cutover bundles gate `encodeForUpload` on `config.e2eeEnabled`, andCOMMENT
LOWbackend/src/api/encryption.ts541 return { error: 'CLI device IDs must use account registration' }COMMENT
LOWbackend/src/api/encryption.ts581 // `deviceId`, so linking would let any session claim anyCOMMENT
LOWbackend/src/api/encryption.ts681 body: t.Object({COMMENT
LOWbackend/src/api/encryption.ts1081 // server access in its own transaction and replaces the AK in a second one;COMMENT
LOWbackend/src/api/encryption.ts1121COMMENT
LOWbackend/src/api/encryption.ts1161 return { nonce, expires_at: expiresAt.toISOString() }COMMENT
LOWbackend/src/api/encryption.ts1361 orgEnvelope: t.Optional(t.String({ maxLength: 500 })),COMMENT
LOWbackend/src/api/encryption.ts1761 // 1. GET /devices/me/bind-challenge → a nonce SEALED to the claimedCOMMENT
LOWshared/e2ee-types.ts181 ],COMMENT
LOWshared/e2ee-types.ts201 // Rows written before this entry existed synced as cleartext; theCOMMENT
LOWscripts/org-escrow-decrypt.ts461 const deks = await unwrapKeyring(COMMENT
LOWscripts/run-e2ee-powersync.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/reset-migrations.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/drop-preview-db.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/drop-preview-db.sh21# while the per-stack secrets and backend task definition still exist. ItCOMMENT
LOW.github/workflows/cli-release.yml1name: CLI ReleaseCOMMENT
LOW.github/workflows/desktop-build-signed.yml1# Build a SIGNED + notarized macOS desktop app on demand and upload it as aCOMMENT
LOW.github/workflows/preview-deploy.yml1name: Preview DeployCOMMENT
82 more matches not shown…
Fake / Example Data72 hits · 74 pts
SeverityFileLineSnippetContext
LOWbackend/src/waitlist/README.md14{ "email": "user@example.com" }CODE
LOWbackend/src/auth/utils.test.ts52 const result = buildVerifyUrl('https://app.thunderbolt.io', 'user@example.com', '12345678')CODE
LOWbackend/src/auth/utils.test.ts57 const result = buildVerifyUrl('https://app.thunderbolt.io', 'user@example.com', '12345678', 'abc-123-def')CODE
LOWbackend/src/auth/auth.test.ts96 name: 'John Doe',CODE
LOWbackend/src/auth/waitlist-integration.test.ts219 body: { email: 'user@example.com', type: 'sign-in' },CODE
LOWbackend/src/dal/otp-challenge.test.ts141 const result = await validateOtpChallenge(db, 'wrong@example.com', 'fake-token')CODE
LOWshared/agent-core/confidential-model.test.ts90 apiKey: 'placeholder',CODE
LOWshared/agent-core/build-app-harness.test.ts72 apiKey: 'placeholder',CODE
LOWdocs/internals/widgets.md535 image="https://example.com/image.jpg" author="John Doe" publishDate="2024-01-01" />CODE
LOW.github/qa/layout-probe.js51 clean(el.getAttribute('placeholder')) ||CODE
LOWsrc/artifacts/harness.ts319 el.getAttribute('placeholder') || el.getAttribute('name');CODE
LOWsrc/debug-transcript/build-payload.test.ts71 authSession: { user: { id: 'user-1', email: 'user@example.com', isAnonymous: false } },CODE
LOWsrc/debug-transcript/build-payload.test.ts86 expect(payload.identity).toEqual({ userId: 'user-1', email: 'user@example.com' })CODE
LOWsrc/debug-transcript/api.test.ts18 identity: { userId: 'user-1', email: 'user@example.com' },CODE
LOWsrc/integrations/thunderbolt-pro/tools.test.ts85 author: 'John Doe',CODE
LOWsrc/integrations/thunderbolt-pro/tools.test.ts250 author: 'Jane Doe',CODE
LOWsrc/integrations/thunderbolt-pro/tools.test.ts279 author: 'Jane Doe',CODE
LOWsrc/integrations/thunderbolt-pro/tools.test.ts291 expect(sourceCollector[0].author).toBe('Jane Doe')CODE
LOWsrc/integrations/google/tools.test.ts312 from: { name: 'John Doe', email: 'john@example.com' },CODE
LOWsrc/components/sidebar-footer.test.tsx117 session: { user: { id: 'real-1', email: 'user@example.com', name: 'Real User', isAnonymous: false } },CODE
LOWsrc/components/sidebar-footer.test.tsx294 session: { user: { id: 'real-1', email: 'user@example.com', name: 'Real User', isAnonymous: false } },CODE
LOWsrc/components/magic-link-verify.test.tsx124 renderComponent('user@example.com', undefined)CODE
LOW⚡src/components/magic-link-verify.test.tsx149 renderComponent('user@example.com', '123456')CODE
LOW⚡src/components/magic-link-verify.test.tsx157 renderComponent('user@example.com', '123456')CODE
LOW⚡src/components/magic-link-verify.test.tsx164 renderComponent('user@example.com', '123456')CODE
LOW⚡src/components/magic-link-verify.test.tsx168 email: 'user@example.com',CODE
LOW⚡src/components/magic-link-verify.test.tsx177 renderComponent('user@example.com', '123456', 'challenge-abc')CODE
LOWsrc/components/magic-link-verify.test.tsx188 const { getLastPathname } = renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx200 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx214 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx226 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx238 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx250 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx260 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx272 const { getLastPathname } = renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx288 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx302 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/magic-link-verify.test.tsx309 renderComponent('user@example.com', '123456')CODE
LOWsrc/components/device-approval.test.tsx27const authedSession = { user: { id: 'user-1', email: 'user@example.com' } }CODE
LOW…nts/settings/agents/create-agent-detail-panel.test.tsx36 session: { user: { id: 'user-1', email: 'user@example.com', name: 'User', isAnonymous: false } },CODE
LOW…ug-transcript/use-share-debug-transcript-state.test.ts107 session: { user: { id: 'user-1', email: 'user@example.com' } },CODE
LOW…ebug-transcript/share-debug-transcript-dialog.test.tsx73 'placeholder',CODE
LOWsrc/components/chat/chat-messages.test.tsx115 session: { user: { id: 'user-1', email: 'user@example.com' } },CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx85 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx88 expect(input).toHaveValue('John Doe')CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx135 expect(input).toHaveAttribute('placeholder', 'Enter your name')CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx153 expect(input).toHaveAttribute('placeholder', 'Enter your name')CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx162 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx280 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx305 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx308 expect(mockActions.setNameValue).toHaveBeenCalledWith('John Doe')CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx412 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx425 fireEvent.change(input, { target: { value: 'John Doe' } })CODE
LOWsrc/components/onboarding/onboarding-name-step.test.tsx428 expect(mockActions.setNameValue).toHaveBeenCalledWith('John Doe')CODE
LOW…/onboarding/wrappers/OnboardingLocationStepWrapper.tsx16 nameValue: 'John Doe',CODE
LOWsrc/hooks/use-onboarding-state.test.ts137 result.current.actions.setNameValue('John Doe')CODE
LOWsrc/hooks/use-onboarding-state.test.ts140 expect(result.current.state.nameValue).toBe('John Doe')CODE
LOWsrc/hooks/use-onboarding-state.test.ts264 await result.current.actions.submitName('John Doe')CODE
LOWsrc/hooks/use-onboarding-state.test.ts268 expect(result.current.state.nameValue).toBe('John Doe')CODE
LOWsrc/hooks/use-onboarding-state.test.ts282 await result.current.actions.submitName('John Doe')CODE
12 more matches not shown…
AI Slop Vocabulary20 hits · 60 pts
SeverityFileLineSnippetContext
MEDIUMbunfig.toml3# The Pi harness packages (the in-browser agent engine) are actively released andCOMMENT
MEDIUMminiapps/bunfig.toml4# is the host app's React harness and has no business here.COMMENT
MEDIUMpowersync-service/docker-compose.yml14 # Defaults preserve dev behaviour; the E2EE harness overrides viaCOMMENT
MEDIUMcli/bunfig.toml7# The Pi harness packages are actively released and pinned to an exact versionCOMMENT
MEDIUMscripts/run-e2ee-powersync.sh7# Boots the PowerSync + Postgres harness (docker-compose) on dedicated ports,COMMENT
MEDIUMscripts/run-e2ee-powersync.sh14# --keep Leave the Docker harness running after the tests instead ofCOMMENT
MEDIUM.github/workflows/e2e.yml88 # harness on dedicated ports (5434/8081), then runs playwright.e2ee.config.ts.COMMENT
MEDIUM.github/workflows/e2e.yml91 # Each shard boots its own harness (~4 min fixed) + its slice of the suite.COMMENT
MEDIUM.github/qa/scripts/explore.sh13# .github/qa/scripts/explore.sh harness <session> <dir> CI: a native session's gate, hook and config in <diCOMMENT
MEDIUM.github/qa/scripts/explore.sh30# In CI c7's second browser can write anywhere in the checkout, so nothing the session runs may come from it. `harness`COMMENT
MEDIUM.github/qa/scripts/explore.sh131 # With a harness every path below is absolute, and claude, the hook and the gate start in an empty dir: a processCOMMENT
MEDIUM.github/qa/scripts/explore.sh182 # With a harness the checkout may have been rewritten, and this step holds the key: no repo code runs now.COMMENT
MEDIUMe2e/e2ee/helpers.ts635 // A seamless upgrade never routes through first-device bootstrap — that stepCOMMENT
MEDIUMe2e/e2ee/migration.spec.ts82 // The seamless upgrade: absorb CK as "v1", mint primary "0", CAS-flip.COMMENT
MEDIUMe2e/e2ee/attacks/primary-keyid-steering.spec.ts96 // account around its keys, then run the seamless upgrade so the keyringCOMMENT
MEDIUMsrc/app.tsx360 // We may need to refactor the database classes to make this more robust.COMMENT
MEDIUMsrc/components/ui/header.tsx101 // Absolutely positioned so the macOS traffic-light clearance on the leftCOMMENT
MEDIUMsrc/voice/audio/endpointer.ts32// fail to commit (dead air). More sustained frames = more robust against residualCOMMENT
MEDIUMsrc/hooks/use-sync-setup.ts188 // routes into the seamless migration — never a reset.COMMENT
MEDIUMsrc/hooks/use-e2ee-ready.test.tsx63 // THE regression. The seamless v1→v2 migration runs fire-and-forget fromCOMMENT
Structural Annotation Overuse22 hits · 38 pts
SeverityFileLineSnippetContext
LOW.thunderbot/references/pr-workflow.md129### Step 1: Collect All Issues in One PassCOMMENT
LOW.thunderbot/references/pr-workflow.md142### Step 2: Fix All Issues (Batch)COMMENT
LOW.thunderbot/references/pr-workflow.md167### Step 3: Wait for CICOMMENT
LOW.thunderbot/references/pr-workflow.md175### Step 4: Reply, Resolve, and Mark CompleteCOMMENT
LOW.thunderbot/references/pr-workflow.md213### Step 5: Verify CleanCOMMENT
LOWbackend/src/auth/sso-desktop-callback.ts68 // Step 1: System browser navigates here → internally calls Better Auth → redirects to IdPCOMMENT
LOWbackend/src/auth/sso-desktop-callback.ts131 // Step 2: After SSO completes → read session cookie → redirect to loopback with tokenCOMMENT
LOW⚡backend/src/haystack/acp-server.test.ts188 // Step 1: search_sessions bootstrap.COMMENT
LOW⚡backend/src/haystack/acp-server.test.ts194 // Step 2: chat-stream.COMMENT
LOWdocs/internals/widgets.md47### Step 1: Create Widget DirectoryCOMMENT
LOWdocs/internals/widgets.md53### Step 2: Create Required FilesCOMMENT
LOWdocs/internals/widgets.md148### Step 3: Register in Central RegistryCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts23 // Step 1: PrivacyCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts25 // Step 2: AuthCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts29 // Step 3: NameCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts33 // Step 4: LocationCOMMENT
LOWsrc/hooks/use-app-initialization.ts227 // Step 0: Fire-and-forget `/config` fetch. On success `fetchConfig` hydratesCOMMENT
LOWsrc/hooks/use-app-initialization.ts258 // Step 6: HTTP client initialization (use provided client or create one)COMMENT
LOWsrc/hooks/use-app-initialization.ts291 // Step 1: App directory creationCOMMENT
LOWsrc/hooks/use-app-initialization.ts305 // Step 2: Database initializationCOMMENT
LOWsrc/hooks/use-app-initialization.ts409 // Step 3: Wait for PowerSync initial sync only when sync isCOMMENT
LOWsrc/hooks/use-app-initialization.ts434 // Step 4: Reconcile defaults (uses `modelsDefaults` picked above step 2cCOMMENT
Verbosity Indicators14 hits · 26 pts
SeverityFileLineSnippetContext
LOWbackend/src/auth/sso-desktop-callback.ts68 // Step 1: System browser navigates here → internally calls Better Auth → redirects to IdPCOMMENT
LOWbackend/src/auth/sso-desktop-callback.ts131 // Step 2: After SSO completes → read session cookie → redirect to loopback with tokenCOMMENT
LOW⚡backend/src/haystack/acp-server.test.ts188 // Step 1: search_sessions bootstrap.COMMENT
LOW⚡backend/src/haystack/acp-server.test.ts194 // Step 2: chat-stream.COMMENT
LOW⚡src/hooks/use-onboarding-state.ts23 // Step 1: PrivacyCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts25 // Step 2: AuthCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts29 // Step 3: NameCOMMENT
LOW⚡src/hooks/use-onboarding-state.ts33 // Step 4: LocationCOMMENT
LOWsrc/hooks/use-app-initialization.ts227 // Step 0: Fire-and-forget `/config` fetch. On success `fetchConfig` hydratesCOMMENT
LOWsrc/hooks/use-app-initialization.ts258 // Step 6: HTTP client initialization (use provided client or create one)COMMENT
LOWsrc/hooks/use-app-initialization.ts291 // Step 1: App directory creationCOMMENT
LOWsrc/hooks/use-app-initialization.ts305 // Step 2: Database initializationCOMMENT
LOWsrc/hooks/use-app-initialization.ts409 // Step 3: Wait for PowerSync initial sync only when sync isCOMMENT
LOWsrc/hooks/use-app-initialization.ts434 // Step 4: Reconcile defaults (uses `modelsDefaults` picked above step 2cCOMMENT
Redundant / Tautological Comments3 hits · 5 pts
SeverityFileLineSnippetContext
LOW.thunderbot/setup.sh36# Check if already installedCOMMENT
LOW⚡deploy/k8s/values.yaml17# Set it to pin workloads to a particular node pool, e.g.COMMENT
LOW.github/workflows/create-version-tag.yml161 # Check if tag already existsCOMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMRELEASE.md431### Release orchestrationCOMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/ai/streaming/util.ts31 * Note: This is a basic implementation for common use casesCOMMENT