AI Slop Code Risk Monitor

react-navigation/react-navigation

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

Routing and navigation for React Native and Web apps

0.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for react-navigation/react-navigation, a TypeScript project with 24,517 GitHub stars. SynthScan examined 195,510 lines of code across 667 source files, recording 69 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 0.4 (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.4
Adjusted Signal
0.4
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
24.5K
Stars
TypeScript
Language
195.5K
Lines of Code
667
Files
69
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 0.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

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

Agent Over-Engineering Ratio 0.5/100 · LOW

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

PR Review Velocity Impact 1.8/100 · LOW

Which changes need focused human review? 69 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 0MEDIUM 1LOW 68

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 69 distinct pattern matches across 5 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.

Fake / Example Data40 hits · 50 pts
SeverityFileLineSnippetContext
LOWexample/e2e/maestro/tab-view-scrollable-tab-bar.yml15 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/stack-header-customization.yml20 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/stack-prevent-remove.yml12 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/stack-prevent-remove.yml51 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/tab-view-custom-tab-bar.yml21 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/tab-view-custom-tab-bar.yml48 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/drawer-master-detail.yml26 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/navigator-layout.yml24 text: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-stack-header-customization.yml9 TEXT: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-stack-header-customization.yml21 text: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-stack-header-customization.yml29 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/tab-view-auto-width-tab-bar.yml13 text: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-bottom-tabs-custom-tab-bar.yml8 TEXT: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-bottom-tabs-custom-tab-bar.yml14 text: 'What is Lorem Ipsum?'CODE
LOW…mple/e2e/maestro/native-bottom-tabs-custom-tab-bar.yml32 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/native-stack-prevent-remove.yml12 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/native-stack-prevent-remove.yml51 text: 'What is Lorem Ipsum?'CODE
LOWexample/e2e/maestro/tab-view-scroll-adapter.yml13 text: 'What is Lorem Ipsum?'CODE
LOW⚡example/src/Shared/Article.tsx76 <Heading>What is Lorem Ipsum?</Heading>CODE
LOW⚡example/src/Shared/Article.tsx78 Lorem Ipsum is simply dummy text of the printing and typesettingCODE
LOW⚡example/src/Shared/Article.tsx79 industry. Lorem Ipsum has been the industry&apos;s standard dummy textCODE
LOW⚡example/src/Shared/Article.tsx84 of Letraset sheets containing Lorem Ipsum passages, and more recentlyCODE
LOW⚡example/src/Shared/Article.tsx86 of Lorem Ipsum.CODE
LOW⚡example/src/Shared/Article.tsx95 Contrary to popular belief, Lorem Ipsum is not simply random text. ItCODE
LOW⚡example/src/Shared/Article.tsx99 Latin words, consectetur, from a Lorem Ipsum passage, and going throughCODE
LOW⚡example/src/Shared/Article.tsx101 undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33CODE
LOW⚡example/src/Shared/Article.tsx105 Ipsum, &quot;Lorem ipsum dolor sit amet..&quot;, comes from a line inCODE
LOW⚡example/src/Shared/Article.tsx105 Ipsum, &quot;Lorem ipsum dolor sit amet..&quot;, comes from a line inCODE
LOW⚡example/src/Shared/Article.tsx109 The standard chunk of Lorem Ipsum used since the 1500s is reproducedCODE
LOW⚡example/src/Shared/Article.tsx119 using Lorem Ipsum is that it has a more-or-less normal distribution ofCODE
LOW⚡example/src/Shared/Article.tsx122 and web page editors now use Lorem Ipsum as their default model text,CODE
LOW⚡example/src/Shared/Article.tsx123 and a search for &quot;lorem ipsum&quot; will uncover many web sitesCODE
LOW⚡example/src/Shared/Article.tsx130 There are many variations of passages of Lorem Ipsum available, but theCODE
LOW⚡example/src/Shared/Article.tsx133 are going to use a passage of Lorem Ipsum, you need to be sure thereCODE
LOW⚡example/src/Shared/Article.tsx135 Lorem Ipsum generators on the Internet tend to repeat predefined chunksCODE
LOW⚡example/src/Shared/Article.tsx138 model sentence structures, to generate Lorem Ipsum which looksCODE
LOW⚡example/src/Shared/Article.tsx139 reasonable. The generated Lorem Ipsum is therefore always free fromCODE
LOWexample/src/Screens/NativeStackFormSheet.tsx140 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ' +CODE
LOWexample/src/Screens/NativeStackFormSheet.tsx140 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ' +CODE
LOWpackages/core/src/__tests__/queryString.test.tsx27 { query: 'first+name=Jane+Doe', expected: { 'first name': 'Jane Doe' } },CODE
Hyper-Verbose Identifiers21 hits · 21 pts
SeverityFileLineSnippetContext
LOWexample/__typechecks__/static.check.tsx416function StaticNavigatorHookTypeChecks() {CODE
LOWexample/src/Screens/ComponentsMaterialSymbols.tsx69export function ComponentsMaterialSymbols(_: StaticScreenProps<{}>) {CODE
LOWscripts/measure-typescript.ts382 const dynamicConsumers = `function UseDynamicParamListToParamList() {CODE
LOWscripts/measure-typescript.ts403function UseDynamicParamListToNavigator() {CODE
LOWscripts/measure-typescript.ts424function UseDynamicNavigatorToParamList() {CODE
LOWscripts/measure-typescript.ts443function UseStaticParentToStaticChild() {CODE
LOWpackages/core/src/NavigationIndependentTree.tsx30export function NavigationIndependentTree({CODE
LOWpackages/core/src/getStateFromPath.tsx518function getSortedNormalizedConfigs(CODE
LOWpackages/core/src/getStateFromPath.tsx606function checkForDuplicatedConfigs(CODE
LOWpackages/core/src/useNavigationIndependentTree.tsx5export function useNavigationIndependentTree() {CODE
LOW…ckages/core/src/useFocusedListenersChildrenAdapter.tsx19export function useFocusedListenersChildrenAdapter({CODE
LOWpackages/core/src/useNavigationState.tsx187export function NavigationStateListenerProvider({CODE
LOWpackages/core/src/useNavigationState.tsx252export function NamedNavigationStateListenerProvider({CODE
LOWpackages/core/src/getFocusedRouteNameFromRoute.tsx5export function getFocusedRouteNameFromRoute(CODE
LOWpackages/core/src/NavigationBuilderContext.tsx92export function useNavigationBuilderContext() {CODE
LOW…kages/native/src/createStandardNavigationFactories.tsx98 function StandardNavigationNavigator(props: any) {CODE
LOWpackages/devtools/src/parseHermesStack.tsx71function isInternalBytecodeSourceUrl(sourceUrl: string): boolean {CODE
LOWpackages/devtools/src/useReduxDevToolsExtension.tsx21export function useReduxDevToolsExtension(CODE
LOW…ative-stack/src/utils/useInvalidPreventRemoveError.tsx6export function useInvalidPreventRemoveError(CODE
LOW…stack/src/TransitionConfigs/CardStyleInterpolators.tsx308export function forRevealFromBottomAndroid({CODE
LOW…stack/src/TransitionConfigs/CardStyleInterpolators.tsx407export function forScaleFromCenterAndroid({CODE
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippetContext
LOWpackages/core/src/useNavigationBuilder.tsx841 setKey(navigatorKey);COMMENT
LOWpackages/core/src/useNavigationState.tsx101 entry: NavigationStateEntry | null;COMMENT
LOWpackages/core/src/getActionFromState.tsx101 pop?: boolean | undefined;COMMENT
LOWpackages/native/ios/ReactNavigationCornerInsetView.mm1#import "ReactNavigationCornerInsetView.h"COMMENT
LOWpackages/native/src/createMemoryHistory.tsx161 return new Promise<void>((resolve, reject) => {COMMENT
LOW…react-native-drawer-layout/src/views/Drawer.native.tsx481COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/bottom-tabs/src/views/BottomTabBar.tsx410 // Absolutely position the tab bar so that the content is below itCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/core/src/useOnPreventRemove.tsx63 // First, we need to check if any child screens want to prevent itCOMMENT