AI Slop Code Risk Monitor

projectdiscovery/nuclei

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

Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.

1.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for projectdiscovery/nuclei, a Go project with 32,489 GitHub stars. SynthScan examined 207,516 lines of code across 1340 source files, recording 243 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.2 (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.2
Adjusted Signal
1.2
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
32.5K
Stars
Go
Language
207.5K
Lines of Code
1.3K
Files
243
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 5.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 0.1/100 · LOW

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

PR Review Velocity Impact 5.9/100 · LOW

Which changes need focused human review? 243 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 0MEDIUM 1LOW 241

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 243 distinct pattern matches across 6 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 Block233 hits · 233 pts
SeverityFileLineSnippetContext
LOW.goreleaser.yml81 goarch: arm64COMMENT
LOWcmd/nuclei/issue-tracker-config.yaml1# global allow/deny list. this will affect both exportersCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml21# # project-name is the name of the repositoryCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml41# # username is the username of the GitLab userCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml61# # (GitLab returns at most 100 issues per page)COMMENT
LOWcmd/nuclei/issue-tracker-config.yaml81# # these severity labels or tags (does not affect exporters. set those globally)COMMENT
LOWcmd/nuclei/issue-tracker-config.yaml101# update-existing: falseCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml121# # these severity labels or tags (does not affect exporters. set those globally)COMMENT
LOWcmd/nuclei/issue-tracker-config.yaml141# freeform: $CVSSMetricsCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml161# # api-key is the API key for the linear accountCOMMENT
LOWcmd/nuclei/issue-tracker-config.yaml181# # (e.g., mongodb://root:example@localhost:27017/nuclei?ssl=false&authSource=admin)COMMENT
LOWinternal/tests/integration/http_test.go981// Execute executes a test case and returns an error if occurredCOMMENT
LOW…sts/integration/testdata/workflow/code-template-2.yaml21# digest: 490a0046304402204cbb1bdf8370e49bb930b17460fb35e15f285a3b48b165736ac0e7ba2f9bc0fb022067c134790c4a2cf646b195aa44COMMENT
LOW…tests/integration/testdata/protocols/code/py-file.yaml21# digest: 4a0a00473045022100bb6b75819ea62be7415adf544e208fcff3501277f6f7a152e1c3083c476126f502201db7978917bc31c755a4ce53COMMENT
LOWinternal/tests/functional/testdata/testcases.txt61# Input TypesCOMMENT
LOW.github/dependabot.yml41# schedule:COMMENT
LOW.github/workflows/tests.yaml221 # name: "Performance regression"COMMENT
LOWlib/sdk_private.go381 if err := installer.UpdateIgnoreFile(); err != nil {COMMENT
LOWlib/multi.go181COMMENT
LOWlib/tests/scale_regression_test.go1//go:build regressionCOMMENT
LOWhelm/values.yaml21 list: /config/target-list.txt COMMENT
LOWhelm/values.yaml41 #include-tags: dos,fuzz # Tag based inclusion (allows overwriting nuclei-ignore list)COMMENT
LOWpkg/reporting/trackers/jira/jira.go181 // Cloud value (optional) is set to true when Jira cloud is usedCOMMENT
LOWpkg/reporting/trackers/jira/jira.go201 // ProjectID is the ID of the project (optional)COMMENT
LOWpkg/types/types.go161 // InteractionsCacheSize is the number of interaction-url->req to keep in cache at a time.COMMENT
LOWpkg/types/types.go201 // Deprecated: Enabled by default through clistats . Metrics enables display of metrics via an http endpointCOMMENT
LOWpkg/types/types.go221 // (/user/1, /user/2, ...) are scanned. Zero, the default, scans everyCOMMENT
LOWpkg/types/types.go261 // UpdateTemplates updates the templates installed at startup (also used by cloud to update datasources)COMMENT
LOWpkg/types/types.go341 // StoreResponse stores received response to output directoryCOMMENT
LOWpkg/types/types.go521 // DASTProxyAddress is the listen address for the dast proxyCOMMENT
LOWpkg/types/types.go541 DoNotCacheTemplates boolCOMMENT
LOWpkg/progress/progress.go21 Init(hostCount int64, rulesCount int, requestCount int64)COMMENT
LOWpkg/operators/operators.go21 // Matchers contains the detection mechanism for the request to identifyCOMMENT
LOWpkg/operators/matchers/match_llm.go41COMMENT
LOWpkg/operators/matchers/matchers.go21 Condition string `yaml:"condition,omitempty" json:"condition,omitempty" jsonschema:"title=condition between matcher varCOMMENT
LOWpkg/operators/matchers/matchers.go41 // examples:COMMENT
LOWpkg/operators/matchers/matchers.go61 // []string{"mail.protection.outlook.com"}COMMENT
LOWpkg/operators/matchers/matchers.go81 // []string{"4a4156412050524f46494c45", "4850524f46", "1f8b080000000000"}COMMENT
LOWpkg/operators/matchers/matchers.go101 // value: >COMMENT
LOWpkg/operators/matchers/matchers.go121 Expect string `yaml:"expect,omitempty" json:"expect,omitempty" jsonschema:"title=expected llm verdict,description=VerdiCOMMENT
LOWpkg/operators/matchers/matchers.go141COMMENT
LOWpkg/operators/matchers/matchers.go161 CaseInsensitive bool `yaml:"case-insensitive,omitempty" json:"case-insensitive,omitempty" jsonschema:"title=use case inCOMMENT
LOWpkg/operators/extractors/extractors.go21 Type ExtractorTypeHolder `json:"type" yaml:"type"`COMMENT
LOWpkg/operators/extractors/extractors.go41 // - name: Example Regex GroupCOMMENT
LOWpkg/operators/extractors/extractors.go61 // - name: Extracting value of Content-Type CookieCOMMENT
LOWpkg/operators/extractors/extractors.go81 XPath []string `yaml:"xpath,omitempty" json:"xpath,omitempty" jsonschema:"title=html xpath expressions to extract data,COMMENT
LOWpkg/operators/extractors/extractors.go101 // documented in docs for each request type.COMMENT
LOWpkg/operators/extractors/extractors.go121 //COMMENT
LOWpkg/operators/extractors/type_specific_fields.go21// type collects, which is indistinguishable from "nothing matched the target".COMMENT
LOWpkg/operators/extractors/type_specific_fields_test.go101 })COMMENT
LOWpkg/input/types/roundtrip_test.go1package typesCOMMENT
LOWpkg/input/formats/formats.go21type InputFormatOptions struct {COMMENT
LOWpkg/input/normalize/normalize.go1// Package normalize collapses URLs that address the same resource onto oneCOMMENT
LOWpkg/js/libs/kerberos/kerberosx.go41COMMENT
LOWpkg/js/libs/kerberos/kerberosx.go61func (c *Config) SetTimeout(timeout int) *Config {COMMENT
LOWpkg/js/libs/kerberos/kerberosx.go141 // Link Constructor to Client and returnCOMMENT
LOWpkg/js/libs/kerberos/kerberosx.go161 return &Client{Krb5Config: config}, nilCOMMENT
LOWpkg/js/libs/kerberos/kerberosx.go301 resp.Ticket = ticketCOMMENT
LOWpkg/js/libs/kerberos/kerberosx.go321// c.nj.Throw("KDC address blacklisted by network policy")COMMENT
LOWpkg/js/libs/kerberos/kerberosx.go341// // login to get TGTCOMMENT
173 more matches not shown…
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALpkg/protocols/http/request.go1687 Severity: request.options.TemplateInfo.SeverityHolder.Severity.String(),CODE
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippetContext
LOWpkg/js/libs/smtp/smtp_limit_test.go35 msg := (&SMTPMessage{}).From("scanner@example.com").To("admin@example.org")CODE
LOWpkg/js/libs/smtp/smtp_limit_test.go55 msg := (&SMTPMessage{}).From("scanner@example.com").To("admin@example.org").Subject("hello").Body([]byte("world"))CODE
LOWpkg/js/libs/smtp/smtp_test.go27 msg := (&SMTPMessage{}).From("scanner@example.com").To("admin@example.org").Subject("hello").Body([]byte("world"))CODE
LOWpkg/js/libs/smtp/smtp_test.go68 msg := (&SMTPMessage{}).From("scanner@example.com").To("admin@example.org")CODE
LOWpkg/fuzz/dataformat/multipart_test.go223 assert.Equal(t, "John Doe", decoded.Get("name"))CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpkg/tmplexec/flow/README.md99## request execution orchestrationCOMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWpkg/js/global/js/active_directory.js34function getDomainControllerNameBySMB(host) {CODE
LOWpkg/js/global/js/active_directory.js47function getDomainControllerNameByLDAP(host) {CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpkg/catalog/index/metadata.go77 // For maintainers: when adding new fields, don't forget to update theCOMMENT