AI Slop Code Risk Monitor

dotnet/command-line-api

SlopCodeMonitor badge for dotnet/command-line-api Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Command line parsing, invocation, and rendering of terminal output.

3.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for dotnet/command-line-api, a C# project with 3,678 GitHub stars. SynthScan examined 40,877 lines of code across 344 source files, recording 105 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.5
Adjusted Signal
3.5
Raw Pattern Score
100%
Time Factor
2026-11-01
Last Push
3.7K
Stars
C#
Language
40.9K
Lines of Code
344
Files
105
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 12.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 4.1/100 · LOW

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

PR Review Velocity Impact 14.4/100 · LOW

Which changes need focused human review? 105 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 11LOW 94

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 105 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.

Over-Commented Block70 hits · 70 pts
SeverityFileLineSnippetContext
LOWeng/common/SetupNugetSources.sh1#!/usr/bin/env bashCOMMENT
LOWeng/common/vmr-sync.sh1#!/bin/bashCOMMENT
LOWeng/common/vmr-sync.sh21###COMMENT
LOWeng/common/native/init-distro-rid.sh1#!/bin/shCOMMENT
LOWeng/common/native/init-distro-rid.sh61COMMENT
LOW…common/templates-official/variables/pool-providers.yml1# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc poolCOMMENT
LOWeng/common/templates/vmr-build-pr.yml1# This pipeline is used for running the VMR verification of the PR changes in repo-level PRs.COMMENT
LOWeng/common/templates/variables/pool-providers.yml1# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc poolCOMMENT
LOWeng/common/core-templates/stages/renovate.yml1# --------------------------------------------------------------------------------------COMMENT
LOW…g/common/core-templates/steps/get-github-app-token.yml1# Mints a short-lived GitHub App installation access token by signing a JWTCOMMENT
LOWeng/common/core-templates/steps/install-microbuild.yml1parameters:COMMENT
LOWeng/common/core-templates/job/renovate.yml1# --------------------------------------------------------------------------------------COMMENT
LOWeng/common/core-templates/job/source-build.yml1parameters:COMMENT
LOWeng/common/core-templates/job/source-build.yml21 # published by source-build.COMMENT
LOWeng/common/core-templates/job/helix-job-monitor.yml81# well (--use-fully-qualified-test-name). Opt-in because it changes AzDO test identity and display;COMMENT
LOWsrc/System.CommandLine/RootCommand.cs61 public IList<Directive> Directives { get; }COMMENT
LOWsrc/System.CommandLine/LocalizationResources.cs81 /// Interpolates values into a localized string similar to Argument &apos;{0}&apos; not recognized. Must be onCOMMENT
LOWsrc/System.CommandLine/LocalizationResources.cs141 /// Interpolates values into a localized string similar to Arguments:.COMMENT
LOWsrc/System.CommandLine/LocalizationResources.cs201 /// Interpolates values into a localized string similar to Unhandled exception: .COMMENT
LOWsrc/System.CommandLine/Argument.cs41COMMENT
LOWsrc/System.CommandLine/Argument.cs61COMMENT
LOWsrc/System.CommandLine/Argument.cs121 }COMMENT
LOWsrc/System.CommandLine/InvocationConfiguration.cs21 /// <value>The default is two seconds.</value>COMMENT
LOWsrc/System.CommandLine/ParseResult.cs81 }COMMENT
LOWsrc/System.CommandLine/ParseResult.cs121 /// </summary>COMMENT
LOWsrc/System.CommandLine/ParseResult.cs141 /// <exception cref="ArgumentException">No symbol was defined for the given name for the parsed command.</exceptCOMMENT
LOWsrc/System.CommandLine/ParseResult.cs161 public T GetRequiredValue<T>(Option<T> option)COMMENT
LOWsrc/System.CommandLine/ParseResult.cs181 /// <param name="argument">The argument for which to find a result.</param>COMMENT
LOWsrc/System.CommandLine/ParseResult.cs201COMMENT
LOWsrc/System.CommandLine/Command.cs81 internal bool HasSubcommands => _subcommands is not null && _subcommands.Count > 0;COMMENT
LOWsrc/System.CommandLine/Command.cs221COMMENT
LOWsrc/System.CommandLine/Command.cs241 [DebuggerStepThrough]COMMENT
LOWsrc/System.CommandLine/Option.cs41 public bool HasDefaultValue => Argument.HasDefaultValue;COMMENT
LOWsrc/System.CommandLine/Option.cs81 /// Gets the <see cref="Type" /> that the option's parsed tokens will be converted to.COMMENT
LOWsrc/System.CommandLine/Option.cs101 /// If set to <see langword="true"/>, the following command line is valid for passing multiple arguments:COMMENT
LOWsrc/System.CommandLine/ParserConfiguration.cs1// Copyright (c) .NET Foundation and contributors. All rights reserved.COMMENT
LOWsrc/System.CommandLine/ParserConfiguration.cs21 /// &gt; myapp -a -b -cCOMMENT
LOWsrc/System.CommandLine/ArgumentArity.cs121 /// An arity that may have one value, but no more than one.COMMENT
LOWsrc/System.CommandLine/Directive.cs1// Copyright (c) .NET Foundation and contributors. All rights reserved.COMMENT
LOWsrc/System.CommandLine/Invocation/CommandLineAction.cs21 /// Indicates that the action clears any parse errors associated with symbols other than one that owns the <see crefCOMMENT
LOW…CommandLine/Invocation/SynchronousCommandLineAction.cs1// Copyright (c) .NET Foundation and contributors. All rights reserved.COMMENT
LOWsrc/System.CommandLine/Completions/CompletionItem.cs1// Copyright (c) .NET Foundation and contributors. All rights reserved.COMMENT
LOWsrc/System.CommandLine/Completions/CompletionItem.cs41COMMENT
LOW…cs.CodeAnalysis/DynamicallyAccessedMembersAttribute.cs1// adapted from: https://github.com/dotnet/aspnetcore/blob/404d81767784552b0a148cb8c437332ebe726ae9/src/Shared/CodeAnalCOMMENT
LOW…cs.CodeAnalysis/DynamicallyAccessedMembersAttribute.cs21 ///COMMENT
LOW…nostics.CodeAnalysis/DynamicallyAccessedMemberTypes.cs1// adapted from: https://github.com/dotnet/aspnetcore/blob/404d81767784552b0a148cb8c437332ebe726ae9/src/Shared/CodeAnalCOMMENT
LOW…nostics.CodeAnalysis/DynamicallyAccessedMemberTypes.cs21 None = 0,COMMENT
LOW…nostics.CodeAnalysis/DynamicallyAccessedMemberTypes.cs41 PublicMethods = 0x0008,COMMENT
LOW…nostics.CodeAnalysis/DynamicallyAccessedMemberTypes.cs61 PublicNestedTypes = 0x0080,COMMENT
LOW….CodeAnalysis/UnconditionalSuppressMessageAttribute.cs1// adapted from: https://github.com/dotnet/runtime/blob/a5159b1a8840632ad34cf59c5aaf77040cb6ceda/src/libraries/System.PCOMMENT
LOW….CodeAnalysis/UnconditionalSuppressMessageAttribute.cs41 /// Gets the category identifying the classification of the attribute.COMMENT
LOW….CodeAnalysis/UnconditionalSuppressMessageAttribute.cs61 /// <remarks>COMMENT
LOW….CodeAnalysis/UnconditionalSuppressMessageAttribute.cs81 /// <remarks>COMMENT
LOW…m.CommandLine/System.Runtime.CompilerServices/Range.cs1// https://github.com/dotnet/runtime/blob/419e949d258ecee4c40a460fb09c66d974229623/src/libraries/System.Private.CoreLibCOMMENT
LOW…m.CommandLine/System.Runtime.CompilerServices/Range.cs101 /// <summary>Gets a value that indicates whether the index is from the start or the end.</summary>COMMENT
LOW…m.CommandLine/System.Runtime.CompilerServices/Range.cs161 /// int[] someArray = new int[5] { 1, 2, 3, 4, 5 };COMMENT
LOWsrc/System.CommandLine/Parsing/SymbolResult.cs61 /// </summary>COMMENT
LOWsrc/System.CommandLine/Parsing/SymbolResult.cs81 /// </summary>COMMENT
LOWsrc/System.CommandLine/Parsing/Token.cs61 public override string ToString() => Value;COMMENT
LOWsrc/System.CommandLine/Parsing/TokenType.cs1// Copyright (c) .NET Foundation and contributors. All rights reserved.COMMENT
10 more matches not shown…
Decorative Section Separators6 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUM⚡eng/common/core-templates/stages/renovate.yml1# --------------------------------------------------------------------------------------COMMENT
MEDIUM⚡eng/common/core-templates/stages/renovate.yml3# --------------------------------------------------------------------------------------COMMENT
MEDIUM⚡eng/common/core-templates/stages/renovate.yml9# --------------------------------------------------------------------------------------COMMENT
MEDIUM⚡eng/common/core-templates/job/renovate.yml1# --------------------------------------------------------------------------------------COMMENT
MEDIUM⚡eng/common/core-templates/job/renovate.yml3# --------------------------------------------------------------------------------------COMMENT
MEDIUM⚡eng/common/core-templates/job/renovate.yml17# --------------------------------------------------------------------------------------COMMENT
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippetContext
LOWeng/common/tools.sh334 # Check if the script is older than 30 days using timestamp fileCOMMENT
LOWeng/common/tools.sh443 # Check if the toolset has already been extractedCOMMENT
LOWeng/common/SetupNugetSources.sh66 # Check if disabledPackageSources section existsCOMMENT
LOWeng/common/SetupNugetSources.sh72 # Check if this source name is disabledCOMMENT
LOWeng/common/SetupNugetSources.sh92 # Check if source already existsCOMMENT
LOWeng/common/SetupNugetSources.sh122 # Check if disabledPackageSources section existsCOMMENT
LOWeng/common/SetupNugetSources.sh192 # Check if there is no existing credential for this FeedNameCOMMENT
LOWeng/common/core-templates/steps/source-build.yml31 # Check if AzDO substitutes in a build config from a variable, and use it if so.COMMENT
LOWeng/common/core-templates/steps/install-microbuild.yml64 # Check if ESRP is disabled while SignType is realCOMMENT
Example Usage Blocks4 hits · 7 pts
SeverityFileLineSnippetContext
LOWeng/common/native/install-dependencies.sh7# Usage:COMMENT
LOW…common/templates-official/variables/pool-providers.yml12# How to use:COMMENT
LOWeng/common/templates/variables/pool-providers.yml12# How to use:COMMENT
LOW⚡eng/common/core-templates/job/renovate.yml11# Usage:COMMENT
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOWeng/common/cross/install-debs.py20CODE
LOWeng/common/cross/install-debs.py196CODE
LOWeng/common/cross/install-debs.py221CODE
LOWeng/common/cross/install-debs.py259CODE
LOWeng/common/cross/install-debs.py293CODE
LOWeng/common/cross/install-debs.py348CODE
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMeng/common/cross/build-rootfs.sh687 # Create the symlink in the same directoryCOMMENT
MEDIUMeng/common/core-templates/job/helix-job-monitor.yml170 # Create a minimal NuGet.config that only references the local nupkg directory.COMMENT
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMeng/common/cross/install-debs.py126 # keyboxd, which makes it robust on hosts running GnuPG 2.4+ (e.g. AzureCOMMENT
LOW…ommon/core-templates/steps/enable-internal-sources.yml34 # If running on dnceng (internal project), just use the default behavior for NuGetAuthenticate.COMMENT
Excessive Try-Catch Wrapping2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMeng/common/cross/install-debs.py42 print(f"Error downloading {url}: {type(e).__name__} - {e}. Retrying...")CODE
MEDIUMeng/common/cross/install-debs.py206 print(f"Error: Package '{current}' was not found in the available packages.")CODE
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippetContext
LOWeng/common/cross/install-debs.py49async def download_deb_files_parallel(mirror, packages, tmp_dir):CODE
LOWeng/common/cross/install-debs.py65async def download_package_index_parallel(mirror, arch, suites, check_sig, keyring):CODE
LOWeng/common/cross/install-debs.py337def _rootfs_extraction_filter(member, dest_path):CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWeng/common/cross/install-debs.py18CODE