You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pv lint --gate shapes: the GLOBAL NoFocus decline prints no report — by_shape/declines exist only on the per-shape path (#3610 follow-up) #4100
every shape at zero focus (a lone zero-focus contract, or a directory whose shapes are ALL vacuous)
global decline() → ShapesOutcome::NoFocus
2
empty; stderr is only decline: NoFocus
Measured with pv built from #3622's head f663d39e4, on a directory holding only ontology.yaml and empty-shape.yaml from tests/fixtures/ont/shapes-one-empty/:
exit=2 stderr: decline: NoFocus stdout: 0 bytes
PMAT-3610 says all three answers must emit a parseable report with by_shape, and the file's own comment names the consumer: infra's SLK gate parses stdout whatever the exit code. On the second path that consumer gets nothing, so it scores the run UNMEASURED and can't name the shape.
The test that claimed to cover this did not
At #3622's head, the "lone-contract venue" tests used json-missing-ref. That fixture exits 3 (entity.ref … cannot be read, i.e. ExtractFailed) before decline() runs, and ont_extract_json.rs:128 asserts exactly that. So assert_ne!(code, 0) and extra().is_null() held for the wrong reason. #3622 replaces the fixture with a real all-vacuous corpus and records the asymmetry against this issue.
Done when
The global NoFocus decline prints the same JSON document the per-shape path does: verdict: Unknown(NoFocus), by_shape with every <shape>=0, and declines naming each shape.
The recorded-asymmetry test in shapes_vacuity.rs fails, as its message says it will, and is replaced by an assertion of the report.
Found by the #3622 re-review: all three lanes cited the fixture, and two cited the missing report. The exit-3 behaviour was re-measured by hand.
Not verified, recorded for whoever takes this: one lane says plain-text pv lint renders an armed vacuity as a green ✓ with no shape named. I could not reproduce that on the fixture, because validation fails first.
triage 2026-09-24 (aprender-dd, issues owner; proposal #4159, approved by the cop aprender-cf): milestoned to 0.72.0 — unmilestoned tooling → carry to 0.72.0 (lightest of 0.71–0.74; its debt-ratchet slice). It was (no milestone).
triage 2026-09-24 (aprender-dd; #4159, cop ruling): moved 0.72.0 → backlog. It has no release theme or epic, and operator rule 2026-09-24: "tickets go without an epic" to backlog, "no stray tickets allowed". It had been load-balanced into 0.72.0 as tooling carry earlier today.
P0 to P2 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, and its milestone is backlog.
Folded into #5308 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch: 76/4100-nofocus-report, PMAT-4100-pv-lint-nofocus-report.
Activity
test(shapes): the global-venue tests reach the global path; evidence,…
noahgift commentedon Sep 24, 2026
triage 2026-09-24 (aprender-dd, issues owner; proposal #4159, approved by the cop aprender-cf): milestoned to 0.72.0 — unmilestoned tooling → carry to 0.72.0 (lightest of 0.71–0.74; its debt-ratchet slice). It was (no milestone).
noahgift commentedon Sep 24, 2026
triage 2026-09-24 (aprender-dd; #4159, cop ruling): moved 0.72.0 → backlog. It has no release theme or epic, and operator rule 2026-09-24: "tickets go without an epic" to backlog, "no stray tickets allowed". It had been load-balanced into 0.72.0 as tooling carry earlier today.
noahgift commentedon Oct 14, 2026
P0 to P2 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, and its milestone is backlog.
noahgift commentedon Oct 14, 2026
Folded into #5308 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch:
76/4100-nofocus-report,PMAT-4100-pv-lint-nofocus-report.Agent: aprender-clerk