AI Slop Code RIsk Monitor

purpleidea/mgmt

Next generation distributed, event-driven, parallel config management!

6.5 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for purpleidea/mgmt, a Go project with 4,330 GitHub stars. SynthScan examined 202,008 lines of code across 864 source files, recording 1279 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 6.5 (Moderate 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.

6.5
Adjusted Signal
6.5
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
4.3K
Stars
Go
Language
202.0K
Lines of Code
864
Files
1.3K
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 27.7/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 28.1/100 · MEDIUM

Which changes need focused human review? 1279 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 2MEDIUM 21LOW 1256

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 1279 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 Block1234 hits · 1218 pts
SeverityFileLineSnippetContext
LOWdoc.go1// MgmtCOMMENT
LOWdoc.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWmain.go1// MgmtCOMMENT
LOWmisc/fpm-repo.sh1#!/usr/bin/env bashCOMMENT
LOWmisc/fpm-repo.sh61COMMENT
LOWmisc/sigtee.go1// MgmtCOMMENT
LOWmisc/sigtee.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWmisc/filter-golang-stack.py1#!/usr/bin/env python3COMMENT
LOWmisc/gomodupgrade.sh1#!/usr/bin/env bashCOMMENT
LOWmisc/gomodupgrade.sh21# If you modify this program, or any covered work, by linking or combining itCOMMENT
LOWmisc/fpm-pack.sh1#!/usr/bin/env bashCOMMENT
LOWtools/tools.go1// MgmtCOMMENT
LOWtools/tools.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWtools/grow.go1// MgmtCOMMENT
LOWpgraph/graphviz.go1// MgmtCOMMENT
LOWpgraph/graphviz.go61 // path. It (awkwardly) can be used by someone expecting either aCOMMENT
LOWpgraph/graphviz.go121// https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29COMMENT
LOWpgraph/pgraph.go1// MgmtCOMMENT
LOWpgraph/util_test.go1// MgmtCOMMENT
LOWpgraph/graphsync_bench_test.go1// MgmtCOMMENT
LOWpgraph/graphsync_bench_test.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWpgraph/selfvertex.go1// MgmtCOMMENT
LOWpgraph/selfvertex.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWpgraph/subgraph_test.go1// MgmtCOMMENT
LOWpgraph/pgraph_bench_test.go1// MgmtCOMMENT
LOWpgraph/graphsync.go1// MgmtCOMMENT
LOWpgraph/simpleedge.go1// MgmtCOMMENT
LOWpgraph/subgraph.go1// MgmtCOMMENT
LOWpgraph/subgraph.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWpgraph/subgraph.go61COMMENT
LOWpgraph/graphsync_test.go1// MgmtCOMMENT
LOWpgraph/pgraph_test.go1// MgmtCOMMENT
LOWpgraph/pgraph_test.go821 t.Errorf("should have error during GraphCmp, but got nil")COMMENT
LOWtest/test-golangci-lint.sh281#glc="$glc --enable=errorlint"COMMENT
LOWtest/test-golangci-lint.sh301#glc="$glc --enable=godox"COMMENT
LOWtest/test-golangci-lint.sh321#glc="$glc --enable=maintidx"COMMENT
LOWtest/test-gometalinter.sh21# TODO: run more linters here if we're brave...COMMENT
LOWtest/test-gomod.sh1#!/usr/bin/env bashCOMMENT
LOWtest/test-gomod.sh21# If you modify this program, or any covered work, by linking or combining itCOMMENT
LOWtest/test-markdownlint.sh1#!/usr/bin/env bashCOMMENT
LOWtest/tools/txtarfmt/main.go1// MgmtCOMMENT
LOWtest/tools/reflowed-comments/main.go1// MgmtCOMMENT
LOWtest/tools/reflowed-comments/main_test.go1// MgmtCOMMENT
LOWtest/tools/reflowed-comments/main_test.go41 filename := filepath.Join(dir, "doc.go")COMMENT
LOWtest/tools/receiver-check/main.go1// MgmtCOMMENT
LOWutil/log.go1// MgmtCOMMENT
LOWutil/afero_test.go1// MgmtCOMMENT
LOWutil/systemd_unit.go1// MgmtCOMMENT
LOWutil/systemd_unit.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWutil/error.go1// MgmtCOMMENT
LOWutil/home.go1// MgmtCOMMENT
LOWutil/generics_test.go1// MgmtCOMMENT
LOWutil/infinitechan.go1// MgmtCOMMENT
LOWutil/infinitechan.go21// with embedded mcl code and modules (and that the embedded mcl code andCOMMENT
LOWutil/user.go1// MgmtCOMMENT
LOWutil/user_test.go1// MgmtCOMMENT
LOWutil/interfaces.go1// MgmtCOMMENT
LOWutil/sync.go1// MgmtCOMMENT
LOWutil/sync.go181// SubscribedSignal represents a synchronized read signal. It doesn't need to beCOMMENT
LOWutil/sync.go241COMMENT
1174 more matches not shown…
AI Slop Vocabulary10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtest/test-omv.sh2# simple test harness for testing mgmt via omvCOMMENT
MEDIUMtest/test-shell.sh2# simple test harness for testing mgmtCOMMENT
MEDIUMutil/afero.go122// TODO: this should be made more rsync like and robust!COMMENT
MEDIUMutil/afero.go167// TODO: this should be made more rsync like and robust!COMMENT
MEDIUMlang/types/value.go216 // possible for the other cases is a more robust approach!COMMENT
MEDIUMetcd/etcd.go40// robust, battle-test etcd cluster, then manage your own, and point each mgmtCOMMENT
MEDIUMengine/reverse.go40// subsequent one. This is helpful for building robust programs with the engine.COMMENT
MEDIUMengine/resources/firewalld.go130// is not a replacement for a modern, robust tool like `shorewall`, but it hasCOMMENT
MEDIUMengine/resources/hetzner_vm.go678 // TODO: more robust comparison of keylistsCOMMENT
MEDIUMengine/graph/exporter.go88 // the usual CheckApply step would run, we end up with a more nuancedCOMMENT
TODO Padding16 hits · 24 pts
SeverityFileLineSnippetContext
LOWpgraph/graphviz.go222 // TODO: implement meCOMMENT
LOWintegration/basic_test.go164 // TODO: implement a simple test for documentation purposesCOMMENT
LOWlang/types/value_test.go688 // TODO: implement ValueOf tests for TypeFuncCOMMENT
LOWlang/types/type_test.go1767 // TODO: implement testing of the TypeOf functionCOMMENT
LOWlang/types/type_test.go1768 // TODO: implement testing TypeOf for struct field name mappingsCOMMENT
LOWlang/core/fmt/printf.go468// TODO: implement better format errors supportCOMMENT
LOWlang/interfaces/metadata.go173// md := obj.Copy() // TODO: implement meCOMMENT
LOWlib/main.go849 //Prometheus: prom, // TODO: implement this via a general Status APICOMMENT
LOWengine/resources/http_server_proxy.go128 // TODO: Add tests for the Path+Sub+Head+Cache path math stuffCOMMENT
LOWengine/resources/file.go119 //traits.Groupable // TODO: implement thisCOMMENT
LOWengine/resources/msg.go212 // TODO: implement syslog clientCOMMENT
LOWengine/resources/password.go455 Hashing string // TODO: implement meCODE
LOWengine/graph/autogroup/autogroup_test.go117 // TODO: implement this in vertexCmp for *testGrouper instead?COMMENT
LOWengine/local/local.go346 // TODO: implement ctx cancellationCOMMENT
LOWengine/local/local.go371 // TODO: implement ctx cancellationCOMMENT
LOWengine/local/local.go390 // TODO: implement ctx cancellationCOMMENT
Modern AI Meta-Vocabulary7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMlang/funcs/operators/operators.go616 // It's okay if scaffold.C is nil.COMMENT
MEDIUMlang/funcs/operators/operators.go829 // XXX: get these from the scaffoldCOMMENT
MEDIUMlang/funcs/multi/multi.go45// RegisteredFuncs maps a function name to the corresponding function scaffold.COMMENT
MEDIUMlang/funcs/multi/multi.go202// scaffold make function field.COMMENT
MEDIUMlang/funcs/simple/simple.go54// RegisteredFuncs maps a function name to the corresponding function scaffold.COMMENT
MEDIUMlang/funcs/simple/simple.go118 // It's okay if scaffold.C is nil.COMMENT
MEDIUMlang/funcs/simple/simple.go227// is suitable for use in the scaffold check function field.COMMENT
Cross-Language Confusion2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHmisc/centos-ci.py51omv = 'wget https://github.com/purpleidea/oh-my-vagrant/raw/master/extras/install-omv.sh && chmod u+x install-omv.sh && CODE
HIGHmisc/centos-ci.py61git = "git clone --recursive %s %s && cd %s && git checkout %s" % (git_url, folder, folder, branch)CODE
Slop Phrases3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtest/test-mclfmt.sh15#F="misc/TODO.mcl" # TODO: you can add single files like this...COMMENT
MEDIUMmodules/grafana/files/ldap.toml72# If you want to match all (or no ldap groups) then you can use wildcardCOMMENT
LOWengine/resources/fwupd.go99// daemon if it's not running yet. Don't forget to call Close when done.COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMdocs/conf.py6# This file is execfile()d with the current directory set to itsCOMMENT
MEDIUMlang/core/funcgen.yaml1# This file is used by github.com/purpleidea/mgmt/lang/funcs/funcgen/ toCOMMENT
Fake / Example Data3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtest/shell/file-source.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporCODE
LOWtest/shell/file-source.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod temporCODE
LOWlang/types/type.go1343 // match simple "placeholder" variants... skip variants w/ sub typesCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtest.sh3# Usage:COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWetcd/fs/fs.go718 // XXX: do we need to check if dest path is inside src path?COMMENT