AI Slop Code Risk Monitor

imba/imba

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

🐤 The friendly full-stack language

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for imba/imba, a JavaScript project with 6,515 GitHub stars. SynthScan examined 183,939 lines of code across 624 source files, recording 166 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.0 (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.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
6.5K
Stars
JavaScript
Language
183.9K
Lines of Code
624
Files
166
Pattern Hits
2026-10-31
Scan Date
0.01
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.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 3.2/100 · LOW

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

PR Review Velocity Impact 5.5/100 · LOW

Which changes need focused human review? 166 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 2HIGH 3MEDIUM 5LOW 156

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 166 distinct pattern matches across 8 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 Identifiers118 hits · 103 pts
SeverityFileLineSnippetContext
LOWpackages/imba-monarch/src/monarch/lexer.ts670export function createTokenizationSupport(modeId: string, lexer: monarchCommon.ILexer): ITokenizationSupport {CODE
LOWpackages/imba-monarch/src/monarch/lexer.js8 function MonarchStackElementFactory(maxCacheDepth) {CODE
LOWpackages/imba-monarch/src/monarch/lexer.js156 function MonarchClassicTokensCollector() {CODE
LOWpackages/imba-monarch/src/monarch/lexer.js516export function createTokenizationSupport(modeId, lexer) {CODE
LOWpackages/imba-language-core/test/harness.ts23export function createFixtureLanguageService(CODE
LOWpackages/imba-language-core/test/harness.ts104export function createBareLanguageService(rootDir: string): LanguageService {CODE
LOWpackages/imba-language-core/src/projectCompiler.ts19export function setProjectCompilerEnabled(value: boolean): void {CODE
LOWpackages/imba-language-core/src/projectCompiler.ts102export function getProjectCompilerForFile(fileName: string): ProjectCompiler | null {CODE
LOWpackages/imba-language-core/src/projectCompiler.ts111export function markProjectCompilerFailed(packageDir: string): void {CODE
LOWpackages/imba-language-core/src/plugins/imbaFolding.ts27export function computeIndentFoldingRanges(text: string): { startLine: number; endLine: number }[] {CODE
LOW…ages/imba-language-core/src/plugins/imbaDiagnostics.ts24export function createImbaDiagnosticsPlugin(typescript?: typeof ts): LanguageServicePlugin {CODE
LOW…s/imba-language-core/src/plugins/imbaSemanticTokens.ts25export function createImbaSemanticTokensPlugin(): LanguageServicePlugin {CODE
LOW…/imba-language-core/src/plugins/imbaDocumentSymbols.ts93export function createImbaDocumentSymbolsPlugin(): LanguageServicePlugin {CODE
LOW…imba-language-core/src/plugins/imbaWorkspaceSymbols.ts13export function createImbaWorkspaceSymbolsPlugin(): LanguageServicePlugin {CODE
LOW…s/imba-language-core/src/plugins/typescriptServices.ts333function stripImbaSpecifierEndings(edit: {CODE
LOW…ages/imba-language-core/src/plugins/imbaCompletions.ts38export function createImbaCompletionsPlugin(typescript: typeof ts): LanguageServicePlugin {CODE
LOWpackages/imba-language-core/src/plugins/checkerUtils.ts52export function findGlobalNamespaceExports(CODE
LOWpackages/imba-language-core/src/plugins/checkerUtils.ts91export function findModuleExportsByFileSuffix(CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8547 function isExternalModuleNameRelative(moduleName: string): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8556 function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8558 function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8559 function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8564 function textChangeRangeIsUnchanged(range: TextChangeRange): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8574 function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8576 function isParameterPropertyDeclaration(node: Node, parent: Node): node is ParameterPropertyDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8579 function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8586 function validateLocaleAndSetLanguage(locale: string, sys: {CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8741 function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaratiCODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8742 function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8750 function skipPartiallyEmittedExpressions(node: Expression): Expression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8751 function skipPartiallyEmittedExpressions(node: Node): Node;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8753 function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8774 function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8775 function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8776 function isTypeOnlyImportDeclaration(node: Node): node is TypeOnlyImportDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8777 function isTypeOnlyExportDeclaration(node: Node): node is TypeOnlyExportDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8778 function isTypeOnlyImportOrExportDeclaration(node: Node): node is TypeOnlyAliasDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8780 function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8789 function isAutoAccessorPropertyDeclaration(node: Node): node is AutoAccessorPropertyDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8793 function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8800 function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8802 function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8824 function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8828 function isJSDocCommentContainingNode(node: Node): boolean;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8832 function hasOnlyExpressionInitializer(node: Node): node is HasExpressionInitializer;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8973 function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8980 function isClassStaticBlockDeclaration(node: Node): node is ClassStaticBlockDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8984 function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8985 function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts8986 function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9009 function isTemplateLiteralTypeSpan(node: Node): node is TemplateLiteralTypeSpan;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9010 function isTemplateLiteralTypeNode(node: Node): node is TemplateLiteralTypeNode;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9015 function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9016 function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9017 function isElementAccessExpression(node: Node): node is ElementAccessExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9020 function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9021 function isTypeAssertionExpression(node: Node): node is TypeAssertion;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9022 function isParenthesizedExpression(node: Node): node is ParenthesizedExpression;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9068 function isVariableDeclarationList(node: Node): node is VariableDeclarationList;CODE
LOW⚡packages/typescript-imba-plugin/src/ts.d.ts9077 function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration;CODE
58 more matches not shown…
Over-Commented Block34 hits · 34 pts
SeverityFileLineSnippetContext
LOWpackages/zed-imba/src/imba.rs1use zed_extension_api::{self as zed, Result};COMMENT
LOW…ckages/typescript-imba-plugin/typings/imba.extras.d.ts1/// <reference path="./imba.events.d.ts" />COMMENT
LOWpackages/imba/typings/imba.d.ts81 ease: any;COMMENT
LOWpackages/imba/polyfills/crypto/index.js61COMMENT
LOW…polyfills/crypto/esm/lib/elliptic/lib/curve/edwards.js161 var f = g.redSub(c);COMMENT
LOW…polyfills/crypto/esm/lib/elliptic/lib/curve/edwards.js261 // H = B + ACOMMENT
LOW…a/polyfills/crypto/esm/lib/elliptic/lib/curve/short.js641 if (this.zOne) {COMMENT
LOWpackages/imba/polyfills/crypto/esm/lib/hash/hash/sha.js1export {default as sha1} from "./sha/1";COMMENT
LOW…ls/crypto/esm/lib/string_decoder/lib/string_decoder.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/util/index.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/string_decoder/index.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/path/path2.js1// 'path' module extracted from Node.js v8.11.1 (only the posix part)COMMENT
LOWpackages/imba/polyfills/path/index.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/stream/readable.js281 //COMMENT
LOWpackages/imba/polyfills/stream/writable.js61 // encoding is 'binary' so we have to make this configurable.COMMENT
LOWpackages/imba/polyfills/stream/transform.js1// a transform stream is a readable/writable stream where you doCOMMENT
LOWpackages/imba/polyfills/stream/transform.js21// _read(n) is called, it transforms the queued up data, calling theCOMMENT
LOWpackages/imba/polyfills/assert/index.js41// Originally from narwhal.js (http://narwhaljs.org)COMMENT
LOWpackages/imba/polyfills/assert/index.js281 // If both values are instances of typed arrays, wrap their underlyingCOMMENT
LOWpackages/imba/polyfills/zlib/index.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/zlib/zlib-lib/inflate.js1381 if (copy > state.whave) {COMMENT
LOWpackages/imba/polyfills/zlib/zlib-lib/deflate.js321function fill_window(s) {COMMENT
LOWpackages/imba/polyfills/zlib/zlib-lib/deflate.js441 // /* Previous high water mark below current data -- zero WIN_INITCOMMENT
LOWpackages/imba/polyfills/zlib/zlib-lib/inffast.js181COMMENT
LOWpackages/imba/polyfills/zlib/zlib-lib/trees.js1161 }COMMENT
LOWpackages/imba/polyfills/url/index.js1// TODO Just use the native URL classCOMMENT
LOWpackages/imba/polyfills/url/index.js181 var i, hec, l, p;COMMENT
LOWpackages/imba/polyfills/querystring/index.js1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/imba/polyfills/buffer/index.js821};COMMENT
LOWapps/imba.io/content/docs/usage.md1# UsageCOMMENT
LOWapps/imba.io/src/util/mousetrap.js561 // if a sequence name is not specified, but this is a sequence atCOMMENT
LOWapps/imba.io/src/util/mousetrap.js641 maxLevel = Math.max(maxLevel, callbacks[i].level);COMMENT
LOWapps/imba.io/src/util/mousetrap.js681COMMENT
LOWapps/imba.io/src/util/mousetrap.js801 // weird race condition if a sequence ends with the keyCOMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICAL…ages/imba/polyfills/crypto/esm/lib/parse-asn1/index.js91 var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);CODE
CRITICAL…ages/imba/polyfills/crypto/esm/lib/parse-asn1/index.js92 var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHapps/imba.io/content/reference.md0first level is ignored this is indented not indentedSTRING
HIGHapps/imba.io/content/docs/basic-syntax.md0first level is ignored this is indented not indentedSTRING
HIGHapps/imba.io/content/docs/literals.md0first level is ignored this is indented not indentedSTRING
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUM⚡packages/imba/scripts/bootstrap.compiler.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amCODE
MEDIUM⚡packages/imba/scripts/bootstrap.compiler.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amCODE
MEDIUM⚡packages/imba/scripts/bootstrap.compiler.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amCODE
MEDIUMpackages/vscode-imba/syntaxes/imba.tmLanguage.json836 "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/imba-language-core/PLAN.md318### 2026-06-12 — F8: Zed extension scaffold (the LSP dividend) [superseded by v2 above]COMMENT
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…es/imba-language-core/test/m2-attr-completions.test.ts30 expect(labels).toContain('placeholder');CODE
LOWapps/imba.io/content/docs/data-binding.md221let people = [{name: 'Jane Doe', interests: ['Imba']}]CODE
LOWapps/imba.io/public/imdb.js745 "character": "John Doe"CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…ls/crypto/esm/lib/string_decoder/lib/string_decoder.js248// number of bytes available, we need to check if we end on a leading/highCOMMENT