AI Slop Code Risk Monitor

gitkraken/vscode-gitlens

SlopCodeMonitor badge for gitkraken/vscode-gitlens Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Supercharge Git inside VS Code and unlock untapped knowledge within each repository — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more

2.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for gitkraken/vscode-gitlens, a TypeScript project with 9,960 GitHub stars. SynthScan examined 937,584 lines of code across 2479 source files, recording 1344 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.2 (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.

2.2
Adjusted Signal
2.2
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
10.0K
Stars
TypeScript
Language
937.6K
Lines of Code
2.5K
Files
1.3K
Pattern Hits
2026-10-31
Scan Date
0.02
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 6.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.4/100 · LOW

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

Agent Over-Engineering Ratio 5.0/100 · LOW

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

PR Review Velocity Impact 9.9/100 · LOW

Which changes need focused human review? 1344 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 57HIGH 3MEDIUM 43LOW 1241

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 1344 distinct pattern matches across 14 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.

Hyper-Verbose Identifiers868 hits · 912 pts
SeverityFileLineSnippetContext
LOWtests/e2e/graphHelpers.ts227export async function ensureGraphDetailsPanelOpen(graphWebview: FrameLocator, timeout = 10000): Promise<void> {CODE
LOWtests/e2e/baseTest.ts151function patchTestVSCodeProductJson(vscodePath: string): void {CODE
LOWtests/e2e/specs/rebase.test.ts94async function getRebaseWebviewWithRetry(CODE
LOWtests/e2e/specs/graphDetails.test.ts223async function expectDetailsPanelDismissed(graphWebview: FrameLocator): Promise<void> {CODE
LOWtests/e2e/specs/graphRowActions.test.ts75async function expectActionBackdropToMatchRow(row: Locator): Promise<void> {CODE
LOWtests/e2e/specs/localization.test.ts178 async function expectPanelHeaderLocalized(header: Locator, key: string, label: string): Promise<void> {CODE
LOWtests/e2e/specs/quickWizard.test.ts135async function selectCommandAndWaitForStepWithOptionalRepo(CODE
LOWtests/e2e/specs/quickWizard.test.ts168async function selectCommandSubcommandAndWaitForStepWithOptionalRepo(CODE
LOWtests/e2e/specs/quickWizard.test.ts217async function reverseCommandSubcommandAndRepo(CODE
LOWpackages/utils/src/date.ts335function getDateTimeFormatOptionsFromFormatString(CODE
LOWpackages/utils/src/logger.scoped.ts132function defineLazyBoundErrorMethod(scope: ScopedLogger): void {CODE
LOWpackages/utils/src/gitRefs.ts14export function getBranchNameWithoutRemote(name: string): string {CODE
LOWpackages/utils/src/gitRefs.ts18export function getRemoteNameFromBranchName(name: string): string {CODE
LOWpackages/utils/src/string.ts107export function compareSubstringIgnoreCase(CODE
LOWpackages/utils/src/string.ts405export function getTokensFromTemplateRegex(template: string): TokenMatch[] {CODE
LOWpackages/utils/src/diff.ts4export function annotateDiffWithNewLineNumbers(diff: string): string {CODE
LOWpackages/utils/src/pausedOperation.ts69export function getPausedOperationVariant(CODE
LOWpackages/utils/src/version.ts66export function compareByVersionDescending(a: string, b: string): number {CODE
LOWpackages/utils/src/__tests__/promiseCache.test.ts28async function recordUnhandledRejections(fn: () => Promise<void>): Promise<unknown[]> {CODE
LOWpackages/components/src/components/overlays/popover.ts108function isShadowIncludingAncestor(possibleAncestor: Node, node: Node): boolean {CODE
LOWpackages/git-cli/src/cliGitProvider.ts1249function getDefaultGlobalExcludesPath(): string | undefined {CODE
LOWpackages/git-cli/src/parsers/sshSignatureParser.ts14export function extractCommitterFromCommitObject(commitObject: string): { name: string; email: string } | undefined {CODE
LOWpackages/git-cli/src/parsers/sshSignatureParser.ts31export function extractSshPublicKeyFromCommitObject(commitObject: string): SshPublicKey | undefined {CODE
LOWpackages/git-cli/src/parsers/logParser.ts136export function getShaAndDatesWithFilesLogParser(CODE
LOW⚡packages/git-cli/src/parsers/logParser.ts153export function getShaAndFilesAndStatsLogParser(): ShaAndFilesAndStatsLogParser {CODE
LOW⚡packages/git-cli/src/parsers/logParser.ts161export function getShaAndFileRangeLogParser(): ShaAndFileRangeLogParser {CODE
LOW⚡packages/git-cli/src/parsers/logParser.ts169export function getShaAndFileSummaryLogParser(): ShaAndFileSummaryLogParser {CODE
LOWpackages/git-cli/src/parsers/logParser.ts219export function getStashFilesOnlyLogParser(): StashFilesOnlyLogParser {CODE
LOWpackages/git-cli/src/parsers/logParser.ts463function createLogParserWithFilesAndStats(): LogParserWithFilesAndStats<void>;CODE
LOWpackages/git-cli/src/parsers/logParser.ts761function createLogParserWithFileSummary(): LogParserWithFileSummary<void>;CODE
LOWpackages/git-cli/src/providers/status.ts39export function computeDeadlockBackstopMs(gitTimeout: number | undefined): number {CODE
LOWpackages/git-cli/src/providers/blame.ts529function createProgressiveGitBlame(repoPath: string): {CODE
LOWpackages/git-cli/src/providers/graph.ts96function computeDecorationFingerprint(CODE
LOWpackages/git-cli/src/providers/maintenance.ts159function encodePendingConfigChange(change: PendingConfigChange): string {CODE
LOWpackages/git-cli/src/providers/maintenance.ts163function decodePendingConfigChange(value: string): PendingConfigChange | undefined {CODE
LOWpackages/git-cli/src/providers/maintenance.ts196function isFsmonitorDaemonUnsupported(result: Pick<GitResult, 'exitCode' | 'stdout' | 'stderr'>): boolean {CODE
LOWpackages/git-cli/src/providers/maintenance.ts203function fsmonitorFeatureForPlatform(): GitFeatures | undefined {CODE
LOWpackages/git-cli/src/providers/commits.ts2131export function parseCatFileBatchForSshSigners(CODE
LOWpackages/git-cli/src/providers/config.ts165export function parseConfigRegexNullOutput(data: string | undefined): Map<string, string[]> {CODE
LOWpackages/git-cli/src/providers/config.ts223export function mayConfigDifferByCheckout(listing: string): boolean {CODE
LOW…git-cli/src/providers/__tests__/integration/helpers.ts203export function createShadowCheckedGitService(options: Omit<CliGitServiceOptions, 'verifyBaseRemeasure'>): GitService {CODE
LOW…rc/providers/__tests__/integration/maintenance.test.ts54function blockNextSparseCheckoutReapply(repo: TestRepo): { started: Promise<void>; release(): void } {CODE
LOW…ers/__tests__/integration/branches.aheadOfBase.test.ts67function createBranchFromDetachedHead(repoPath: string, name: string, startPoint: string): void {CODE
LOW…c/providers/__tests__/integration/graphSession.test.ts795 function createUpstreamRebindFixture() {CODE
LOW…cli/src/providers/__tests__/integration/shadowCheck.ts26export function takeBaseRemeasureMismatches(): Error[] {CODE
LOW…ers/__tests__/integration/branches.mergeTarget.test.ts65function createBranchFromDetachedHead(repoPath: string, name: string, startPoint: string): void {CODE
LOW…/__tests__/integration/maintenance.commitGraph.test.ts47async function readNewestCommitGraphChunkIds(repoPath: string): Promise<string[]> {CODE
LOW…oviders/__tests__/integration/pausedOperations.test.ts18function setupConflictedCherryPick(r: TestRepo): void {CODE
LOW…oviders/__tests__/integration/pausedOperations.test.ts82function setupTwoStepConflictedRebase(r: TestRepo): void {CODE
LOWpackages/git-cli/src/exec/git.ts596export function inferSigningFormatFromError(ex: unknown): SigningFormat | undefined {CODE
LOWpackages/git/src/errors.ts440function getMissingBranchErrorMessage(CODE
LOWpackages/git/src/errors.ts514function getMissingSetUpstreamBranchErrorMessage(CODE
LOWpackages/git/src/errors.ts536function getGenericBranchErrorMessage(CODE
LOWpackages/git/src/errors.ts945function getCherryPickContinueErrorMessage(CODE
LOWpackages/git/src/errors.ts1004function getMergeContinueErrorMessage(CODE
LOWpackages/git/src/errors.ts1063function getRebaseContinueErrorMessage(CODE
LOWpackages/git/src/errors.ts1122function getRevertContinueErrorMessage(CODE
LOWpackages/git/src/errors.ts1892function getMissingTagErrorMessage(CODE
LOWpackages/git/src/errors.ts1985function getGenericTagErrorMessage(tag: string, reason: TagErrorReason | undefined, l10n: Translator): string {CODE
LOWpackages/git/src/errors.ts2289export function getDeferredRequestFailure(ex: unknown): (() => void) | undefined {CODE
808 more matches not shown…
Hallucination Indicators57 hits · 615 pts
SeverityFileLineSnippetContext
CRITICAL…providers/__tests__/integration/graph.ancestry.test.ts229 const readFile = clone.provider.context.fs.readFile.bind(clone.provider.context.fs);CODE
CRITICAL…providers/__tests__/integration/graph.ancestry.test.ts258 const readFile = repo.provider.context.fs.readFile.bind(repo.provider.context.fs);CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts209 const baseSSHUrl = pr.toRef.repository.links.clone.find(link => link.name === 'ssh')?.href ?? null;CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts210 let baseHTTPSUrl = pr.toRef.repository.links.clone.find(link => link.name === 'https')?.href ?? null;CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts212 baseHTTPSUrl = pr.toRef.repository.links.clone.find(link => link.name === 'http')?.href ?? null;CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts215 const headSSHUrl = pr.fromRef.repository.links.clone.find(link => link.name === 'ssh')?.href ?? null;CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts216 let headHTTPSUrl = pr.fromRef.repository.links.clone.find(link => link.name === 'https')?.href ?? null;CODE
CRITICAL⚡…/integrations/src/providers/bitbucket-server/models.ts218 headHTTPSUrl = pr.fromRef.repository.links.clone.find(link => link.name === 'http')?.href ?? null;CODE
CRITICAL…src/__tests__/bitbucketServerPullRequestSearch.test.ts134 pr.toRef.repository.project.key.toLowerCase() === project.toLowerCase() &&CODE
CRITICALsrc/webviews/apps/shared/components/promo.ts140 command = promo.content.webview.link.command.substring('command:'.length) as GlExtensionCommands;CODE
CRITICALsrc/webviews/apps/plus/graph/sidebar/sidebar-panel.ts950 const data = this._actions.state.panels.pullRequests.value.get();CODE
CRITICAL…apps/plus/graph/sidebar/__tests__/sidebarState.test.ts53 const data = actions.state.panels.worktrees.value.get();CODE
CRITICAL⚡…apps/plus/graph/sidebar/__tests__/sidebarState.test.ts113 const before = actions.state.panels.worktrees.value.get();CODE
CRITICAL⚡…apps/plus/graph/sidebar/__tests__/sidebarState.test.ts119 actions.state.panels.worktrees.value.get(),CODE
CRITICAL⚡…apps/plus/graph/sidebar/__tests__/sidebarState.test.ts129 const before = actions.state.panels.worktrees.value.get();CODE
CRITICAL⚡…apps/plus/graph/sidebar/__tests__/sidebarState.test.ts133 assert.strictEqual(actions.state.panels.worktrees.value.get(), before);CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts974 const scoped = this._actions.resources.scopeFiles.value.get();CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts2437 const value = entry?.result ?? (entry != null ? this._actions.resources.review.value.get() : undefined);CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts2508 const files = inReview ? this._actions.resources.scopeFiles.value.get() : undefined;CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts3674 const scopeFilesValue = this._actions.resources.scopeFiles.value.get();CODE
CRITICAL⚡…s/apps/plus/graph/components/gl-graph-details-panel.ts3804 this._actions.resources.branchCompareSummary.loading.get() ||CODE
CRITICAL⚡…s/apps/plus/graph/components/gl-graph-details-panel.ts3805 this._actions.resources.branchCompareSide.loading.get()CODE
CRITICAL⚡…s/apps/plus/graph/components/gl-graph-details-panel.ts3808 this._actions.resources.branchCompareSummary.error.get() ??CODE
CRITICAL⚡…s/apps/plus/graph/components/gl-graph-details-panel.ts3809 this._actions.resources.branchCompareSide.error.get()CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts4084 const scopeFilesValue = this._actions.resources.scopeFiles.value.get();CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts4418 this._actions.resources.resolve.value.get();CODE
CRITICAL…s/apps/plus/graph/components/gl-graph-details-panel.ts4511 const reviewValue = this._actions.resources.review.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1205 getResourceValue: () => this.actions.resources.review.value.get(),CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1252 const current = entry.result ?? this.actions.resources.review.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1429 const current = entry?.result ?? (isCurrent ? this.actions.resources.review.value.get() : undefined);CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1464 this.actions.resources.scopeFiles.value.get(),CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1558 const current = entry.result ?? (isCurrent ? this.actions.resources.review.value.get() : undefined);CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1682 const files = isCurrent ? this.actions.resources.scopeFiles.value.get() : undefined;CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1728 const current = entry?.result ?? this.actions.resources.review.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1771 this.actions.resources.scopeFiles.value.get(),CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1867 const currentValue = this.actions.resources.review.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts1897 getResourceValue: () => this.actions.resources.compose.value.get(),CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2010 const planValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2030 const resourceValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2146 const currentValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2203 const currentValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2311 const currentValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2349 const latest = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2386 const currentValue = this.actions.resources.compose.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2505 const planValue = this.actions.resources.resolve.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2515 const resourceValue = this.actions.resources.resolve.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2549 const planValue = this.actions.resources.resolve.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2637 const current = entry?.result ?? this.actions.resources.resolve.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2664 const current = entry?.result ?? this.actions.resources.resolve.value.get();CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2787 if (this.actions.resources.resolve.value.get() != null) return;CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts2795 if (this.actions.resources.resolve.value.get() != null) return;CODE
CRITICAL…pps/plus/graph/components/detailsWorkflowController.ts3598 this.actions.resources.scopeFiles.value.get(),CODE
CRITICALsrc/webviews/plus/graph/graphWebview.ts1032 ? !this._data.session.current.rowsStatsDeferred.isLoaded()CODE
CRITICALsrc/webviews/plus/graph/graphWebview.ts1598 if (isWipRow || this._data.session.current.ids.has(id)) {CODE
CRITICALsrc/webviews/plus/graph/graphWebview.ts1679 if (isWipRowId(selectSha) || this._data.session.current.ids.has(selectSha)) {CODE
CRITICALsrc/webviews/plus/graph/graphWebview.ts1841 if (isWipRowId(rowId) || this._data.session.current.ids.has(rowId)) {CODE
CRITICALsrc/webviews/plus/graph/graphWebview.ts3620 this._data.session.current.avatars.set(email, dataUri);CODE
Over-Commented Block325 hits · 293 pts
SeverityFileLineSnippetContext
LOWtsconfig.core-dts.json1{COMMENT
LOWtsconfig.core-dts.json21 "incremental": false,COMMENT
LOWpnpm-workspace.yaml161 # would force a major jump.COMMENT
LOWtests/e2e/baseTest.ts241 // Skip onboarding/welcome screens — ephemeral test environments shouldn't show welcome viewsCOMMENT
LOWtests/e2e/baseTest.ts441 ...(runtimeDir ? { XDG_RUNTIME_DIR: runtimeDir } : {}),COMMENT
LOWtests/e2e/baseTest.ts561 await waitForGitLensActivation(evaluate);COMMENT
LOWtests/e2e/specs/mcp.test.ts261 expect(config.args).toContain('--scheme=cursor');COMMENT
LOWtests/e2e/specs/rebase.test.ts221 // pointer events for the full action budget. `notifications.clearAll` dismisses them outright, whichCOMMENT
LOWtests/e2e/specs/graphHeader.test.ts81 await ensureGraphDetailsPanelOpen(webview, MaxTimeout);COMMENT
LOWtests/e2e/specs/treeView.test.ts121 await expect(row).toBeVisible({ timeout: 30000 });COMMENT
LOWtests/e2e/specs/treeView.test.ts141 // with content but has no visible box, and waiting for it to appear on its own can only time out.COMMENT
LOWtests/e2e/specs/graphDetails.test.ts181 // Identify the row by its ROLE, not by its visible text. The row reads "Working Changes" only whileCOMMENT
LOWtests/e2e/specs/quickWizard.test.ts2101 title: /Create Worktree/i,COMMENT
LOWtests/e2e/specs/quickWizard.test.ts2161COMMENT
LOWtests/e2e/specs/graphPin.test.ts661 // Pinned sits to the LEFT of HEAD...COMMENT
LOWtests/e2e/specs/graphConflictResolution.test.ts181/** Open the Commit Graph and wait until the conflicted WIP row has rendered. */COMMENT
LOW.devcontainer/devcontainer.json1// For format details, see https://aka.ms/devcontainer.json. For config options, see theCOMMENT
LOWpackages/utils/src/trie.ts281 // let node: PathNode<T> | undefined;COMMENT
LOWpackages/utils/src/trie.ts601 // parent = node ?? this.root;COMMENT
LOWpackages/utils/src/trie.ts621 // let fullPath = '';COMMENT
LOWpackages/components/src/controllers/modifierKeys.ts41 window.addEventListener('keyup', this._onKey, { capture: true });COMMENT
LOW…git-cli/src/parsers/__tests__/rebaseTodoParser.test.ts21 });COMMENT
LOW…git-cli/src/parsers/__tests__/rebaseTodoParser.test.ts241 'Should parse 40-char SHA',COMMENT
LOW…git-cli/src/parsers/__tests__/rebaseTodoParser.test.ts261# t, reset <label> = reset HEAD to a labelCOMMENT
LOWpackages/git-cli/src/providers/refs.ts81 'for-each-ref',COMMENT
LOWpackages/git-cli/src/providers/stash.ts441 }COMMENT
LOWpackages/git-cli/src/providers/graph.ts461 return { stream: stream };COMMENT
LOWpackages/git-cli/src/providers/graph.ts681 if (wt.sha != null) {COMMENT
LOWpackages/git-cli/src/providers/graph.ts1481COMMENT
LOWpackages/git-cli/src/providers/graph.ts2441 // The full path (seeded fallback or unseeded full walk) re-derives everything → every channel changed.COMMENT
LOWpackages/git-cli/src/providers/maintenance.ts841 // Untracked cache is only CORRECT when directory mtimes are reliable; on network/virtual filesystemsCOMMENT
LOWpackages/git-cli/src/providers/maintenance.ts1141 // Re-check registration with a FRESH read (bypass the registered-repos TTL cache): the report thatCOMMENT
LOWpackages/git-cli/src/providers/branches.ts1201 // never matches the requested name, and would read as deleted — wiping a live branch'sCOMMENT
LOWpackages/git-cli/src/providers/branches.ts2381 if (!movedForward) return undefined;COMMENT
LOW…git-cli/src/providers/__tests__/integration/helpers.ts121 // Everything below can throw (a spawned `git` failing, or the provider constructor) — without theCOMMENT
LOWpackages/git-cli/src/exec/git.ts1041 gitCommand,COMMENT
LOWpackages/git-cli/src/exec/git.ts1521COMMENT
LOWpackages/git/src/features.ts61 // A bare `fetch` reads every remote when `fetch.all` is setCOMMENT
LOWpackages/git/src/features.ts81 // the loose-objects + incremental-repack tasks the auto tier uses landed in 2.30 (and `core.multiPackIndex`COMMENT
LOWpackages/git/src/cache.ts801 // (`gkConfig`/`config` below) or the branch itself is created/renamed/deleted. Every op thatCOMMENT
LOWpackages/git/src/watching/watcherPatterns.ts1import { isAbsolute } from '@gitlens/utils/path.js';COMMENT
LOW…s/git/src/watching/__tests__/watchSession.node.test.ts1341 const received: WatcherRepoChangeEvent[] = [];COMMENT
LOWpackages/git/src/utils/__tests__/remote.test.ts21 // For git@... the scheme part is undefined in the regex (no protocol prefix like ssh://)COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss41 // NOTE: while the results bar is up, the tree gets an INLINE `max-height` of its rows' total heightCOMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss561 // not force their width — without it rows shrink to content and the columns collapse.COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss621 cursor: pointer;COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss701 // High-contrast selection ring (old-engine parity: `--selected-row-border: 1px solid`). ACOMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss781 width: var(--row-graph-width);COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss821 bottom: 0;COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1041 // Opaque chip matching the effective row surface so it cleanly cuts the main icon's corner.COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1121 // segments, top→bottom). It EXPANDS rightward over the lanes into a role-COLORED pill (each segment filledCOMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1181 // past one level of nesting (see `--gutter-node-dim` below).COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1481COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1561 // (`.gl-graph__gutter-edges`): the chain's OWN lane art (its verticals + dot) never renders into eitherCOMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1641 }COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss1841 // match here for exactly that reason — the message sits on the OTHER line). Only the trailing marginCOMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss3161 // `.gl-graph__ref-pill#{$pill-filled}` wherever a rule needs to react to the pill being filled.COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss3221 box-shadow 150ms ease-out;COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss3241 inset 0 0 0 1px var(--ref-color),COMMENT
LOWpackages/plus/commit-graph-ui/src/graph.scss3281 color: var(--pill-on-fill);COMMENT
265 more matches not shown…
Modern AI Meta-Vocabulary16 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMdocs/webview-styling.md179## Quick guardrailsCOMMENT
MEDIUMdocs/telemetry-events.md263 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md336 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md380 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md424 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md468 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md513 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md557 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md601 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md645 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMdocs/telemetry-events.md691 // Groups every request of one AI session — the whole user-facing task. Set by conflict resolution (`type: 'resolveConCOMMENT
MEDIUMpackages/utils/src/diff.ts1// Annotates diff to make is easier for agentic reference to line number.COMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts571// Shared scaffold for the pointer-driven drags (column-boundary resize, graph-column resize, h-scrollCOMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts577// unregister `resizeDragCleanup`. Each hand-rolled copy of this scaffold leaked differently over timeCOMMENT
MEDIUM…/shared/components/details-header/gl-details-header.ts104 // right-anchored actions slot via two flex spacers. Only render the scaffold when there'sCOMMENT
MEDIUM…pps/plus/graph/components/gl-details-wip-empty-pane.ts85 // this scaffold was reshaped to avoid.COMMENT
Decorative Section Separators14 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUMtests/e2e/specs/mcpGitReadTools.test.ts105 // ── git_status ───────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/mcpGitReadTools.test.ts131 // ── git_branch ───────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/mcpGitReadTools.test.ts141 // ── git_log_or_diff ──────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/mcpGitReadTools.test.ts168 // ── git_blame ────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/mcpSurface.test.ts99 // ── Mode gating ──────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/mcpSurface.test.ts127 // ── Declared parameters ──────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/helpers/mcpHelper.ts512 // ── Private helpers ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts5640 // ─── Interaction (delegated; rows carry no per-row listeners) ──────────────COMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts8579 // ─── Controllable scroll-into-view ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/webviews/apps/shared/styles/colors.scss28 // ─── surface ────────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/webviews/apps/shared/styles/colors.scss54 // ─── border ─────────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/webviews/apps/shared/styles/colors.scss82 // ─── divider ────────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/webviews/apps/shared/styles/colors.scss103 // ─── feedback ───────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/webviews/apps/shared/styles/colors.scss224 // ─── actions ────────────────────────────────────────────────────────────────────────────────COMMENT
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUMpackages/git-cli/src/providers/operations.ts1369 // no CLI-length limit (so no batching), and robust for paths with spaces/newlines.COMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.scss2576 // Loading spinner shown while the host computes diffstats. Absolutely pinned to the column header'sCOMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts3326 // TODO: a paging append re-scans every row. `recomputeDisplayRows` already computes a robust identity-COMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts5182 // header height, see graph.scss) so the header stays interactive (mode picker, hide, resize). AbsolutelyCOMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts9630 // construction. Absolutely-positioned overlays report offsetWidth too but don't take flex-lineCOMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts10660 // Loading spinner while the host resolves diffstats. Absolutely pinned to the column's inline-endCOMMENT
MEDIUMpackages/plus/commit-graph-ui/src/graph.ts11588 // Electron/WSL compositor, and `drop` intermittently never fired). Pointer events are the robustCOMMENT
MEDIUM…/integrations/src/__tests__/perConnectionReads.test.ts362 // robust regardless of the provider's paging mode.COMMENT
MEDIUM.github/workflows/ci.yml219 # Heredoc-delimited output is robust even if the value ever spans lines — this is theCOMMENT
MEDIUM.github/workflows/ci.yml269 # itself is downloaded by the harness, so no path is emitted for it.COMMENT
MEDIUMsrc/uris/deepLinks/deepLinkService.ts709 // to a separate service where it can be used outside of the context of deep linking. Then the deep link service shouldCOMMENT
Fake / Example Data29 hits · 32 pts
SeverityFileLineSnippetContext
LOWtests/e2e/specs/blame.test.ts163 await git.commit('placeholder', 'README.md', '# clone failed');CODE
LOWtests/e2e/pageObjects/components/quickPick.ts109 await expect(this.input).toHaveAttribute('placeholder', placeholder, { timeout: timeout });CODE
LOWtests/e2e/pageObjects/components/quickPick.ts119 return this.input.getAttribute('placeholder');CODE
LOW⚡…/git-cli/src/parsers/__tests__/signatureParser.test.ts64 const output = `B${fieldSeparator}John Doe${fieldSeparator}ABCD1234${fieldSeparator}${fieldSeparator}${fieldSeparator}CODE
LOW⚡…/git-cli/src/parsers/__tests__/signatureParser.test.ts70 assert.strictEqual(result?.signer, 'John Doe', 'Should have correct signer');CODE
LOW⚡…/git-cli/src/parsers/__tests__/signatureParser.test.ts71 assert.strictEqual(result?.errorMessage, 'gpg: BAD signature from "John Doe"', 'Should include error message');CODE
LOW…/git-cli/src/parsers/__tests__/signatureParser.test.ts198 assert.strictEqual(result?.signer, 'user@example.com', 'Should have email as signer');CODE
LOW…ages/git-cli/src/parsers/__tests__/blameParser.test.ts59 author: 'John Doe',CODE
LOW…ages/git-cli/src/parsers/__tests__/blameParser.test.ts62 committer: 'John Doe',CODE
LOW…ages/git-cli/src/parsers/__tests__/blameParser.test.ts77 assert.strictEqual(commit.author.name, 'John Doe', 'Should have correct author name');CODE
LOW…ages/git-cli/src/parsers/__tests__/blameParser.test.ts211 author: 'John Doe',CODE
LOW…ages/git-cli/src/parsers/__tests__/blameParser.test.ts214 committer: 'John Doe',CODE
LOW⚡packages/git/src/utils/__tests__/search.utils.test.ts152 const result = parseSearchQuery(q('@:"John Doe"'));CODE
LOW⚡packages/git/src/utils/__tests__/search.utils.test.ts155 assert.ok(authors.has('"John Doe"'));CODE
LOW⚡packages/git/src/utils/__tests__/search.utils.test.ts159 const result = parseSearchQuery(q('@:"John Doe'));CODE
LOW⚡packages/git/src/utils/__tests__/search.utils.test.ts162 assert.ok(authors.has('"John Doe'));CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts15 assert.strictEqual(result, 'jane.smith@example.org');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts24 const result = extractEmailFromSigner('John Doe');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts37 const result = extractEmailFromSigner('user@example.com');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts38 assert.strictEqual(result, 'user@example.com');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts64 const result = extractEmailFromSigner('/C=US/O=Org/CN=Name/email=test@example.org');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts65 assert.strictEqual(result, 'test@example.org');CODE
LOW…ed/components/commit/__tests__/signature-badge.test.ts203 signer: 'John Doe',CODE
LOW…c/webviews/apps/shared/__tests__/wireSerialize.test.ts31 name: 'John Doe',CODE
LOW…c/webviews/apps/shared/__tests__/wireSerialize.test.ts35 name: 'Jane Doe',CODE
LOWsrc/commands/quick-wizard/quickCommand.ts172 }: Omit<Partial<QuickPickStep<T>>, 'placeholder'> & {CODE
LOWsrc/commands/quick-wizard/utils/steps.utils.ts55 options?: Omit<Partial<QuickPickStep<T>>, 'placeholder'>,CODE
LOWsrc/git/__tests__/graphRowProcessor.test.ts35 avatars: new Map<string, string>([['test@test.com', 'https://avatar']]),CODE
LOWsrc/git/__tests__/graphRowProcessor.test.ts45 email: 'test@test.com',CODE
Structural Annotation Overuse9 hits · 16 pts
SeverityFileLineSnippetContext
LOW.claude/skills/ux-review/SKILL.md44## Step 1: Gather ContextCOMMENT
LOW⚡.claude/skills/ux-review/SKILL.md55## Step 2: Identify User-Facing ChangesCOMMENT
LOW⚡.claude/skills/ux-review/SKILL.md65## Step 3: Trace User FlowsCOMMENT
LOW⚡.claude/skills/ux-review/SKILL.md73## Step 4: Evaluate Against Seven LensesCOMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts90 // Step 1: commit1 - merge-tree --write-tree --merge-base (clean)COMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts105 // Step 2: commit2 - merge-tree --write-tree --merge-base (CONFLICT)COMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts147 // Step 1: commit1 - CONFLICT on file1.txtCOMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts162 // Step 2: commit2 - clean mergeCOMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts177 // Step 3: commit3 - CONFLICT on file2.txtCOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…s/apps/plus/graph/components/gl-graph-details-panel.ts2744 // the user has typed or AI-generated, preserve their work.COMMENT
HIGHsrc/git/utils/-webview/remote.utils.ts150 // Resolve AI-generated PR details centrally before URL constructionCOMMENT
Cross-Language Confusion (JS/TS)1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpackages/utils/src/__tests__/event.test.ts97 // Event access after dispose should return None/noopCOMMENT
Verbosity Indicators5 hits · 8 pts
SeverityFileLineSnippetContext
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts90 // Step 1: commit1 - merge-tree --write-tree --merge-base (clean)COMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts105 // Step 2: commit2 - merge-tree --write-tree --merge-base (CONFLICT)COMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts147 // Step 1: commit1 - CONFLICT on file1.txtCOMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts162 // Step 2: commit2 - clean mergeCOMMENT
LOW…kages/git-cli/src/providers/__tests__/branches.test.ts177 // Step 3: commit3 - CONFLICT on file2.txtCOMMENT
TODO Padding4 hits · 6 pts
SeverityFileLineSnippetContext
LOWpackages/plus/integrations/src/providers/azureDevOps.ts1564 // TODO: implement repos versionCOMMENT
LOW…es/plus/integrations/src/providers/bitbucket-server.ts442 // TODO: implement repos versionCOMMENT
LOWpackages/plus/integrations/src/providers/bitbucket.ts459 // TODO: implement repos versionCOMMENT
LOWsrc/webviews/apps/shared/components/tree/tree-view.ts1119 // TODO: implement badge and indicator decorationsCOMMENT
Slop Phrases2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/codeql.yml54 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customiCOMMENT
MEDIUMsrc/plus/ai/actions/__tests__/generateCommits.test.ts54 const prose = `Here is the commit organization:\n${commitsObject}\nLet me know if you need changes.`;CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtests/e2e/runner/src/index.ts52async function handleRequest(req: IncomingMessage, res: ServerResponse): Promise<void> {CODE