AI Slop Code Risk Monitor

go-admin-team/go-admin

SlopCodeMonitor badge for go-admin-team/go-admin Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

go-admin is a Gin + Vue starter kit for admin applications, supporting Element UI, Arco Design, and Ant Design. Features include multi-tenancy, user management, JWT authentication, RBAC, code generation, a form builder, and scheduled tasks. Build your own admin app in just 3 minutes.

3.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for go-admin-team/go-admin, a Go project with 12,827 GitHub stars. SynthScan examined 56,786 lines of code across 383 source files, recording 168 pattern matches distributed across 2 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.0
Adjusted Signal
3.0
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
12.8K
Stars
Go
Language
56.8K
Lines of Code
383
Files
168
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 13.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 13.8/100 · LOW

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

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 168 distinct pattern matches across 2 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 Block167 hits · 167 pts
SeverityFileLineSnippetContext
LOWcmd/migrate/server.go141COMMENT
LOWcmd/migrate/server.go221 }COMMENT
LOWcmd/migrate/status.go21// stopped partway leaves migrations that all read "applied" and a row thatCOMMENT
LOWcmd/migrate/install.go41 Applied []stringCOMMENT
LOWcmd/migrate/install.go161 return adminmodels.SysApp{}, false, fmt.Errorf("reading sys_app for %q: %w", code, err)COMMENT
LOWcmd/migrate/migration/init.go81type AppRegistrar struct {COMMENT
LOWcmd/migrate/migration/init.go121COMMENT
LOWcmd/migrate/migration/init.go141 if appCode == "" {COMMENT
LOWcmd/migrate/migration/init.go281 out = append(out, entry)COMMENT
LOW…tion/version/1786700010000_gen_column_layout_fields.go21// "unconfigured" two representations instead of one.COMMENT
LOW…grate/migration/version/1786700011000_gen_menu_apis.go21// its menus in sys_menu_api_rule. The seed data bound none to theCOMMENT
LOW…/migration/version/1786700003000_soft_delete_marker.go241 return fmt.Errorf("dropping index %s: %w", name, err)COMMENT
LOW…/migration/version/1786700003000_soft_delete_marker.go261// symptom was a login rejecting a correct password: the migration had stoppedCOMMENT
LOWcmd/migrate/migration/version/schema_coverage_test.go181// softDeleteConversion is the version at which sys_api, sys_menu and the restCOMMENT
LOWcmd/migrate/migration/version/schema_coverage_test.go201// is still nullable. Only a migration added afterwards hits it, which inCOMMENT
LOW…migration/version/1786700009000_job_scheduler_lease.go21// and nothing else.COMMENT
LOW…e/migration/version/1786700008000_seed_natural_keys.go81// drivers this repository registers.COMMENT
LOW…e/migration/version/1786700008000_seed_natural_keys.go121// independent, backward-incompatible change of its own - existing NULLCOMMENT
LOW…e/migration/version/1786700008000_seed_natural_keys.go141// dialect, but MySQL specifically has to be checked by hand, since thisCOMMENT
LOW…ration/version/1786700008000_seed_natural_keys_test.go221 var applied common.MigrationCOMMENT
LOW…ration/version/1786700008000_seed_natural_keys_test.go261}COMMENT
LOWcmd/api/server.go101// startCronJobs registers the job implementations and starts a scheduler forCOMMENT
LOWcmd/api/server.go121//COMMENT
LOWcmd/api/server.go261 }COMMENT
LOWcmd/api/server.go281// kill the process outright.COMMENT
LOWcmd/api/server.go301 // line and the listener closing, the two are microseconds apart and aCOMMENT
LOWcmd/api/server.go421 "were about to finish is lost. It needs at least %ds more, or %ds less budget.",COMMENT
LOWcmd/api/server.go441// so at start-up.COMMENT
LOWcmd/api/server.go461func armStopSignals() (<-chan os.Signal, func()) {COMMENT
LOWcmd/api/server.go481//COMMENT
LOWcmd/api/server.go541// stops waiting and returns; a callback that never looks at its context carriesCOMMENT
LOWcmd/api/server.go561 sdk.Runtime.RunPhase(runtime.BeforeRouter)COMMENT
LOWcmd/api/server.go621// probePaths are the two routes the rate limiter must not answer for.COMMENT
LOWcmd/api/shutdown_test.go41 }COMMENT
LOWcmd/api/signal_test.go21 otherrouter "go-admin/app/other/router"COMMENT
LOWcmd/api/signal_test.go441// once SIGTERM is registered, a shutdown that hangs could not be interrupted byCOMMENT
LOWcmd/api/signal_test.go561 if err := cmd.Wait(); err != nil {COMMENT
LOWcmd/api/schema.go21//COMMENT
LOWcmd/api/schema.go41// Any one of them, rather than only the tenant being served: migrations areCOMMENT
LOWcmd/api/phase_test.go101 }COMMENT
LOWtools/checksilent/datascope.go41// the context it hands back a zero value, whose DataScope is the empty string -COMMENT
LOWtools/checksilent/checks.go101//COMMENT
LOWtools/checksilent/checks.go161 " Use the runtime models under app/ instead.",COMMENT
LOWtools/checksilent/checks.go341// contractRoots are the trees that may not depend on a business module. core/COMMENT
LOWtools/checksilent/checks.go421 coreModulePrefix = "github.com/go-admin-team/go-admin-core/"COMMENT
LOWtools/checksilent/checks.go441// error, but only in code that actually uses the method set.COMMENT
LOWtools/checksilent/checks.go561// the two shapes it is written in.COMMENT
LOWtools/checksilent/menuname.go21 defineOptionsName = regexp.MustCompile(`defineOptions\(\s*\{[^}]*?name:\s*['"` + "`" + `]([^'"` + "`" + `]+)['"` + "`" COMMENT
LOWtools/checksilent/shutdownbudget.go21 pkgHostConfig = "config"COMMENT
LOWtools/checksilent/shutdownbudget.go41//COMMENT
LOWtools/checksilent/shutdownbudget.go141//COMMENT
LOWtools/checksilent/shutdownbudget.go301 })COMMENT
LOWtools/checksilent/snapshot.go41// isTest reports whether this file is a _test.go.COMMENT
LOWtools/checksilent/main.go1// Command checksilent reports the failures in this repository that do notCOMMENT
LOWapp/other/apis/tools/gen.go561 return out, nilCOMMENT
LOWapp/other/apis/tools/column_width.go21// e.g. "varchar(255)", "int(11)", "decimal(10,2)", "tinyint(1)" - andCOMMENT
LOWapp/other/apis/tools/sys_tables.go141 }COMMENT
LOWapp/other/apis/tools/sys_tables.go201COMMENT
LOWapp/other/apis/tools/sys_tables_validate.go21// importer from the column name (sys_tables.go's namelist/JsonField loop) -COMMENT
LOWapp/other/apis/tools/sys_tables_validate.go41 colWidthMin = 40COMMENT
107 more matches not shown…
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWstatic/form-generator/js/index.8e6d9f8f.js1(function(e){function t(t){for(var o,n,c=t[0],r=t[1],s=t[2],u=0,d=[];u<c.length;u++)n=c[u],Object.prototype.hasOwnProperCODE