Most access control is policy: a rule someone wrote, evaluated by code someone else wrote, with an override path somewhere for the day it gets inconvenient. This is a different kind of gate. On 2026-08-12 an independent evaluator - a fresh Claude-in-Chrome session with no insider context, following a written test script - recorded what happens when routing authority is a SHA-256 derivation instead of a policy.
The setup
The Geometric Hash Validator takes four tier hashes (C1-C4, sixteen hex characters each) and a 32-character composite. The composite is not a label; it is sha256(C1:C2:C3:C4) truncated to 32 characters. Before touching the live surface, the evaluator reproduced that derivation offline in a sandbox: the documented tiers hash to 30291df791343b66ef4ebf3c848eb05f, exactly as the spec claims. The math is real and anyone can check it - that is rather the point.
What the recording shows
The ALLOW path (21:56:37 local). With the correct vector, the validator returned 200 and the whole board went green: routing router-operator, witness state machine IDLE -> VALIDATED, all four tiers valid PASS, composite MATCH, constitutional checks (identity validation MC-02, control authorization, composite safety MC-04, pressure) all PASS, and all twelve DDS checkpoint blocks passing. The Flight Recorder logged the verdict as GEO_HASH_EVAL 13a6414d.
The BLOCK paths (21:57:18 and 21:58:21). The evaluator then submitted a composite that does not match its tiers. The witness went FAILED, routing reset, and the verdict came back isolation-fault. Then a structurally malformed vector - a C1 tier of eight characters instead of sixteen - died the same way. Two distinct failure modes, same refusal, and both wrote their own audit events: GEO_HASH_BLOCKED 947664b9 and a49f21ab.
That is the property worth the headline: change one character anywhere in the input and the composite derivation fails, so the route flips from operator ALLOW to isolation-fault BLOCK. There is no argue-with-the-policy path, because there is no policy - there is arithmetic.
The honest wrinkles
A recorded run that only reported the good news would be marketing. Three things the recording also shows, filed as defects the same night:
- The BLOCK verdict arrives as an HTTP 500 - error-as-control-flow where a 200-with-BLOCK belongs.
- On BLOCK, the page clears the geometry panel instead of highlighting the failing tier, and the validator's own history does not list failed validations (the Flight Recorder does - the audit asymmetry is page-level, not systemic).
- The validator page itself was reachable only by reading the app bundle's route strings; the documented URL layer had drifted dead.
None of that weakens the math. All of it is the difference between a proof and a demo, and this system's operating rule is that the proof carries its defects with it.
Why this matters
Credential checks answer "who are you." This answers a harder question: "is the thing you are carrying internally consistent" - and it answers it with a derivation that an outside evaluator reproduced independently before trusting a single screen. When the gate is math, the audit trail is the only place an argument can happen. Both verdict classes write to the append-only recorder, so the argument is at least on the record.
Captured from the TD-2 recorded run (OQS Phases 1-6 + Scenario 1, executed 2026-08-13 02:39-03:46 UTC by a naive evaluator). Event identifiers and timestamps are quoted verbatim from the transcript.
0 comments