AI Slop Code Risk Monitor

openbao/openbao

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

OpenBao is a software solution to manage, store, and distribute sensitive data including secrets, certificates, and keys.

0.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for openbao/openbao, a Go project with 8,806 GitHub stars. SynthScan examined 711,536 lines of code across 3836 source files, recording 631 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 0.9 (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.9
Adjusted Signal
0.9
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
8.8K
Stars
Go
Language
711.5K
Lines of Code
3.8K
Files
631
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.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 4.7/100 · LOW

Which changes need focused human review? 631 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 2HIGH 0MEDIUM 20LOW 609

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 631 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 Block560 hits · 444 pts
SeverityFileLineSnippetContext
LOWui/app/macros/lazy-capabilities.js1/**COMMENT
LOWui/app/lib/path-to-tree.js21// bar: {COMMENT
LOWui/tests/helpers/index.js21 // For example, if you need an authenticated session for eachCOMMENT
LOWui/lib/kubernetes/addon/utils/generated-role-rules.js1/**COMMENT
LOWui/lib/pki/addon/components/pki-issuer-cross-sign.js181 },COMMENT
LOWui/lib/pki/addon/components/pki-issuer-cross-sign.js201 // -> For 1 though, make sure to give the `signedCaChain` in theCOMMENT
LOW.release/docker/docker-entrypoint.sh1#!/usr/bin/dumb-init /bin/shCOMMENT
LOWwebsite/content/blog/2026-07-30-declarative-plugins.md81// plugin catalog. This is allows operators to immediately use the pluginCOMMENT
LOWwebsite/content/blog/2026-07-30-declarative-plugins.md101COMMENT
LOW…bsite/content/blog/2026-07-09-transactional-storage.md81and thus not relevant to improving snapshot consistency.COMMENT
LOWinternal/serviceregistration/service_registration.go41 // complete. The redirectAddr is an optional parameter for implementationsCOMMENT
LOWinternal/serviceregistration/service_registration.go61 //COMMENT
LOWinternal/serviceregistration/service_registration.go81 // If errors are returned, Vault only logs a warning, so it isCOMMENT
LOW…l/serviceregistration/kubernetes/testing/testserver.go41//go:embed tokenCOMMENT
LOW…ternal/serviceregistration/kubernetes/client/config.go21 // The client itself does nothing directly with these variables, it'sCOMMENT
LOW…ternal/serviceregistration/kubernetes/client/config.go81// The CACertPool is promoted to the top level from being originally on the TLSClientConfigCOMMENT
LOW…eregistration/kubernetes/client/cmd/kubeclient/main.go1// Copyright (c) HashiCorp, Inc.COMMENT
LOWinternal/physical/postgresql/postgresql.go721 }COMMENT
LOWinternal/physical/pebbledb/pebbledb.go681COMMENT
LOWinternal/physical/raft/io.go1// Protocol Buffers for Go with GadgetsCOMMENT
LOWinternal/physical/raft/transaction.go561 return errCOMMENT
LOWinternal/physical/raft/transaction.go921// transaction was started) modified this entry. All WALs did not affectCOMMENT
LOWinternal/physical/raft/raft_autopilot.go61 // LastContactThreshold is the limit on the amount of time a server can goCOMMENT
LOWinternal/physical/raft/snapshot.go41//COMMENT
LOWinternal/physical/raft/varint.go1// Protocol Buffers for Go with GadgetsCOMMENT
LOWinternal/physical/raft/raft.go161COMMENT
LOWinternal/physical/raft/raft.go201 // fallback will be to interact with the raft instance directly. This can onlyCOMMENT
LOWinternal/physical/raft/raft.go261 // LeaderClientKey is the client key for the follower node to establishCOMMENT
LOWinternal/physical/raft/snapshot/archive.go1// Copyright IBM Corp. 2019, 2025COMMENT
LOWinternal/physical/crosstest/cross_test.go1// We wish to build a backend cross-testing framework which allows us to findCOMMENT
LOWinternal/audit/audit.go21 // a possibility.COMMENT
LOWinternal/audit/formatter.go21}COMMENT
LOWinternal/audit/formatter.go41 // within the response data - these are conventionally the only fields present in a list response - seeCOMMENT
LOWinternal/audit/hashstructure.go221 // to be hashed. If there is an error, walking will be haltedCOMMENT
LOWinternal/http/index.go141 // wants to set or is aware of. Similarly, if configuration states toCOMMENT
LOWinternal/http/handler.go1161//COMMENT
LOWinternal/http/util.go101 //COMMENT
LOWinternal/http/util.go141 }COMMENT
LOWinternal/command/pki_reissue_intermediate_test.go21COMMENT
LOWinternal/command/pki_reissue_intermediate_test.go41 runPkiListIntermediateTests(t, client)COMMENT
LOWinternal/command/proxy.go1021 return cfg, nilCOMMENT
LOWinternal/command/pki_list_intermediate_test.go21 // RootX1 RootX2 RootX4 RootX3COMMENT
LOWinternal/command/pki_issue_intermediate_test.go21 // pki-root | pki-newroot | pki-emptyCOMMENT
LOWinternal/command/pki_issue_intermediate_test.go41COMMENT
LOWinternal/command/agent.go1121 return nil, fmt.Errorf("error validating configuration: %w", err)COMMENT
LOWinternal/command/pki_verify_sign_test.go21COMMENT
LOWinternal/command/pki_verify_sign_test.go161 for i, interfa := range list {COMMENT
LOWinternal/command/debug.go41COMMENT
LOWinternal/command/commands.go61 EnvVaultLogLevel = "BAO_LOG_LEVEL"COMMENT
LOWinternal/command/commands.go81 // flagTLSServerName is the flag used in the base command to read inCOMMENT
LOWinternal/command/token/helper_external.go41 return path, nilCOMMENT
LOWinternal/command/agentproxyshared/cache/lease_cache.go1141}COMMENT
LOW…nal/command/agentproxyshared/cache/cachememdb/index.go21 // Token is the token that fetched the response held by this indexCOMMENT
LOW…nal/command/agentproxyshared/cache/cachememdb/index.go41COMMENT
LOW…nal/command/agentproxyshared/cache/cacheboltdb/bolt.go41COMMENT
LOWinternal/helper/configutil/telemetry.go61 // metric management enabled (use check with specified submission_url)COMMENT
LOWinternal/helper/configutil/telemetry.go81 CirconusCheckSubmissionURL string `hcl:"circonus_submission_url"`COMMENT
LOWinternal/helper/configutil/telemetry.go101 // CirconusCheckTags is a comma separated list of tags to apply to the check. Note thatCOMMENT
LOWinternal/helper/identity/types.pb.go41 ParentGroupIDs []string `protobuf:"bytes,4,rep,name=parent_group_ids,json=parentGroupIds,proto3" json:"parent_group_idsCOMMENT
LOWinternal/helper/identity/types.pb.go241// Entity represents an entity that gets persisted and indexed.COMMENT
500 more matches not shown…
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUMinternal/command/agent_test.go1302// Definitely not thread-safe, do not use t.Parallel with this.COMMENT
MEDIUM…database/cassandra/test-fixtures/no_tls/cassandra.yaml14# This version is provided to facilitate pain-free upgrades for existingCOMMENT
MEDIUM…database/cassandra/test-fixtures/no_tls/cassandra.yaml1853# each write which may be lower in order to facilitate availability.COMMENT
MEDIUM…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml14# This version is provided to facilitate pain-free upgrades for existingCOMMENT
MEDIUM…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1853# each write which may be lower in order to facilitate availability.COMMENT
MEDIUMinternal/builtin/logical/pki/acme_wrappers.go55// acmeWrapper a basic wrapper that all ACME handlers should leverage as the basis.COMMENT
MEDIUMinternal/builtin/logical/pki/backend_test.go6826 // - Definitely will work with sign-verbatim.COMMENT
MEDIUMinternal/builtin/logical/pki/storage_migrations.go140 // We always want to write out this log entry as the secondary clusters leverage this path to wake upCOMMENT
MEDIUMinternal/vault/token_store.go1463// minted service tokens. This function is meant to be robust so as to allow vaultCOMMENT
MEDIUMsdk/helper/testcluster/util.go160 // Be robust to multiple nodes thinking they are active. This is possible inCOMMENT
MEDIUMsdk/helper/testcluster/util.go165 // etc. so be robust against it. The best solution would be to have some sortCOMMENT
Structural Annotation Overuse15 hits · 32 pts
SeverityFileLineSnippetContext
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1608# Step 1: Set internode_encryption=<dc|rack|all> and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1610# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1666# Step 1: Set enabled=true and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1668# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW…database/cassandra/test-fixtures/no_tls/cassandra.yaml1525# WARNING: This snitch is deprecated and it is scheduled to be removedCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1608# Step 1: Set internode_encryption=<dc|rack|all> and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1610# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1666# Step 1: Set enabled=true and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1668# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1525# WARNING: This snitch is deprecated and it is scheduled to be removedCOMMENT
LOW⚡sdk/logical/token.go200 // Step 1: Copy entry policies to a new structCOMMENT
LOW⚡sdk/logical/token.go204 // Step 2: Sort and join copied policiesCOMMENT
LOW⚡sdk/logical/token.go211 // Step 3: Add namespace IDCOMMENT
LOW⚡sdk/logical/token.go218 // Step 4: Remove the first character in the string, as it's an unnecessary delimiterCOMMENT
LOW⚡sdk/logical/token.go221 // Step 5: Hash the sumCOMMENT
Verbosity Indicators14 hits · 31 pts
SeverityFileLineSnippetContext
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1608# Step 1: Set internode_encryption=<dc|rack|all> and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1610# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1666# Step 1: Set enabled=true and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…database/cassandra/test-fixtures/no_tls/cassandra.yaml1668# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1608# Step 1: Set internode_encryption=<dc|rack|all> and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1610# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1666# Step 1: Set enabled=true and explicitly set optional=true. Restart all nodesCOMMENT
LOW⚡…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1668# Step 2: Set optional=false (or remove it) and if you generated truststores and want to use mutualCOMMENT
LOWinternal/vault/core_metrics.go291 // Therefore, we need to check if c.mounts is nil. If we do not, this will panic whenCOMMENT
LOW⚡sdk/logical/token.go200 // Step 1: Copy entry policies to a new structCOMMENT
LOW⚡sdk/logical/token.go204 // Step 2: Sort and join copied policiesCOMMENT
LOW⚡sdk/logical/token.go211 // Step 3: Add namespace IDCOMMENT
LOW⚡sdk/logical/token.go218 // Step 4: Remove the first character in the string, as it's an unnecessary delimiterCOMMENT
LOW⚡sdk/logical/token.go221 // Step 5: Hash the sumCOMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALui/tests/acceptance/raft-storage-test.js35 this.config.data.config.servers.pop();CODE
CRITICALui/lib/pki/addon/components/page/pki-issuer-details.ts19 return this.args.issuer.parsedCertificate.parsing_errors.map((e: Error) => e.message).join(', ');CODE
Slop Phrases6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMui/lib/kubernetes/addon/utils/generated-role-rules.js6const example = `# The below is an example that you can use as a starting point.CODE
MEDIUM…database/cassandra/test-fixtures/no_tls/cassandra.yaml61# initial_token allows you to specify tokens manually. While you can use it withCOMMENT
MEDIUM…database/cassandra/test-fixtures/no_tls/cassandra.yaml1042# you may want to adjust max_value_size accordingly. This should be positive and less than 2048.COMMENT
MEDIUM…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml61# initial_token allows you to specify tokens manually. While you can use it withCOMMENT
MEDIUM…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1042# you may want to adjust max_value_size accordingly. This should be positive and less than 2048.COMMENT
MEDIUMinternal/builtin/logical/pki/chain_util.go538 // not sufficient as discussed above -- we also need to find anyCOMMENT
Fake / Example Data13 hits · 13 pts
SeverityFileLineSnippetContext
LOWui/tests/unit/services/wizard-test.js72 args: ['fake-key'],CODE
LOW…/tests/integration/components/kv-object-editor-test.js79 assert.dom('input').hasAttribute('placeholder', 'foo', 'Placeholder applied to key input');CODE
LOW…/tests/integration/components/kv-object-editor-test.js80 assert.dom('textarea').hasAttribute('placeholder', 'bar', 'Placeholder applied to value input');CODE
LOW…ests/integration/components/autocomplete-input-test.js48 assert.dom('input').hasAttribute('placeholder', this.placeholder, 'Input placeholder renders');CODE
LOW…tests/integration/components/object-list-input-test.js47 .hasAttribute('placeholder', firstKey.placeholder, 'it renders placeholder text');CODE
LOW…ests/integration/components/oidc/provider-form-test.js76 .hasAttribute('placeholder', 'e.g. https://example.com:8200', 'issuer placeholder text is correct');CODE
LOWinternal/builtin/credential/jwt/provider_gsuite_test.go548 "gsuite_admin_impersonate": "admin@example.com",CODE
LOWinternal/builtin/credential/jwt/provider_gsuite_test.go606 "gsuite_admin_impersonate": "admin@example.com",CODE
LOWinternal/builtin/logical/transit/path_import_test.go277 keyType: "fake-key-type",CODE
LOWinternal/builtin/logical/pki/path_issue_sign_test.go332 EmailAddresses: []string{"admin@example.com"},CODE
LOWinternal/vault/control_group_test.go222 DisplayName: "user@example.com",CODE
LOWinternal/vault/control_group_test.go350 DisplayName: "user@example.com",CODE
LOWinternal/vault/logical_system_namespaces_test.go799 req.Data["unlock_key"] = "placeholder"CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…database/cassandra/test-fixtures/no_tls/cassandra.yaml10# This file is provided in two versions:COMMENT
MEDIUM…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml10# This file is provided in two versions:COMMENT
MEDIUMscripts/release/build.sh24# Create a git tag locally so Go picks it up in build metadata.COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOW…database/cassandra/test-fixtures/no_tls/cassandra.yaml1257# Set sstable_preemptive_open_interval to null for disabled which is equivalent toCOMMENT
LOW…tabase/cassandra/test-fixtures/with_tls/cassandra.yaml1257# Set sstable_preemptive_open_interval to null for disabled which is equivalent toCOMMENT
LOW.github/workflows/changelog-checker.yml31 # Check if there is a diff in the changelog directory.COMMENT
LOW.github/workflows/docs-ci.yml28 # Check if any absolute links were foundCOMMENT
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippetContext
LOWui/app/lib/capabilities.js60export function addCapabilityRelationships(capabilities, jsonAPIDoc) {CODE
LOWui/app/helpers/supported-managed-auth-backends.js10export function supportedManagedAuthBackends() {CODE
LOW…src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx9export default function DocsVersionDropdownNavbarItemWrapper(CODE