Social networking technology created by Bluesky
This report presents the forensic synthetic code analysis of bluesky-social/atproto, a TypeScript project with 9,527 GitHub stars. SynthScan v2.0 examined 383,918 lines of code across 2924 source files, recording 1427 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 34.0 places this repository in the Strong 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).
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.
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.
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.
The scanner identified 1427 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …gents/skills/lex-sdk/references/lexification-client.md | 30 | - const res = await ctx.suggestionsAgent.api.app.bsky.unspecced.getSuggestionsSkeleton( | CODE |
| CRITICAL | …gents/skills/lex-sdk/references/lexification-client.md | 81 | - const result = await agent.api.app.bsky.feed.getFeedSkeleton( | CODE |
| CRITICAL | .agents/skills/lex-sdk/references/xrpc.md | 170 | const result = await agent.api.app.bsky.feed.getFeedSkeleton(params, { | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 51 | const lex = await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 73 | await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 89 | await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 115 | await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 151 | await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 173 | await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/lexicon-resolver/tests/lexicon.test.ts | 182 | const carolLex = await client.com.atproto.lexicon.schema.create( | CODE |
| CRITICAL | packages/ozone/tests/queues.test.ts | 595 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/queues.test.ts | 621 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/queues.test.ts | 642 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/get-profiles.test.ts | 34 | const { data } = await modClient.agent.app.bsky.actor.getProfiles( | CODE |
| CRITICAL | packages/ozone/tests/get-lists.test.ts | 45 | agent.api.app.bsky.graph.getLists( | CODE |
| CRITICAL | packages/ozone/tests/get-lists.test.ts | 49 | appviewAgent.api.app.bsky.graph.getLists({ actor: sc.dids.alice }), | CODE |
| CRITICAL | packages/ozone/tests/report-routing.test.ts | 131 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/report-routing.test.ts | 195 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 77 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 84 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 91 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 98 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 108 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 115 | const res1 = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL⚡ | packages/ozone/tests/query-labels.test.ts | 119 | const res2 = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL | packages/ozone/tests/query-labels.test.ts | 131 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL | packages/ozone/tests/query-labels.test.ts | 171 | const res = await agent.api.com.atproto.label.queryLabels({ | CODE |
| CRITICAL | packages/ozone/tests/report-assignment.test.ts | 59 | await network.ozone.ctx.db.db.deleteFrom('report_queue').execute() | CODE |
| CRITICAL | packages/ozone/tests/report-assignment.test.ts | 62 | await network.ozone.ctx.db.db.deleteFrom('moderator_assignment').execute() | CODE |
| CRITICAL | packages/ozone/tests/strike-expiry-processor.test.ts | 132 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL | packages/ozone/tests/strike-expiry-processor.test.ts | 144 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL | packages/ozone/tests/strike-expiry-processor.test.ts | 175 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL | packages/ozone/tests/strike-expiry-processor.test.ts | 202 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL | packages/ozone/tests/strike-expiry-processor.test.ts | 249 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL⚡ | packages/ozone/tests/strike-expiry-processor.test.ts | 278 | await network.ozone.daemon.ctx.strikeExpiryProcessor.getCursor() | CODE |
| CRITICAL⚡ | packages/ozone/tests/strike-expiry-processor.test.ts | 280 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL⚡ | packages/ozone/tests/strike-expiry-processor.test.ts | 284 | await network.ozone.daemon.ctx.strikeExpiryProcessor.getCursor() | CODE |
| CRITICAL⚡ | packages/ozone/tests/strike-expiry-processor.test.ts | 294 | await network.ozone.daemon.ctx.strikeExpiryProcessor.processExpiredStrikes() | CODE |
| CRITICAL⚡ | packages/ozone/tests/strike-expiry-processor.test.ts | 296 | await network.ozone.daemon.ctx.strikeExpiryProcessor.getCursor() | CODE |
| CRITICAL | packages/ozone/tests/get-config.test.ts | 26 | const { data } = await agent.api.tools.ozone.server.getConfig( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 49 | const result = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 79 | const res = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 92 | const res = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 104 | const full = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 117 | const res = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/repo-search.test.ts | 129 | const full = await agent.api.tools.ozone.moderation.searchRepos( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 172 | agent.api.tools.ozone.moderation.getRecord( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 178 | thirdPartyAgent.api.tools.ozone.moderation.getRecord( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 203 | await agent.api.tools.ozone.moderation.getRecord( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 235 | agent.api.tools.ozone.moderation.getRepo( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 241 | thirdPartyAgent.api.tools.ozone.moderation.getRepo( | CODE |
| CRITICAL | packages/ozone/tests/3p-labeler.test.ts | 266 | await agent.api.tools.ozone.moderation.getRepo( | CODE |
| CRITICAL | packages/ozone/tests/get-starter-pack.test.ts | 53 | const result = await agent.api.app.bsky.graph.getStarterPack( | CODE |
| CRITICAL | packages/ozone/tests/get-starter-pack.test.ts | 64 | await appviewAgent.api.app.bsky.graph.getStarterPack( | CODE |
| CRITICAL | packages/ozone/tests/get-starter-pack.test.ts | 91 | await agent.api.app.bsky.graph.getStarterPack( | CODE |
| CRITICAL | packages/ozone/tests/get-starter-pack.test.ts | 103 | appviewAgent.api.app.bsky.graph.getStarterPack( | CODE |
| CRITICAL | packages/ozone/tests/queue-router.test.ts | 103 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/queue-router.test.ts | 106 | const cursor = await network.ozone.daemon.ctx.queueRouter.getCursor() | CODE |
| CRITICAL | packages/ozone/tests/queue-router.test.ts | 158 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| CRITICAL | packages/ozone/tests/queue-router.test.ts | 176 | await network.ozone.daemon.ctx.queueRouter.routeReports() | CODE |
| 1195 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/lexicon-resolver/src/lexicon.ts | 107 | export async function resolveLexiconDidAuthority( | CODE |
| LOW | …ages/oauth/oauth-types/src/oauth-client-id-loopback.ts | 35 | export function assertOAuthLoopbackClientId( | CODE |
| LOW | …ages/oauth/oauth-types/src/oauth-client-id-loopback.ts | 52 | export function parseOAuthLoopbackClientId( | CODE |
| LOW | …ages/oauth/oauth-types/src/oauth-client-id-loopback.ts | 69 | export function safeParseOAuthLoopbackClientId( | CODE |
| LOW | …ages/oauth/oauth-types/src/oauth-client-id-loopback.ts | 114 | export function safeParseOAuthLoopbackClientIdQueryString( | CODE |
| LOW | …es/oauth/oauth-types/src/atproto-loopback-client-id.ts | 24 | export function buildAtprotoLoopbackClientId( | CODE |
| LOW | …es/oauth/oauth-types/src/atproto-loopback-client-id.ts | 64 | export function parseAtprotoLoopbackClientId( | CODE |
| LOW | …/oauth/oauth-types/src/oauth-client-id-discoverable.ts | 73 | export function isOAuthClientIdDiscoverable( | CODE |
| LOW⚡ | …/oauth/oauth-types/src/oauth-client-id-discoverable.ts | 116 | export function isConventionalOAuthClientId( | CODE |
| LOW⚡ | …/oauth/oauth-types/src/oauth-client-id-discoverable.ts | 122 | export function assertOAuthDiscoverableClientId( | CODE |
| LOW⚡ | …/oauth/oauth-types/src/oauth-client-id-discoverable.ts | 128 | export function parseOAuthDiscoverableClientId(clientId: string): URL { | CODE |
| LOW | …th/oauth-types/src/atproto-loopback-client-metadata.ts | 18 | export function atprotoLoopbackClientMetadata( | CODE |
| LOW | …th/oauth-types/src/atproto-loopback-client-metadata.ts | 26 | export function buildAtprotoLoopbackClientMetadata( | CODE |
| LOW | packages/oauth/oauth-provider/src/oauth-utils.ts | 4 | export function buildProtectedResourceMetadata( | CODE |
| LOW | packages/oauth/oauth-provider/src/dpop/dpop-manager.ts | 205 | function wrapInvalidDpopProofError( | CODE |
| LOW | …th/oauth-provider/src/errors/www-authenticate-error.ts | 32 | function formatWWWAuthenticateHeader(wwwAuthenticate: WWWAuthenticate): string { | CODE |
| LOW | …th/oauth-provider/src/errors/www-authenticate-error.ts | 47 | function wwwAuthenticateEntryToString([type, params]: WWWAuthenticateEntry) { | CODE |
| LOW | …ckages/oauth/oauth-provider/src/client/client-utils.ts | 17 | export function parseDiscoverableClientId( | CODE |
| LOW | …der/src/router/create-authorization-page-middleware.ts | 266 | function parseOAuthAuthorizationRequestQuery( | CODE |
| LOW | …h-provider/src/router/assets/send-cookie-error-page.ts | 5 | export function sendCookieErrorPageFactory( | CODE |
| LOW | …auth/oauth-provider/src/router/assets/send-redirect.ts | 75 | export function sendAuthorizationResultRedirect( | CODE |
| LOW | packages/oauth/oauth-client/src/oauth-client-auth.ts | 17 | export function negotiateClientAuthMethod( | CODE |
| LOW | packages/oauth/oauth-client/src/oauth-client-auth.ts | 83 | export function createClientCredentialsFactory( | CODE |
| LOW | packages/oauth/oauth-scopes/src/atproto-oauth-scope.ts | 52 | export function normalizeAtprotoOauthScope(scope: string) { | CODE |
| LOW | packages/oauth/oauth-scopes/src/atproto-oauth-scope.ts | 61 | export function normalizeAtprotoOauthScopeValue( | CODE |
| LOW | …t-browser-example/src/providers/BskyClientProvider.tsx | 63 | export function useUnauthenticatedBskyClient() { | CODE |
| LOW | …t-browser-example/src/providers/BskyClientProvider.tsx | 71 | export function useAuthenticatedBskyClient() { | CODE |
| LOW | …/components/forms/input-handle-custom-instructions.tsx | 34 | export function InputHandleCustomInstructions({ | CODE |
| LOW | …provider-ui/src/components/utils/scope-description.tsx | 282 | function hasOnlyBskyAppSpecificPermissions( | CODE |
| LOW | …provider-ui/src/components/utils/scope-description.tsx | 336 | function BlueskyAppviewPermissions({ | CODE |
| LOW | …provider-ui/src/components/utils/scope-description.tsx | 771 | function isOfficialBlueskyAppviewServiceId(aud: string): boolean { | CODE |
| LOW | …provider-ui/src/components/utils/scope-description.tsx | 808 | function scopeEnablesPrivateBskyAppMethods(scope: string): boolean { | CODE |
| LOW | …ges/oauth/oauth-provider-ui/src/data/oauth-sessions.ts | 28 | export function useRevokeOAuthSessionMutation() { | CODE |
| LOW | …s/oauth/oauth-provider-ui/src/data/account-sessions.ts | 27 | export function useRevokeAccountSessionMutation() { | CODE |
| LOW | packages/ozone/src/report/activity.ts | 134 | export async function bulkInsertReportActivities( | CODE |
| LOW | packages/lex/lex-client/tests/client.test.ts | 34 | function expectTypedAdultContentPref( | CODE |
| LOW | packages/lex/lex-client/src/errors.ts | 558 | function buildResponseOverviewMessage(response: Response): string { | CODE |
| LOW | packages/lex/lex-client/src/www-authenticate.ts | 35 | export function parseWWWAuthenticateHeader( | CODE |
| LOW | packages/lex/lex-installer/src/lexicons-manifest.ts | 45 | export function normalizeLexiconsManifest( | CODE |
| LOW | packages/lex/lex-server/src/lib/www-authenticate.ts | 76 | export function formatWWWAuthenticateHeader( | CODE |
| LOW | packages/lex/lex-server/src/lib/www-authenticate.ts | 96 | function formatWWWAuthenticateChallenge( | CODE |
| LOW | packages/lex/lex-server/src/lib/www-authenticate.ts | 105 | function formatWWWAuthenticateParams(params: WWWAuthenticateParams): string { | CODE |
| LOW | packages/lex/lex-builder/src/ref-resolver.ts | 424 | function asSafeDefinitionIdentifier(name: string) { | CODE |
| LOW | packages/internal/xrpc-utils/src/accept.ts | 28 | export function buildProxiedContentEncoding( | CODE |
| LOW | packages/internal/xrpc-utils/src/accept.ts | 112 | function parseAcceptEncodingDefinition(def: string): Accept { | CODE |
| LOW | packages/internal/fetch/src/fetch-request.ts | 93 | export function protocolCheckRequestTransform(protocols: { | CODE |
| LOW | packages/internal/fetch/src/fetch-request.ts | 131 | export function explicitRedirectCheckRequestTransform() { | CODE |
| LOW | packages/internal/fetch/src/fetch-request.ts | 155 | export function requireHostHeaderTransform() { | CODE |
| LOW | packages/internal/fetch/src/fetch-request.ts | 192 | export function forbiddenDomainNameRequestTransform( | CODE |
| LOW | packages/internal/fetch/src/fetch-response.ts | 201 | export function fetchResponseMaxSizeChecker( | CODE |
| LOW | packages/pds/src/pipethrough.ts | 421 | function handleUpstreamRequestError( | CODE |
| LOW | packages/pds/src/account-manager/oauth-store.ts | 862 | function toHandleUnavailableReason( | CODE |
| LOW | …s/pds/src/account-manager/helpers/authorized-client.ts | 44 | export async function deleteAllAuthorizedClients(db: AccountDb, did: Did) { | CODE |
| LOW | …s/pds/src/account-manager/helpers/authorized-client.ts | 50 | export async function getAuthorizedClientsMulti( | CODE |
| LOW | …src/api/com/atproto/server/requestEmailConfirmation.ts | 12 | export function requestEmailConfirmationAuth( | CODE |
| LOW | packages/pds/src/api/com/atproto/repo/putRecord.ts | 187 | async function updateProfileLegacyBlobRef( | CODE |
| LOW | packages/pds/src/api/com/atproto/repo/uploadBlob.ts | 55 | function throwAbortAsUpstreamError(err: unknown): never { | CODE |
| LOW | packages/lex-cli/src/codegen/util.ts | 29 | function getOrCreateNode(tree: DefTreeNode[], path: string[]): DefTreeNode { | CODE |
| LOW | packages/xrpc-server/src/types.ts | 318 | export function isHandlerPipeThroughBuffer( | CODE |
| LOW | packages/xrpc-server/src/types.ts | 325 | export function isHandlerPipeThroughStream( | CODE |
| 22 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tsconfig/base.tsconfig.json | 1 | { | COMMENT |
| LOW | packages/oauth/oauth-types/src/uri.ts | 161 | COMMENT | |
| LOW | packages/oauth/oauth-provider/src/oauth-provider.ts | 561 | if ('request_uri' in query) { | COMMENT |
| LOW | packages/oauth/oauth-provider/src/types/email.ts | 1 | import { isEmailValid } from '@hapi/address' | COMMENT |
| LOW | …es/oauth/oauth-provider/src/request/request-manager.ts | 161 | if (!parameters.redirect_uri) { | COMMENT |
| LOW | …es/oauth/oauth-provider/src/account/account-manager.ts | 181 | COMMENT | |
| LOW | …ages/oauth/oauth-provider/src/client/client-manager.ts | 481 | // Is this a valid concern? Should we allow credentials in the URI? | COMMENT |
| LOW | …ages/oauth/oauth-provider/src/client/client-manager.ts | 521 | // > from the operating system at the time of the request. | COMMENT |
| LOW | …ages/oauth/oauth-provider/src/client/client-manager.ts | 541 | COMMENT | |
| LOW | …ages/oauth/oauth-provider/src/client/client-manager.ts | 581 | // | COMMENT |
| LOW | …ages/oauth/oauth-provider/src/client/client-manager.ts | 721 | // https://datatracker.ietf.org/doc/html/rfc8252#section-8.4 | COMMENT |
| LOW | packages/oauth/oauth-provider/src/client/client.ts | 181 | if (input.client_assertion_type === CLIENT_ASSERTION_TYPE_JWT_BEARER) { | COMMENT |
| LOW | packages/oauth/oauth-provider/src/client/client.ts | 201 | // > audience. The token endpoint URL of the authorization server | COMMENT |
| LOW | packages/oauth/oauth-provider/src/client/client.ts | 221 | // > of used "jti" values for the length of time for which the | COMMENT |
| LOW | …es/oauth/oauth-provider/src/metadata/build-metadata.ts | 41 | 'public', // The same "sub" is returned for all clients | COMMENT |
| LOW | …der/src/router/create-authorization-page-middleware.ts | 81 | // Do not perform any of the following logic if the request is invalid | COMMENT |
| LOW | packages/oauth/oauth-client/README.md | 21 | // These must be the same metadata as the one exposed on the | COMMENT |
| LOW | packages/oauth/oauth-client/src/session-getter.ts | 121 | // Since refresh tokens can only be used once, we might run into | COMMENT |
| LOW | packages/oauth/oauth-client/src/identity-resolver.ts | 1 | export { | COMMENT |
| LOW | packages/oauth/oauth-client/src/identity-resolver.ts | 21 | COMMENT | |
| LOW | packages/oauth/oauth-client/src/oauth-client-auth.ts | 121 | client_assertion_type: CLIENT_ASSERTION_TYPE_JWT_BEARER, | COMMENT |
| LOW | …ckages/oauth/oauth-provider-ui/authorization-page.html | 161 | ), | COMMENT |
| LOW | …ges/oauth/oauth-provider-ui/src/authorization-page.tsx | 81 | async (url: string, isRejected: boolean) => { | COMMENT |
| LOW | …ges/oauth/oauth-provider-ui/src/authorization-page.tsx | 101 | // instances have shown that a small delay is needed to avoid the browser | COMMENT |
| LOW | …ider-ui/src/pages/account/(unauthenticated)/routes.tsx | 1 | // @NOTE "/account" already has a dedicated route (in | COMMENT |
| LOW | packages/lex/lex-schema/src/core/schema.ts | 301 | } | COMMENT |
| LOW | packages/lex/lex-schema/src/core/schema.ts | 321 | // also define those aliases directly on the schema instance, so that they can | COMMENT |
| LOW | packages/lex/lex-schema/src/core/validator.ts | 341 | // This is the only place where validateInContext should be called. | COMMENT |
| LOW | packages/lex/lex-schema/src/schema/lex-value.ts | 21 | * AT Protocol lexicon values are any valid AT Protocol data types: string, | COMMENT |
| LOW | packages/lex/lex-data/src/cid.ts | 101 | // uses "exports" field in package.json, which do not contain "types" | COMMENT |
| LOW | packages/pds/tests/account.test.ts | 161 | // const userKey = await crypto.Secp256k1Keypair.create() | COMMENT |
| LOW | packages/pds/tests/account.test.ts | 181 | COMMENT | |
| LOW | packages/pds/tests/account.test.ts | 201 | // handle: 'byo-did.test', | COMMENT |
| LOW | packages/pds/tests/account.test.ts | 221 | // const attempt2 = agent.api.com.atproto.server.createAccount({ | COMMENT |
| LOW | packages/pds/tests/account.test.ts | 241 | // const did4 = await ctx.plcClient.createDid({ | COMMENT |
| LOW | packages/pds/tests/proxied/proxy-oauth-aud.test.ts | 21 | // Before the fix, proxyHandler passed a bare DID as `aud` to the rpc scope | COMMENT |
| LOW | packages/pds/tests/seeds/users-bulk.ts | 21 | } | COMMENT |
| LOW | packages/dev-env/src/mock/index.ts | 661 | // import * as seedThreadV2 from '../seed/thread-v2.js' | COMMENT |
| LOW | packages/api/jest.setup.ts | 21 | // cause = `label:${actual.cause.labelDef.id}` | COMMENT |
| LOW | packages/api/tests/util/moderation-behavior.ts | 81 | // if (actual.cause.source.type === 'list') { | COMMENT |
| LOW | packages/syntax/src/recordkey.ts | 1 | export type RecordKeyString = string | COMMENT |
| LOW | packages/syntax/src/did.ts | 1 | // Human-readable constraints: | COMMENT |
| LOW | packages/syntax/src/handle.ts | 21 | ] | COMMENT |
| LOW | packages/bsky/src/hydration/hydrator.ts | 321 | // - profile basic | COMMENT |
| LOW | packages/bsky/src/hydration/hydrator.ts | 501 | return mergeManyStates(actorsHydrationState, listsHydrationState, { | COMMENT |
| LOW | packages/bsky/src/hydration/hydrator.ts | 1001 | } | COMMENT |
| LOW | packages/bsky/src/api/blob-resolver.ts | 81 | // The promise returned by streamBlob() will be rejected as soon as | COMMENT |
| LOW | packages/bsky/src/api/blob-resolver.ts | 321 | * and verify the CID of the input stream. The output data will be identical to | COMMENT |
| LOW | .github/workflows/claude-mention.yml | 1 | name: claude-mention | COMMENT |
| LOW | .github/workflows/repo.yaml | 21 | - run: pnpm install --frozen-lockfile | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …oauth-provider-ui/src/components/forms/input-token.tsx | 23 | | 'placeholder' | CODE |
| LOW | packages/did/tests/methods/web.test.ts | 40 | ['lorem ipsum dolor sit', 'Invalid did:web prefix'], | CODE |
| LOW | packages/did/tests/methods/plc.test.ts | 24 | ['lorem ipsum dolor sit', 'Invalid did:plc prefix'], | CODE |
| LOW | packages/lex/lex-client/src/response.bench.ts | 65 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| LOW | packages/lex/lex-client/src/response.bench.ts | 65 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| LOW⚡ | packages/lex/lex-schema/tests/l.test.ts | 307 | street: '123 Main St', | CODE |
| LOW⚡ | packages/lex/lex-schema/tests/l.test.ts | 316 | street: '123 Main St', | CODE |
| LOW⚡ | packages/lex/lex-schema/tests/l.test.ts | 324 | street: '123 Main St', | CODE |
| LOW | packages/lex/lex-schema/tests/l.test.ts | 378 | street: '123 Main St', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 464 | displayName: 'John Doe', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 474 | displayName: 'John Doe', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 482 | displayName: 'John Doe', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 490 | displayName: 'John Doe', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 499 | displayName: 'John Doe', | CODE |
| LOW⚡ | packages/lex/lex-schema/src/schema/typed-object.test.ts | 507 | displayName: 'John Doe', | CODE |
| LOW | packages/lex/lex-schema/src/schema/custom.test.ts | 175 | const validResult = schema.safeParse('user@example.com') | CODE |
| LOW | packages/lex/lex-schema/src/schema/refine.test.ts | 59 | const result = schema.safeParse('user@example.com') | CODE |
| LOW | packages/lex/lex-schema/src/schema/refine.test.ts | 188 | email: 'user@example.com', | CODE |
| LOW | packages/lex/lex-schema/src/schema/refine.test.ts | 196 | email: 'user@example.com', | CODE |
| LOW | packages/lex/lex-schema/src/schema/regexp.test.ts | 87 | const result = schema.safeParse('user@example.com') | CODE |
| LOW | packages/lex/lex-json/src/json-bytes-decoder.bench.ts | 65 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| LOW | packages/lex/lex-json/src/json-bytes-decoder.bench.ts | 65 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| LOW | packages/lex/lex-json/src/json-bytes-decoder.bench.ts | 113 | 'Lorém ipsum dolor sit amet, consectetur adipiscing elit 🤩.', | CODE |
| LOW | packages/lex/lex-json/src/json-bytes-decoder.bench.ts | 159 | name: 'John Doe', | CODE |
| LOW | packages/lex/lex-json/src/lex-json.bench.ts | 62 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| LOW | packages/lex/lex-json/src/lex-json.bench.ts | 62 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 🤩.\n'.repeat( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/lex/lex-resolver/src/lex-resolver.ts | 212 | * // Step 1: Resolve the authority to get the AT URI | COMMENT |
| LOW⚡ | packages/lex/lex-resolver/src/lex-resolver.ts | 216 | * // Step 2: Fetch the lexicon from the URI | COMMENT |
| LOW | packages/api/OAUTH.md | 24 | ## Step 1: Create your client metadata | COMMENT |
| LOW | packages/api/OAUTH.md | 88 | ## Step 2: Setup your SPA | COMMENT |
| LOW | packages/api/OAUTH.md | 165 | ## Step 3: Implement the OAuth flow | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …kages/lex/lex-document/src/lexicon-iterable-indexer.ts | 17 | * // Documents are indexed lazily as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/oauth/oauth-client/src/oauth-client-auth.ts | 46 | // more robust against keysets containing keys without a "kid" property. | COMMENT |
| MEDIUM | packages/bsky/src/image/server.ts | 88 | // Definitely not an image ? Let's fail right away. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/lex/lex-resolver/src/lex-resolver.ts | 212 | * // Step 1: Resolve the authority to get the AT URI | COMMENT |
| LOW⚡ | packages/lex/lex-resolver/src/lex-resolver.ts | 216 | * // Step 2: Fetch the lexicon from the URI | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/dev-infra/with-test-db.sh | 3 | # Example usage: | COMMENT |
| LOW | packages/dev-infra/with-test-redis-and-db.sh | 3 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/repo.yaml | 102 | # want to live dangerously and need an immediate workaround, you can try | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/lex/lex-server/src/nodejs.ts | 351 | async function handleRequest( | CODE |