AI Slop Code Risk Monitor

babel/babel

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

🐠 Babel is a compiler for writing next generation JavaScript.

1.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for babel/babel, a TypeScript project with 44,054 GitHub stars. SynthScan examined 211,911 lines of code across 2062 source files, recording 317 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.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.

1.8
Adjusted Signal
1.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
44.1K
Stars
TypeScript
Language
211.9K
Lines of Code
2.1K
Files
317
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 7.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

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

Agent Over-Engineering Ratio 6.1/100 · LOW

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

PR Review Velocity Impact 8.4/100 · LOW

Which changes need focused human review? 317 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 5HIGH 1MEDIUM 3LOW 308

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 317 distinct pattern matches across 10 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 Identifiers254 hits · 266 pts
SeverityFileLineSnippetContext
LOWGulpfile.ts143function generateHelperGlobalsData(filename: string) {CODE
LOWGulpfile.ts527 function babelPluginInlineConstNumericObjects({ types: t }) {CODE
LOWbabel.config.ts387function pluginRequiredVersionMacro(CODE
LOWbabel.config.ts435function transformNamedBabelTypesImportToDestructuring({CODE
LOWbabel.config.ts485function pluginReplaceTSImportExtension() {CODE
LOWbabel.config.ts550function pluginBabelParserTokenType({CODE
LOWbabel.config.ts577function pluginGeneratorOptimization({ types: t }: PluginAPI) {CODE
LOWscripts/generate-babel-7-tests.ts19function getUnstagedModifiedTestOutput() {CODE
LOW…/babel-plugin-transform-node-protocol-import/plugin.ts14function pluginBabelTransformNodeProtocolImports({CODE
LOWscripts/parser-tests/typescript/index.js37function generateTSBaselineErrorMap() {CODE
LOWscripts/parser-tests/typescript/index.js54function baselineContainsParserErrorCodes(testName) {CODE
LOWscripts/parser-tests/typescript/index.js150function splitTwoslashCodeInfoFiles(code, defaultFileName, root = "") {CODE
LOWscripts/parser-tests/flow/index.js11function convertFlowParserTestOptionsToBabelParserOptions(testOptions = {}) {CODE
LOW…/babel-plugin-transform-parameters/src/shadow-utils.ts30export function collectShadowedParamsNames(CODE
LOW…x-v8-static-class-fields-redefine-readonly/src/util.ts116export function getPotentiallyBuggyFieldsIndexes(path: NodePath<t.Class>) {CODE
LOW…x-v8-static-class-fields-redefine-readonly/src/util.ts181export function getNameOrLengthStaticFieldsIndexes(path: NodePath<t.Class>) {CODE
LOWpackages/babel-traverse/src/cache.ts27export function getOrCreateCachedPaths(CODE
LOWpackages/babel-traverse/src/path/comments.ts13export function shareCommentsWithSiblings(this: NodePath<t.Node | null>) {CODE
LOWpackages/babel-traverse/src/path/ancestry.ts89export function getEarliestCommonAncestorFrom(CODE
LOWpackages/babel-traverse/src/path/ancestry.ts138export function getDeepestCommonAncestorFrom(CODE
LOWpackages/babel-traverse/src/path/replacement.ts244export function replaceExpressionWithStatements(CODE
LOWpackages/babel-traverse/src/path/replacement.ts332function gatherSequenceExpressions(CODE
LOWpackages/babel-traverse/src/path/family.ts64function completionRecordForSwitch(CODE
LOWpackages/babel-traverse/src/path/family.ts112function replaceBreakStatementInBreakCompletion(CODE
LOWpackages/babel-traverse/src/path/family.ts127function getStatementListCompletion(CODE
LOW⚡packages/babel-traverse/src/path/family.ts523function getOuterBindingIdentifiers(CODE
LOW⚡packages/babel-traverse/src/path/family.ts526function getOuterBindingIdentifiers(CODE
LOW⚡packages/babel-traverse/src/path/family.ts529function getOuterBindingIdentifiers(CODE
LOW⚡packages/babel-traverse/src/path/family.ts533function getOuterBindingIdentifiers(CODE
LOW⚡packages/babel-traverse/src/path/family.ts542function getBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts546function getBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts550function getBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts557function getBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts619function getOuterBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts622function getOuterBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts625function getOuterBindingIdentifierPaths(CODE
LOW⚡packages/babel-traverse/src/path/family.ts629function getOuterBindingIdentifierPaths(CODE
LOWpackages/babel-traverse/src/path/introspection.ts59export function canHaveVariableDeclarationOrExpression(CODE
LOWpackages/babel-traverse/src/path/introspection.ts75export function canSwapBetweenExpressionAndStatement(CODE
LOWpackages/babel-traverse/src/path/introspection.ts307function isExecutionUncertainInList(paths: NodePath[], maxIndex: number) {CODE
LOWpackages/babel-traverse/src/path/context.ts241export function requeueComputedKeyAndDecorators(CODE
LOWpackages/babel-traverse/src/path/conversion.ts120export function unwrapFunctionEnvironment(CODE
LOWpackages/babel-traverse/src/path/conversion.ts148export function arrowFunctionToExpression(CODE
LOWpackages/babel-traverse/src/path/modification.ts151function isHiddenInSequenceExpression(path: NodePath): boolean {CODE
LOWpackages/babel-traverse/src/path/modification.ts159function isAlmostConstantAssignment(CODE
LOW…babel-traverse/src/path/lib/virtual-types-validator.ts105export function isReferencedMemberExpression(CODE
LOW…babel-traverse/src/path/inference/inferer-reference.ts41function getTypeAnnotationBindingConstantViolations(CODE
LOW…babel-traverse/src/path/inference/inferer-reference.ts114function getConstantViolationsBefore(CODE
LOW…babel-traverse/src/path/inference/inferer-reference.ts129function inferAnnotationFromBinaryExpression(CODE
LOWpackages/babel-traverse/src/scope/index.ts258function isAnonymousFunctionExpression(CODE
LOW…-helper-import-to-platform-api/src/plugin-x-modules.ts16export function createImportTypeAsDefaultPlugin({CODE
LOW…kages/babel-helper-import-to-platform-api/src/index.ts273function buildParallelStaticImports(CODE
LOW…kages/babel-helper-import-to-platform-api/src/index.ts316export function injectParallelStaticImports(CODE
LOW…/babel-plugin-transform-template-literals/src/index.ts42 function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {CODE
LOWpackages/babel-cli/src/babel/watcher.ts83export function updateExternalDependencies(CODE
LOW…in-transform-explicit-resource-management/src/index.ts12function isAnonymousFunctionDefinition(CODE
LOWpackages/babel-parser/test/helpers/run-fixture-tests.js59function runAutogeneratedParseTests(CODE
LOWpackages/babel-parser/src/index.ts99function generateExportedTokenTypes(CODE
LOWpackages/babel-parser/src/util/location.ts40export function createPositionWithColumnOffset(CODE
LOWpackages/babel-parser/src/plugins/typescript/index.ts4855function isValidAmbientConstInitializer(CODE
194 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICAL…es/babel-standalone/test/transform-script-tags.test.js24 dom.window.document.head.children.item(2);CODE
CRITICAL…es/babel-standalone/test/transform-script-tags.test.js47 dom.window.document.head.children.item(2);CODE
CRITICAL…es/babel-standalone/test/transform-script-tags.test.js67 dom.window.document.head.children.item(2);CODE
CRITICAL…es/babel-standalone/test/transform-script-tags.test.js93 dom.window.document.head.children.item(2);CODE
CRITICAL…es/babel-standalone/test/transform-script-tags.test.js117 dom.window.document.head.children.item(2);CODE
Over-Commented Block46 hits · 46 pts
SeverityFileLineSnippetContext
LOWbabel.config.ts281}COMMENT
LOWbabel.config.ts301 necessary: (path: NodePath<t.MemberExpression>) => boolean;COMMENT
LOW…l-case-preset-env-flow-ast/babel-parser-expression.txt1// @flowCOMMENT
LOW…l-case-preset-env-flow-ast/babel-parser-expression.txt1321 }COMMENT
LOWscripts/parallel-tsc/tsc.ts61COMMENT
LOWscripts/integration-tests/verdaccio-config.yml1#COMMENT
LOWpackages/babel-traverse/src/path/conversion.ts941 // Cannot declare a parameter named 't' as it shadows the name of aCOMMENT
LOWpackages/babel-parser/test/helpers/serialization.js41function withErrors(throws, ast) {COMMENT
LOWpackages/babel-parser/src/parse-error.ts181// the `ParseError`, orCOMMENT
LOWpackages/babel-parser/src/options.ts181 sourceType: "script",COMMENT
LOWpackages/babel-parser/src/options.ts201 allowNewTargetOutsideFunction: false,COMMENT
LOWpackages/babel-parser/src/options.ts221 // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678COMMENT
LOWpackages/babel-parser/src/util/production-parameter.ts1// ProductionParameterHandler is a stack fashioned production parameter trackerCOMMENT
LOWpackages/babel-parser/src/tokenizer/state.ts61 // e.g. a ? (b) : c => dCOMMENT
LOWpackages/babel-parser/src/tokenizer/state.ts141 // escape sequences must not be interpreted as keywords.COMMENT
LOWpackages/babel-parser/src/tokenizer/types.ts1// ## Token typesCOMMENT
LOWpackages/babel-parser/src/tokenizer/types.ts161COMMENT
LOWpackages/babel-parser/src/parser/expression.ts1// A recursive descent parser operates by defining functions for allCOMMENT
LOWpackages/babel-parser/src/parser/expression.ts181 // 'atomic', nondivisible expression types at the bottom. Most ofCOMMENT
LOWpackages/babel-parser/src/parser/expression.ts1461COMMENT
LOWpackages/babel-parser/src/parser/statement.ts3001 ? // OK: import <phase> x from "foo";COMMENT
LOWpackages/babel-parser/src/parser/statement.ts3041 return tokenIsIdentifier(type)COMMENT
LOW…l-plugin-transform-regenerator/src/regenerator/emit.ts281 );COMMENT
LOW…l-plugin-transform-regenerator/src/regenerator/emit.ts461COMMENT
LOW…l-plugin-transform-regenerator/src/regenerator/emit.ts861COMMENT
LOW…l-plugin-transform-regenerator/src/regenerator/emit.ts921 !ignoreChildResult || !tempVar,COMMENT
LOW…l-plugin-transform-regenerator/src/regenerator/emit.ts1281 //COMMENT
LOW…erator/src/regenerator/replaceShorthandObjectMethod.ts1import type { NodePath } from "@babel/core";COMMENT
LOW…erator/src/regenerator/replaceShorthandObjectMethod.ts21// this method can be passed any Function AST node path, and it will returnCOMMENT
LOWpackages/babel-plugin-proposal-decorators/CONTRIB.md361COMMENT
LOW…ages/babel-plugin-transform-block-scoping/src/index.ts141 }COMMENT
LOW…el-helper-create-class-features-plugin/src/features.ts21// this package isn't deduped by npm. e.g.COMMENT
LOW…ckages/babel-helpers/src/helpers/wrapAsyncGenerator.ts81 if (overloaded) {COMMENT
LOWpackages/babel-types/scripts/generators/builders.ts281 return `/*COMMENT
LOWpackages/babel-types/src/converters/toExpression.ts21 node = node.expression;COMMENT
LOWpackages/babel-core/test/config-chain.js741 filename: fixture("nonexistent-fake", "src.js"),COMMENT
LOWpackages/babel-core/test/config-chain.js761 //COMMENT
LOWpackages/babel-core/src/gensync-utils/async.ts41const withKind = gensync({COMMENT
LOW…bel-helper-member-expression-to-functions/src/index.ts121 // noop.COMMENT
LOW.github/workflows/release.yml241 run: git push "https://babel-bot:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" :${{ needs.gitCOMMENT
LOW.github/workflows/release.yml261 # - name: Download babel-types docsCOMMENT
LOW.github/workflows/release.yml281 # git push --force "https://babel-bot:${{ secrets.BOT_TOKEN }}@github.com/babel/website.git" update-types-docsCOMMENT
LOW.github/workflows/backport-7x.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"9ad0a9c23bea376db22713d240b1f3ddf12641f32e265bbc54e6e9ced16COMMENT
LOW.github/workflows/backport-7x.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/backport-7x.lock.yml41# - actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1COMMENT
LOWlib/libdom-minimal.d.ts1// Minimal version of lib.dom.d.ts. @babel/standalone needs these typesCOMMENT
Slop Phrases3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMMakefile.js36/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var cn,ln={};function un(){if(cn)reCOMMENT
LOW…/babel-7-8-compat/babel-7-plugins-with-babel-8-core.sh4# NOTE: This will change files in your monorepo, make sure to commit/stageCOMMENT
LOWpackages/babel-parser/src/tokenizer/types.ts224 // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.jsCOMMENT
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHpackages/babel-generator/src/printer.ts692 print(CODE
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWpackages/babel-parser/src/plugins/placeholders.ts110 // NOTE: This function only handles identifiers outside ofCOMMENT
LOWpackages/babel-parser/src/parser/statement.ts623 // NOTE: This method changes the .start location of the class, and thusCOMMENT
LOW…sform-fixture-test-runner/src/source-map-visualizer.ts141 // NOTE: This function has some logic to deal with mappings that cover aCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMMakefile.js36/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var cn,ln={};function un(){if(cn)reCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMscripts/integration-tests/e2e-react-native.sh31# Create a React Native projectCOMMENT
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/babel-parser/src/parser/statement.ts3090 * we need to check if we have a comma after that andCOMMENT
LOW…/babel-plugin-transform-react-jsx/src/create-plugin.ts242 // Current node is within a method, so we need to check if the method is a constructor.COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/integration-tests/utils/local-registry.sh16 # Set registry to local registryCOMMENT