{
	"schemaVersion": 1,
	"generatedAt": "2026-08-23T11:13:15.963Z",
	"hardware": {
		"cpu": "AMD Ryzen 9 9955HX 16-Core Processor",
		"logicalCores": 32,
		"ramGB": 62,
		"os": "Windows_NT 10.0.26200",
		"platform": "win32",
		"arch": "x64"
	},
	"loadAtStart": {
		"cpuPercent": 39,
		"loadAverage1m": null,
		"busyProcesses": 4
	},
	"loadAtEnd": {
		"cpuPercent": 2,
		"loadAverage1m": null,
		"busyProcesses": 4
	},
	"versions": {
		"scout": "scout 2.1.0",
		"ripgrep": "ripgrep 15.2.0 (rev e89fff89ac)",
		"grep": "grep (GNU grep) 3.0",
		"node": "v24.19.0",
		"git": "git version 2.54.0.windows.1"
	},
	"protocol": {
		"warmRuns": 10,
		"coldRuns": 3,
		"statistic": "median",
		"interleaved": true,
		"clock": "process.hrtime.bigint(), client-side wall clock",
		"scoutFlags": [
			"--no-semantic",
			"--no-telemetry"
		],
		"scoutTake": 200,
		"limits": {
			"find-budget-ms": 120000,
			"strict-count-cap": 10000,
			"structural-parse-cap": 200000
		},
		"limitsSource": "<corpus>/.glider/scout/config.toml",
		"findBudgetMs": 120000,
		"rgIgnoredByGit": 0,
		"rgScopeNote": "ripgrep matches .gitignore case-sensitively; git with core.ignorecase=true does not, and scout follows git. Files git ignores are handed back to ripgrep as an --ignore-file so both tools search one universe.",
		"grepUniverse": "git ls-files",
		"grepProcessModel": "xargs-batched",
		"rgColdNote": "the OS file cache cannot be reliably flushed on Windows, so ripgrep and grep have no cold column; warm runs are interleaved so all three tools see the same cache state",
		"timedUnitNote": "ripgrep and grep are timed spawn-to-exit including writing every match to the pipe; scout is timed request-to-response returning at most 200 matches plus a total. The rg --count row is the closer analog for high-match queries.",
		"semanticScoutFlags": [
			"--semantic",
			"--no-telemetry"
		]
	},
	"corpus": {
		"id": "dotnet-runtime",
		"public": true,
		"repo": "https://github.com/dotnet/runtime",
		"ref": "v9.0.0",
		"headSha": "9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3",
		"dirtyPaths": 0,
		"description": null,
		"trackedFiles": 59319,
		"trackedBytes": 873104779,
		"csFiles": 30172,
		"topExtensions": [
			{
				"ext": ".cs",
				"count": 30172
			},
			{
				"ext": ".csproj",
				"count": 7035
			},
			{
				"ext": ".il",
				"count": 5278
			},
			{
				"ext": ".ilproj",
				"count": 4418
			},
			{
				"ext": ".h",
				"count": 2128
			},
			{
				"ext": ".cpp",
				"count": 1848
			}
		],
		"reusedExistingIndex": false,
		"indexReadyMs": 2189.1,
		"indexBuildMs": 950.9,
		"semanticBuild": {
			"readyMs": 35694963.4,
			"modelCachedBefore": true,
			"device": "cpu",
			"deviceNote": null,
			"chunks": 849535,
			"embeddedFiles": 58733
		},
		"scoutResidentMB": 175,
		"workers": {
			"capacity": 24,
			"reservedForInteractive": 6
		},
		"semanticResidentMB": 6241,
		"semanticTrackedBytes": 873104779
	},
	"queries": [
		{
			"id": "literal_common",
			"discipline": "Literal, common",
			"description": "A short literal that matches tens of thousands of lines.",
			"pattern": "public static",
			"scoutArgs": {
				"query": "public static",
				"target": "content",
				"match": "literal",
				"case": "sensitive"
			},
			"rgArgv": [
				"--line-number",
				"--no-heading",
				"--path-separator",
				"/",
				"--hidden",
				"--no-require-git",
				"--glob",
				"!.git/",
				"--glob",
				"!.glider/",
				"--glob",
				"!.glider-trace/",
				"--fixed-strings",
				"--",
				"public static"
			],
			"grepFlags": [
				"-F"
			],
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 372.2,
						"minMs": 349.3,
						"maxMs": 412.7,
						"runs": 10
					},
					"server": {
						"medianMs": 364.5,
						"minMs": 342,
						"maxMs": 406,
						"runs": 10
					},
					"matches": 165315,
					"matchesIsFloor": false,
					"exhaustive": true,
					"coverage": {
						"complete": true,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 59307,
						"stoppedAt": null
					},
					"coveragePercent": 100,
					"route": {
						"match": "literal",
						"target": "content",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": {
						"medianMs": 2567.6,
						"minMs": 2552.1,
						"maxMs": 2577.6,
						"runs": 3,
						"exhaustive": true,
						"coveragePercent": 100
					}
				},
				"rg": {
					"warm": {
						"medianMs": 787.7,
						"minMs": 753,
						"maxMs": 840.2,
						"runs": 10
					},
					"countOnly": {
						"medianMs": 831.2,
						"minMs": 801.5,
						"maxMs": 886.1,
						"runs": 10
					},
					"lines": 165310,
					"cold": null
				},
				"grep": {
					"warm": {
						"medianMs": 17163.7,
						"minMs": 16987.5,
						"maxMs": 17350.5,
						"runs": 10
					},
					"lines": 165415,
					"cold": null
				}
			},
			"parity": {
				"basis": "count",
				"result": "equal",
				"scoutTotal": 165315,
				"rgOccurrences": 165315,
				"rgLines": 165310,
				"detail": "165315 matches counted by both tools, on 165310 lines"
			}
		},
		{
			"id": "literal_rare",
			"discipline": "Literal, rare",
			"description": "A long identifier with a handful of hits — the lookup an agent makes constantly.",
			"pattern": "ConfiguredCancelableAsyncEnumerable",
			"scoutArgs": {
				"query": "ConfiguredCancelableAsyncEnumerable",
				"target": "content",
				"match": "literal",
				"case": "sensitive"
			},
			"rgArgv": [
				"--line-number",
				"--no-heading",
				"--path-separator",
				"/",
				"--hidden",
				"--no-require-git",
				"--glob",
				"!.git/",
				"--glob",
				"!.glider/",
				"--glob",
				"!.glider-trace/",
				"--fixed-strings",
				"--",
				"ConfiguredCancelableAsyncEnumerable"
			],
			"grepFlags": [
				"-F"
			],
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 346.6,
						"minMs": 340.3,
						"maxMs": 360.2,
						"runs": 10
					},
					"server": {
						"medianMs": 340,
						"minMs": 333,
						"maxMs": 354,
						"runs": 10
					},
					"matches": 34,
					"matchesIsFloor": false,
					"exhaustive": true,
					"coverage": {
						"complete": true,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 59307,
						"stoppedAt": null
					},
					"coveragePercent": 100,
					"route": {
						"match": "literal",
						"target": "content",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": {
						"medianMs": 2611,
						"minMs": 2562.6,
						"maxMs": 2624.9,
						"runs": 3,
						"exhaustive": true,
						"coveragePercent": 100
					}
				},
				"rg": {
					"warm": {
						"medianMs": 764.4,
						"minMs": 724.4,
						"maxMs": 842.1,
						"runs": 10
					},
					"countOnly": null,
					"lines": 33,
					"cold": null
				},
				"grep": {
					"warm": {
						"medianMs": 17020.2,
						"minMs": 16933.6,
						"maxMs": 17125.8,
						"runs": 10
					},
					"lines": 33,
					"cold": null
				}
			},
			"parity": {
				"basis": "set",
				"result": "equal",
				"scoutLines": 33,
				"rgLines": 33,
				"detail": "33 matching lines in both tools"
			}
		},
		{
			"id": "regex",
			"discipline": "Regex",
			"description": "A generic-return-type pattern across the corpus.",
			"pattern": "async Task<\\w+>",
			"scoutArgs": {
				"query": "/async Task<\\w+>/",
				"target": "content",
				"match": "regex",
				"case": "sensitive"
			},
			"rgArgv": [
				"--line-number",
				"--no-heading",
				"--path-separator",
				"/",
				"--hidden",
				"--no-require-git",
				"--glob",
				"!.git/",
				"--glob",
				"!.glider/",
				"--glob",
				"!.glider-trace/",
				"--",
				"async Task<\\w+>"
			],
			"grepFlags": [
				"-E"
			],
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 406.7,
						"minMs": 400.9,
						"maxMs": 441.8,
						"runs": 10
					},
					"server": {
						"medianMs": 399,
						"minMs": 394,
						"maxMs": 432,
						"runs": 10
					},
					"matches": 774,
					"matchesIsFloor": false,
					"exhaustive": true,
					"coverage": {
						"complete": true,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 59307,
						"stoppedAt": null
					},
					"coveragePercent": 100,
					"route": {
						"match": "regex",
						"target": "content",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": null
				},
				"rg": {
					"warm": {
						"medianMs": 777.9,
						"minMs": 731.8,
						"maxMs": 832.3,
						"runs": 10
					},
					"countOnly": null,
					"lines": 774,
					"cold": null
				},
				"grep": {
					"warm": {
						"medianMs": 17012.6,
						"minMs": 16844.8,
						"maxMs": 17327.3,
						"runs": 10
					},
					"lines": 774,
					"cold": null
				}
			},
			"parity": {
				"basis": "set",
				"result": "equal",
				"scoutLines": 774,
				"rgLines": 774,
				"detail": "774 matching lines in both tools"
			}
		},
		{
			"id": "word",
			"discipline": "Word boundary",
			"description": "Whole-word matching, excluding substring hits.",
			"pattern": "Dispose",
			"scoutArgs": {
				"query": "Dispose",
				"target": "content",
				"match": "word",
				"case": "sensitive"
			},
			"rgArgv": [
				"--line-number",
				"--no-heading",
				"--path-separator",
				"/",
				"--hidden",
				"--no-require-git",
				"--glob",
				"!.git/",
				"--glob",
				"!.glider/",
				"--glob",
				"!.glider-trace/",
				"--word-regexp",
				"--fixed-strings",
				"--",
				"Dispose"
			],
			"grepFlags": [
				"-w",
				"-F"
			],
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 354.1,
						"minMs": 339.9,
						"maxMs": 391,
						"runs": 10
					},
					"server": {
						"medianMs": 345,
						"minMs": 333,
						"maxMs": 380,
						"runs": 10
					},
					"matches": 11073,
					"matchesIsFloor": false,
					"exhaustive": true,
					"coverage": {
						"complete": true,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 59307,
						"stoppedAt": null
					},
					"coveragePercent": 100,
					"route": {
						"match": "word",
						"target": "content",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": null
				},
				"rg": {
					"warm": {
						"medianMs": 778.1,
						"minMs": 733.5,
						"maxMs": 806.8,
						"runs": 10
					},
					"countOnly": {
						"medianMs": 775.8,
						"minMs": 749.4,
						"maxMs": 809.2,
						"runs": 10
					},
					"lines": 10965,
					"cold": null
				},
				"grep": {
					"warm": {
						"medianMs": 17504.1,
						"minMs": 17258.5,
						"maxMs": 17655.3,
						"runs": 10
					},
					"lines": 10965,
					"cold": null
				}
			},
			"parity": {
				"basis": "count",
				"result": "equal",
				"scoutTotal": 11073,
				"rgOccurrences": 11073,
				"rgLines": 10965,
				"detail": "11073 matches counted by both tools, on 10965 lines"
			}
		},
		{
			"id": "case_insensitive",
			"discipline": "Case-insensitive literal",
			"description": "Case-folded literal search.",
			"pattern": "httpclient",
			"scoutArgs": {
				"query": "httpclient",
				"target": "content",
				"match": "literal",
				"case": "insensitive"
			},
			"rgArgv": [
				"--line-number",
				"--no-heading",
				"--path-separator",
				"/",
				"--hidden",
				"--no-require-git",
				"--glob",
				"!.git/",
				"--glob",
				"!.glider/",
				"--glob",
				"!.glider-trace/",
				"--ignore-case",
				"--fixed-strings",
				"--",
				"httpclient"
			],
			"grepFlags": [
				"-i",
				"-F"
			],
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 341.9,
						"minMs": 330.9,
						"maxMs": 421.5,
						"runs": 10
					},
					"server": {
						"medianMs": 333,
						"minMs": 324,
						"maxMs": 408,
						"runs": 10
					},
					"matches": 4513,
					"matchesIsFloor": false,
					"exhaustive": true,
					"coverage": {
						"complete": true,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 59307,
						"stoppedAt": null
					},
					"coveragePercent": 100,
					"route": {
						"match": "literal",
						"target": "content",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": null
				},
				"rg": {
					"warm": {
						"medianMs": 751.7,
						"minMs": 735.1,
						"maxMs": 790.5,
						"runs": 10
					},
					"countOnly": {
						"medianMs": 787.5,
						"minMs": 778.4,
						"maxMs": 886.9,
						"runs": 10
					},
					"lines": 3181,
					"cold": null
				},
				"grep": {
					"warm": {
						"medianMs": 17288.9,
						"minMs": 17111.8,
						"maxMs": 17446.3,
						"runs": 10
					},
					"lines": 3181,
					"cold": null
				}
			},
			"parity": {
				"basis": "set",
				"result": "equal",
				"scoutLines": 3181,
				"rgLines": 3181,
				"detail": "3181 matching lines in both tools"
			}
		},
		{
			"id": "fuzzy_files",
			"discipline": "Fuzzy file discovery",
			"description": "Finds the file even when you only remember part of its name.",
			"pattern": "httpclientfactory",
			"scoutArgs": {
				"query": "httpclientfactory",
				"target": "files",
				"match": "fuzzy"
			},
			"rgArgv": null,
			"grepFlags": null,
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 14.3,
						"minMs": 13,
						"maxMs": 17.8,
						"runs": 10
					},
					"server": {
						"medianMs": 11,
						"minMs": 10,
						"maxMs": 13,
						"runs": 10
					},
					"matches": 1000,
					"matchesIsFloor": true,
					"exhaustive": false,
					"coverage": null,
					"coveragePercent": null,
					"route": {
						"match": "fuzzy",
						"target": "files",
						"tier": "lexical"
					},
					"degraded": null,
					"cold": null
				},
				"rg": null,
				"grep": null
			}
		},
		{
			"id": "structural",
			"discipline": "Code shape",
			"description": "Matches how the code is written, not just the text.",
			"pattern": "throw new ArgumentNullException($$$)",
			"scoutArgs": {
				"query": "throw new ArgumentNullException($$$)",
				"target": "structural"
			},
			"rgArgv": null,
			"grepFlags": null,
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 13467.7,
						"minMs": 13375.7,
						"maxMs": 13627.1,
						"runs": 10
					},
					"server": {
						"medianMs": 13460,
						"minMs": 13368,
						"maxMs": 13618,
						"runs": 10
					},
					"matches": 1559,
					"matchesIsFloor": false,
					"exhaustive": false,
					"coverage": {
						"complete": false,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 31030,
						"stoppedAt": null
					},
					"coveragePercent": 52.3,
					"route": {
						"match": "structural",
						"target": "structural",
						"tier": "structural"
					},
					"degraded": "structural answered natively for csharp, java, javascript, markdown, typescript; scoped files in c, cpp, css, dockerfile, html, json, makefile, powershell, proto, shellscript, swift, xml, yaml have no shipped grammar; this pattern does not compile for python; 13202 scoped file(s) are in no recognized language, so they were not searched",
					"cold": null
				},
				"rg": null,
				"grep": null
			}
		},
		{
			"id": "symbols",
			"discipline": "Symbol outline",
			"description": "Lists declarations: names, kinds, and where they live.",
			"pattern": "HttpClient",
			"scoutArgs": {
				"query": "HttpClient",
				"target": "symbols"
			},
			"rgArgv": null,
			"grepFlags": null,
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 2191.1,
						"minMs": 2157.6,
						"maxMs": 2261,
						"runs": 10
					},
					"server": {
						"medianMs": 2181.5,
						"minMs": 2150,
						"maxMs": 2254,
						"runs": 10
					},
					"matches": 515,
					"matchesIsFloor": false,
					"exhaustive": false,
					"coverage": {
						"complete": false,
						"inScopeFiles": 59307,
						"resumedFrom": null,
						"scannedFiles": 31087,
						"stoppedAt": null
					},
					"coveragePercent": 52.4,
					"route": {
						"match": "symbols",
						"target": "symbols",
						"tier": "treesitter"
					},
					"degraded": "symbols answered natively for csharp, java, javascript, markdown, python, typescript; scoped files in c, cpp, css, dockerfile, html, json, makefile, powershell, proto, shellscript, swift, xml, yaml have no shipped grammar; 13202 scoped file(s) are in no recognized language, so they were not covered by the outline",
					"cold": null
				},
				"rg": null,
				"grep": null
			}
		},
		{
			"id": "semantic_retries",
			"discipline": "Semantic",
			"description": "Ask in plain English; finds code that says it in different words.",
			"pattern": "where request retries are limited",
			"scoutArgs": {
				"query": "where request retries are limited",
				"target": "semantic"
			},
			"rgArgv": null,
			"grepFlags": null,
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 628.2,
						"minMs": 605.7,
						"maxMs": 638.8,
						"runs": 10
					},
					"server": {
						"medianMs": 622.5,
						"minMs": 600,
						"maxMs": 633,
						"runs": 10
					},
					"matches": 200,
					"matchesIsFloor": true,
					"exhaustive": false,
					"coverage": null,
					"coveragePercent": null,
					"route": {
						"match": "semantic",
						"target": "semantic",
						"tier": "hybrid"
					},
					"degraded": null,
					"cold": null
				},
				"rg": null,
				"grep": null
			}
		},
		{
			"id": "semantic_cancellation",
			"discipline": "Semantic",
			"description": "A second plain-English question, on a different subject.",
			"pattern": "cancellation token propagation through async streams",
			"scoutArgs": {
				"query": "cancellation token propagation through async streams",
				"target": "semantic"
			},
			"rgArgv": null,
			"grepFlags": null,
			"tools": {
				"scout": {
					"warm": {
						"medianMs": 621.6,
						"minMs": 605,
						"maxMs": 637,
						"runs": 10
					},
					"server": {
						"medianMs": 615.5,
						"minMs": 598,
						"maxMs": 631,
						"runs": 10
					},
					"matches": 200,
					"matchesIsFloor": true,
					"exhaustive": false,
					"coverage": null,
					"coveragePercent": null,
					"route": {
						"match": "semantic",
						"target": "semantic",
						"tier": "hybrid"
					},
					"degraded": null,
					"cold": null
				},
				"rg": null,
				"grep": null
			}
		}
	],
	"semanticPass": {
		"generatedAt": "2026-08-22T07:55:39.481Z",
		"hardware": {
			"cpu": "AMD Ryzen 9 9955HX 16-Core Processor",
			"logicalCores": 32,
			"ramGB": 62,
			"os": "Windows_NT 10.0.26200",
			"platform": "win32",
			"arch": "x64"
		},
		"versions": {
			"scout": "scout 2.0.0",
			"ripgrep": "ripgrep 15.2.0 (rev e89fff89ac)",
			"grep": "grep (GNU grep) 3.0",
			"node": "v24.19.0",
			"git": "git version 2.54.0.windows.1"
		},
		"limits": {
			"find-budget-ms": 8000,
			"strict-count-cap": 10000
		},
		"headSha": "9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3",
		"dirtyPaths": 0,
		"trackedFiles": 59319
	}
}
