approval-engine/docs
tegwick d5d1e41035 Publish the valid-but-unbound claim; the missing shape was confounded
The example set satisfied §11's both-shapes clause only by accident. Both
values of pdp_digest and pdp_path appeared, but they appeared in perfect
correlation with validity: claim.valid carried a digest with pdp_path true,
claim.revoked carried null with pdp_path false, and nothing else existed.

Two independent dimensions presented as one. A reader could reasonably conclude
that pdp_digest is null because the claim is revoked, or that pdp_path tracks
validity. Both are false, and the example set is what would have taught them --
the failure the both-shapes clause exists to catch, which this repo proposed and
then shipped a case of.

The missing shape is the consequential one: a claim that is entirely valid --
valid_now true, reason_code ok, not consumed -- and carries no PDP binding. It
is usable for a consumer comparing the native binding.digest and unusable on the
GH-DEC-2026-003 path, where a PEP MUST refuse it. valid_now true is not
permission to proceed on that lane. A consumer writing that refusal previously
had no published shape to test against and would have had to invent a fixture,
which is the drift §12 names.

examples/claim.valid.no-pdp.json publishes it. The tests now assert the
decorrelation rather than mere presence: one requires a valid claim with no PDP
binding to exist, the other requires valid claims to cover both pdp_path
declarations. Verified both fail when the new example is removed, so they hold
the property rather than restating today's file list. 121 tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PM5HnEAhokxdfcPqBNpT7D

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 715850@bnt-lap001
Assistant-Session: eb557e93-7cb1-45d0-9e57-7d15b3edc60e
2026-09-07 13:48:00 +02:00
..
reviews Return the v0.8 text review gate-house asked for 2026-09-07 00:19:40 +02:00
approval-claim.md Publish the valid-but-unbound claim; the missing shape was confounded 2026-09-07 13:48:00 +02:00
approval-consumption.md Record GH-DEC-2026-005; strike the spent G3 revisit trigger 2026-09-06 01:36:03 +02:00
caller-authentication.md Harden the PEP harness and KeyCape registration request 2026-09-02 15:46:06 +02:00
emission-cadence.md Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
flex-auth-handoff.md Finish approval engine spine 2026-09-01 23:45:48 +02:00
gate-house-decision-request-claim-envelope.md chore(consistency): record decision id for GH-DEC-2026-005 2026-09-06 08:05:00 +02:00
image-scan-2026-09-06.md Reconcile the release record; guard the image pin with tests 2026-09-07 09:04:34 +02:00
keycape-service-registrations.md Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
outbox-contract.md Carry threshold evidence on issuance and use events 2026-09-06 08:10:21 +02:00
pep-integration.md Harden the PEP harness and KeyCape registration request 2026-09-02 15:46:06 +02:00
storage-operations.md Implement GH-DEC-2026-008: declared PDP-path intent, enforced at issue 2026-09-06 14:51:23 +02:00