AI Slop Code Risk Monitor

Velocidex/velociraptor

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

Digging Deeper....

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Velocidex/velociraptor, a Go project with 4,400 GitHub stars. SynthScan examined 443,640 lines of code across 2644 source files, recording 375 pattern matches distributed across 16 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-31
Last Push
4.4K
Stars
Go
Language
443.6K
Lines of Code
2.6K
Files
375
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 4.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 0.3/100 · LOW

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

PR Review Velocity Impact 5.5/100 · LOW

Which changes need focused human review? 375 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 3HIGH 1MEDIUM 47LOW 324

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 375 distinct pattern matches across 16 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 Block281 hits · 228 pts
SeverityFileLineSnippetContext
LOWreporting/doc.go1package reportingCOMMENT
LOWreporting/doc.go21COMMENT
LOWcrypto/root.go21// 1. Self signed mode - means that Velociraptor will only trust it'sCOMMENT
LOWcrypto/server/manager.go41 common_name := csr.Subject.CommonNameCOMMENT
LOWartifacts/definitions/Demo/Plugins/Fifo.yaml61 // This is the fifo which holds the last 5 failed logon attemptsCOMMENT
LOWvql/tools/packaging/templates.go41#!/bin/bashCOMMENT
LOWvql/golang/profile.pb.go1// Copyright 2016 Google Inc. All Rights Reserved.COMMENT
LOWvql/golang/profile.pb.go21// set with their default value.COMMENT
LOWvql/golang/profile.pb.go61COMMENT
LOWvql/golang/profile.pb.go81 Sample []*Sample `protobuf:"bytes,2,rep,name=sample,proto3" json:"sample,omitempty"`COMMENT
LOWvql/golang/profile.pb.go301 return 0COMMENT
LOWvql/golang/profile.pb.go601COMMENT
LOWvql/networking/tls.go121 // Short circuit if the thumbprint matchesCOMMENT
LOWvql/materializer/materialize.go181COMMENT
LOWvql/materializer/materialize.go201// LET X <= SELECT ...COMMENT
LOWvql/server/azure_monitor.go81const azureMonitorDefaultMaxBuffer = uint64(900 * 1024)COMMENT
LOWvql/server/elastic.go1// This module addes a dependency on go-elasticsearch which turns out to beCOMMENT
LOWvql/server/downloads/downloads.go441 }COMMENT
LOWvql/server/downloads/downloads.go461COMMENT
LOWvql/server/downloads/downloads.go501 //Remove the prefix in the file store where the filesCOMMENT
LOWvql/server/downloads/downloads.go521 // "Windows",COMMENT
LOWvql/server/flows/results.go61// 3. If an event Artifact is specified we read from the monitoringCOMMENT
LOWvql/server/flows/results.go101 // The source plugin works by providing direct arguments **and**COMMENT
LOWvql/lsp/diagnostics.go41// It reports:COMMENT
LOWvql/sigma/evaluator/modifiers/modifiers.go21// set. The modifier may be used to expand the input set (e.g. theCOMMENT
LOWvql/common/yarax.go321COMMENT
LOWvql/psutils/host_darwin_cgo.go1//go:build darwin && cgoCOMMENT
LOWvql/readers/paged.go41 "www.velocidex.com/golang/velociraptor/accessors"COMMENT
LOWvql/windows/win32_windows_32.go361 PagefileUsage uintptrCOMMENT
LOWvql/windows/win32_windows.go381//sys LookupPrivilegeValue(lpSystemName uintptr, lpName uintptr, out uintptr) (err error) = Advapi32.LookupPrivilegeValuCOMMENT
LOWvql/windows/wmi/events.c1// +build windowsCOMMENT
LOWvql/remapping/install.go21// - type: mountCOMMENT
LOWvql/remapping/install.go41// permissions:COMMENT
LOWvql/protocols/lazy.go1package protocolsCOMMENT
LOWbin/offline.go61# credentialsSecret: ""COMMENT
LOWbin/offline.go81#TargetArgs:COMMENT
LOWbin/offline.go121# Where we actually write the collection to. You can specify this as aCOMMENT
LOWbin/vql.go301 if strings.HasPrefix(item.Doc, "Unimplemented") {COMMENT
LOWbin/debian.go1//go:build !aixCOMMENT
LOWbin/lsp.go201const maxWireLogPayload = 4096COMMENT
LOWconfig/default.yaml1###<Begin Embedded Config>COMMENT
LOWconfig/default.yaml21#############################################################################COMMENT
LOWconfig/default.yaml41#############################################################################COMMENT
LOWconfig/default.yaml61#############################################################################COMMENT
LOWconfig/default.yaml81#############################################################################COMMENT
LOWconfig/default.yaml101#############################################################################COMMENT
LOWconfig/default.yaml121#############################################################################COMMENT
LOWconfig/default.yaml141#############################################################################COMMENT
LOWconfig/default.yaml161#############################################################################COMMENT
LOWconfig/default.yaml181#############################################################################COMMENT
LOWconfig/default.yaml201#############################################################################COMMENT
LOWconfig/default.yaml221#############################################################################COMMENT
LOWconfig/default.yaml241#############################################################################COMMENT
LOWconfig/default.yaml261#############################################################################COMMENT
LOWconfig/default.yaml281#############################################################################COMMENT
LOWconfig/default.yaml301#############################################################################COMMENT
LOWconfig/default.yaml321#############################################################################COMMENT
LOWconfig/default.yaml341#############################################################################COMMENT
LOWconfig/default.yaml361#############################################################################COMMENT
LOWconfig/default.yaml381#############################################################################COMMENT
221 more matches not shown…
Self-Referential Comments28 hits · 84 pts
SeverityFileLineSnippetContext
MEDIUMartifacts/testdata/server/testcases/index.in.yaml13 # Create the index.COMMENT
MEDIUMartifacts/testdata/server/testcases/clients.in.yaml5 # Create a new clientCOMMENT
MEDIUMartifacts/testdata/server/testcases/execve.in.yaml16# Define a secret that allows calling the velociraptor binary onlyCOMMENT
MEDIUMartifacts/testdata/server/testcases/execve.out.yaml19# Define a secret that allows calling the velociraptor binary onlyCOMMENT
MEDIUMartifacts/testdata/server/testcases/secrets.out.yaml1# Define a HTTP secretCOMMENT
MEDIUMartifacts/testdata/server/testcases/secrets.out.yaml58# Create a suborgCOMMENT
MEDIUMartifacts/testdata/server/testcases/collections.in.yaml45 # This file contains a complex filename with illegal characters. WeCOMMENT
MEDIUMartifacts/testdata/server/testcases/users.in.yaml22 # Create a new orgCOMMENT
MEDIUM…estdata/server/testcases/required_permissions.out.yaml1# Create a reader user with the collect_server permission - they areCOMMENT
MEDIUM…facts/testdata/server/testcases/user_messages.out.yaml1# Create a new user to play withCOMMENT
MEDIUM…tifacts/testdata/server/testcases/collections.out.yaml33# This file contains a complex filename with illegal characters. WeCOMMENT
MEDIUMartifacts/testdata/server/testcases/secrets.in.yaml2# Define a HTTP secretCOMMENT
MEDIUMartifacts/testdata/server/testcases/secrets.in.yaml28# Create a suborgCOMMENT
MEDIUM…facts/testdata/server/testcases/util_sendmail.out.yaml168# Create a boundary for the main multipart in order to distinguish from theCOMMENT
MEDIUM…testdata/server/testcases/required_permissions.in.yaml16 # Create a reader user with the collect_server permission - they areCOMMENT
MEDIUMartifacts/testdata/server/testcases/reformat.in.yaml1# This file contains the same tests that are in services/repository/reformat_test.goCOMMENT
MEDIUMartifacts/testdata/server/testcases/csv.in.yaml28 # Create a pipe for pre-processing the file's lines - replace dateCOMMENT
MEDIUM…ifacts/testdata/server/testcases/user_messages.in.yaml2# Create a new user to play withCOMMENT
MEDIUMartifacts/testdata/server/testcases/csv.out.yaml135# Create a pipe for pre-processing the file's lines - replace dateCOMMENT
MEDIUMartifacts/testdata/server/testcases/index.out.yaml4# Create the index.COMMENT
MEDIUM…ifacts/testdata/server/testcases/util_sendmail.in.yaml60 # Create a boundary for the main multipart in order to distinguish from theCOMMENT
MEDIUMartifacts/testdata/server/testcases/clients.out.yaml1# Create a new clientCOMMENT
MEDIUMartifacts/testdata/server/testcases/users.out.yaml91# Create a new orgCOMMENT
MEDIUMvql/tools/s3_upload_test.go36 # Create the velociraptor bucketCOMMENT
MEDIUMdocs/references/vql.yaml5559 ### Creating a link to a new collectionCOMMENT
MEDIUM.github/workflows/windows.yml69 # Creating a second service - in the end we haveCOMMENT
MEDIUM.github/workflows/windows.yml101 # Create a second VSS right before testing - in most cases theCOMMENT
MEDIUMservices/notebook/initial.go4# Creating an initial notebookCOMMENT
Hallucination Indicators3 hits · 45 pts
SeverityFileLineSnippetContext
CRITICAL⚡actions/vql_test.go83 VQL: "SELECT * FROM Artifact.Custom.Foo.Bar.Baz.A()",CODE
CRITICAL⚡actions/vql_test.go91 Query: "SELECT * FROM Artifact.Custom.Foo.Bar.Baz.B()",CODE
CRITICAL⚡actions/vql_test.go99 Query: "SELECT * FROM Artifact.Custom.Foo.Bar.Baz.C()",CODE
Slop Phrases8 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMartifacts/definitions/Windows/Sigma/EventLogs.yaml6 NOTE: This is a very simple artifact for demonstration purposesCODE
LOWtools/fuse/accessors.go31 logger.Info("Fuse: Exiting! Don't forget to unmount the filesystem")CODE
MEDIUMbin/gui.go203 // client. It is useful for demonstration purposes andCOMMENT
MEDIUMdocs/references/server.config.yaml195 ## you can change the location of the writeback to be inside theCOMMENT
MEDIUMdocs/references/server.config.yaml599 # minimum roles the user can have - you can add more roles via theCOMMENT
MEDIUMdocs/references/server.config.yaml893 ## represent the set of tunable parameters you can use to optimizeCOMMENT
MEDIUMdocs/references/server.config.yaml1405 ## By default hunts expire in 7 days but you can change this usingCOMMENT
MEDIUMdocs/references/server.config.yaml1469 # default this happens daily but you can change it here (set to -1)COMMENT
Decorative Section Separators6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUM.vale.ini9## -----------------------------------------------------------------COMMENT
MEDIUM.vale.ini11## -----------------------------------------------------------------COMMENT
MEDIUM.vale.ini25# ------------------------------------------------------------------COMMENT
MEDIUM.vale.ini39# # ------------------------------------------------------------------COMMENT
MEDIUM.vale.ini53# ------------------------------------------------------------------COMMENT
MEDIUM.vale.ini75# ------------------------------------------------------------------COMMENT
AI Slop Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMartifacts/testdata/server/testcases/fat.in.yaml2# accessor. More comprehensive tests are available in the go-fatCOMMENT
MEDIUMartifacts/testdata/server/testcases/ext4.in.yaml2# accessor. More comprehensive tests are available in the go-ext4COMMENT
MEDIUM…facts/definitions/Windows/Detection/Impersonation.yaml31 mimikatz # token::elevateCODE
MEDIUMutils/file_unix.go31// Like io/utils but more robust - return as many files as we can. SeeCOMMENT
MEDIUMdocs/references/server.config.yaml1339## client. NOTE: This is currently not very robust - i.e. it does notCOMMENT
LOWdocs/references/server.config.yaml752 # If you don't want to allow outbound connections, just set this toCOMMENT
Fake / Example Data17 hits · 16 pts
SeverityFileLineSnippetContext
LOWartifacts/testdata/server/testcases/notepad.out.yaml35 "Content": "Saved file with large copy paste\r\rLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmCODE
LOWartifacts/testdata/server/testcases/notepad.out.yaml35 "Content": "Saved file with large copy paste\r\rLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmCODE
LOWartifacts/testdata/server/testcases/notepad.out.yaml90 "AddedChars": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore CODE
LOWartifacts/testdata/server/testcases/notepad.out.yaml90 "AddedChars": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore CODE
LOWartifacts/definitions/Generic/Utils/SendEmail.yaml28 default: '["noone@example.org"]'CODE
LOWdocs/references/vql.yaml5974 to="user@example.com",STRING
LOWdocs/references/vql.yaml11130 strip(string=">> lorem ipsum <<", prefix=">>", suffix="<<") -> " lorem ipsum "STRING
LOWdocs/references/vql.yaml11134 strip(string=" lorem ipsum ") -> "lorem ipsum"STRING
LOWapi/authenticators/claims_test.go90 "email": "user@example.com",CODE
LOWapi/authenticators/claims_test.go126 "email": "user@example.com",CODE
LOWapi/authenticators/claims_test.go186 "email": "user@example.com",CODE
LOWapi/authenticators/claims_test.go224 "email": "user@example.com",CODE
LOWapi/authenticators/claims_test.go260 "SomeWeirdClaim": "user@example.com"CODE
LOWapi/authenticators/claims_test.go294 "email": "user@example.com",CODE
LOWapi/authenticators/claims_test.go359 "mail":"user@example.com",CODE
LOWapi/authenticators/claims_test.go364 "userPrincipalName":"user@example.com",CODE
LOWapi/authenticators/claims_test.go506 Name: "user@example.com",CODE
Verbosity Indicators5 hits · 8 pts
SeverityFileLineSnippetContext
LOWvql/windows/wmi/events.c151 // Step 1: --------------------------------------------------COMMENT
LOWvql/windows/wmi/events.c159 // Step 2: --------------------------------------------------COMMENT
LOWvql/windows/wmi/events.c179 // Step 3: ---------------------------------------------------COMMENT
LOWvql/windows/wmi/events.c213 // Step 5: --------------------------------------------------COMMENT
LOWvql/windows/wmi/events.c231 // Step 6: -------------------------------------------------COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWartifacts/testdata/server/testcases/zip.out.yaml160# Read the file with messed up casing.COMMENT
LOWartifacts/testdata/server/testcases/zip.in.yaml102 # Read the file with messed up casing.COMMENT
LOWartifacts/definitions/Windows/Collectors/Remapping.yaml99# Check if the collection container has file uploadsCOMMENT
LOWvql/tools/packaging/templates.go193 ## Set it to start at bootCOMMENT
Unused Imports6 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/check_versions.py10CODE
LOWscripts/find_i8n_translations.py10CODE
LOWscripts/find_i8n_translations.py13CODE
LOWscripts/api_checker.py13CODE
LOWscripts/api_checker.py14CODE
LOWscripts/api_checker.py15CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/sync_artifact_paths.py39except: passCODE
Excessive Try-Catch Wrapping3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/check_versions.py118 except Exception:CODE
LOWscripts/find_i8n_translations.py37 except Exception as e:CODE
MEDIUMscripts/find_i8n_translations.py34def Decode(k):CODE
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/sync_artifact_paths.py14CODE
LOWscripts/find_i8n_translations.py18CODE
LOWscripts/api_checker.py73CODE
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWgui/velociraptor/src/components/core/api-service.jsx94function isNetworkOrIdempotentRequestError(error) {CODE
LOW…elociraptor/src/components/flows/offline-collector.jsx775function getDefaultCollectionParameters() {CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWartifacts/definitions/Windows/Forensics/Lnk.yaml1226 # TODO: implement Flag select for FontPitchCOMMENT
Structural Annotation Overuse1 hit · 2 pts
SeverityFileLineSnippetContext
LOWservices/hunt_dispatcher/storage.go52 // NOTE: This function is very slow! It should only be used by the GUI!COMMENT