AI Slop Code Risk Monitor

reduxjs/redux-toolkit

SlopCodeMonitor badge for reduxjs/redux-toolkit Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The official, opinionated, batteries-included toolset for efficient Redux development

1.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for reduxjs/redux-toolkit, a TypeScript project with 11,236 GitHub stars. SynthScan examined 144,077 lines of code across 750 source files, recording 104 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.1 (Low pattern signal); it is not an authorship estimate.

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

1.1
Adjusted Signal
1.1
Raw Pattern Score
100%
Time Factor
2026-10-28
Last Push
11.2K
Stars
TypeScript
Language
144.1K
Lines of Code
750
Files
104
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 4.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.5/100 · LOW

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

Agent Over-Engineering Ratio 1.8/100 · LOW

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

PR Review Velocity Impact 3.9/100 · LOW

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 0HIGH 2MEDIUM 0LOW 102

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 104 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 Identifiers45 hits · 52 pts
SeverityFileLineSnippetContext
LOW…ination-infinite-scroll/PaginationInfScrollExample.tsx23function PaginationInfScrollExample() {CODE
LOW…ursor-infinite-scroll/BidirectionalCursorInfScroll.tsx8function BidirectionalCursorInfScroll({ startingProject = { id: 25 } }) {CODE
LOW…codemods/transforms/createSliceReducerBuilder/index.ts23export function reducerPropsToBuilderExpression(CODE
LOW…es/rtk-codemods/transforms/createSliceBuilder/index.ts23export function reducerPropsToBuilderExpression(CODE
LOW…/rtk-codemods/transforms/createReducerBuilder/index.ts23export function reducerPropsToBuilderExpression(CODE
LOWpackages/rtk-query-codegen-openapi/src/codegen.ts113export function generateEndpointDefinition({CODE
LOWpackages/rtk-query-codegen-openapi/src/generate.ts177function generateRegexConstantsForType(CODE
LOWpackages/rtk-query-codegen-openapi/src/generate.ts607 function createObjectLiteralProperty(parameters: QueryArgDefinition[], propertyName: string) {CODE
LOWpackages/rtk-query-codegen-openapi/src/generate.ts700 function generateQueryEndpointProps({}: { operationDefinition: OperationDefinition }): ObjectPropertyDefinitions {CODE
LOWpackages/rtk-query-codegen-openapi/src/generate.ts705 function generateMutationEndpointProps({}: { operationDefinition: OperationDefinition }): ObjectPropertyDefinitions {CODE
LOWpackages/toolkit/etc/redux-toolkit.api.md289export function createImmutableStateInvariantMiddleware(CODE
LOWpackages/toolkit/etc/redux-toolkit.api.md315export function createSerializableStateInvariantMiddleware(CODE
LOW…lkit/scripts/issue-triage/src/similarity/similarity.ts75export function calculateErrorPatternMatch(CODE
LOW…lkit/scripts/issue-triage/src/similarity/similarity.ts95export function calculateTemporalProximity(CODE
LOW…s/toolkit/scripts/issue-triage/src/reports/sections.ts55export function generateDuplicatesSection(CODE
LOW…s/toolkit/scripts/issue-triage/src/reports/sections.ts373export function generateNeedsAttentionSection(CODE
LOWpackages/toolkit/src/matchers.ts70export function hasExpectedRequestMetadata(CODE
LOW⚡packages/toolkit/src/utils.ts77export function getOrInsert<K extends object, V>(CODE
LOW⚡packages/toolkit/src/utils.ts82export function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): VCODE
LOW⚡packages/toolkit/src/utils.ts83export function getOrInsert<K extends object, V>(CODE
LOW⚡packages/toolkit/src/utils.ts93export function getOrInsertComputed<K extends object, V>(CODE
LOW⚡packages/toolkit/src/utils.ts98export function getOrInsertComputed<K, V>(CODE
LOW⚡packages/toolkit/src/utils.ts103export function getOrInsertComputed<K extends object, V>(CODE
LOW…es/toolkit/src/serializableStateInvariantMiddleware.ts188export function createSerializableStateInvariantMiddleware(CODE
LOW…ckages/toolkit/src/actionCreatorInvariantMiddleware.ts21export function createActionCreatorInvariantMiddleware(CODE
LOW…kages/toolkit/src/immutableStateInvariantMiddleware.ts195export function createImmutableStateInvariantMiddleware(CODE
LOWpackages/toolkit/src/createReducer.ts105 * function isActionWithNumberPayload(COMMENT
LOWpackages/toolkit/src/query/endpointDefinitions.ts1304export function isInfiniteQueryDefinition(CODE
LOWpackages/toolkit/src/query/core/buildSlice.ts114function updateQuerySubstateIfExists(CODE
LOWpackages/toolkit/src/query/core/buildSlice.ts144function updateMutationSubstateIfExists(CODE
LOWpackages/toolkit/src/query/core/buildSlice.ts615 function writeProvidedTagsForQueries(CODE
LOWpackages/toolkit/src/query/core/buildInitiate.ts537 function buildInitiateInfiniteQuery(CODE
LOWpackages/toolkit/src/query/core/buildSelectors.ts271 function buildInfiniteQuerySelector(CODE
LOW…ages/toolkit/src/query/core/buildMiddleware/polling.ts172 function findLowestPollingInterval(CODE
LOW…lkit/src/query/core/buildMiddleware/cacheCollection.ts75 function anySubscriptionsRemainingForKey(queryCacheKey: string) {CODE
LOWpackages/toolkit/src/query/tests/createApi.test.ts1232 function expectFailureHandlersToHaveBeenCalled({CODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts5export function getOrInsert<K extends object, V>(CODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts10export function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): VCODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts11export function getOrInsert<K extends object, V>(CODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts21export function getOrInsertComputed<K extends object, V>(CODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts26export function getOrInsertComputed<K, V>(CODE
LOW⚡packages/toolkit/src/query/utils/getOrInsert.ts31export function getOrInsertComputed<K extends object, V>(CODE
LOW…s/toolkit/src/query/utils/copyWithStructuralSharing.ts7export function copyWithStructuralSharing(oldObj: any, newObj: any): any {CODE
LOWpackages/toolkit/src/query/react/buildHooks.ts1614 function infiniteQueryStatePreSelector(CODE
LOWpackages/toolkit/src/query/react/buildHooks.ts1914 function usePromiseRefUnsubscribeOnUnmount(CODE
Structural Annotation Overuse21 hits · 38 pts
SeverityFileLineSnippetContext
LOWexamples/publish-ci/react-native/README.md7## Step 1: Start the Metro ServerCOMMENT
LOWexamples/publish-ci/react-native/README.md21## Step 2: Start your ApplicationCOMMENT
LOWexamples/publish-ci/react-native/README.md49## Step 3: Modifying your AppCOMMENT
LOWexamples/publish-ci/expo/README.md15## Step 1: Start the Metro ServerCOMMENT
LOWexamples/publish-ci/expo/README.md31## Step 2: Start your ApplicationCOMMENT
LOWexamples/publish-ci/expo/README.md63## Step 3: Modifying your AppCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts23 // Step 1: Verify gh CLI is available and authenticatedCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts28 // Step 2: Create GitHub clientCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts31 // Step 3: Fetch all open issues and PRsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts35 // Step 4: Categorize all itemsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts39 // Step 5: Display summary statisticsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts49 // Step 6: Display categorization statisticsCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts95 // Step 7: Run similarity detectionCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts108 // Step 8: Display sample categorized issuesCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts146 // Step 9: Display sample similarity resultsCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts189 // Step 10: Export categorization results to JSONCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts253 // Step 11: Generate Markdown reportsCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts15 // Step 1: Categorize the issueCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts18 // Step 2: Calculate scoresCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts21 // Step 3: Detect flagsCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts24 // Step 4: Combine into categorized issueCOMMENT
Verbosity Indicators15 hits · 29 pts
SeverityFileLineSnippetContext
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts23 // Step 1: Verify gh CLI is available and authenticatedCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts28 // Step 2: Create GitHub clientCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts31 // Step 3: Fetch all open issues and PRsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts35 // Step 4: Categorize all itemsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts39 // Step 5: Display summary statisticsCOMMENT
LOW⚡packages/toolkit/scripts/issue-triage/src/index.ts49 // Step 6: Display categorization statisticsCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts95 // Step 7: Run similarity detectionCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts108 // Step 8: Display sample categorized issuesCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts146 // Step 9: Display sample similarity resultsCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts189 // Step 10: Export categorization results to JSONCOMMENT
LOWpackages/toolkit/scripts/issue-triage/src/index.ts253 // Step 11: Generate Markdown reportsCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts15 // Step 1: Categorize the issueCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts18 // Step 2: Calculate scoresCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts21 // Step 3: Detect flagsCOMMENT
LOW⚡…s/toolkit/scripts/issue-triage/src/categorize/index.ts24 // Step 4: Combine into categorized issueCOMMENT
Cross-Language Confusion (JS/TS)2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHpackages/toolkit/src/tsHelpers.ts12 * return True if T is `any`, otherwise return FalseCOMMENT
HIGHpackages/toolkit/src/tsHelpers.ts24 * return True if T is `unknown`, otherwise return FalseCOMMENT
Over-Commented Block11 hits · 11 pts
SeverityFileLineSnippetContext
LOWpnpm-workspace.yaml1# pnpm workspace definition and settings.COMMENT
LOWpnpm-workspace.yaml21COMMENT
LOWpnpm-workspace.yaml41# @testing-library/react-render-stream's unmet `jest` peer) - 54 packages theCOMMENT
LOWexamples/query/react/kitchen-sink/src/setupTests.ts1// jest-dom adds custom jest matchers for asserting on DOM nodes.COMMENT
LOWexamples/publish-ci/next/pnpm-workspace.yaml1# This example is deliberately its own pnpm workspace root, not a member of theCOMMENT
LOWexamples/publish-ci/react-native/pnpm-workspace.yaml1# This example is deliberately its own pnpm workspace root, not a member of theCOMMENT
LOWexamples/publish-ci/expo/pnpm-workspace.yaml1# This example is deliberately its own pnpm workspace root, not a member of theCOMMENT
LOWexamples/publish-ci/vite/pnpm-workspace.yaml1# This example is deliberately its own pnpm workspace root, not a member of theCOMMENT
LOWexamples/publish-ci/node/pnpm-workspace.yaml1# This example is deliberately its own pnpm workspace root, not a member of theCOMMENT
LOWpackages/rtk-query-codegen-openapi/test/vitest.setup.ts21// print: (val) => {COMMENT
LOW.github/workflows/tests.yml521 run: pnpm installCOMMENT
Overly Generic Function Names10 hits · 10 pts
SeverityFileLineSnippetContext
LOW…es/query/react/prefetching/public/mockServiceWorker.js110async function handleRequest(event, requestId) {CODE
LOW…ples/query/react/mutations/public/mockServiceWorker.js110async function handleRequest(event, requestId) {CODE
LOW…uery/react/graphql-codegen/public/mockServiceWorker.js110async function handleRequest(event, requestId) {CODE
LOW…s/query/react/kitchen-sink/public/mockServiceWorker.js111async function handleRequest(event, requestId) {CODE
LOW…amples/query/react/graphql/public/mockServiceWorker.js111async function handleRequest(event, requestId) {CODE
LOW…ery/react/infinite-queries/public/mockServiceWorker.js123async function handleRequest(event, requestId) {CODE
LOW…query/react/authentication/public/mockServiceWorker.js110async function handleRequest(event, requestId) {CODE
LOW…ry/react/optimistic-update/public/mockServiceWorker.js110async function handleRequest(event, requestId) {CODE
LOWexamples/publish-ci/next/public/mockServiceWorker.js140async function handleRequest(event, requestId) {CODE
LOWexamples/publish-ci/vite/public/mockServiceWorker.js140async function handleRequest(event, requestId) {CODE