AI Slop Code Risk Monitor

hashicorp/nomad

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

Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for hashicorp/nomad, a Go project with 17,063 GitHub stars. SynthScan examined 868,414 lines of code across 5461 source files, recording 508 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 0.8 (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.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
17.1K
Stars
Go
Language
868.4K
Lines of Code
5.5K
Files
508
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 3.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

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

Agent Over-Engineering Ratio 0.4/100 · LOW

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

PR Review Velocity Impact 3.9/100 · LOW

Which changes need focused human review? 508 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 8HIGH 5MEDIUM 39LOW 456

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 508 distinct pattern matches across 12 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 Block422 hits · 422 pts
SeverityFileLineSnippetContext
LOWdemo/csi/ceph-csi-plugin/ceph-csi-id.tf1# Copyright IBM Corp. 2015, 2026COMMENT
LOWui/app/adapters/watchable.js21// Initialize from the configuration, but this might be dynamicallyCOMMENT
LOWui/app/routes/administration/policies/new.js61# * read-jobCOMMENT
LOWui/tests/test-helper.ts21setup(QUnit.assert);COMMENT
LOWui/tests/helpers/index.ts21 //COMMENT
LOWenos/enos-scenario-upgrade.hcl161COMMENT
LOWdrivers/docker/config.go161 // configSpec is the hcl specification returned by the ConfigSchema RPCCOMMENT
LOWdrivers/docker/config.go181 // volumes {COMMENT
LOWdrivers/docker/win32_volume_parse.go21 // myname:d:COMMENT
LOWdrivers/docker/win32_volume_parse.go41COMMENT
LOWdrivers/docker/driver.go941COMMENT
LOWdrivers/docker/driver.go961// oversubscription setting.COMMENT
LOWdrivers/docker/driver_test.go141COMMENT
LOWdrivers/shared/capabilities/defaults.go21 extractLiteral = regexp.MustCompile(`([\w]+)`)COMMENT
LOWdrivers/shared/capabilities/defaults.go121//COMMENT
LOWdrivers/shared/executor/executor_linux_cgo.go1061COMMENT
LOWdrivers/shared/executor/utils.go161const (COMMENT
LOWdrivers/shared/executor/executor.go61 // Launch a user process configured by the given ExecCommandCOMMENT
LOWdrivers/shared/executor/executor.go201// Critical: is "/reserve/<id>" or "/share"; do not try to parse this!COMMENT
LOWdrivers/shared/executor/executor_universal_linux.go81// its use case is for removing the cgroup from the system once it is no longerCOMMENT
LOWdrivers/shared/executor/procstats/procstats.go81 Pids: procStats,COMMENT
LOWplugins/csi/client.go41//COMMENT
LOWplugins/csi/plugin.go81 NodeGetCapabilities(ctx context.Context) (*NodeCapabilitySet, error)COMMENT
LOWplugins/csi/plugin.go121 // If the volume was attached via a call to `ControllerPublishVolume` thenCOMMENT
LOWplugins/csi/plugin.go201 // The path to which the volume MAY be staged. It MUST be anCOMMENT
LOWplugins/drivers/driver.go581// ExecTaskStreamingRawDriver represents a low-level interface for executing a streaming execCOMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go1// Copyright IBM Corp. 2015, 2026COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go21// `int(number)` returns the integer portion of the given number, rounding towards zero.COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go41//COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go81 // Types that are valid to be assigned to Block:COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go281COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go301//COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go381//COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go401// by a parent `Object` spec, if the input block type name should match theCOMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go481// }COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go561}COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go581// ```COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go661}COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go761// properties are derived from the labels set on each matching block.COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go781// by a parent `Object` spec, if the input block type name should match theCOMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go861// ```hclCOMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go921//COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go1001// }COMMENT
LOWplugins/shared/hclspec/hcl_spec.pb.go1061 return x.AttributesCOMMENT
LOWplugins/device/cmd/example/device.go141 // listPeriod is how often we should list the device directory to detect newCOMMENT
LOWci/slow.go21// Parallel runs t in parallel, unless CI is set to a true value.COMMENT
LOWscheduler/annotate.go21 UpdateTypeIgnore = "ignore"COMMENT
LOWscheduler/doc.go1// Copyright IBM Corp. 2015, 2026COMMENT
LOWscheduler/feasible/device.go61// Matches returns whether the given device instance is on a PCI bus that isCOMMENT
LOWscheduler/feasible/doc.go1// Copyright IBM Corp. 2015, 2026COMMENT
LOWscheduler/feasible/rank.go461COMMENT
LOWscheduler/structs/interfaces.go21COMMENT
LOWscheduler/structs/interfaces.go121COMMENT
LOWscheduler/structs/doc.go1// Copyright IBM Corp. 2015, 2026COMMENT
LOWscheduler/benchmarks/benchmarks_test.go21// benchmark for the Nomad scheduler. The starting state for yourCOMMENT
LOWscheduler/reconciler/reconcile_cluster.go81 // clusterState stores frequently accessed properties of the cluster:COMMENT
LOWscheduler/reconciler/reconcile_cluster.go1261// reconnect, which ones to stop, and the stop results for the latter.COMMENT
LOWscheduler/reconciler/filters.go21 markStop(migrate, "", sstructs.StatusAllocNotNeeded),COMMENT
LOWscheduler/reconciler/filters.go441 if eligibleLater {COMMENT
LOWscheduler/reconciler/filters.go461func shouldFilter(alloc *structs.Allocation, isBatch bool) (untainted, ignore bool) {COMMENT
362 more matches not shown…
Hallucination Indicators8 hits · 80 pts
SeverityFileLineSnippetContext
CRITICAL…integration/components/das/recommendation-card-test.js158 RecommendationCard.activeTask.totalsTable.recommended.cpu.as(CODE
CRITICAL…integration/components/das/recommendation-card-test.js165 RecommendationCard.activeTask.totalsTable.recommended.memory.as(CODE
CRITICAL…integration/components/das/recommendation-card-test.js209 RecommendationCard.activeTask.totalsTable.recommended.cpu.as(CODE
CRITICALscheduler/util.go678 Networks: update.Alloc.AllocatedResources.Shared.Networks.Copy(),CODE
CRITICALscheduler/feasible/rank.go487 nodeCores := option.Node.NodeResources.Processors.Topology.UsableCores()CODE
CRITICALscheduler/feasible/rank.go581 availableCores: option.Node.NodeResources.Processors.Topology.UsableCores(),CODE
CRITICALscheduler/feasible/rank.go693 nodeCores := option.Node.NodeResources.Processors.Topology.UsableCores()CODE
CRITICALclient/allocrunner/taskrunner/task_runner.go1224 PercentTicks: float64(taskResources.Cpu.CpuShares) / float64(tr.clientConfig.Node.NodeResources.Processors.TopolCODE
Decorative Section Separators14 hits · 57 pts
SeverityFileLineSnippetContext
MEDIUM⚡nomad/node_endpoint.go636// ┌────────────────────────────────────── No ───┐COMMENT
MEDIUM⚡nomad/node_endpoint.go638// ┌──▼───┐ ┌─────────────┐ ┌────────┴────────┐COMMENT
MEDIUM⚡nomad/node_endpoint.go640// └──▲──▲┘ └─────┬───────┘ └────────┬────────┘COMMENT
MEDIUM⚡nomad/node_endpoint.go642// │ │ └─ No ─┐ ┌─────── Yes ──┘COMMENT
MEDIUM⚡nomad/node_endpoint.go644// │ │ ┌────────▼──▼───────┐COMMENT
MEDIUM⚡nomad/node_endpoint.go645// │ └──────────No───┤ Node pool exists? │COMMENT
MEDIUM⚡nomad/node_endpoint.go646// │ └─────────┬─────────┘COMMENT
MEDIUM⚡nomad/node_endpoint.go650// ┌──────┴───────┐ ┌───▼───┐ ┌──────┐COMMENT
MEDIUM⚡nomad/node_endpoint.go652// └──────────────┘ └───▲───┘ └──┬───┘COMMENT
MEDIUM⚡nomad/node_endpoint.go654// └──── ready ─────┘COMMENT
MEDIUMe2e/terraform/variables.tf50# ----------------------------------------COMMENT
MEDIUMe2e/terraform/variables.tf103# ----------------------------------------COMMENT
MEDIUMe2e/terraform/provision-infra/variables.tf50# ----------------------------------------COMMENT
MEDIUMe2e/terraform/provision-infra/variables.tf106# ----------------------------------------COMMENT
AI Slop Vocabulary15 hits · 45 pts
SeverityFileLineSnippetContext
MEDIUMui/app/utils/qp-serialize.js8// An unattractive but robust way to encode query paramsCOMMENT
MEDIUMui/mirage/config.js624 // Use the server instead of the schema to leverage the job factoryCOMMENT
MEDIUMui/mirage/config.js639 // Use the server instead of the schema to leverage the job factoryCOMMENT
MEDIUMdrivers/docker/win32_volume_parse.go49 // - Essentially using the folder solution fromCOMMENT
MEDIUMnomad/job_endpoint_hooks.go68 // groups that utilize Nomad's native service discovery checks feature. ThisCOMMENT
MEDIUMnomad/job_endpoint_hooks.go79 // utilize Nomad's NUMA aware scheduling which requires Nomad 1.7 or later.COMMENT
MEDIUMnomad/job_endpoint_hooks.go86 // numaKernelConstraint is the constraint injected into task groups that utilizeCOMMENT
MEDIUMnomad/consul.go35// the Consul scope. There was a Meta field introduced which Nomad can leverageCOMMENT
MEDIUMapi/internal/testutil/discover/discover.go70 // delve debug executable for debugging testCOMMENT
MEDIUMcommand/deployment_status.go393 // TODO We may want to find a more robust way of waiting for rollbacks to launch instead ofCOMMENT
MEDIUMcommand/deployment_status.go502 // TODO We may want to find a more robust way of waiting for rollbacks to launch instead ofCOMMENT
MEDIUMcommand/agent/agent.go1386 // running consul-template functions that utilize the Nomad API. We lazyCOMMENT
MEDIUMhelper/escapingfs/escapes.go27// API, which is both simple and robust. We retain the older checks forCOMMENT
MEDIUM…nt/allocrunner/taskrunner/template/template_default.go152 // stderr the same way CT does so the results look seamlessCOMMENT
MEDIUMclient/hostvolumemanager/host_volumes.go346 // dynamic volumes, like CSI, have more robust `capabilities`,COMMENT
Cross-Language Confusion (JS/TS)5 hits · 32 pts
SeverityFileLineSnippetContext
HIGH⚡…app/utils/sentinel_policy_templates/restrict-images.js37 print(task.config.image, "in task", task.name, "does not conform to policy, not in allowed images", allowed_imCODE
HIGH⚡…app/utils/sentinel_policy_templates/restrict-images.js46 print(task.config.image, "in task", task.name, "does not conform to policy, using :latest instead of a specifiCODE
HIGH⚡…app/utils/sentinel_policy_templates/restrict-images.js51 print(task.config.image, "in task", task.name, "does not conform to policy, not from an allowed registry", allowCODE
HIGHui/mirage/scenarios/default.js712print("volume is missing tag")CODE
HIGHui/mirage/scenarios/default.js729print("volume is missing tag")CODE
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMdemo/csi/digitalocean/.terraform.lock.hcl1# This file is maintained automatically by "terraform init".COMMENT
MEDIUMui/app/utils/default_jobs/variables.js52 # Create a template resource that will be used to render the html fileCOMMENT
MEDIUMdrivers/docker/test-resources/docker/gen_stopsignal.sh6# Create the tarball used in TestDockerDriver_StopSignalCOMMENT
MEDIUM.github/actions/jira/transition/jira-transition.bash45# Create the initial payload. This will be updated as needed priorCOMMENT
MEDIUM…ithub/actions/jira/sync-comment/jira-sync-comment.bash29# Create the commentCOMMENT
MEDIUM.github/actions/jira/create/jira-create.bash64# Create the issueCOMMENT
MEDIUMcommand/quota_init.go117# Create a limit for the global region. Additional limits mayCOMMENT
Hyper-Verbose Identifiers15 hits · 15 pts
SeverityFileLineSnippetContext
LOWui/app/utils/rollback-without-changed-attrs.js6export default function rollbackWithoutChangedAttrs(model) {CODE
LOWui/app/abilities/client.js41function policiesIncludePermissions(policies = [], permissions = []) {CODE
LOWui/app/adapters/watchable.js534function hasNonBlockingQueryParams(options) {CODE
LOWui/app/adapters/watchable.js549function shouldPreAdvanceWatchIndex() {CODE
LOWui/app/helpers/format-scheduled-hertz.js17function formatScheduledHertzHelper([hertz], { start }) {CODE
LOWui/app/helpers/format-scheduled-bytes.js17function formatScheduledBytesHelper([bytes], { start }) {CODE
LOWui/tests/utils/ember-power-select-extensions.js17async function openIfClosedAndGetContentId(trigger) {CODE
LOWui/tests/acceptance/optimize-test.js22function getLatestRecommendationSubmitTimeForJob(job) {CODE
LOWui/tests/acceptance/job-deployments-test.js317 function promotionTestForTaskGroup(taskGroup) {CODE
LOWui/tests/helpers/module-for-job.js277export function moduleForJobWithClientStatus(CODE
LOWui/tests/helpers/glimmer-factory.js25export default function setupGlimmerComponentFactory(hooks, componentKey) {CODE
LOWui/tests/helpers/glimmer-factory.js39function glimmerComponentInstantiator(owner, componentKey) {CODE
LOWui/tests/helpers/setup-authenticated-acceptance.js6export default function setupAuthenticatedAcceptance(CODE
LOWui/mirage/factories/evaluation.js140export function generateTaskGroupFailures() {CODE
LOWui/mirage/scenarios/default.js1260function getScenarioQueryParameter() {CODE
Verbosity Indicators7 hits · 12 pts
SeverityFileLineSnippetContext
LOWclient/allocrunner/alloc_runner_test.go1852 // Step 1: start and run a taskCOMMENT
LOWclient/allocrunner/taskrunner/plugin_supervisor_hook.go297 // Step 1: Wait for the plugin to initially become available.COMMENT
LOW⚡client/allocrunner/taskrunner/plugin_supervisor_hook.go327 // Step 2: Register the plugin with the catalog.COMMENT
LOW⚡client/allocrunner/taskrunner/plugin_supervisor_hook.go336 // Step 3: Start the lightweight supervisor loop. At this point,COMMENT
LOWclient/pluginmanager/csimanager/volume_test.go82 // Step 1: Validate that the test case makes senseCOMMENT
LOWclient/pluginmanager/csimanager/volume_test.go94 // Step 2: Test SetupCOMMENT
LOWclient/pluginmanager/csimanager/volume_test.go109 // Step 3: Now we can do some testingCOMMENT
Structural Annotation Overuse7 hits · 12 pts
SeverityFileLineSnippetContext
LOWclient/allocrunner/alloc_runner_test.go1852 // Step 1: start and run a taskCOMMENT
LOWclient/allocrunner/taskrunner/plugin_supervisor_hook.go297 // Step 1: Wait for the plugin to initially become available.COMMENT
LOW⚡client/allocrunner/taskrunner/plugin_supervisor_hook.go327 // Step 2: Register the plugin with the catalog.COMMENT
LOW⚡client/allocrunner/taskrunner/plugin_supervisor_hook.go336 // Step 3: Start the lightweight supervisor loop. At this point,COMMENT
LOWclient/pluginmanager/csimanager/volume_test.go82 // Step 1: Validate that the test case makes senseCOMMENT
LOWclient/pluginmanager/csimanager/volume_test.go94 // Step 2: Test SetupCOMMENT
LOWclient/pluginmanager/csimanager/volume_test.go109 // Step 3: Now we can do some testingCOMMENT
Slop Phrases3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMscripts/example_weave.bash81 # Script checks are run from inside the container, so you can useCOMMENT
MEDIUMe2e/terraform/variables.tf104# If you want to deploy different versions you can use these variables toCOMMENT
MEDIUMe2e/terraform/provision-infra/variables.tf107# If you want to deploy different versions you can use these variables toCOMMENT
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWui/tests/pages/optimize.js25 placeholder: attribute('placeholder'),CODE
LOWcontributing/CHANGELOG.md85main: Lorem ipsum dolor `sit amet`, _consectetur_ adipiscing elit, **sed** doCODE
LOWclient/allocrunner/taskrunner/getter/sandbox_test.go935 cmd = exec.Command("git", "config", "user.email", "user@example.com")CODE
LOWclient/allocwatcher/alloc_watcher_test.go95 MigrateToken: "fake_token",CODE
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOWui/app/controllers/jobs/index.js49 this.system.shouldShowNodepools ? 'node pool' : null, // TODO: implement on system serviceCODE