AI Slop Code Risk Monitor

goplus/xgo

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

XGo is a programming language that reads like plain English. But it's also incredibly powerful — it lets you leverage assets from C/C++, Go, Python, and JavaScript/TypeScript, creating a unified software engineering ecosystem. Our vision is to enable everyone to become a builder of the world.

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for goplus/xgo, a Go project with 9,492 GitHub stars. SynthScan examined 88,500 lines of code across 408 source files, recording 159 pattern matches distributed across 3 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
9.5K
Stars
Go
Language
88.5K
Lines of Code
408
Files
159
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 7.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 0.0/100 · LOW

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

PR Review Velocity Impact 8.7/100 · LOW

Which changes need focused human review? 159 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 1LOW 158

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 159 distinct pattern matches across 3 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 Block150 hits · 124 pts
SeverityFileLineSnippetContext
LOWall.bash1#! /usr/bin/env bashCOMMENT
LOWmake.bash1#! /usr/bin/env bashCOMMENT
LOWtoken/types.go21COMMENT
LOWtoken/types.go41// equivalent to comparing the respective source file offsets. If p and qCOMMENT
LOWdql/reflects/node.go141// - $nameCOMMENT
LOWdql/fetcher/pkg.go.dev/importedBy/xgo_autogen.go21// New extracts the number of packages that import the given package fromCOMMENT
LOWdql/json/json.go41// New creates a JSON NodeSet from JSON data read from r.COMMENT
LOWdql/yaml/yaml.go41// New creates a YAML NodeSet from YAML data read from r.COMMENT
LOWprinter/printer.go521// comment line is indented, all but the first line have some form of space prefix).COMMENT
LOWprinter/printer.go581 prefix = prefix[0:i]COMMENT
LOWprinter/printer.go821 p.indent = 0COMMENT
LOWprinter/printer.go881 if pos.IsValid() {COMMENT
LOWprinter/nodes.go61// Print as many newlines as necessary (but at least min newlines) to get toCOMMENT
LOWprinter/nodes.go221 // initialize expression/key size: a zero value indicates expr/key doesn't fit on a single lineCOMMENT
LOWprinter/nodes.go701 }COMMENT
LOWprinter/nodes.go721// expressions (function calls, parenthesized exprs), and apply these rules:COMMENT
LOWprinter/nodes.go1701// The keepTypeColumn function determines if the type column of a series ofCOMMENT
LOWprinter/nodes.go1801 // contain a backward- or double-quoted path string that doesCOMMENT
LOWprinter/nodes.go2061 defer func(level int) {COMMENT
LOWtpl/token/types.go21)COMMENT
LOWtpl/scanner/scanner.go121// It is ok to re-use the same file when re-scanning the same file asCOMMENT
LOWtpl/scanner/scanner.go721// Scan scans the next token and returns the token position, the token,COMMENT
LOWparser/parser_xgo.go121 return ParseFSEntry(fset, fsx.Local, filename, src, conf)COMMENT
LOWparser/interface.go61 goReservedFlags Mode = ((1 << 16) - 1)COMMENT
LOWparser/interface.go121COMMENT
LOWparser/interface.go161 // report an error if there's more tokens.COMMENT
LOWparser/parser.go361}COMMENT
LOWparser/parser.go2401 return p.parseLiteralValueOrMapComprehension()COMMENT
LOWparser/parser.go2881 // once we have found the end of the unary expression. ThereCOMMENT
LOWformat/format.go41const parserMode = parser.ParseCommentsCOMMENT
LOWast/ast_xgo.go61// It appears as the Type field of *TypeSpec when the syntaxCOMMENT
LOWast/ast_xgo.go141COMMENT
LOWast/ast_xgo.go501 }COMMENT
LOWast/ast_xgo.go701COMMENT
LOWast/resolve.go61 ident.Obj = objCOMMENT
LOWast/filter.go421 // times in different package files; only atCOMMENT
LOWast/ast.go21import (COMMENT
LOWast/ast.go981// specNode() ensures that only spec nodes can beCOMMENT
LOWast/commentmap.go121 return topCOMMENT
LOWdoc/string.md401s := "Hello"COMMENT
LOWdoc/docs.md741 // 0COMMENT
LOWcl/stmt.go701}COMMENT
LOWcl/stmt.go801 cb.SetComments(comments, once)COMMENT
LOWcl/stmt.go901 }COMMENT
LOWcl/compile.go81 // if the call result is not a constant, the recorded type isCOMMENT
LOWcl/compile.go101 // expression F(int(1)) to the inferred type arguments [int], and resultingCOMMENT
LOWcl/compile.go121 // For an embedded field, Use maps the *TypeName it denotes.COMMENT
LOWcl/compile.go141COMMENT
LOWcl/compile.go161 // *ast.CaseClauseCOMMENT
LOWcl/internal/test/case.go41 // by calling runtime.Goexit (which then runs all deferred calls in theCOMMENT
LOWcl/internal/test/case.go81 // SkipNow marks the test as having been skipped and stops its executionCOMMENT
LOWcl/internal/test/case.go101 // first called order.COMMENT
LOWcl/cltest/recorder.go21COMMENT
LOWcl/cltest/recorder.go41// expression x.f is found only in the Selections map, theCOMMENT
LOWcl/cltest/recorder.go61}COMMENT
LOWcl/cltest/recorder.go81}COMMENT
LOWcl/cltest/recorder.go101// Thus, the package scope can be found in the type-checked Package object.COMMENT
LOWscanner/scanner.go121// scanner at the beginning of src. The scanner uses the file set fileCOMMENT
LOWscanner/scanner.go801// If the returned token is a literal (token.IDENT, token.INT, token.FLOAT,COMMENT
LOWx/typesutil/gopinfo.go41 // For (possibly parenthesized) identifiers denoting built-inCOMMENT
90 more matches not shown…
Structural Annotation Overuse8 hits · 12 pts
SeverityFileLineSnippetContext
LOWdoc/contributing.md38### Step 1: Fork the upstream repositoryCOMMENT
LOWdoc/contributing.md47### Step 2: Clone the forked repositoryCOMMENT
LOWdoc/contributing.md59### Step 3: Create a new branchCOMMENT
LOWdoc/contributing.md74### Step 4: Make the changesCOMMENT
LOWdoc/contributing.md82### Step 5: Commit and pushCOMMENT
LOWdoc/contributing.md101### Step 6: Open a pull requestCOMMENT
LOWdoc/contributing.md111### Step 7: Engage with feedbackCOMMENT
LOWdoc/contributing.md129### Step 8: Do post-merge cleanupCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMparser/parser.go1118 // it here for more robust parsing and better error messagesCOMMENT