Apply GH-DEC-2026-021: name the text in force, converge on the reference detector

VALIDATED_AGAINST now names the accepted security-layer-model v0.7
(net-kingdom@66dc491) as amended by GH-DEC-2026-017, -020, -021
(gate-house@39d9287), not the held v0.8 (021 §2).

The A12 detector converges on ops-warden's playbook reference plus the
021 §3 addition (a version in a standard:/companion: value is a pin).
A prose citation such as 'the v0.7 scope rule' is no longer failed
(021 §1); tests updated. The layer.yaml note rewording stays.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 63291@bnt-lap001
Assistant-Session: 8bd77868-ca68-4f49-bb1e-d539ecc0d703
This commit is contained in:
tegwick 2026-09-21 13:05:05 +02:00
parent 8322f0587e
commit ff0712b260
2 changed files with 43 additions and 30 deletions

View file

@ -85,7 +85,8 @@ def test_versioned_standard_path_or_companion_version_fails():
{**base, "companion_version": "0.2"},
{**base, "companion": "net-kingdom/SECURITY-COMPANION.md v0.2"},
{**base, "standard_version": "0.8"},
{**base, "notes": [{"note": "Outside §5 by the v0.7 scope rule."}]},
{**base, "standard": "security-layer-model v0.7"}, # 021 §3 addition
{**base, "ref": "net-kingdom/canon/standards/tenant-engine-boundary-contract_v0.1.md"},
]
for data in bad:
assert checker.version_findings(data, "x"), data
@ -97,10 +98,18 @@ def test_schema_version_comments_and_section_numbers_are_not_reached():
"# Framework: net-kingdom/canon/standards/security-layer-model_v0.7.md\n"
"schema_version: '0.1'\nstandard: netkingdom-security-layer-model\n"
"declared_shapes: {'5.1': [], '5.2': []}\ndeclared_at: '2026-08-29'\n"
"ref: net-kingdom/canon/standards/tenant-engine-boundary-contract_v0.1.md\n")
"notes: [{note: 'Outside §5 by the v0.7 scope rule.'}]\n")
assert checker.version_findings(data, "x") == []
def test_prose_citation_is_not_a_pin():
"""GH-DEC-2026-021 §1: a revision cited in prose is provenance, not reached."""
checker = _checker()
for data in ({"notes": [{"note": "Outside §5 by the v0.7 scope rule."}]},
{"role_note": "Per Security Layer Model v0.8 §11 and companion v0.2."}):
assert checker.version_findings(data, "x") == [], data
def test_checker_does_not_apply_a12_to_stance_or_claims_maps():
"""A12 r2 / GH-DEC-2026-020 §3: those files keep their version and are not read for it."""
for name in ("pep-stance.yaml", "pip-claims.yaml"):