Repository Analysis

NangoHQ/nango

Build product integrations with AI.

2.8 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of NangoHQ/nango, a TypeScript project with 11,094 GitHub stars. SynthScan v2.0 examined 362,020 lines of code across 2107 source files, recording 609 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 2.8 places this repository in the Likely human-written 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).

2.8
Adjusted Score
2.8
Raw Score
100%
Time Factor
2026-07-14
Last Push
11.1K
Stars
TypeScript
Language
362.0K
Lines of Code
2.1K
Files
609
Pattern Hits
2026-07-14
Scan Date
0.06
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

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

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 3HIGH 130MEDIUM 41LOW 435

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 609 distinct pattern matches across 12 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.

Magic Placeholder Names129 hits · 400 pts
SeverityFileLineSnippetContext
HIGHdocs/llms-full.txt8765 const nango = new Nango({ secretKey: '<YOUR-API-KEY>' });CODE
HIGHdocs/llms-full.txt8765 const nango = new Nango({ secretKey: '<YOUR-API-KEY>' });CODE
HIGHdocs/llms-full.txt8772 --header 'Authorization: Bearer <YOUR-API-KEY>'CODE
HIGHdocs/llms-full.txt8772 --header 'Authorization: Bearer <YOUR-API-KEY>'CODE
HIGHpackages/providers/providers.yaml10485 doc_section: '#step-1-finding-your-api-key-warehouse-and-customer-number'CODE
HIGHpackages/providers/providers.yaml10491 doc_section: '#step-1-finding-your-api-key-warehouse-and-customer-number'CODE
HIGHpackages/providers/providers.yaml10498 doc_section: '#step-1-finding-your-api-key-warehouse-and-customer-number'CODE
HIGHpackages/providers/providers.yaml295 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml675 doc_section: '#step-1-obtain-your-api-key'CODE
HIGHpackages/providers/providers.yaml736 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml764 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml849 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml1008 doc_section: '#step-1-getting-your-api-key'CODE
HIGHpackages/providers/providers.yaml1310 doc_section: '#step-1-obtain-your-api-key'CODE
HIGHpackages/providers/providers.yaml1333 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml1511 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml1562 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml1582 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml1691 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml1915 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml1924 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml2068 doc_section: '#step-1-obtaining-your-api-key'CODE
HIGHpackages/providers/providers.yaml2415 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml2917 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3054 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml3216 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3231 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3493 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3656 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3694 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3756 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3855 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3892 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3968 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml3995 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml4535 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml4956 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml5970 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml5988 doc_section: '#step-1-obtaining-your-api-key'CODE
HIGHpackages/providers/providers.yaml6143 doc_section: '#step-1-obtain-your-api-key'CODE
HIGHpackages/providers/providers.yaml6269 doc_section: '#step-1-get-your-api-key'CODE
HIGHpackages/providers/providers.yaml6874 doc_section: '#step-1-get-your-api-key'CODE
HIGHpackages/providers/providers.yaml6930 doc_section: '#step-2-obtaining-your-api-key'CODE
HIGHpackages/providers/providers.yaml7088 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml7179 doc_section: '#step-1-generate-your-api-key'CODE
HIGHpackages/providers/providers.yaml7411 doc_section: '#step-1-getting-your-api-key'CODE
HIGHpackages/providers/providers.yaml7497 doc_section: '#step-2-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml7757 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml7895 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml7933 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml8138 doc_section: '#step-2-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml8251 doc_section: '#step-1-getting-your-api-key'CODE
HIGHpackages/providers/providers.yaml8331 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml8934 doc_section: '#step-1-getting-your-api-key'CODE
HIGHpackages/providers/providers.yaml9696 doc_section: '#step-2-obtaining-your-api-key'CODE
HIGHpackages/providers/providers.yaml9996 doc_section: '#step-1-generating-your-api-key-and-app-id'CODE
HIGHpackages/providers/providers.yaml10004 doc_section: '#step-1-generating-your-api-key-and-app-id'CODE
HIGHpackages/providers/providers.yaml10367 doc_section: '#step-1-generating-your-api-key'CODE
HIGHpackages/providers/providers.yaml10463 doc_section: '#step-1-finding-your-api-key'CODE
HIGHpackages/providers/providers.yaml10524 doc_section: '#step-2-generating-your-api-key'CODE
69 more matches not shown…
Hyper-Verbose Identifiers262 hits · 265 pts
SeverityFileLineSnippetContext
LOWdocs/custom.js188 function updateQuickstartCopyPageAction() {CODE
LOWscripts/docs-generate-llms.ts294function resolveProviderCatalogConfig(provider: ProviderConfig | undefined): ProviderCatalogConfig {CODE
LOWscripts/docs-generate-llms.ts434function routeForExistingProviderPage(route: string, slug: string): string {CODE
LOWscripts/docs-generate-llms.ts447function routeForExistingOptionalPage(route: string, page: string): string | undefined {CODE
LOWscripts/docs-generate-llms.ts452function routeForExistingSetupPage(route: string): string | undefined {CODE
LOW…ts/one-off/backfill-orb-subscription-dates/backfill.ts39async function fetchOrbSubscriptionSchedule(subscriptionId: string): Promise<OrbSubscriptionScheduleItem[]> {CODE
LOWscripts/validation/providers/sync-scopes.ts419function getDiffTargetProviderNames(providerMap: ProvidersMap): string[] {CODE
LOWscripts/validation/providers/sync-scopes.ts430function getExplicitTargetProviderNames(providerMap: ProvidersMap): string[] {CODE
LOWscripts/validation/providers/validate.ts327function findConnectionConfigReferences(obj: Record<string, any>, path: string[] = []): Ref[] {CODE
LOWpackages/records/lib/helpers/uniqueKey.ts7export function verifyUniqueKeysAreUnique(records: FormattedRecord[]): { nonUniqueKeys: Set<string> } {CODE
LOWpackages/egress/lib/denylist.ts16export function canonicalizeHostnameForDenylist(host: string): string {CODE
LOWpackages/egress/lib/denylist.ts28export function formatHostForUrlAuthority(host: string): string {CODE
LOWpackages/egress/lib/denylist.ts78export function mergeProxyBaseUrlOverrideDenylist(customEntries: string[]): string[] {CODE
LOWpackages/egress/lib/denylist.ts89export function resolveProxyBaseUrlOverrideDenylist(raw: string | undefined): string[] {CODE
LOWpackages/egress/lib/denylist.ts121export function resolveProxyBaseUrlOverrideDenylistForRunner(raw: string | undefined): string[] {CODE
LOWpackages/egress/lib/agent.ts56export function clearPinnedAddressCacheForTests(): void {CODE
LOWpackages/egress/lib/validate.ts126async function resolveAndValidateAddresses(CODE
LOWpackages/egress/lib/validate.ts187export async function resolveValidatedHostAddresses(hostname: string, policy: OutboundUrlPolicy, url: string): Promise<sCODE
LOWpackages/egress/lib/validate.ts214export function assertSafeOutboundUrlSync(url: string, policy: OutboundUrlPolicy, ctx?: ValidateOutboundUrlContext): URLCODE
LOWpackages/egress/lib/validate.ts234export function isBaseUrlOverrideDeniedByPolicy(url: string, policy: OutboundUrlPolicy): boolean {CODE
LOWpackages/egress/lib/policy.ts123function isBaseUrlOverrideEnabledFromEnv(raw: string | undefined): boolean {CODE
LOWpackages/egress/lib/policy.ts138export function resolvePolicyForRunnerSync(input: RunnerPolicyEnvInput): OutboundUrlPolicy {CODE
LOWpackages/egress/lib/policy.ts157export function resolvePolicyFromProcessEnvForRunner(): OutboundUrlPolicy {CODE
LOWpackages/egress/lib/policy.ts167export function resolveProxyDenylistFromServerRaw(raw: string | undefined): string[] {CODE
LOWpackages/egress/lib/redirect.ts27export function absoluteUrlFromRedirectRequestOptions(options: Record<string, unknown>): string | null {CODE
LOWpackages/egress/lib/redirect.ts65export function createAsyncRedirectValidator(CODE
LOWpackages/runner/lib/monitor.ts224function getRenderTotalMemoryInBytes(): number {CODE
LOWpackages/runner/lib/sdk/sdk.unit.test.ts752 function expectInvalidCredentialsInLogs(persistClient: PersistClient, present: boolean): void {CODE
LOWpackages/webapp/src/features/TokenEditorOverlay.tsx227function collectPrimitiveAliasRefs(ref: string): string[] {CODE
LOWpackages/webapp/src/features/tokenContrast.ts218export function deriveContrastRelevantVars(opts: { isKnownToken: (cssVar: string) => boolean; surfaces: string[]; allVarCODE
LOWpackages/webapp/src/features/tokenEditorPersistence.ts69export function syncPersistedOverridesToTheme(theme: ThemeKey) {CODE
LOWpackages/webapp/src/features/Playground/analytics.ts15export function trackPlaygroundRunClicked(properties: { function_type: string; integration: string; is_run_again: booleaCODE
LOWpackages/webapp/src/features/Playground/analytics.ts19export function trackPlaygroundRunCompleted(properties: { function_type: string; integration: string; success: boolean; CODE
LOWpackages/webapp/src/features/Playground/analytics.ts23export function trackPlaygroundRunCancelled(properties: { function_type: string; integration: string }) {CODE
LOW…ges/webapp/src/features/Playground/playground.utils.ts43export function validateAndParseInputs(inputFields: InputField[], inputValues: Record<string, string>): ParseResult {CODE
LOWpackages/webapp/src/utils/connect-ui.ts3export function createConnectUIPreviewIFrame({ baseURL, apiURL, sessionToken, lang }: ConnectUIProps) {CODE
LOWpackages/webapp/src/utils/scripts.ts75function propertiesToTypescriptExamples(schema: JSONSchema7): string[] {CODE
LOWpackages/webapp/src/utils/scripts.ts102export function propertyToTypescriptExample(schema: JSONSchema7): string {CODE
LOWpackages/webapp/src/utils/utils.ts46export function formatDateToPreciseUSFormat(dateString: string): string {CODE
LOWpackages/webapp/src/utils/utils.ts88export function formatDateToInternationalFormat(dateString: string): string {CODE
LOWpackages/webapp/src/utils/playground.ts22export function openPlaygroundWithContext(override: PlaygroundContextOverride) {CODE
LOWpackages/webapp/src/utils/integrationConfig.ts11export function isIntegrationConfigFieldVisible(CODE
LOWpackages/webapp/src/components/ui/Chart.tsx256function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {CODE
LOWpackages/webapp/src/components/ui/Dialog.tsx9function restoreLeakedRadixBodyPointerEvents(ownerDocument = globalThis?.document) {CODE
LOW…bapp/src/components/patterns/chart/usageChartColors.ts114export function resetUsageChartColorsForTests(): void {CODE
LOWpackages/webapp/src/hooks/useIntegration.tsx107export function useDeleteIntegrationFunction(env: string, integrationId: string, functionName: string, type: 'sync' | 'aCODE
LOWpackages/webapp/src/hooks/useAuth.tsx67export function useResendVerificationEmail() {CODE
LOWpackages/webapp/src/hooks/useAuth.tsx85export function useResendVerificationEmailByUuid() {CODE
LOWpackages/webapp/src/hooks/useAuth.tsx103export function useManagedEmailVerification() {CODE
LOWpackages/webapp/src/hooks/useAuth.tsx119export function useManagedEmailVerificationAPI() {CODE
LOWpackages/webapp/src/hooks/useAuth.tsx212export function useRequestPasswordResetAPI() {CODE
LOWpackages/webapp/src/hooks/useAuth.tsx323export function usePostOnboardingHearAboutUs() {CODE
LOWpackages/webapp/src/hooks/useRecords.tsx7export function useConnectionRecordModels(queries: GetConnectionRecordModels['Querystring'], params: GetConnectionRecordCODE
LOWpackages/webapp/src/hooks/useRecords.tsx80export function useConnectionRecordPayload(CODE
LOWpackages/webapp/src/hooks/useIntegrationFunctions.tsx17export function useGetIntegrationFunctions({ env, providerConfigKey, search, type, limit = DEFAULT_LIMIT }: UseGetIntegrCODE
LOWpackages/webapp/src/hooks/useIntegrationFunctions.tsx63export function useGetIntegrationFunction({ env, providerConfigKey, name, type }: UseGetIntegrationFunctionArgs) {CODE
LOWpackages/webapp/src/hooks/useIntegrationFunctions.tsx97export function useGetIntegrationFunctionCode({ env, providerConfigKey, name, type, enabled = true }: UseGetIntegrationFCODE
LOWpackages/webapp/src/hooks/useIntegrationFunctions.tsx128export function useGetIntegrationTemplates({ env, providerConfigKey }: UseGetIntegrationTemplatesArgs) {CODE
LOWpackages/webapp/src/hooks/usePlan.tsx212function topDimensionValuesQueryKey(timeframe: { start: string; end: string } | undefined, metric: UsageMetric, dimensioCODE
LOWpackages/webapp/src/hooks/usePlan.tsx216function fetchTopDimensionValuesPage(CODE
202 more matches not shown…
Fake / Example Data126 hits · 120 pts
SeverityFileLineSnippetContext
LOWdocs/llms-full.txt9198 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt9214 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt9914 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt9930 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt10573 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt10589 "end_user_email": "user@example.com",CODE
LOWdocs/llms-full.txt10914 "end_user_email": "user@example.com",CODE
LOWpackages/node-client/lib/index.unit.test.ts128 tags: { displayName: 'My User', email: 'user@example.com' }CODE
LOWpackages/node-client/lib/index.unit.test.ts139 expect(url.searchParams.get('tags[end_user_email]')).toBe('user@example.com');CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts75 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts76 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts77 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts153 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts154 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts155 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts480 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts481 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts482 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts622 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts623 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts632 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts633 { id: '2', name: 'Jane Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts35 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts36 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts96 { id: '1', name: 'John Doe' }, // sameCODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts116 decrypted: { id: '1', name: 'John Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts171 { id: '1', name: 'John Doe' }, // sameCODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts187 decrypted: { id: '1', name: 'John Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts208 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts209 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts288 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts289 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts307 { id: '1', name: 'John Doe' }, // sameCODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts308 { id: '2', name: 'Jane Doe' } // sameCODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts413 const records = [{ id: '1', person: { name: 'John Doe', age: 35, children: [{ name: 'Jenny Doe', age: 3 }] }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts463 name: 'John Doe',CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts514 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts515 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts673 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts674 { id: '2', name: 'Jane Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts784 const toInsert = [{ id: '1', name: 'John Doe' }];CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts793 expect(records).toContainEqual(expect.objectContaining({ id: '1', name: 'John Doe' }));CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1020 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1021 { id: '2', name: 'Jane Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1045 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1046 { id: '2', name: 'Jane Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1099 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1100 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1131 const rec1 = { id: '1', name: 'John Doe' };CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1132 const rec2 = { id: '2', name: 'Jane Doe' };CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1187 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1188 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1312 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1313 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1340 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1341 { id: '2', name: 'Jane Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1370 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1371 { id: '2', name: 'Jane Doe' }CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1407 { id: '1', name: 'John Doe' },CODE
LOW…cords/lib/stores/postgres/postgres.integration.test.ts1408 { id: '2', name: 'Jane Doe' },CODE
66 more matches not shown…
Decorative Section Separators38 hits · 117 pts
SeverityFileLineSnippetContext
MEDIUMpackages/webapp/src/features/tokenContrast.ts89// ── Colour math (WCAG 2.x) ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/webapp/src/features/tokenContrast.ts180// ── Intent-table walking ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/webapp/src/components/PlainChat.tsx9// ─── Plain types ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/webapp/src/components/PlainChat.tsx130// ─── PlainChat ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx74// ── Scope selector with dropdown + collapsible groups ───────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx227// ── Create dialog ───────────────────────────────────────────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx306// ── Key configuration page ──────────────────────────────────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx406// ── Delete button with self-managed open state ─────────────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx430// ── Managed secret key (env var) ────────────────────────────────────COMMENT
MEDIUM…ages/webapp/src/pages/Environment/Settings/ApiKeys.tsx465// ── Main component ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/server/lib/authz/authz.integration.test.ts25 // ── Helpers ──────────────────────────────────────────────COMMENT
MEDIUMpackages/server/lib/authz/authz.integration.test.ts77 // ── Administrator — always allowed ──────────────────────COMMENT
MEDIUMpackages/server/lib/authz/authz.integration.test.ts139 // ── production_support — denied writes on prod ──────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts54 // ── Integrations ────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts126 // ── Connections ──────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts170 // ── Connect Sessions ────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts186 // ── Deploy ───────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts202 // ── Records ──────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts218 // ── Syncs ────────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts248 // ── Actions ──────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts270 // ── V1 passthrough (deprecated) ───────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts374 // ── Proxy ────────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts390 // ── Config ───────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts420 // ── MCP ──────────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts436 // ── Wildcard ─────────────────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts467 // ── Credential stripping ─────────────────────────────────────────COMMENT
MEDIUM…rs/v1/environment/scopeEnforcement.integration.test.ts633 // ── Internal script key (Nango-Is-Script header) ────────────────COMMENT
MEDIUM…/design-system/tokens/stories/ColorPalette.stories.tsx15// ─── Semantic data ────────────────────────────────────────────────────────────COMMENT
MEDIUM…/design-system/tokens/stories/ColorPalette.stories.tsx23// ─── Primitive data ───────────────────────────────────────────────────────────COMMENT
MEDIUM…/design-system/tokens/stories/ColorPalette.stories.tsx70// ─── Stories ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…es/design-system/tokens/stories/Typography.stories.tsx88// ─── Stories ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/design-system/src/components/ui/button.tsx101// ─── Button ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/design-system/src/components/ui/button.tsx139// ─── IconButton ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/billing/lib/clients/orb/adapters.unit.test.ts11// ─── toOrbEvent ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/billing/lib/clients/orb/adapters.unit.test.ts115// ─── toOrbPutCustomerPayload ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/billing/lib/clients/orb/adapters.unit.test.ts211// ─── fromOrbCustomer ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/billing/lib/clients/orb/adapters.unit.test.ts267// ─── fromOrbAddress ───────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/billing/lib/clients/orb/adapters.unit.test.ts281// ─── orbMetricToUsageMetric ───────────────────────────────────────────────────COMMENT
Structural Annotation Overuse29 hits · 46 pts
SeverityFileLineSnippetContext
LOW.agents/skills/agent-builder-skill/SKILL.md63### Step 1: Identify the Use CaseCOMMENT
LOW.agents/skills/agent-builder-skill/SKILL.md77### Step 2: Design Agent ScopeCOMMENT
LOW.agents/skills/agent-builder-skill/SKILL.md92### Step 3: Write the System PromptCOMMENT
LOW.agents/skills/agent-builder-skill/SKILL.md173### Step 4: Configure Tools AccessCOMMENT
LOW.agents/skills/agent-builder-skill/SKILL.md217### Step 5: Choose ModelCOMMENT
LOW.agents/skills/agent-builder-skill/SKILL.md261### Step 6: Write Clear DescriptionCOMMENT
LOWdocs/llms-full.txt7681## Step 1: Add a checkpoint schema to your sync declarationCOMMENT
LOWdocs/llms-full.txt7714## Step 2: Replace `lastSyncDate` reads with `getCheckpoint()`COMMENT
LOWdocs/llms-full.txt7750## Step 3: Add `saveCheckpoint()` calls after each batchCOMMENT
LOWdocs/llms-full.txt7797## Step 4: Test locallyCOMMENT
LOWdocs/llms-full.txt7807## Step 5: DeployCOMMENT
LOWdocs/llms-full.txt7860## Step 1: Start sending tags for new connect sessionsCOMMENT
LOWdocs/llms-full.txt7903## Step 2: Update webhook reconciliation to use `tags`COMMENT
LOWdocs/llms-full.txt7925## Step 3: Existing connections are already backfilledCOMMENT
LOWdocs/llms-full.txt7942## Step 4: Stop using `end_user`COMMENT
LOWdocs/llms-full.txt8007## Step 1: Attach tags to all existing connectionsCOMMENT
LOWdocs/llms-full.txt8049## Step 2: Implement the Connect and reconnect flowsCOMMENT
LOWdocs/llms-full.txt8055### Step 3: Clean upCOMMENT
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts91 // Step 1: Hash the shared secret key with SHA256COMMENT
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts94 // Step 2: Compute HMAC-SHA256 of the payload using the hashed keyCOMMENT
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts97 // Step 3: Compare signatures using timing-safe comparisonCOMMENT
LOWpackages/design-system/AGENTS.md13### Step 1: Generate the base with shadcn CLICOMMENT
LOWpackages/design-system/AGENTS.md24### Step 2: Replace shadcn CSS variables with design tokensCOMMENT
LOWpackages/design-system/AGENTS.md125### Step 3: Follow the component patternCOMMENT
LOWpackages/design-system/AGENTS.md175### Step 4: Add a Storybook storyCOMMENT
LOWpackages/design-system/AGENTS.md200### Step 5: Export from the barrelCOMMENT
LOW.github/workflows/managed-release.yaml129 # Step 1: Wait for PostgreSQL to be readyCOMMENT
LOW.github/workflows/managed-release.yaml150 # Step 2: Perform rolling restart of nango-self-server deploymentCOMMENT
LOW.github/workflows/managed-release.yaml164 # Step 3: Wait for other pods to start successfullyCOMMENT
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICAL…rver/lib/webhook/dispatch-queue/publisher.unit.test.ts332 expect(tracerMocks.span.setTag.mock.calls.filter(([tag]) => tag === 'error')).toHaveLength(0);CODE
CRITICAL…es/server/lib/controllers/connection/getConnections.ts16 endUserId: bodySchema.shape.end_user.shape.id.optional(),CODE
CRITICAL…es/server/lib/controllers/connection/getConnections.ts18 endUserOrganizationId: bodySchema.shape.end_user.shape.id.optional(),CODE
Verbosity Indicators6 hits · 11 pts
SeverityFileLineSnippetContext
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts91 // Step 1: Hash the shared secret key with SHA256COMMENT
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts94 // Step 2: Compute HMAC-SHA256 of the payload using the hashed keyCOMMENT
LOW…/server/lib/webhook/connectwise-psa-webhook-routing.ts97 // Step 3: Compare signatures using timing-safe comparisonCOMMENT
LOW.github/workflows/managed-release.yaml129 # Step 1: Wait for PostgreSQL to be readyCOMMENT
LOW.github/workflows/managed-release.yaml150 # Step 2: Perform rolling restart of nango-self-server deploymentCOMMENT
LOW.github/workflows/managed-release.yaml164 # Step 3: Wait for other pods to start successfullyCOMMENT
Over-Commented Block11 hits · 11 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yaml61 nango-redis:COMMENT
LOWpackages/records/lib/stores/postgres/postgres.ts141 // same transaction: the partition is empty at that point so the (non-COMMENT
LOWpackages/connect-ui/src/lib/zod-config.ts1import * as z from 'zod';COMMENT
LOWpackages/server/lib/utils/express.ts1import type { ConnectSession, DBAPISecret, DBEnvironment, DBPlan, DBTeam, DBUser, InternalEndUser } from '@nangohq/typesCOMMENT
LOW…rver/lib/controllers/v1/plans/usage/getBillingUsage.ts101 // (`?metrics=records` → string) into an array so the enum checkCOMMENT
LOW…/lib/controllers/v1/user/patchUser.integration.test.ts41 });COMMENT
LOW…er/lib/controllers/v1/user/getUser.integration.test.ts41 // TODO: can't test stuff that needs `user` because we are using an anonymous secret_keyCOMMENT
LOW…llers/v1/team/users/deleteTeamUser.integration.test.ts61 // isSuccess(listBefore.json);COMMENT
LOW…ers/v1/environment/postEnvironment.integration.test.ts61 error: {COMMENT
LOW…es/usage/lib/clickhouse/clickhouse.integration.test.ts321 // exposes the two accumulators the formatter needs.COMMENT
LOWpackages/usage/lib/clickhouse/clickhouse.query.ts181 case 'function_compute_gbms':COMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpackages/kvstore/lib/InMemoryStore.ts163 // AI generated - works well for `usage:*:something:*`COMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpackages/providers/providers.scopes.yaml2637# source: https://developer.datev.de/en/guides/authentication (no comprehensive scopes list or discovery endpoint found)COMMENT
MEDIUMpackages/connect-ui/src/lib/theme.ts53 // Create a temporary element to leverage browser's color parsingCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/managed-release.yaml79 # Create a new kind cluster for testingCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/managed-release.yaml210 # Check if any pods are not runningCOMMENT