AI Slop Code Risk Monitor

TanStack/query

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

🤖 Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue Query.

0.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for TanStack/query, a TypeScript project with 50,503 GitHub stars. SynthScan examined 441,652 lines of code across 4893 source files, recording 126 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 0.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

0.3
Adjusted Signal
0.3
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
50.5K
Stars
TypeScript
Language
441.7K
Lines of Code
4.9K
Files
126
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.5/100 · LOW

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

Agent Over-Engineering Ratio 0.7/100 · LOW

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

PR Review Velocity Impact 1.5/100 · LOW

Which changes need focused human review? 126 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 1HIGH 0MEDIUM 1LOW 124

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 126 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers60 hits · 62 pts
SeverityFileLineSnippetContext
LOW…lte/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…lit/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/lit/reference/functions/registerDefaultQueryClient.md9function registerDefaultQueryClient(client: QueryClient): void;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…it/reference/functions/unregisterDefaultQueryClient.md9function unregisterDefaultQueryClient(client: QueryClient): void;CODE
LOW…vue/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…lar/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…lid/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…act/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…eact/reference/functions/useQueryErrorResetBoundary.md9function useQueryErrorResetBoundary(): QueryErrorResetBoundaryValue;CODE
LOW…act/reference/functions/defaultShouldDehydrateQuery.md9function defaultShouldDehydrateQuery(query: Query): boolean;CODE
LOW…/reference/functions/defaultShouldDehydrateMutation.md9function defaultShouldDehydrateMutation(mutation: Mutation): boolean;CODE
LOW…eact/reference/functions/useQueryErrorResetBoundary.md11function useQueryErrorResetBoundary(): QueryErrorResetBoundaryValue;CODE
LOWexamples/lit/pagination/src/services/projects/api.ts109export async function armNextProjectMutationFailureOnServer(): Promise<void> {CODE
LOW⚡examples/lit/ssr/src/app.ts9function incrementSsrQueryControllerCreationCount(CODE
LOW⚡examples/lit/ssr/src/app.ts18export function resetSsrQueryControllerCreationCount(CODE
LOW⚡examples/lit/ssr/src/app.ts24export function getSsrQueryControllerCreationCount(CODE
LOWscripts/generate-docs.ts38function simplifyLitQueriesControllerTypes(CODE
LOWscripts/generate-docs.ts79async function trimTrailingWhitespaceInMarkdown(outputDir: string) {CODE
LOWscripts/generate-docs.ts105async function addRedirectFromToFileFrontmatter(CODE
LOWscripts/generate-docs.ts127async function addRedirectFromToFrontmatter(CODE
LOWscripts/generate-docs.ts139async function generatePackageReferenceDocs(pkg: PackageReferenceDocsConfig) {CODE
LOWpackages/preact-query/src/__tests__/utils.tsx47export function mockOnlineManagerIsOnline(CODE
LOW…move-overloads/__testfixtures__/bug-reports.output.tsx14export function useDetailsContainsIdentifierAsThirdArgument({ groupId }: { groupId?: string }): any {CODE
LOW…move-overloads/__testfixtures__/bug-reports.output.tsx47export function useDeleteSomethingWithOnError(): any {CODE
LOW…emove-overloads/__testfixtures__/bug-reports.input.tsx12export function useDetailsContainsIdentifierAsThirdArgument({ groupId }: { groupId?: string }): any {CODE
LOW…emove-overloads/__testfixtures__/bug-reports.input.tsx39export function useDeleteSomethingWithOnError(): any {CODE
LOWpackages/react-query/src/__tests__/utils.tsx46export function mockOnlineManagerIsOnline(CODE
LOWpackages/lit-query/src/context.ts31export function registerDefaultQueryClient(client: QueryClient): void {CODE
LOWpackages/lit-query/src/context.ts43export function unregisterDefaultQueryClient(client: QueryClient): void {CODE
LOWpackages/lit-query/src/context.ts81export function createMissingQueryClientError(): Error {CODE
LOWpackages/lit-query/src/context.ts90function createAmbiguousQueryClientError(): Error {CODE
LOWpackages/lit-query/src/createQueriesController.ts224function createPendingQueryObserverResult(): QueryObserverResult {CODE
LOWpackages/lit-query/src/createQueriesController.ts263function createPlaceholderQueryObserverResult(CODE
LOW…-next-experimental/src/ReactQueryStreamedHydration.tsx30export function ReactQueryStreamedHydration(props: {CODE
LOW…uery-next-experimental/src/HydrationStreamProvider.tsx86 function UseClientHydrationStreamProvider(props: {CODE
LOWpackages/query-sync-storage-persister/src/index.ts53export function createSyncStoragePersister({CODE
LOWpackages/query-persist-client-core/src/persist.ts125export async function persistQueryClientRestore({CODE
LOWpackages/query-persist-client-core/src/persist.ts190export function persistQueryClientSubscribe(CODE
LOWpackages/solid-query/src/useBaseQuery.ts215 function setStateWithReconciliation(res: typeof observerResult) {CODE
LOWpackages/solid-query/src/__tests__/utils.tsx39export function mockOnlineManagerIsOnline(CODE
LOWpackages/query-devtools/src/utils.tsx96export function getQueryStatusColorByLabel(label: QueryStatusLabel) {CODE
LOW…vtools/src/providers/DevtoolsSubscriptionsProvider.tsx17export function DevtoolsSubscriptionsProvider(props: ParentProps) {CODE
LOW…perimental/src/__tests__/inject-devtools-panel.test.ts26 function MockTanstackQueryDevtoolsPanel() {CODE
LOW…query-experimental/src/__tests__/with-devtools.test.ts36function MockTanstackQueryDevtools() {CODE
LOW…t-plugin-query/src/utils/detect-react-query-imports.ts30export function detectTanstackQueryImports(create: EnhancedCreate): Create {CODE
LOW…ery/src/__tests__/mutation-property-order.rule.test.ts41export function generateInvalidPermutations(CODE
LOW…c/__tests__/infinite-query-property-order.rule.test.ts41export function generateInvalidPermutations(CODE
LOW…uery/src/rules/exhaustive-deps/exhaustive-deps.rule.ts229function dereferenceVariablesAndTypeAssertions(CODE
LOW…ules/prefer-query-options/prefer-query-options.rule.ts95 function reportInlineFilterQueryKey(node: TSESTree.Node): void {CODE
LOW…ules/prefer-query-options/prefer-query-options.rule.ts239function getReturnedObjectExpressions(CODE
LOWpackages/query-core/src/hydration.ts209export function defaultShouldDehydrateMutation(mutation: Mutation) {CODE
LOWpackages/query-core/src/hydration.ts219export function defaultShouldDehydrateQuery(query: Query) {CODE
LOWpackages/query-core/src/__tests__/utils.ts6export function mockOnlineManagerIsOnline(CODE
LOW…ckages/query-core/src/__tests__/streamedQuery.test.tsx20 function createAsyncNumberGenerator(amount: number, start = 0) {CODE
Fake / Example Data33 hits · 35 pts
SeverityFileLineSnippetContext
LOW…preact/reference/interfaces/UseSuspenseQueryOptions.md11and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, so those optionsCODE
LOW…eference/interfaces/UseSuspenseInfiniteQueryOptions.md11`throwOnError`, and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, soCODE
LOWdocs/framework/react/guides/placeholder-query-data.md19When we use `placeholderData`, our Query will not be in a `pending` state - it will start out as being in `success` statCODE
LOW…/react/reference/interfaces/UseSuspenseQueryOptions.md11and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, so those optionsCODE
LOW…eference/interfaces/UseSuspenseInfiniteQueryOptions.md11`throwOnError`, and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, soCODE
LOWpackages/preact-query/src/types.ts181 * and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, so those optionsCOMMENT
LOWpackages/preact-query/src/types.ts261 * `throwOnError`, and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, soCOMMENT
LOWpackages/preact-query/src/__tests__/useQuery.test.tsx4229 placeholderData: 'placeholder',CODE
LOWpackages/preact-query/src/__tests__/useQuery.test.tsx4251 data: 'placeholder',CODE
LOWpackages/preact-query/src/__tests__/useQuery.test.tsx4272 placeholderData: 'placeholder',CODE
LOWpackages/preact-query/src/__tests__/useQuery.test.tsx4300 data: 'placeholder',CODE
LOWpackages/preact-query/src/__tests__/useQuery.test.tsx4308 data: 'placeholder',CODE
LOW…preact-query/src/__tests__/useSuspenseQueries.test.tsx300 sleep(localDuration).then(() => ({ name: 'John Doe', age: 50 })),CODE
LOW…preact-query/src/__tests__/useSuspenseQueries.test.tsx349 data: 'John Doe',CODE
LOWpackages/react-query/src/types.ts182 * and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, so those optionsCOMMENT
LOWpackages/react-query/src/types.ts262 * `throwOnError`, and `placeholderData` — Suspense hooks cannot render a "disabled" or "placeholder" state, soCOMMENT
LOWpackages/react-query/src/__tests__/useQuery.test.tsx4219 placeholderData: 'placeholder',CODE
LOWpackages/react-query/src/__tests__/useQuery.test.tsx4241 data: 'placeholder',CODE
LOWpackages/react-query/src/__tests__/useQuery.test.tsx4262 placeholderData: 'placeholder',CODE
LOWpackages/react-query/src/__tests__/useQuery.test.tsx4290 data: 'placeholder',CODE
LOWpackages/react-query/src/__tests__/useQuery.test.tsx4298 data: 'placeholder',CODE
LOW…/react-query/src/__tests__/useSuspenseQueries.test.tsx355 sleep(localDuration).then(() => ({ name: 'John Doe', age: 50 })),CODE
LOW…/react-query/src/__tests__/useSuspenseQueries.test.tsx405 data: 'John Doe',CODE
LOWpackages/solid-query/src/__tests__/useQuery.test.tsx3778 placeholderData: 'placeholder',CODE
LOWpackages/solid-query/src/__tests__/useQuery.test.tsx3802 data: 'placeholder',CODE
LOWpackages/solid-query/src/__tests__/useQuery.test.tsx3823 placeholderData: 'placeholder',CODE
LOWpackages/solid-query/src/__tests__/useQuery.test.tsx3853 data: 'placeholder',CODE
LOWpackages/solid-query/src/__tests__/useQuery.test.tsx3861 data: 'placeholder',CODE
LOW…-query-experimental/src/__tests__/inject-query.test.ts172 placeholderData: 'placeholder',CODE
LOW…ckages/query-core/src/__tests__/queryObserver.test.tsx991 placeholderData: 'placeholder',CODE
LOW…ckages/query-core/src/__tests__/queryObserver.test.tsx996 data: 'placeholder',CODE
LOW…ckages/query-core/src/__tests__/queryObserver.test.tsx1008 expect(results[0]).toMatchObject({ status: 'success', data: 'placeholder' })CODE
LOW…ages/query-core/src/__tests__/queryObserver.test-d.tsx551 placeholderData: { value: 'placeholder' },CODE
Over-Commented Block16 hits · 16 pts
SeverityFileLineSnippetContext
LOWintegrations/svelte-vite/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/chat/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOW…amples/svelte/default-query-function/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/basic-graphql-request/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/simple/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/algolia/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/batching/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/svelte/shadow-dom/src/vite-env.d.ts1/// <reference types="svelte" />COMMENT
LOWexamples/solid/astro/src/env.d.ts1/// <reference path="../.astro/types.d.ts" />COMMENT
LOWpackages/preact-query/src/HydrationBoundary.tsx101 //COMMENT
LOWpackages/react-query/src/HydrationBoundary.tsx101 // This code needs to happen during the render phase, because after initialCOMMENT
LOW…ages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx41 #queryFlavor: stringCOMMENT
LOWpackages/svelte-query/src/createBaseQuery.svelte.ts121 // The only reason this is necessary is because of `isRestoring`.COMMENT
LOWpackages/query-core/src/queryObserver.ts61 TQueryKey extends QueryKey = QueryKey,COMMENT
LOWpackages/query-core/src/timeoutManager.ts121 if (process.env.NODE_ENV !== 'production') {COMMENT
LOWpackages/query-core/src/__tests__/hydration.test.tsx1481COMMENT
Overly Generic Function Names15 hits · 15 pts
SeverityFileLineSnippetContext
LOWexamples/svelte/offline/static/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…les/lit/optimistic-updates/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…amples/lit/auto-refetching/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…inite-query-with-max-pages/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/lit/offline/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…/load-more-infinite-scroll/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/vue/offline/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/solid/offline/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…/preact/optimistic-updates/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/preact/pagination/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…les/preact/auto-refetching/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…inite-query-with-max-pages/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/preact/offline/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOW…/load-more-infinite-scroll/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWexamples/react/offline/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL…s/angular/rxjs/src/app/components/example.component.ts26 this.form.controls.term.valueChanges.pipe(CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMintegrations/angular-cli-20/README.md15## Code scaffoldingCOMMENT