Repository Analysis

colbymchenry/codegraph

Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, and Hermes Agent — fewer tokens, fewer tool calls, 100% local

2.6 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of colbymchenry/codegraph, a TypeScript project with 59,862 GitHub stars. SynthScan v2.0 examined 144,298 lines of code across 404 source files, recording 270 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 2.6 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.6
Adjusted Score
2.6
Raw Score
100%
Time Factor
2026-07-13
Last Push
59.9K
Stars
TypeScript
Language
144.3K
Lines of Code
404
Files
270
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 0HIGH 5MEDIUM 28LOW 237

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 270 distinct pattern matches across 12 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.

Over-Commented Block118 hits · 110 pts
SeverityFileLineSnippetContext
LOWinstall.sh1#!/bin/shCOMMENT
LOWscripts/build-bundle.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/build-bundle.sh61COMMENT
LOWscripts/npm-shim.js1#!/usr/bin/env nodeCOMMENT
LOWscripts/pack-npm.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/npm-sdk.js1'use strict';COMMENT
LOWscripts/agent-eval/ab-hook.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/run-arms.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/ab-new-vs-baseline.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/itrun.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/itrun.sh81doneCOMMENT
LOWscripts/agent-eval/offload-eval-styles.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/redirect-read-hook.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/audit.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/ab-impl.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/run-all.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/agent-eval/ab-sufficiency.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/add-lang/bench.sh1#!/usr/bin/env bashCOMMENT
LOW.github/workflows/release.yml1name: ReleaseCOMMENT
LOW.github/workflows/release.yml21 contents: write # create the GitHub Release + tag, push the CHANGELOG promoteCOMMENT
LOW.github/workflows/release.yml41 # RELEASE_PAT secret with: contents:write on this repo, no otherCOMMENT
LOWsrc/directory.ts261 'comment', 'où', 'flux', 'chemins?', 'casse',COMMENT
LOWsrc/directory.ts281 // the ge- participle escapes the "aanroep" stem)COMMENT
LOWsrc/directory.ts321 * four bounded English entries below, #1138).COMMENT
LOWsrc/directory.ts341 // traza(r)=trace, explica=explain)COMMENT
LOWsrc/directory.ts361 'виклика', 'залеж', 'вплива', 'архітектур', 'реаліз', 'поясн', 'шлях',COMMENT
LOWsrc/directory.ts381 // etkile(r)/etkisi=affects/impact)COMMENT
LOWsrc/index.ts481 // (resolver re-init and resolution both read on the main thread):COMMENT
LOWsrc/index.ts661 // Cross-file finalization (e.g. NestJS RouterModule prefixes). Run onCOMMENT
LOWsrc/index.ts741 current,COMMENT
LOWsrc/index.ts781 // implements/extends edges built above (#750).COMMENT
LOWsrc/index.ts1141 // the LIMIT) a genuine two-word match. The JS re-check below recomputesCOMMENT
LOWsrc/upgrade/index.ts101COMMENT
LOWsrc/context/index.ts621 for (const result of searchResults) {COMMENT
LOWsrc/bin/codegraph.ts1201 const prompt = String(input.prompt || '');COMMENT
LOWsrc/bin/codegraph.ts1221 // verified against the graph below, so a tech brand ("JavaScript") thatCOMMENT
LOWsrc/bin/codegraph.ts1281 return;COMMENT
LOWsrc/mcp/session.ts201 // Explicit project signal, strongest first: client-provided rootUri /COMMENT
LOWsrc/mcp/session.ts241 }COMMENT
LOWsrc/mcp/tools.ts821 // once and every later tool call reuses the result — never shelling out toCOMMENT
LOWsrc/mcp/tools.ts961 // projectPath, so mark it required in the schema — a high-salience nudge theCOMMENT
LOWsrc/mcp/tools.ts981 // - 3-tool gate (search + context + trace): cost regressed onCOMMENT
LOWsrc/mcp/tools.ts1401COMMENT
LOWsrc/mcp/tools.ts1901 // disambiguate an ambiguous SIMPLE name: keep a candidate only if itsCOMMENT
LOWsrc/mcp/tools.ts2601 // Concurrency.swift / the abstract base. Used below to bias overloadedCOMMENT
LOWsrc/mcp/tools.ts2661 if (!isPreciseToken(t)) {COMMENT
LOWsrc/mcp/tools.ts2701 // Step 2: Group nodes by file, score by relevanceCOMMENT
LOWsrc/mcp/tools.ts2741 }COMMENT
LOWsrc/mcp/tools.ts2861COMMENT
LOWsrc/mcp/tools.ts2921 // existing low-value/generated/score tiebreaks.COMMENT
LOWsrc/mcp/tools.ts2941 // the answer) AND (b) matched by ≥2 DISTINCT query terms must not be buried byCOMMENT
LOWsrc/mcp/tools.ts3161 // base+subclasses "family" file like Django's compiler.py — collapse it).COMMENT
LOWsrc/mcp/tools.ts3261 : 'skeleton (signatures only — codegraph_explore a name for its full body; do NOT Read)';COMMENT
LOWsrc/mcp/tools.ts3321 // Sort by start line, then merge overlapping/adjacent ranges (within theCOMMENT
LOWsrc/mcp/tools.ts3501 // total output cap — so selection (which ranks by importance) keeps theCOMMENT
LOWsrc/mcp/index.ts321 // Background init so the initialize response stays fast (#172).COMMENT
LOWsrc/resolution/callback-synthesizer.ts41const FLUTTER_SETSTATE_RE = /\bsetState\s*\(/; // Flutter: setState((){…}) / this.setStateCOMMENT
LOWsrc/resolution/callback-synthesizer.ts61// a dispatcher to same-named registrars (`.append`/`.add`/`.push`/`.insert`,COMMENT
LOWsrc/resolution/callback-synthesizer.ts1381// ObjC's `[self sendEventWithName:@"X" body:...]` shape (bracket syntax,COMMENT
LOWsrc/resolution/callback-synthesizer.ts2261 });COMMENT
58 more matches not shown…
Decorative Section Separators23 hits · 80 pts
SeverityFileLineSnippetContext
MEDIUM__tests__/integration/full-pipeline.test.ts89 // ── init ──────────────────────────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts95 // ── indexAll ────────────────────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts104 // ── resolveReferences ────────────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts117 // ── searchNodes ──────────────────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts126 // ── getCallers / getCallees ──────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts135 // ── buildContext ─────────────────────────────────────────────COMMENT
MEDIUM__tests__/integration/full-pipeline.test.ts143 // ── sync (add + modify + remove in one pass) ─────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2112// ── Object-literal registry dispatch ─────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2269// ── RTK Query generated-hook → endpoint ──────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2327// ── Pinia useStore().action() dispatch bridge ────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2411// ── Vuex string-keyed dispatch / commit bridge ───────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2501// ── Celery task dispatch (Python) ─────────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2597// ── Spring application events (Java) ──────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2720// ── MediatR request/notification dispatch (C#/.NET) ───────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2720// ── MediatR request/notification dispatch (C#/.NET) ───────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2837// ── Sidekiq job dispatch (Ruby) ───────────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts2928// ── Erlang behaviour-callback dispatch ────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts3294// ── Laravel events (PHP) ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/name-matcher.ts1055// ── Local-variable receiver-type inference (#1108) ──────────────────────────COMMENT
MEDIUMsrc/resolution/name-matcher.ts1055// ── Local-variable receiver-type inference (#1108) ──────────────────────────COMMENT
MEDIUMsrc/resolution/frameworks/react-native.ts65// ─── Native-side extraction ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/frameworks/react-native.ts244// ─── Map building ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/resolution/frameworks/react-native.ts360// ─── Resolver ───────────────────────────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers66 hits · 66 pts
SeverityFileLineSnippetContext
LOW__tests__/segment-vocab.test.ts50export function resolveDeferredThisMemberRefs(): void {}CODE
LOWsrc/directory.ts212export function findIndexedSubprojectRoots(CODE
LOWsrc/project-config.ts312export function loadIncludeIgnoredPatterns(rootDir: string): string[] {CODE
LOWsrc/project-config.ts359export function addIncludeIgnoredPatterns(rootDir: string, patterns: string[]): number {CODE
LOWsrc/upgrade/update-check.ts239export function checkForUpdateInBackground(CODE
LOWsrc/upgrade/index.ts208export function parseLatestTagFromLocation(location: string | undefined): string | null {CODE
LOWsrc/upgrade/index.ts490function selfHealInstalledSurfaces(deps: UpgradeDeps): void {CODE
LOWsrc/upgrade/index.ts557export function buildWindowsUpgradeScript(bundleRoot: string, version: string, arch: string): string {CODE
LOWsrc/bin/command-supervision.ts54export function installCommandSupervision(label: string, watchdog: WatchdogOptions = {}): CommandSupervision {CODE
LOWsrc/mcp/daemon.ts615export function acquireLockViaExclusiveOpen(pidPath: string, info: DaemonLockInfo): boolean {CODE
LOWsrc/mcp/daemon-paths.ts69export function getDaemonSocketCandidates(projectRoot: string): string[] {CODE
LOWsrc/mcp/stdin-teardown.ts26export function treatStdinFailureAsShutdown(CODE
LOWsrc/mcp/startup-handshake.ts40export function parseStartupHandshakeTimeoutMs(raw: string | undefined): number {CODE
LOWsrc/mcp/startup-handshake.ts53export function armStartupHandshakeTimeout(CODE
LOWsrc/mcp/tools.ts303function exploreLineNumbersEnabled(): boolean {CODE
LOWsrc/mcp/tools.ts336function resolveCatchUpGateTimeoutMs(): number {CODE
LOWsrc/mcp/proxy.ts417function startPpidWatchdogNoSocket(onDeath: () => void): void {CODE
LOWsrc/mcp/liveness-watchdog.ts178export function installMainThreadWatchdog(options: WatchdogOptions = {}): WatchdogHandle | null {CODE
LOWsrc/resolution/callback-synthesizer.ts906async function goCrossFileMethodContainsEdges(queries: QueryBuilder, onYield: MaybeYield): Promise<Edge[]> {CODE
LOWsrc/resolution/callback-synthesizer.ts3176async function erlangBehaviourDispatchEdges(queries: QueryBuilder, ctx: ResolutionContext, onYield: MaybeYield): PromiseCODE
LOWsrc/resolution/import-resolver.ts441function loadCppIncludeDirsFromCompileDB(projectRoot: string): string[] | null {CODE
LOWsrc/resolution/import-resolver.ts550function loadCppIncludeDirsHeuristic(projectRoot: string): string[] {CODE
LOWsrc/resolution/import-resolver.ts1480function resolvePythonModuleMember(CODE
LOWsrc/resolution/import-resolver.ts1589function resolveModuleImportToFile(CODE
LOWsrc/resolution/import-resolver.ts1674function resolvePythonAbsoluteModule(CODE
LOWsrc/resolution/import-resolver.ts1824function resolveJavaImportedReference(CODE
LOWsrc/resolution/import-resolver.ts1898function resolveGoCrossPackageReference(CODE
LOWsrc/resolution/name-matcher.ts29function resolveAmbiguousNameCeiling(): number {CODE
LOWsrc/resolution/name-matcher.ts802function inferCppAutoInitializerType(CODE
LOWsrc/resolution/name-matcher.ts1006function inferJavaFieldReceiverType(CODE
LOWsrc/resolution/name-matcher.ts1078function normalizeInferredTypeName(raw: string): string | null {CODE
LOWsrc/resolution/name-matcher.ts1093function localReceiverTypePatterns(language: Language, r: string): RegExp[] {CODE
LOWsrc/resolution/name-matcher.ts1400function inferPhpAssignedPropertyType(CODE
LOWsrc/resolution/swift-objc-bridge.ts76export function objcSelectorForSwiftMethod(CODE
LOWsrc/resolution/swift-objc-bridge.ts160export function objcAccessorsForSwiftProperty(CODE
LOWsrc/resolution/swift-objc-bridge.ts196export function swiftBaseNamesForObjcSelector(selector: string): string[] {CODE
LOWsrc/resolution/frameworks/rust.ts14function getCachedCargoWorkspaceCrateMap(context: ResolutionContext): Map<string, string> {CODE
LOWsrc/resolution/frameworks/nestjs.ts532function collectRouterModuleRegistrations(safe: string, out: Map<string, string>): void {CODE
LOWsrc/resolution/frameworks/fabric.ts84function deriveComponentNameFromManager(className: string): string {CODE
LOWsrc/resolution/frameworks/fabric.ts145function extractLegacyViewManagerNodes(filePath: string, source: string): Node[] {CODE
LOWsrc/resolution/frameworks/fabric.ts225function extractJvmViewManagerNodes(filePath: string, source: string): Node[] {CODE
LOWsrc/resolution/frameworks/index.ts124export function registerFrameworkResolver(resolver: FrameworkResolver): void {CODE
LOWsrc/resolution/frameworks/cargo-workspace.ts224export function getCargoWorkspaceCrateMap(context: ResolutionContext): Map<string, string> {CODE
LOWsrc/resolution/frameworks/java.ts424function extractSpringValueBindings(CODE
LOWsrc/sync/watcher.ts85function isWatchResourceExhaustion(err: unknown): boolean {CODE
LOWsrc/sync/worktree.ts93export function detectWorktreeIndexMismatch(CODE
LOWsrc/installer/targets/shared.ts142export function replaceOrAppendMarkedSection(CODE
LOWsrc/installer/targets/opencode.ts263function cleanupLegacyWindowsState(): WriteResult['files'] {CODE
LOWsrc/installer/targets/claude.ts289function isLegacyCodegraphHookCommand(command: unknown): boolean {CODE
LOWsrc/installer/targets/claude.ts322function removeHookCommandsMatching(CODE
LOWsrc/extraction/index.ts318function loadIncludeIgnoredMatcher(rootDir: string): Ignore | null {CODE
LOWsrc/extraction/index.ts482function collectIncludedFilesForRoot(rootDir: string): Set<string> {CODE
LOWsrc/extraction/index.ts725function gitlinkEmbeddedRepoSkipped(CODE
LOWsrc/extraction/index.ts747export function discoverEmbeddedRepoRoots(rootDir: string): string[] {CODE
LOWsrc/extraction/index.ts827export function findUnindexedIgnoredRepos(rootDir: string): string[] {CODE
LOWsrc/extraction/index.ts1380function resurrectRefFromDroppedEdge(CODE
LOWsrc/extraction/grammars.ts541export function getUnavailableGrammarErrors(): Partial<Record<Language, string>> {CODE
LOWsrc/extraction/wasm-runtime-flags.ts63export function processHasWasmRuntimeFlags(CODE
LOWsrc/extraction/wasm-runtime-flags.ts92export function relaunchWithWasmRuntimeFlagsIfNeeded(scriptPath: string): void {CODE
LOWsrc/extraction/languages/c-cpp.ts13function findDeclaratorQualifiedId(declarator: SyntaxNode): SyntaxNode | undefined {CODE
6 more matches not shown…
Verbosity Indicators19 hits · 29 pts
SeverityFileLineSnippetContext
LOWsrc/context/index.ts450 // Step 1: Extract potential symbol names from queryCOMMENT
LOWsrc/context/index.ts454 // Step 2: Look up exact matches for extracted symbolsCOMMENT
LOWsrc/context/index.ts539 // Step 3: Run text search for natural language term matchingCOMMENT
LOWsrc/context/index.ts588 // Step 4: Merge results, taking the max score when duplicates appearCOMMENT
LOWsrc/mcp/tools.ts2523 // Step 1: Find relevant context with generous parameters.COMMENT
LOWsrc/mcp/tools.ts2701 // Step 2: Group nodes by file, score by relevanceCOMMENT
LOWsrc/mcp/tools.ts3001 // Step 3: Build relationship mapCOMMENT
LOWsrc/mcp/tools.ts3057 // Step 4: Read contiguous file sectionsCOMMENT
LOWsrc/installer/index.ts92 // Step 1: which agent targets? Asked FIRST so the user knows whatCOMMENT
LOWsrc/installer/index.ts103 // Step 2: install the codegraph npm package on PATH (always offered;COMMENT
LOWsrc/installer/index.ts131 // Step 3: where the per-agent config files should land.COMMENT
LOWsrc/installer/index.ts162 // Step 4: auto-allow permissions (only meaningful for Claude;COMMENT
LOWsrc/installer/index.ts231 // Step 5: per-target install loop.COMMENT
LOWsrc/installer/index.ts269 // Step 6: install wires up agents only — it deliberately does NOT index.COMMENT
LOWsrc/installer/index.ts446 // Step 1: which location — asked FIRST, the one decision the userCOMMENT
LOWsrc/installer/index.ts470 // Step 2: which agents. Default is every agent, so the user doesn'tCOMMENT
LOWsrc/installer/index.ts485 // Step 3: sweep + per-agent feedback.COMMENT
LOWsrc/installer/index.ts501 // Step 4: for local uninstall, the index dir is separate — point atCOMMENT
LOWsrc/installer/index.ts563 // Step 5: summary.COMMENT
Structural Annotation Overuse19 hits · 29 pts
SeverityFileLineSnippetContext
LOWsrc/context/index.ts450 // Step 1: Extract potential symbol names from queryCOMMENT
LOWsrc/context/index.ts454 // Step 2: Look up exact matches for extracted symbolsCOMMENT
LOWsrc/context/index.ts539 // Step 3: Run text search for natural language term matchingCOMMENT
LOWsrc/context/index.ts588 // Step 4: Merge results, taking the max score when duplicates appearCOMMENT
LOWsrc/mcp/tools.ts2523 // Step 1: Find relevant context with generous parameters.COMMENT
LOWsrc/mcp/tools.ts2701 // Step 2: Group nodes by file, score by relevanceCOMMENT
LOWsrc/mcp/tools.ts3001 // Step 3: Build relationship mapCOMMENT
LOWsrc/mcp/tools.ts3057 // Step 4: Read contiguous file sectionsCOMMENT
LOWsrc/installer/index.ts92 // Step 1: which agent targets? Asked FIRST so the user knows whatCOMMENT
LOWsrc/installer/index.ts103 // Step 2: install the codegraph npm package on PATH (always offered;COMMENT
LOWsrc/installer/index.ts131 // Step 3: where the per-agent config files should land.COMMENT
LOWsrc/installer/index.ts162 // Step 4: auto-allow permissions (only meaningful for Claude;COMMENT
LOWsrc/installer/index.ts231 // Step 5: per-target install loop.COMMENT
LOWsrc/installer/index.ts269 // Step 6: install wires up agents only — it deliberately does NOT index.COMMENT
LOWsrc/installer/index.ts446 // Step 1: which location — asked FIRST, the one decision the userCOMMENT
LOWsrc/installer/index.ts470 // Step 2: which agents. Default is every agent, so the user doesn'tCOMMENT
LOWsrc/installer/index.ts485 // Step 3: sweep + per-agent feedback.COMMENT
LOWsrc/installer/index.ts501 // Step 4: for local uninstall, the index dir is separate — point atCOMMENT
LOWsrc/installer/index.ts563 // Step 5: summary.COMMENT
Cross-Language Confusion (JS/TS)5 hits · 25 pts
SeverityFileLineSnippetContext
HIGH__tests__/extraction.test.ts1985 print(name);CODE
HIGH__tests__/extraction.test.ts5780 fs.writeFileSync(path.join(tempDir, 'app/views.py'), `def home(request):\n return None\n`);CODE
HIGH__tests__/celery-dispatch-synthesizer.test.ts50 return NoneCODE
HIGH__tests__/graph.test.ts44 print(): void;CODE
HIGH__tests__/graph.test.ts63 print(): void {CODE
Modern AI Meta-Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMsrc/mcp/tools.ts2988 // the agent rarely needs to see the protobuf scaffold or gomock outputCOMMENT
MEDIUMsrc/mcp/tools.ts4517 // hand-written implementations before the protobuf scaffold).COMMENT
MEDIUMsrc/resolution/callback-synthesizer.ts1139 // a protoc-emitted scaffold rather than someone naming a structCOMMENT
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOW__tests__/extraction.test.ts6817 git(libDir, 'config', 'user.email', 'test@test.com');CODE
LOW__tests__/extraction.test.ts6827 git(mainDir, 'config', 'user.email', 'test@test.com');CODE
LOW__tests__/extraction.test.ts6856 git('config', 'user.email', 'test@test.com');CODE
LOW__tests__/extraction.test.ts7045 git(root, 'config', 'user.email', 'test@test.com');CODE
LOW__tests__/extraction.test.ts7054 git(path.join(root, 'sub_repo1'), 'config', 'user.email', 'test@test.com');CODE
LOW__tests__/sync.test.ts168 git('config', 'user.email', 'test@test.com');CODE
LOW__tests__/sync.test.ts324 git('config', 'user.email', 'test@test.com');CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM__tests__/resolution.test.ts2050 // way). Method↔type association is by qualifiedName, robust where the methodCOMMENT
MEDIUMscripts/agent-eval/itrun.sh67# Busy signals. The robust one is the spinner's elapsed-time-in-parens, whichCOMMENT
Overly Generic Function Names5 hits · 5 pts
SeverityFileLineSnippetContext
LOW__tests__/extraction.test.ts7352 private def helper(): Unit = {}CODE
LOW__tests__/extraction.test.ts8498 const js = extractFromSource('service.xsjs', 'function handleRequest() { return 1; }');CODE
LOW__tests__/extraction.test.ts8606 fs.writeFileSync(path.join(dir, 'pkg', 'foo.py'), `widget = {"n": 1}\ndef helper():\n return 1\n`);CODE
LOW__tests__/celery-dispatch-synthesizer.test.ts56 `def process_data(x):CODE
LOW__tests__/celery-dispatch-synthesizer.test.ts69def handle_request(req):CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/build-bundle.sh12# Usage:COMMENT
LOWscripts/local-install.sh6# Usage:COMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWassets/generate-language-tiles.py167CODE