AI Slop Code Risk Monitor

rjsf-team/react-jsonschema-form

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

A React component for building Web forms from JSON Schema.

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for rjsf-team/react-jsonschema-form, a TypeScript project with 15,927 GitHub stars. SynthScan examined 186,238 lines of code across 1357 source files, recording 120 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 0.8 (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.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
15.9K
Stars
TypeScript
Language
186.2K
Lines of Code
1.4K
Files
120
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.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.7/100 · LOW

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

Agent Over-Engineering Ratio 0.7/100 · LOW

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

PR Review Velocity Impact 3.5/100 · LOW

Which changes need focused human review? 120 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 1MEDIUM 4LOW 115

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 120 distinct pattern matches across 7 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 Data89 hits · 103 pts
SeverityFileLineSnippetContext
LOWpackages/core/test/Form.handlers.test.tsx393 default: { types: 'advanced', content: 'placeholder' },CODE
LOWpackages/core/test/Form.handlers.test.tsx412 expect(contentInput!.value).toEqual('placeholder');CODE
LOWpackages/core/test/Form.handlers.test.tsx429 expect(contentInput!.value).toEqual('placeholder');CODE
LOWpackages/core/test/Form.handlers.test.tsx434 expect(lastFormData.content).toEqual('placeholder');CODE
LOWpackages/core/test/Form.handlers.test.tsx464 default: { types: 'advanced', content: 'placeholder' },CODE
LOWpackages/core/test/Form.handlers.test.tsx556 default: { types: 'advanced', content: 'placeholder' },CODE
LOWpackages/core/test/Form.handlers.test.tsx837 default: { types: 'advanced', content: 'placeholder' },CODE
LOWpackages/core/test/widgets_schema.json53 "placeholder": {CODE
LOW⚡packages/core/test/oneOf.test.tsx829 await user.type(input, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx829 await user.type(input, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx833 formData: { foo: 'Lorem ipsum dolor sit amet' },CODE
LOW⚡packages/core/test/oneOf.test.tsx833 formData: { foo: 'Lorem ipsum dolor sit amet' },CODE
LOW⚡packages/core/test/oneOf.test.tsx865 await user.type(buzzInput, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx865 await user.type(buzzInput, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx870 buzz: 'Lorem ipsum dolor sit amet',CODE
LOW⚡packages/core/test/oneOf.test.tsx870 buzz: 'Lorem ipsum dolor sit amet',CODE
LOW⚡packages/core/test/oneOf.test.tsx954 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx954 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/oneOf.test.tsx959 userId: 'Lorem ipsum dolor sit amet',CODE
LOW⚡packages/core/test/oneOf.test.tsx959 userId: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/oneOf.test.tsx883 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/oneOf.test.tsx883 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/oneOf.test.tsx897 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/oneOf.test.tsx897 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/oneOf.test.tsx1196 await user.type(barInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/oneOf.test.tsx1196 await user.type(barInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/oneOf.test.tsx2156 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/oneOf.test.tsx2156 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/oneOf.test.tsx2185 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/oneOf.test.tsx2185 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx460 await user.type(input, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx460 await user.type(input, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx464 formData: { foo: 'Lorem ipsum dolor sit amet' },CODE
LOW⚡packages/core/test/anyOf.test.tsx464 formData: { foo: 'Lorem ipsum dolor sit amet' },CODE
LOW⚡packages/core/test/anyOf.test.tsx496 await user.type(buzzInput, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx496 await user.type(buzzInput, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx501 buzz: 'Lorem ipsum dolor sit amet',CODE
LOW⚡packages/core/test/anyOf.test.tsx501 buzz: 'Lorem ipsum dolor sit amet',CODE
LOW⚡packages/core/test/anyOf.test.tsx581 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx581 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOW⚡packages/core/test/anyOf.test.tsx585 formData: { userId: 'Lorem ipsum dolor sit amet' },CODE
LOW⚡packages/core/test/anyOf.test.tsx585 formData: { userId: 'Lorem ipsum dolor sit amet' },CODE
LOWpackages/core/test/anyOf.test.tsx514 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/anyOf.test.tsx514 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/anyOf.test.tsx528 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/anyOf.test.tsx528 buzz: 'Lorem ipsum dolor sit amet',CODE
LOWpackages/core/test/anyOf.test.tsx771 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx771 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx832 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx832 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx893 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx893 await user.type(idCodeInput, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx1657 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx1657 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx1688 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/anyOf.test.tsx1688 await user.type(userIdInput2, 'Lorem ipsum dolor sit amet');CODE
LOWpackages/core/test/uiSchema.test.tsx931 expect(node.querySelector('textarea')).toHaveAttribute('placeholder', 'sample');CODE
LOWpackages/core/test/uiSchema.test.tsx979 expect(node.querySelector('[type=password]')).toHaveAttribute('placeholder', 'sample');CODE
LOWpackages/core/test/Form.behaviors.test.tsx728 formData: { name: 'Alice', address: { street: '123 Main St' } },CODE
LOWpackages/core/test/Form.behaviors.test.tsx734 expectToHaveBeenCalledWithFormData(onSubmit, { name: 'Alice', address: { street: '123 Main St' } }, true);CODE
29 more matches not shown…
Hyper-Verbose Identifiers21 hits · 21 pts
SeverityFileLineSnippetContext
LOWpackages/daisyui/test/ArrayFieldItemTemplate.test.tsx3 default: function MockArrayFieldItemButtonsTemplate() {CODE
LOWpackages/core/test/testUtils.tsx105export function expectToHaveBeenCalledWithFormData(mock: any, formData: any, secondValue?: string | true) {CODE
LOWpackages/core/test/testUtils.tsx137export function setupConsoleErrorSuppression(): ConsoleSuppressionResult {CODE
LOWpackages/core/test/testUtils.tsx171export function setupConsoleWarnSuppression(): ConsoleSuppressionResult {CODE
LOWpackages/core/test/ArrayField.test.tsx27const ExposedArrayKeyItemTemplate = function ExposedArrayKeyItemTemplate(props: ArrayFieldItemTemplateProps) {CODE
LOWpackages/core/test/ArrayField.test.tsx71const CustomOnAddClickItemTemplate = function CustomOnAddClickItemTemplate(props: ArrayFieldItemTemplateProps) {CODE
LOWpackages/core/src/components/fields/FallbackField.tsx17function getFallbackTypeSelectionSchema(title: string): RJSFSchema {CODE
LOWpackages/core/src/components/fields/ObjectField.tsx76function isAdditionalPropertySchema(schema: unknown) {CODE
LOWpackages/playground/src/samples/customArray.tsx23function ArrayFieldItemButtonsTemplate(props: ArrayFieldItemButtonsTemplateProps) {CODE
LOW…ges/utils/test/schema/findSelectedOptionInXxxOfTest.ts14export default function findSelectedOptionInXxxOfTest(testValidator: TestValidatorType) {CODE
LOW…ages/utils/test/schema/getClosestMatchingOptionTest.ts18export default function getClosestMatchingOptionTest(testValidator: TestValidatorType) {CODE
LOW…ages/utils/test/schema/sanitizeDataForNewSchemaTest.ts6export default function sanitizeDataForNewSchemaTest(testValidator: TestValidatorType) {CODE
LOW…ckages/utils/test/schema/getFirstMatchingOptionTest.ts5export default function getFirstMatchingOptionTest(testValidator: TestValidatorType) {CODE
LOWpackages/utils/src/findSchemaDefinition.ts80export function splitKeyElementFromObject(key: string, object: GenericObjectType) {CODE
LOW…kages/docs/docs/migration-guides/v6.x upgrade guide.md580function CustomArrayFieldItemTemplate(props: ArrayFieldItemTemplateProps) {CODE
LOW…s/docs/docs/advanced-customization/custom-templates.md144function ArrayFieldDescriptionTemplate(props: ArrayFieldDescriptionProps) {CODE
LOW…s/docs/docs/advanced-customization/custom-templates.md254function ArrayFieldItemButtonsTemplate(props: ArrayFieldTemplateItemButtonsType) {CODE
LOW…s/docs/docs/advanced-customization/custom-templates.md1066function OptionalDataControlsTemplate(props: OptionalDataControlsTemplateProps) {CODE
LOW…ion-5.24.10/advanced-customization/custom-templates.md149function ArrayFieldDescriptionTemplate(props: ArrayFieldDescriptionProps) {CODE
LOW…s/validator-cfworker/src/processRawValidationErrors.ts41function instanceLocationToProperty(instanceLocation: string): string {CODE
LOW…ator-ajv8/test/precompiledValidatorIntegration.test.ts20function buildPrecompiledValidator(schema: RJSFSchema) {CODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ator-ajv8/test/precompiledValidatorIntegration.test.ts24// ─── Test schemas ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…ator-ajv8/test/precompiledValidatorIntegration.test.ts73// ─── Tests ────────────────────────────────────────────────────────────────────COMMENT
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHPULL_REQUEST_TEMPLATE.md12 - [ ] I've [checked the rendering](https://rjsf-team.github.io/react-jsonschema-form/docs/contributing) of the MarkdowCODE
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOWpackages/core/test/testUtils.tsx121 return act(async () => delayPromise(delay));COMMENT
LOWpackages/core/src/components/Form.tsx621 // A parent passing `formData` has had its say, whether that is its reply to the report or data that replaces it,COMMENT
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql.yml61 # Initializes the CodeQL tools for scanning.COMMENT
LOW.github/workflows/size-limit-comment.yml1# Posts the size report produced by the "Size limit" workflow as a PR comment.COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/validator-ata/src/validator.ts74 * `AJV8Validator#reset` so RJSF's test harness can flush state between runs.COMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/codeql.yml55 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT