AI Slop Code Risk Monitor

neoclide/coc.nvim

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

Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.

0.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for neoclide/coc.nvim, a TypeScript project with 25,144 GitHub stars. SynthScan examined 178,348 lines of code across 518 source files, recording 73 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 0.5 (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.5
Adjusted Signal
0.5
Raw Pattern Score
100%
Time Factor
2026-10-26
Last Push
25.1K
Stars
TypeScript
Language
178.3K
Lines of Code
518
Files
73
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 1.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 1.6/100 · LOW

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

PR Review Velocity Impact 2.5/100 · LOW

Which changes need focused human review? 73 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 1HIGH 2MEDIUM 0LOW 70

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 73 distinct pattern matches across 9 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 Identifiers55 hits · 52 pts
SeverityFileLineSnippetContext
LOW⚡typings/index.d.ts8860 export function registerInlayHintsProvider(selector: DocumentSelector, provider: InlayHintsProvider): DisposableCODE
LOW⚡typings/index.d.ts8869 export function registerTypeHierarchyProvider(selector: DocumentSelector, provider: TypeHierarchyProvider): DisposabCODE
LOW⚡typings/index.d.ts8878 export function registerInlineCompletionItemProvider(selector: DocumentSelector, provider: InlineCompletionItemProviCODE
LOWtypings/index.d.ts8498 export function createDiagnosticCollection(name?: string): DiagnosticCollectionCODE
LOWtypings/index.d.ts8512 export function registerOnTypeFormattingEditProvider(selector: DocumentSelector, provider: OnTypeFormattingEditProviCODE
LOWtypings/index.d.ts8537 export function registerCompletionItemProvider(name: string, shortcut: string, selector: DocumentSelector | null, prCODE
LOWtypings/index.d.ts8552 export function registerCodeActionProvider(selector: DocumentSelector, provider: CodeActionProvider, clientId: strinCODE
LOWtypings/index.d.ts8578 export function registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): DisposCODE
LOWtypings/index.d.ts8592 export function registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, triggerChCODE
LOWtypings/index.d.ts8605 export function registerDocumentSymbolProvider(selector: DocumentSelector, provider: DocumentSymbolProvider, metadatCODE
LOWtypings/index.d.ts8620 export function registerFoldingRangeProvider(selector: DocumentSelector, provider: FoldingRangeProvider): DisposableCODE
LOWtypings/index.d.ts8633 export function registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): CODE
LOWtypings/index.d.ts8659 export function registerDocumentLinkProvider(selector: DocumentSelector, provider: DocumentLinkProvider): DisposableCODE
LOWtypings/index.d.ts8672 export function registerDocumentColorProvider(selector: DocumentSelector, provider: DocumentColorProvider): DisposabCODE
LOWtypings/index.d.ts8685 export function registerDefinitionProvider(selector: DocumentSelector, provider: DefinitionProvider): DisposableCODE
LOWtypings/index.d.ts8698 export function registerDeclarationProvider(selector: DocumentSelector, provider: DeclarationProvider): DisposableCODE
LOWtypings/index.d.ts8712 export function registerTypeDefinitionProvider(selector: DocumentSelector, provider: TypeDefinitionProvider): DisposCODE
LOWtypings/index.d.ts8725 export function registerImplementationProvider(selector: DocumentSelector, provider: ImplementationProvider): DisposCODE
LOWtypings/index.d.ts8738 export function registerReferencesProvider(selector: DocumentSelector, provider: ReferenceProvider): DisposableCODE
LOWtypings/index.d.ts8763 export function registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider): DisposableCODE
LOWtypings/index.d.ts8776 export function registerDocumentFormatProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider,CODE
LOWtypings/index.d.ts8793 export function registerDocumentRangeFormatProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEdiCODE
LOWtypings/index.d.ts8802 export function registerCallHierarchyProvider(selector: DocumentSelector, provider: CallHierarchyProvider): DisposabCODE
LOWtypings/index.d.ts8815 export function registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensPCODE
LOWtypings/index.d.ts8834 export function registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanCODE
LOWtypings/index.d.ts8847 export function registerLinkedEditingRangeProvider(selector: DocumentSelector, provider: LinkedEditingRangeProvider)CODE
LOWtypings/index.d.ts10791 export function registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): DisposabCODE
LOWtypings/index.d.ts10907 export function createGitFileSystemWatcher(gitDir: string): FileSystemWatcherCODE
LOWsrc/services.ts416export function documentSelectorToLanguageIds(documentSelector: DocumentSelector): string[] {CODE
LOWsrc/configuration/util.ts77export function overrideIdentifiersFromKey(key: string): string[] {CODE
LOWsrc/configuration/util.ts92function getOrSet<K, V>(map: Map<K, V>, key: K, value: V): V {CODE
LOWsrc/configuration/util.ts260export function compareConfigurationContents(to: { keys: string[]; contents: any } | undefined, from: { keys: string[]; CODE
LOWsrc/extension/manager.ts790export function toWorkspaceContainsPatterns(activationEvents: string[]): string[] {CODE
LOWsrc/extension/esm.ts366export function createCommonJSBridgeModule(runtime: ExtensionRuntime, filename: string): Promise<SyntheticModule> {CODE
LOWsrc/language-client/index.ts275 function pipeStdoutToLogOutputChannel(input: stream.Readable, outputChannel: OutputChannel) {CODE
LOWsrc/language-client/index.ts284 function pipeStderrToLogOutputChannel(input: stream.Readable, outputChannel: OutputChannel) {CODE
LOWsrc/language-client/index.ts660export function handleChildProcessStartError(childProcess: ChildProcess, message: string) {CODE
LOWsrc/language-client/utils/codeConverter.ts80 function asVersionedTextDocumentIdentifier(textDocument: TextDocument): protocol.VersionedTextDocumentIdentifier {CODE
LOWsrc/language-client/utils/codeConverter.ts93 function asChangeTextDocumentParams(event: TextDocumentChangeEvent): protocol.DidChangeTextDocumentParams {CODE
LOWsrc/language-client/utils/codeConverter.ts105 function asFullChangeTextDocumentParams(textDocument: TextDocument): protocol.DidChangeTextDocumentParams {CODE
LOWsrc/language-client/utils/codeConverter.ts112 function asCloseTextDocumentParams(textDocument: TextDocument): protocol.DidCloseTextDocumentParams {CODE
LOWsrc/language-client/utils/codeConverter.ts128 function asWillSaveTextDocumentParams(event: TextDocumentWillSaveEvent): protocol.WillSaveTextDocumentParams {CODE
LOWsrc/language-client/utils/codeConverter.ts172 function asTextDocumentPositionParams(textDocument: TextDocument, position: Position): protocol.TextDocumentPositionPaCODE
LOWsrc/language-client/utils/index.ts174export function createClientPipeTransport(pipeName: string, encoding: MessageBufferEncoding = 'utf-8'): Promise<PipeTranCODE
LOWsrc/language-client/utils/index.ts209export function createClientSocketTransport(port: number, encoding: MessageBufferEncoding = 'utf-8'): Promise<SocketTranCODE
LOWsrc/util/filter.ts61export function fuzzyScoreGracefulAggressive(pattern: string, lowPattern: string, patternPos: number, word: string, lowWCODE
LOWsrc/util/filter.ts69function fuzzyScoreWithPermutations(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: striCODE
LOWsrc/mcp/protocol.ts21export function supportsStructuredContent(protocolVersion: string | undefined): boolean {CODE
LOWsrc/__tests__/ultisnips.py288 def is_buffer_changed_outside(self):CODE
LOWsrc/__tests__/handler/features.test.ts55function registerHighlightProvider(): void {CODE
LOWsrc/__tests__/handler/features.test.ts74async function registerLinkedEditingProvider(content: string, position: Position): Promise<void> {CODE
LOWsrc/__tests__/core/files.test.ts1471 async function assertTargetCreatedWhileWaiting(opts: { ignoreIfExists?: boolean }, shouldReject: boolean): Promise<vCODE
LOWsrc/__tests__/client/features.test.ts66 function isFullDocumentDiagnosticReport(value: DocumentDiagnosticReport): asserts value is FullDocumentDiagnosticReporCODE
LOWsrc/__tests__/client/features.test.ts924 async function ensureNotificationReceived(type: string, params: any) {CODE
LOW…_tests__/client/server/inProcessTestDocumentsServer.ts33export function createInProcessTestDocumentsServer(input: NodeJS.ReadableStream, output: NodeJS.WritableStream): void {CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALsrc/__tests__/client/server/testServer.js39 assert.ok(params.capabilities.textDocument.completion.completionList.itemDefaults.includes('data'))CODE
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOWsrc/core/dialogs.ts132 quickpick.placeholder = options.placeHolder ?? options['placeholder']CODE
LOWsrc/__tests__/completion/features.test.ts970 info: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore etCODE
LOWsrc/__tests__/completion/features.test.ts970 info: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore etCODE
LOWsrc/__tests__/completion/features.test.ts1115 info: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore etCODE
LOWsrc/__tests__/completion/features.test.ts1115 info: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore etCODE
LOWsrc/__tests__/client/dynamic.test.ts116 await client.sendRequest('setPrepareResponse', { range: Range.create(0, 0, 0, 3), placeholder: 'placeholder' })CODE
LOWsrc/__tests__/client/dynamic.test.ts118 assert.strictEqual((res as any).placeholder, 'placeholder')CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/__tests__/ultisnips.py58 args = r'[{"start":{"line":%d,"character":%d},"end":{"line":%d,"character":%d}}, "%s", v:null, {}]' % (line, chaCODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/__tests__/ultisnips.py724except vim.error:CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWdoc/coc-mcp-example.toml1# Example `~/.codex/config.toml` section for the coc.nvim MCP server.COMMENT
LOWdoc/coc-mcp-example.toml21# instance matches:COMMENT
LOWsrc/util/ansiparse.ts121 // \033\[33mTextCOMMENT
LOWsrc/mcp/index.ts281 frameMaxBytes: config.get<number>('frameMaxBytes', 16 * 1024 * 1024),COMMENT
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/__tests__/ultisnips.py2CODE
LOWsrc/__tests__/ultisnips.py130CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtypings/index.d.ts15423 * Create language client by name and options, don't forget to register language clientCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/language-client/client.ts583 // CancellationToken is an interface, so we need to check if the first param complies to itCOMMENT