feat(model): say when the region cap hid most of the repository

Paid Memberships Pro yields 4,463 regions from 637 files. The default budget
examines 500 of them -- 11% of the repository -- and nothing in the output
said so. A report whose silence covers the other 89% invites that silence to
be read as a clean bill of health.

`budget_exhausted` is a different fact and already reported: that is the JUDGE
running out on work already collected. This is the work never being collected.

Renders in "What could not be analysed" as: only the N highest-ranked of M
regions were examined, and nothing above says anything about the rest.

850 tests pass.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01T7XD7x5KonMdmGRkp63EQG
This commit is contained in:
Marius Ciepluch
2026-09-10 08:30:38 +02:00
co-authored by Claude Opus 5
parent d63be34451
commit 83adf049be
3 changed files with 46 additions and 0 deletions
+15
View File
@@ -152,6 +152,21 @@ def scan_repository(
# `add_filter("hook", )`. See `mapping.php_hook_callbacks`.
hooks = _hook_callbacks(root, regions)
# The region cap is a COVERAGE fact, not a tuning knob nobody needs to hear about. Paid Memberships Pro
# yields 4,463 regions from 637 files, so a default budget of 500 examines 11% of the repository -- and
# a report that does not say so invites its silence to be read as a clean bill of health for the other
# 89%. `budget_exhausted` is a different thing: that is the JUDGE running out, this is the work never
# being collected at all.
if len(ordered_regions) > limits.max_regions:
degradations.append(
{
"stage": "model",
"reason": "regions_truncated",
"examined": limits.max_regions,
"total": len(ordered_regions),
}
)
# Phase 1: collect the whole scan's questions, for at most `max_regions` regions. Nothing is asked yet.
work: list[tuple[str, ScanRegion, ArbiterSpec]] = []
for region in ordered_regions[: limits.max_regions]:
+4
View File
@@ -436,6 +436,10 @@ _COVERAGE_DEGRADATIONS: dict[str, str] = {
"files_unparsed": "{count} file(s) could not be parsed and are absent from the graph: {files}.",
"query_failed": "A `{kind}` query failed for {requests} region(s), so those regions were not decided.",
"budget_exhausted": "The model-call budget ran out with {regions_unasked} region(s) still unasked.",
"regions_truncated": (
"Only the **{examined} highest-ranked of {total} regions** were examined. Nothing above says anything "
"about the rest of the repository."
),
"region_failed": "The region `{path}` could not be arbitrated.",
}