Repository Analysis

go-delve/delve

Delve is a debugger for the Go programming language.

2.9 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of go-delve/delve, a Go project with 24,840 GitHub stars. SynthScan v2.0 examined 133,259 lines of code across 601 source files, recording 209 pattern matches distributed across 8 syntactic categories. The overall adjusted score of 2.9 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

2.9
Adjusted Score
2.9
Raw Score
100%
Time Factor
2026-07-09
Last Push
24.8K
Stars
Go
Language
133.3K
Lines of Code
601
Files
209
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 5HIGH 0MEDIUM 73LOW 131

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 209 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

AI Slop Vocabulary72 hits · 198 pts
SeverityFileLineSnippetContext
MEDIUMcmd/dlv/dlv_test.go185 // Give delve some time to compile and write the binary.COMMENT
MEDIUMcmd/dlv/dlv_test.go211 // Sometimes delve on Windows can't remove the built binary beforeCOMMENT
MEDIUMcmd/dlv/dlv_test.go213 // See: https://travis-ci.com/go-delve/delve/jobs/296325131.COMMENT
MEDIUMcmd/dlv/dlv_test.go1869 // Check that when delve is run twice in the same directory simultaneouslyCOMMENT
MEDIUMcmd/dlv/cmds/commands.go400 // -c is unused and exists so delve can be used with coredumpctlCOMMENT
MEDIUMcmd/dlv/cmds/commands.go1007// so SIGINT gets sent to the debuggee and not to delve.COMMENT
MEDIUMcmd/dlv/cmds/commands.go1013 // as SIGINT to delve. Ignore it instead of stopping the serverCOMMENT
MEDIUM.github/ISSUE_TEMPLATE/issue_template.yml27 If this is about source listing not showing up (or breakpoints not being accepted) while running in a container CODE
MEDIUMservice/test/integration2_test.go2532 // See https://github.com/go-delve/delve/issues/2259COMMENT
MEDIUMservice/rpccommon/server.go28//go:generate go run github.com/go-delve/build-tools/cmd/gen-suitablemethods@latest suitablemethodsCOMMENT
MEDIUMservice/rpccommon/server.go365// GetVersion returns the version of delve as well as the API versionCOMMENT
MEDIUMservice/rpccommon/suitablemethods.go1// DO NOT EDIT: auto-generated using github.com/go-delve/build-tools/cmd/gen-suitablemethodsCOMMENT
MEDIUMservice/api/prettyprint.go514 // See https://ci.appveyor.com/project/derekparker/delve-facy3/builds/30179356.COMMENT
MEDIUMservice/rpc2/server.go278// `debugger.CreateBreakpoint` here: https://pkg.go.dev/github.com/go-delve/delve/service/debugger#Debugger.CreateBreakpCOMMENT
MEDIUMservice/rpc2/server.go551// See https://github.com/go-delve/delve/blob/master/Documentation/cli/expr.mdCOMMENT
MEDIUMservice/rpc2/client.go290// https://pkg.go.dev/github.com/go-delve/delve/service/debugger#Debugger.CreateBreakpointCOMMENT
MEDIUMservice/dap/handles.go22 // https://github.com/go-delve/delve/blob/master/Documentation/api/ClientHowto.md#loading-more-of-a-variableCOMMENT
MEDIUMservice/dap/server.go2// This allows delve to communicate with frontends using DAPCOMMENT
MEDIUMservice/dap/server.go897 /*TODO*/ s.sendUnsupportedErrorResponse(request.Request) // https://github.com/go-delve/delve/issues/2851COMMENT
MEDIUMservice/dap/server.go3129 // https://github.com/go-delve/delve/blob/master/Documentation/api/ClientHowto.md#looking-into-variables.COMMENT
MEDIUMservice/dap/server.go4309Unable to propagate EXC_BAD_ACCESS signal to target process and panic (see https://github.com/go-delve/delve/issues/852)CODE
MEDIUMservice/dap/server.go4470 // Filter out internal delve breakpoints (panic, fatal, hardcoded, etc.)COMMENT
MEDIUMservice/dap/types.go210 // https://github.com/go-delve/delve/blob/master/Documentation/cli/README.md#goroutinesCOMMENT
MEDIUMservice/dap/server_test.go620 // TODO(polina): once https://github.com/go-delve/delve/issues/2259 isCOMMENT
MEDIUMservice/dap/server_test.go4084 t.Skip("test skipped on Windows, see https://delve.teamcity.com/project/Delve_windows for details")CODE
MEDIUMservice/dap/server_test.go6278 t.Skip("test skipped on Windows, see https://delve.teamcity.com/project/Delve_windows for details")CODE
MEDIUMservice/dap/daptest/client.go5//go:generate go run github.com/go-delve/build-tools/cmd/gen-daptest@latest -o ./resp.goCOMMENT
MEDIUMservice/dap/daptest/client.go660// KnownEvent passes decode checks, but delve has no 'case' toCOMMENT
MEDIUMservice/dap/daptest/client.go662// added to go-dap, but not to delve.COMMENT
MEDIUM.teamcity/pom.xml25 <url>https://delve.teamcity.com/app/dsl-plugins-repository</url>CODE
MEDIUMpkg/proc/proc_amd64_test.go82 // Fixes issue https://github.com/go-delve/delve/issues/2985COMMENT
MEDIUMpkg/proc/target_exec.go1702 // in delve to support breakpoints in cgo.COMMENT
MEDIUMpkg/proc/bininfo.go85 // github.com/go-delve/delveCOMMENT
MEDIUMpkg/proc/bininfo.go86 // will map to 'delve' because it ends in '/delve'.COMMENT
MEDIUMpkg/proc/bininfo.go1649 // Previous versions of delve looked for the build id in every debug infoCOMMENT
MEDIUMpkg/proc/bininfo.go1656 // Previous versions of delve looked for the executable filename (withCOMMENT
MEDIUMpkg/proc/bininfo.go1939 // This is a bit arcane. Essentially:COMMENT
MEDIUMpkg/proc/bininfo.go2327// See also https://github.com/go-delve/delve/issues/3797COMMENT
MEDIUMpkg/proc/variables.go174 // When this happens delve will have to scan many empty buckets to find theCOMMENT
MEDIUMpkg/proc/variables.go179 // Since there is no good way for a user of delve to specify the value ofCOMMENT
MEDIUMpkg/proc/ppc64le_disasm.go34 // address, Teach delve to recognize this sequence to appropriately adjust PC address so that the breakpoint is actuallCOMMENT
MEDIUMpkg/proc/proc_test.go695 skipOn(t, "broken - see https://github.com/go-delve/delve/issues/3158", "darwin", "amd64")CODE
MEDIUMpkg/proc/proc_test.go1802 // See: https://github.com/go-delve/delve/pull/2082COMMENT
MEDIUMpkg/proc/proc_test.go4939 // https://github.com/go-delve/delve/issues/2346COMMENT
MEDIUMpkg/proc/proc_test.go4959 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_test.go5013 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_test.go5136 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_test.go5923 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_test.go5957 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_test.go5997 skipOn(t, "see https://github.com/go-delve/delve/issues/2768", "windows")CODE
MEDIUMpkg/proc/proc_unix_test.go37 // SIGINT directed at the inferior should be passed along not swallowed by delveCOMMENT
MEDIUMpkg/proc/breakpoints.go122// BreakpointKind determines the behavior of delve when theCOMMENT
MEDIUMpkg/proc/fncall.go670 // See: https://github.com/go-delve/delve/pull/2451#discussion_r665761531COMMENT
MEDIUMpkg/proc/fncall.go878 // See https://github.com/go-delve/delve/issues/2985 andCOMMENT
MEDIUMpkg/proc/eval.go557 // See https://github.com/go-delve/delve/issues/2049 for detailsCOMMENT
MEDIUMpkg/proc/core/core_test.go669 t.Fatalf("issue #3591: main.mod_map frame SP mismatch: delve=%#x runtime=%#x (see panic.txt in test temp dir pattern)"CODE
MEDIUMpkg/proc/native/dump_linux.go51 // pure PFN range, see https://github.com/go-delve/delve/issues/2630COMMENT
MEDIUMpkg/proc/native/ptrace_linux_386.go31 // ignore ENODEV, it just means this CPU or kernel doesn't support XSTATE, see https://github.com/go-delve/delve/issuCOMMENT
MEDIUMpkg/proc/native/ptrace_linux_amd64.go30 // ignore ENODEV, it just means this CPU or kernel doesn't support XSTATE, see https://github.com/go-delve/delve/issuCOMMENT
MEDIUMpkg/proc/native/proc_windows.go194// - https://github.com/go-delve/delve/issues/3136COMMENT
12 more matches not shown…
Over-Commented Block120 hits · 120 pts
SeverityFileLineSnippetContext
LOWcmd/dlv/cmds/helphelpers/help.go1package helphelpersCOMMENT
LOW_scripts/rtype.go1// This script checks that the Go runtime hasn't changed in ways that DelveCOMMENT
LOW_scripts/rtype.go21// // +rtype -field S.F TCOMMENT
LOW_scripts/rtype.go41// and check that type T has the specified fields.COMMENT
LOWservice/client.go141 // FindLocation returns concrete location information described by a location expressionCOMMENT
LOWservice/debugger/debugger.go101 // only when launching a new process.COMMENT
LOWservice/debugger/debugger.go661// CreateBreakpoint creates a breakpoint using information from the provided `requestedBp`.COMMENT
LOWservice/debugger/debugger.go681// corresponding to all specified addresses.COMMENT
LOWservice/api/types.go21type DebuggerState struct {COMMENT
LOWservice/api/types.go41 // NextInProgress indicates that a next or step operation was interrupted by another breakpointCOMMENT
LOWservice/api/types.go81type Breakpoint struct {COMMENT
LOWservice/api/types.go341 // contents.COMMENT
LOWservice/api/types.go441)COMMENT
LOWservice/api/types.go461 WithEvents boolCOMMENT
LOWservice/rpc2/server.go661// If arg.Filters are specified the list of returned goroutines is filteredCOMMENT
LOWservice/rpc2/server.go761 Locations []api.LocationCOMMENT
LOWservice/dap/server.go41 "github.com/go-delve/delve/pkg/proc"COMMENT
LOWservice/dap/server.go61// signal that can come from an OS interrupt (such as Ctrl-C) orCOMMENT
LOWservice/dap/server.go81// goroutines here because the dap server does not supportCOMMENT
LOWservice/dap/server.go181COMMENT
LOWservice/dap/server.go301 // ShowPprofLabels is an array of keys of pprof labels to show as aCOMMENT
LOWservice/dap/server.go381COMMENT
LOWservice/dap/server.go521 } else {COMMENT
LOWservice/dap/server.go541}COMMENT
LOWservice/dap/server.go741 }COMMENT
LOWservice/dap/server.go1521 s.send(&dap.TerminatedEvent{Event: *s.newEvent("terminated")})COMMENT
LOWservice/dap/server.go1701// and the location. The location is computed separately because this may be moreCOMMENT
LOWservice/dap/server.go3261COMMENT
LOWservice/dap/server.go3421 // used for variable assignments do not return a value when they succeed.COMMENT
LOWservice/dap/server.go3661 s.sendErrorResponse(request.Request, UnableToSetVariable, "Unable to set variable", err.Error())COMMENT
LOWservice/dap/server.go4021 // 0x000e nopCOMMENT
LOWservice/dap/types.go21// same args as aboveCOMMENT
LOWservice/dap/types.go61 defaultAttachConfig = AttachConfig{COMMENT
LOWservice/dap/types.go81 // to debug in `exec` mode.COMMENT
LOWservice/dap/types.go101 Cwd string `json:"cwd,omitempty"`COMMENT
LOWservice/dap/types.go121 Output string `json:"output,omitempty"`COMMENT
LOWservice/dap/types.go141 // using Delve's working directory will use this new directory.COMMENT
LOWservice/dap/types.go201 // in the variables pane or not.COMMENT
LOWservice/dap/server_test.go361// : 2 << launchCOMMENT
LOWservice/dap/server_test.go381// User selects "Continue" : 12 >> continueCOMMENT
LOWservice/dap/server_test.go621 // fixed, test with kill=false.COMMENT
LOWservice/dap/server_test.go1841 checkVarExact(t, locals, -1, "b1", "b1", "true", "bool", noChildren)COMMENT
LOWservice/dap/server_test.go4101 // The rules in 'substitutePath' will be applied as follows:COMMENT
LOWservice/dap/server_test.go5381 })COMMENT
LOWservice/dap/server_test.go5641 client.ExpectVariablesResponse(t)COMMENT
LOW_fixtures/cgostacktest/hello.c1#include <stdio.h>COMMENT
LOW_fixtures/testvariablescgo/test.c1#include <stdlib.h>COMMENT
LOWpkg/proc/arm64_arch.go61 a := bi.ArchCOMMENT
LOWpkg/proc/arm64_arch.go161 // For a detailed description of how this works read the long comment atCOMMENT
LOWpkg/proc/amd64_arch.go61 // - sp is cfaCOMMENT
LOWpkg/proc/mapiter.go321COMMENT
LOWpkg/proc/scope_test.go41 }COMMENT
LOWpkg/proc/target_exec.go681// - a breakpoint on the first deferred function with NextDeferBreakpointCOMMENT
LOWpkg/proc/bininfo.go1801 if err != nil {COMMENT
LOWpkg/proc/bininfo.go2221// macOSDebugFrameBugWorkaround applies a workaround for [golang/go#25841]COMMENT
LOWpkg/proc/variables.go61)COMMENT
LOWpkg/proc/variables.go81 VariableReturnArgumentCOMMENT
LOWpkg/proc/variables.go161 // MaxMapBuckets is the maximum number of map buckets to read before giving up.COMMENT
LOWpkg/proc/variables.go241 hi, lo uint64COMMENT
LOWpkg/proc/variables.go381// FindGoroutine returns a G struct representing the goroutineCOMMENT
60 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALpkg/proc/target_exec.go782 if !backward && !topframe.Current.Fn.cu.image.Stripped() {CODE
CRITICALpkg/proc/target_exec.go1062 if topframe.Call.Fn == nil || topframe.Call.Fn.cu.image.Stripped() {CODE
CRITICALpkg/proc/target_exec.go1071 dwarfTree, err := topframe.Current.Fn.cu.image.getDwarfTree(topframe.Current.Fn.offset)CODE
CRITICALpkg/proc/stack.go417 r.Call.File, r.Call.Line = r.Current.Fn.cu.lineInfo.PCToLine(r.Current.Fn.Entry, it.pc-1)CODE
CRITICALpkg/proc/stack.go507 dwarfTree, err := frame.Call.Fn.cu.image.getDwarfTree(frame.Call.Fn.offset)CODE
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOWcmd/dlv/dlv_test.go1081 Street: "123 Main St",CODE
LOWcmd/dlv/dlv_test.go1086 Street: "123 Main St",CODE
LOW_fixtures/issue1598.go9 return `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt utCODE
LOW_fixtures/issue1598.go9 return `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt utCODE
LOW_fixtures/traceverb.go48 Street: "123 Main St",CODE
LOWpkg/terminal/command_test.go1071 if !strings.Contains(r, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut CODE
LOWpkg/terminal/command_test.go1071 if !strings.Contains(r, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM_scripts/gencert.sh13# Create the certificate templateCOMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWDocumentation/cli/starlark.md170def command_goroutine_start_line(args):CODE
LOWDocumentation/cli/starlark.md238def command_switch_to_main_goroutine(args):CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW_scripts/gencert.sh3# Check if the certificate is already present in the system keychainCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpkg/debugdetect/doc.go8// Example usage:COMMENT