Repository Analysis

corsairdev/corsair

Connect your users to their apps

7.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of corsairdev/corsair, a TypeScript project with 10,631 GitHub stars. SynthScan v2.0 examined 1,028,624 lines of code across 6100 source files, recording 3032 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 7.7 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

7.7
Adjusted Score
7.7
Raw Score
100%
Time Factor
2026-08-29
Last Push
10.6K
Stars
TypeScript
Language
1.0M
Lines of Code
6.1K
Files
3.0K
Pattern Hits
2026-08-29
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 5HIGH 11MEDIUM 2315LOW 701

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3032 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators2312 hits · 7040 pts
SeverityFileLineSnippetContext
MEDIUMdemo/minimal/oauth.ts11// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemo/minimal/oauth.ts13// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemo/minimal/oauth.ts24// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemo/minimal/oauth.ts26// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts69 // ── package.json ──────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts113 // ── tsconfig.json ─────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts139 // ── tsup.config.ts ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts160 // ── webhooks/tenant-matcher.ts + oauth-tenant-link.ts ─────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts170 // ── index.ts ──────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts370 // ── client.ts ─────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts437 // ── error-handlers.ts ─────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts474 // ── endpoints/types.ts ────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts509 // ── endpoints/example.ts ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts530 // ── endpoints/index.ts ────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts543 // ── webhooks/types.ts ─────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts607 // ── webhooks/example.ts ───────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts640 // ── webhooks/index.ts ─────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts655 // ── schema/database.ts ────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts670 // ── schema/index.ts ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts680 // ── jest.config.cjs + starter test ────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin.ts767 // ── Update core/constants.ts to register the new provider ─────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts12// ── JSON shape ────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts55// ── Name helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts168// ── Auth helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts211// ── Zod schema code generation ────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts316// ── File content builders ─────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts944// ── Main ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/generate-plugin-from-json.ts1298// ── Entry ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts46// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts48// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts57// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts59// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts928 // ── Key Builder ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts931 // ── Webhook Signature ─────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts941 // ── Static key shortcut ───────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts946 // ── API Key auth ──────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts72// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts74// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts104// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts106// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts234// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts236// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts699// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts701// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts854// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts856// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts873// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts875// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts890 // ── OAuth Config ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts972// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/attio/index.ts974// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts28// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts30// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts60// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts62// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts94// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts96// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts114// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts116// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/abstract/index.ts139// ─────────────────────────────────────────────────────────────────────────────COMMENT
2252 more matches not shown…
Hyper-Verbose Identifiers466 hits · 472 pts
SeverityFileLineSnippetContext
LOWdemo/testing/src/scripts/test-hub.ts53async function testDeliveryEndpointHealth(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts107async function testManagedConnectSession(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts145async function testIntegrationCredentials(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts164async function testStoredGoogleCalendarTokens(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts186async function testStoredGitHubManagedTokens(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts208async function testGoogleCalendarApiCall(): Promise<void> {CODE
LOWdemo/testing/src/scripts/test-hub.ts240async function testManagedOAuthDeliveryHandler(): Promise<void> {CODE
LOWwww/scripts/migrate-blog-to-sanity.ts72async function uploadImageFromPublicPath(CODE
LOWwww/src/app/oss/oss-integrations-shell.tsx20function OssIntegrationsShellInner({CODE
LOWwww/src/app/oss/active-claim-deadline-banner.tsx23export function ActiveClaimDeadlineBanner({CODE
LOWwww/src/app/oss/mark-finished-button.tsx123export function ReadyToReviewStatusCallout({CODE
LOWwww/src/app/oss/oss-sections.tsx54export async function OssCategoryOnboardingSection({CODE
LOWwww/src/app/oss/contributor-profile.tsx177function ContributorIntegrationRow({CODE
LOWwww/src/app/oss/[slug]/integration-detail-sections.tsx127export async function IntegrationCapabilitiesSection({CODE
LOWwww/src/app/oss/[slug]/integration-detail-sections.tsx154export function IntegrationHeaderSkeleton() {CODE
LOWwww/src/app/oss/[slug]/integration-detail-sections.tsx187export function IntegrationCapabilitiesSkeleton() {CODE
LOWwww/src/app/oss/[slug]/integration-capability-list.tsx21export function IntegrationCapabilityList({CODE
LOWwww/src/app/oss/[slug]/integration-auth-scheme-list.tsx9export function IntegrationAuthSchemeList({CODE
LOWwww/src/server/integration-cache.ts23function getCachedIntegrationSummary(slug: string) {CODE
LOWwww/src/server/integration-cache.ts34function getCachedIntegrationCapabilities(slug: string) {CODE
LOWwww/src/server/oss-public-cache.ts19export function revalidateOssWriteSurface() {CODE
LOWwww/src/server/oss-public-cache.ts77export async function getIntegrationListForPage(CODE
LOWwww/src/server/github-users.ts10function getGithubAvatarFallbackUrl(username: string): string {CODE
LOWwww/src/server/enterprise-contact.ts17function formatEnterpriseContactMessage(input: SubmitEnterpriseContactInput) {CODE
LOWwww/src/server/enterprise-contact.ts30export async function sendEnterpriseContactNotification(CODE
LOWwww/src/server/integrations/claim-integration.ts104export async function claimIntegrationAtomically(CODE
LOWwww/src/server/actions/mark-ready-to-review.ts10export async function markIntegrationReadyToReview(integrationId: string) {CODE
LOWwww/src/server/actions/admin-mark-merged.ts11export async function adminMarkIntegrationMerged(integrationId: string) {CODE
LOWwww/src/server/api/routers/integrations.ts125function visibleIntegrationsFilter(query?: string, tagSlugs?: string[]): SQL {CODE
LOWwww/src/server/api/routers/integrations.ts151function mapIntegrationClaimFields(CODE
LOWwww/src/server/api/routers/integrations.ts181async function maybeAdvancePhaseAfterUrlUpdate(CODE
LOW…nts/landing/use-cases/corsair-infrastructure-layer.tsx4export function CorsairInfrastructureLayer() {CODE
LOW…nents/landing/hooks/use-window-pointer-interactions.ts43export function useWindowPointerInteractions({CODE
LOWwww/src/lib/integration-phases.ts32export function isIntegrationActivelyClaimed(CODE
LOWwww/src/lib/integration-urls.ts10export function formatIntegrationIssueLabel(url: string | null | undefined) {CODE
LOWwww/src/lib/auth-emails.ts70export function buildMagicLinkEmailFromUrl(url: string) {CODE
LOWwww/src/db/integration-tags.ts7export async function fetchIntegrationTagsByIntegrationIds(CODE
LOWwww/src/db/integration-status.ts84export async function getLatestStatusForIntegration(CODE
LOWwww/src/db/integration-status.ts108export async function getLatestStatusesForIntegrations(CODE
LOWwww/src/db/integration-status.ts138export async function getIntegrationStatusHistory(CODE
LOWwww/src/db/integration-status.ts171export async function getUserActiveDeadlineClaim(db: DB, userId: string) {CODE
LOWwww/src/db/index.ts13function normalizeConnectionString(connectionString: string) {CODE
LOWwww/src/db/integration-tag-definitions.ts314export function assignIntegrationTagSlugs(CODE
LOWwww/src/db/integration-tag-definitions.ts349export function getIntegrationTagDefinition(slug: string) {CODE
LOWwww/src/db/integration-urls.ts35export async function fetchIntegrationUrlsByIntegrationIds(CODE
LOWwww/src/db/integration-urls.ts111export async function clearContributorIntegrationUrls(CODE
LOWscripts/plugin-tenant-routing-scaffold.ts92export function formatTenantRoutingPluginFields(pascalName: string): string {CODE
LOWscripts/generate-plugin-docs.ts181function discoverPluginPackageDirs(root: string): string[] {CODE
LOWscripts/generate-plugin-docs.ts321function inferAuthTypesFromPluginSource(source: string): string[] {CODE
LOWscripts/generate-plugin-docs.ts340function inferDefaultAuthTypeFromSource(source: string): string | undefined {CODE
LOWscripts/generate-plugin-docs.ts375function authTypeCredentialInstructions(CODE
LOWscripts/generate-plugin-docs.ts426function isPlaceholderExampleWebhookOnly(CODE
LOWscripts/generate-plugin-docs.ts554function validateExampleArgsAgainstInput(CODE
LOWscripts/generate-plugin-docs.ts1677function orderedPluginPageBasenames(pluginDir: string): string[] {CODE
LOWscripts/generate-plugin-docs.ts1826async function generatePluginDocsForEntry(CODE
LOWscripts/build-explorer-catalog.ts75function discoverPluginPackageDirs(root: string): string[] {CODE
LOWscripts/build-explorer-catalog.ts123function titleFromPackageDescription(desc: string | undefined): string | null {CODE
LOWscripts/build-explorer-catalog.ts154function inferDefaultAuthTypeFromSource(CODE
LOWscripts/lint-docs-imports.ts97function reportInvalidBindingAccess(CODE
LOWscripts/pr-review/pr-scope-main.ts40function changedFilesForPullRequest(repo: string, pr: string): string[] {CODE
406 more matches not shown…
Fake / Example Data111 hits · 116 pts
SeverityFileLineSnippetContext
LOWdemo/sdk/slack/tests/models.test.ts318 real_name: 'John Doe',CODE
LOWdemo/sdk/slack/tests/models.test.ts331 real_name: 'John Doe',CODE
LOWdemo/sdk/posthog/README.md122 email: 'user@example.com',CODE
LOWdemo/sdk/posthog/README.md123 name: 'John Doe',CODE
LOWdemo/sdk/unified-sdk/tests/slack/models.test.ts318 real_name: 'John Doe',CODE
LOWdemo/sdk/unified-sdk/tests/slack/models.test.ts331 real_name: 'John Doe',CODE
LOWpackages/abstract/error-handlers.test.ts8 const error = new AbstractAPIError('placeholder', status);CODE
LOWpackages/abstract/api.test.ts95 { query: { email: 'test@test.com' } },CODE
LOWpackages/allimagesai/endpoints.test.ts34 harness.queue({ body: { email: 'user@example.com' } });CODE
LOWpackages/allimagesai/endpoints.test.ts43 expect(result.email).toBe('user@example.com');CODE
LOWpackages/allimagesai/endpoints.test.ts48 harness.queue({ body: { email: 'user@example.com' } });CODE
LOWpackages/allimagesai/endpoints.test.ts52 email: 'user@example.com',CODE
LOWpackages/allimagesai/client.test.ts22 harness.queue({ body: { email: 'user@example.com' } });CODE
LOWpackages/altoviz/endpoints.test.ts166 const payload = auditPayload({ customerId: 42, companyName: 'Acme Corp' });CODE
LOWpackages/altoviz/endpoints.test.ts173 companyName: 'Acme Corp',CODE
LOWpackages/corsair/tests/retry-recover.test.ts70 key: 'fake-key',CODE
LOWpackages/corsair/tests/retry-recover.test.ts101 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts68 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts116 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts164 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts231 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts302 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts376 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts453 key: 'fake-key',CODE
LOWpackages/corsair/tests/hooks.test.ts514 key: 'fake-key',CODE
LOWpackages/corsair/tests/connect-link.test.ts157 const result = await boundFn({ to: 'user@example.com' });CODE
LOWpackages/circleci/integration.test.ts215 value: 'placeholder',CODE
LOWpackages/circleci/integration.test.ts220 expect(created.value).not.toBe('placeholder');CODE
LOWpackages/wiza/schema.test.ts63 individual_reveal: { full_name: 'Jane Doe', company: 'Acme' },CODE
LOWpackages/wiza/schema.test.ts151 name: 'Jane Doe',CODE
LOWpackages/wiza/schema.test.ts192 full_name: 'Jane Doe',CODE
LOWpackages/wiza/schema.test.ts377 full_name: 'Jane Doe',CODE
LOWpackages/wiza/schema.test.ts398 expect.objectContaining({ full_name: 'Jane Doe' }),CODE
LOWpackages/canva/api.test.ts336 display_name: 'Jane Doe',CODE
LOWpackages/canva/api.test.ts340 expect(result.profile.display_name).toBe('Jane Doe');CODE
LOWpackages/canva/api.test.ts600 author: { id: 'auDAbliZ2rQNNOsUl5OLu', display_name: 'John Doe' },CODE
LOWpackages/canva/api.test.ts607 expect(result.thread.author?.display_name).toBe('John Doe');CODE
LOWpackages/insightoai/api.test.ts113 email: 'user@example.com',CODE
LOWpackages/insightoai/api.test.ts339 input: { user_id: 'user_123', email: 'user@example.com' },CODE
LOWpackages/diffbot/api.test.ts240 name: 'John Doe',CODE
LOWpackages/diffbot/api.test.ts243 expect(input.name).toBe('John Doe');CODE
LOWpackages/mailchimp/tests/utils.test.ts16 expect(subscriberHash('foo@bar.com')).toBe(CODE
LOWpackages/mailchimp/tests/utils.test.ts37 expect(subscriberHash('foo@bar.com')).toBe(subscriberHash('foo@bar.com'));CODE
LOWpackages/customgpt/schema.test.ts609 { session_id: 'sess_1', query_id: 1, email: 'user@example.com' },CODE
LOWpackages/mailboxlayer/error-handlers.test.ts8 const error = new MailboxLayerAPIError('placeholder', { apiCode });CODE
LOWpackages/unione/schema.test.ts76 email: 'user@example.com',CODE
LOWpackages/unione/api.test.ts81 recipients: [{ email: 'user@example.com' }],CODE
LOWpackages/unione/api.test.ts113 email: 'user@example.com',CODE
LOWpackages/unione/api.test.ts121 email: 'user@example.com',CODE
LOWpackages/unione/api.test.ts149 await unsubscribe(makeCtx(), { email: 'user@example.com' });CODE
LOWpackages/unione/api.test.ts208 { email: 'user@example.com', project_id: 'p1', cause: 'unsubscribed' },CODE
LOWpackages/unione/api.test.ts209 { email: 'user@example.com', project_id: 'p2', cause: 'spam' },CODE
LOWpackages/unione/api.test.ts219 email: 'user@example.com',CODE
LOWpackages/unione/api.test.ts227 await suppressionGet(makeCtx(), { email: 'user@example.com' });CODE
LOWpackages/unione/api.test.ts276 await suppressionGet(makeCtx(), { email: 'user@example.com' });CODE
LOWpackages/unione/api.test.ts280 await suppressionDelete(makeCtx(), { email: 'user@example.com' });CODE
LOWpackages/unione/api.test.ts321 to_email: 'user@example.com',CODE
LOWpackages/unione/api.test.ts322 from_name: 'Jane Doe',CODE
LOWpackages/unione/api.test.ts348 recipients: [{ email: 'user@example.com' }],CODE
LOWpackages/unione/api.test.ts363 recipients: [{ email: 'user@example.com' }],CODE
51 more matches not shown…
Structural Annotation Overuse40 hits · 71 pts
SeverityFileLineSnippetContext
LOWdemo/sdk/linear/ENV_SETUP.md193### Step 1: Verify API KeyCOMMENT
LOWdemo/sdk/linear/ENV_SETUP.md206### Step 2: Verify Team ID (if set)COMMENT
LOWdemo/sdk/linear/ENV_SETUP.md214### Step 3: Verify Webhook SetupCOMMENT
LOWdemo/sdk/hubspot/README.md17#### Step 1: Navigate to Private AppsCOMMENT
LOWdemo/sdk/hubspot/README.md24#### Step 2: Create a New Private AppCOMMENT
LOWdemo/sdk/hubspot/README.md32#### Step 3: Configure Scopes (Permissions)COMMENT
LOWdemo/sdk/hubspot/README.md55#### Step 4: Get Your Access TokenCOMMENT
LOWdemo/sdk/hubspot/README.md63#### Step 5: Create Environment FileCOMMENT
LOWdemo/sdk/hubspot/README.md93#### Step 1: Get Your Webhook Secret (Optional but Recommended)COMMENT
LOWdemo/sdk/hubspot/README.md100#### Step 2: Set Up Local Webhook ServerCOMMENT
LOWdemo/sdk/hubspot/README.md114#### Step 3: Create Webhook Subscription in HubSpotCOMMENT
LOWdemo/sdk/hubspot/README.md126#### Step 4: Test WebhooksCOMMENT
LOWdemo/sdk/slack/README.md17#### Step 1: Create a Slack AppCOMMENT
LOWdemo/sdk/slack/README.md26#### Step 2: Configure Bot Token ScopesCOMMENT
LOWdemo/sdk/slack/README.md55#### Step 3: Install App to WorkspaceCOMMENT
LOWdemo/sdk/slack/README.md62#### Step 4: Get User Token (Optional)COMMENT
LOWdemo/sdk/slack/README.md72#### Step 5: Find Channel and User IDsCOMMENT
LOWdemo/sdk/slack/README.md93#### Step 6: Create Environment FileCOMMENT
LOWdemo/sdk/posthog/README.md17#### Step 1: Get Your Project API KeyCOMMENT
LOWdemo/sdk/posthog/README.md24#### Step 2: Get Your Personal API Key (Optional, for API access)COMMENT
LOWdemo/sdk/posthog/README.md32#### Step 3: Create Environment FileCOMMENT
LOWdemo/sdk/posthog/README.md64#### Step 1: Set Up Local Webhook ServerCOMMENT
LOWdemo/sdk/posthog/README.md78#### Step 2: Create Webhook Destination in PostHogCOMMENT
LOWdemo/sdk/posthog/README.md87#### Step 3: Test WebhooksCOMMENT
LOWdemo/sdk/gmail/README.md36### Step 1: Create Google Cloud ProjectCOMMENT
LOWdemo/sdk/gmail/README.md42### Step 2: Enable Gmail APICOMMENT
LOWdemo/sdk/gmail/README.md48### Step 3: Create OAuth 2.0 CredentialsCOMMENT
LOWdemo/sdk/gmail/README.md56### Step 4: Get Access TokenCOMMENT
LOWdemo/sdk/gmail/README.md96### Step 5: Configure Environment VariablesCOMMENT
LOWpackages/googlecalendar/setup.ts32### Step 2: Enable the Google Calendar APICOMMENT
LOWpackages/googlecalendar/setup.ts42### Step 3: Configure the OAuth Consent ScreenCOMMENT
LOWpackages/googlecalendar/setup.ts129### Step 9: Get a Public Webhook URLCOMMENT
LOWpackages/googlecalendar/setup.ts139### Step 10: Set Up ngrokCOMMENT
LOWpackages/googlecalendar/setup.ts19### Step 1: Check for an existing GCP projectCOMMENT
LOWpackages/googlecalendar/setup.ts61### Step 4: Create OAuth 2.0 CredentialsCOMMENT
LOWpackages/googlecalendar/setup.ts77### Step 5: Enter Client ID and Client SecretCOMMENT
LOWpackages/googlecalendar/setup.ts88### Step 6: Get Access Token and Refresh Token (OAuth Playground)COMMENT
LOWpackages/googlecalendar/setup.ts106### Step 7: Enter Access Token and Refresh TokenCOMMENT
LOWpackages/googlecalendar/setup.ts117### Step 8: Webhook Setup (Optional)COMMENT
LOWpackages/googlecalendar/setup.ts174### Step 11: Create the Calendar Watch ChannelCOMMENT
Over-Commented Block73 hits · 68 pts
SeverityFileLineSnippetContext
LOWdemo/testing/next-env.d.ts1/// <reference types="next" />COMMENT
LOWdemo/testing/src/scripts/test-hub.ts321}COMMENT
LOWdemo/testing/src/scripts/test-hub.ts341 // 'GitHub API (repositories.list)',COMMENT
LOWdemo/testing/src/scripts/test-hub.ts361 // message.includes('Bad credentials') ||COMMENT
LOWexplorer/pnpm-workspace.yaml1# Stops pnpm from walking up into the parent monorepo's workspace. This app isCOMMENT
LOWwww/next-env.d.ts1/// <reference types="next" />COMMENT
LOWpackages/ably/schema/database.ts1// Ably has no persisted database entities — messaging, presence,COMMENT
LOWpackages/abstract/index.ts241 keyBuilder: async (ctx: AbstractKeyBuilderContext, source) => {COMMENT
LOWpackages/twochat/webhooks/types.ts1// 2Chat has no incoming webhooks in this integration.COMMENT
LOWpackages/webflow/endpoints/factory.ts501 response: unknown,COMMENT
LOWpackages/contentfulgraphql/schema.test.ts21// Per .github/PLUGIN_PR_RULES.md (R2), every implemented endpointCOMMENT
LOWpackages/contentfulgraphql/schema/database.ts1// This integration is a read-only GraphQL query API, so it defines noCOMMENT
LOWpackages/corsair/core/management/body-limit.ts1// ─────────────────────────────────────────────────────────────────────────────COMMENT
LOWpackages/corsair/core/management/adapters/next.ts1import type { ManagementHandlerOptions } from '../handler';COMMENT
LOWpackages/corsair/core/management/adapters/express.ts21//COMMENT
LOWpackages/corsair/core/management/adapters/hono.ts1import type { ManagementHandlerOptions } from '../handler';COMMENT
LOWpackages/corsair/core/management/adapters/fastify.ts21// // parser consumes request.raw BEFORE any handler runs, and re-serializingCOMMENT
LOW…kages/corsair/core/management/adapters/node-request.ts1// ─────────────────────────────────────────────────────────────────────────────COMMENT
LOWpackages/corsair/tests/framework-body-fidelity.test.ts21import { signDeliveryEnvelope } from '../hub/signing/envelope';COMMENT
LOWpackages/corsair/tests/framework-body-fidelity.test.ts41// - Express, no body parser (recommended) → adapter drains the raw stream.COMMENT
LOWpackages/corsair/tests/framework-realserver.test.ts21//COMMENT
LOWpackages/corsair/tests/management-client.test.ts1import { CorsairClientError, createCorsairClient } from '../client';COMMENT
LOWpackages/corsair/tests/management-handler.test.ts1import { createCorsair } from '../core';COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts1// import * as dotenv from 'dotenv';COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts21// });COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts41// 'retry-after': String(mockRetryAfterSeconds),COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts61COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts81// expect(capturedError?.status).toBe(429);COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts101// headers: {COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts121// ];COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts141COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts161// enabled: true,COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts181// errorHandlers,COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts201// },COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts221COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts241// expect(result.headersRetryAfterMs).toBeUndefined();COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts261// });COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts281// rateLimitConfig: {COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts301// {},COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts321// {COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts341// 'content-type': 'application/json',COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts361COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts381// expect(capturedError?.status).toBe(429);COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts401// const SLACK_BOT_TOKEN = process.env.SLACK_BOT_TOKEN;COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts421COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts441// console.log(COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts461// const secondStart = Date.now();COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts481// rateLimitConfig: {COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts501// const secondElapsed = Date.now() - secondStart;COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts521// const successCount = results.filter(COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts541// console.log(COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts561// );COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts581// console.warn('Your Slack workspace has extremely high rate limits.');COMMENT
LOW…ges/corsair/tests/slack-rate-limit-integration.test.ts601// 'Consider using the simulated test or a workspace with lower limits.',COMMENT
LOWpackages/corsair/workflows/probe.ts1import * as vm from 'node:vm';COMMENT
LOWpackages/corsair/workflows/execute.ts1import { createHash } from 'node:crypto';COMMENT
LOWpackages/corsair/client/react/index.ts21// over one client instance and returns typed hooks. This avoids a React contextCOMMENT
LOWpackages/corsair/hub/chats.ts1import { hubApiGet, hubApiPost } from './client/http';COMMENT
LOWpackages/corsair/hub/contracts/tunnel.ts41COMMENT
LOWpackages/gemini/schema/database.ts1// Gemini has no persisted database entities — all operations are statelessCOMMENT
13 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALpackages/circleci/endpoints.test.ts1033 const entityIds = db.projectEnvVars.upsertByEntityId.mock.calls.map(CODE
CRITICALpackages/doppler/endpoints.test.ts1034 const calledKeys = db.environments.upsertByEntityId.mock.calls.map(CODE
CRITICALpackages/twilio/integration.test.ts238 await corsair.twilio.webhooks.message.received.handler({CODE
CRITICALpackages/apininjas/behaviour.test.ts122 const kinds = db.vehicles.upsertByEntityId.mock.calls.map(CODE
CRITICALpackages/apininjas/behaviour.test.ts125 const ids = db.vehicles.upsertByEntityId.mock.calls.map((call) => call[0]);CODE
Cross-Language Confusion (JS/TS)6 hits · 42 pts
SeverityFileLineSnippetContext
HIGHpackages/googlemeet/scripts/setup-test-db.ts171print(f'Opening database: {db_path}')CODE
HIGHpackages/googlemeet/scripts/setup-test-db.ts190print(f'\\nIntegration rows: {len(integrations)}')CODE
HIGHpackages/googlemeet/scripts/setup-test-db.ts192 print(f' id={row[0]}, name={row[1]}')CODE
HIGHpackages/googlemeet/scripts/setup-test-db.ts196print(f'\\nAccount rows: {len(accounts)}')CODE
HIGHpackages/googlemeet/scripts/setup-test-db.ts198 print(f' id={row[0]}, tenant_id={row[1]}')CODE
HIGHpackages/googlemeet/scripts/setup-test-db.ts201print('\\nDone! Google Meet plugin is ready to test.')CODE
Magic Placeholder Names4 hits · 25 pts
SeverityFileLineSnippetContext
HIGHdemo/sdk/posthog/README.md173 token: 'your-api-key-here',CODE
HIGHpackages/accrediblecertificates/client.ts46 // "Use the format: Token token=YOUR_API_KEY".COMMENT
HIGHpackages/googlecalendar/setup.ts1574. Run: \`ngrok config add-authtoken YOUR_TOKEN_HERE\`CODE
HIGHpackages/serpapi/client.ts38 // (confirmed from the docs: `?api_key=YOUR_API_KEY`, not a header).COMMENT
Verbosity Indicators11 hits · 19 pts
SeverityFileLineSnippetContext
LOWpackages/googlecalendar/setup.ts32### Step 2: Enable the Google Calendar APICOMMENT
LOWpackages/googlecalendar/setup.ts42### Step 3: Configure the OAuth Consent ScreenCOMMENT
LOWpackages/googlecalendar/setup.ts129### Step 9: Get a Public Webhook URLCOMMENT
LOWpackages/googlecalendar/setup.ts139### Step 10: Set Up ngrokCOMMENT
LOWpackages/googlecalendar/setup.ts19### Step 1: Check for an existing GCP projectCOMMENT
LOWpackages/googlecalendar/setup.ts61### Step 4: Create OAuth 2.0 CredentialsCOMMENT
LOWpackages/googlecalendar/setup.ts77### Step 5: Enter Client ID and Client SecretCOMMENT
LOWpackages/googlecalendar/setup.ts88### Step 6: Get Access Token and Refresh Token (OAuth Playground)COMMENT
LOWpackages/googlecalendar/setup.ts106### Step 7: Enter Access Token and Refresh TokenCOMMENT
LOWpackages/googlecalendar/setup.ts117### Step 8: Webhook Setup (Optional)COMMENT
LOWpackages/googlecalendar/setup.ts174### Step 11: Create the Calendar Watch ChannelCOMMENT
Modern AI Meta-Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMpackages/nextdns/client.ts84 // it in a generic error class here (the generator's original scaffoldCOMMENT
MEDIUMpackages/habitica/error-handlers.test.ts73 // The scaffold matched 'rate_limited', which Habitica never sends.COMMENT
MEDIUMpackages/serpapi/client.ts59 // it in a generic error class here (the generator's original scaffoldCOMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpackages/zoom/endpoints/types.ts331 // AI-generated summary detail items have an open-ended structure that Zoom may extendCOMMENT