docs: mark the unknown cell, measure the coverage we asked to publish
gate-house ruled the v0.8 assent round (GH-DEC-2026-011, net-kingdom@64394e9): ask 1 declined, ask 2 adopted. Ask 1's refusal is accepted without reservation and the reason is better than the ask -- a sanctioned transitional fail_open is indistinguishable at runtime from the stance the rule forbids, and would make the rule optional at the only moment it costs anything. Ask 2 gave §13.1 a Coverage column with this repo's figures as its first entries. Since we asked for the column, we owe it accuracy: scripts/report_coverage.py measures both populations from the artifacts the runtime uses (reusing the workload-join build rather than re-deriving it), and a test asserts pep-stance.yaml's published block equals what it measures. A hand-counted number in a register that explicitly does not recompute it decays silently, and a stale figure beside a marked cell is worse than the blank the other four rows carry. pep-stance.yaml marks the unknown cell inline as a declared gap -- assent, the measured reason for not flipping, the declined ask, WARDEN-WP-0040 as route -- and a second test keeps it marked while it is fail_open, failing when it is flipped. standard_version stays 0.7 because that is what binds; v0.8 is proposed, so it gains standard_version_reviewed rather than pre-adopting. Separately, gate-house corrected GH-DEC-2026-008: the claim/decision digest comparison it originally required is unimplementable and a fail-closed consumer obeying it would have denied permanently. We had never copied the wording, so nothing to unwind -- but everything they have sent about this lane was living in an inbox thread, a bad home for a correction that only matters when someone finally wires the consume. Now wiki/ApprovalConsumption.md, leading with "nothing is wired", carrying the corrected target and the attribution gap that digest matching does not discharge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013EPuTc18FjU5WFqoSEKH3C Assistant: claude-code Assistant-Model: opus Assistant-Process: 1276224@bnt-lap001 Assistant-Session: 426ec497-e1c4-4dd3-b417-dfce1ca1dbc3
This commit is contained in:
parent
a942ce805d
commit
5b1a508610
8 changed files with 388 additions and 2 deletions
|
|
@ -150,3 +150,52 @@ class TestPepStanceMap:
|
|||
assert cadence["observed_window"]["signature_records"] == 3
|
||||
assert cadence["observed_window"]["active_signature_days"] == 2
|
||||
assert cadence["reason"]
|
||||
|
||||
|
||||
# --- classification coverage (v0.8 §6.4 obligation 3) -------------------------
|
||||
|
||||
def test_published_coverage_equals_measured_coverage():
|
||||
"""The published figure must equal what the repo actually measures.
|
||||
|
||||
ops-warden asked gate-house for §13.1's Coverage column and its figures are
|
||||
that column's first entries, so their accuracy is ours to hold. The register
|
||||
explicitly does not compute anyone's coverage, and a stale number beside a
|
||||
marked cell is worse than a blank -- a blank at least reads as "not reported".
|
||||
|
||||
This is the same property that makes the stance map worth publishing (the map
|
||||
equals PolicyConfig.failure_modes by test), applied one level up.
|
||||
"""
|
||||
import importlib.util
|
||||
|
||||
repo = Path(__file__).resolve().parents[1]
|
||||
spec = importlib.util.spec_from_file_location(
|
||||
"report_coverage", repo / "scripts" / "report_coverage.py"
|
||||
)
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
|
||||
published = yaml.safe_load((repo / "pep-stance.yaml").read_text())[
|
||||
"classification_coverage"
|
||||
]
|
||||
measured = module.measure()
|
||||
|
||||
for population in ("signing_targets", "routing_lanes"):
|
||||
assert published[population] == measured[population], population
|
||||
|
||||
|
||||
def test_the_unknown_cell_is_marked_as_a_declared_gap():
|
||||
"""A non-conformant cell must say so where it is declared, not only in a review.
|
||||
|
||||
§11's marking obligation, which ops-warden argued for in the v0.6 round and
|
||||
then acquired a marked cell under. If the cell is ever flipped to fail_closed
|
||||
this test fails, which is the correct time to remove the marking.
|
||||
"""
|
||||
repo = Path(__file__).resolve().parents[1]
|
||||
text = (repo / "pep-stance.yaml").read_text()
|
||||
stance = yaml.safe_load(text)["stance"]
|
||||
|
||||
if stance["unknown"] == "fail_open":
|
||||
assert "DECLARED GAP" in text
|
||||
assert "WARDEN-WP-0040" in text
|
||||
else:
|
||||
assert stance["unknown"] == "fail_closed"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue