Step 4 PR 1: permit decision + revocation + scope-faithful absence (contract, v1.4.0)#6
Merged
Merged
Conversation
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Codex <noreply@openai.com>
sftimeless
added a commit
that referenced
this pull request
May 25, 2026
Step 4 PR 1: permit decision + revocation + scope-faithful absence (contract, v1.4.0)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Step 4 PR 1 — public contract for revocation evidence + scope-faithful absence adjudication. Ships three new verifier claims as additive entries on keel-permit's v0 claim registry. Server-side emission (PR 2 on keel-api) and verifier adjudication (PR 3 on keel-verifier) follow as separate dispatches.
This is contract-only. No emission code, no adjudication code. The pinned semantics + JSON Schema + spec docs + baseline corpus + failure codes lock the public interface for the downstream work.
New claims (additive to claim_registry/v0.json)
permit.decision.v1permit.revoked.v1permit.revokedevent bound to bothpermit_idandproject_id. New-only post-cutover. v1 immediate-effect semantics (effective_at == revoked_at).permit.dispatch_absence_after_revocation.v1dispatch.egress_boundevents after the revocationeffective_at, within a declared signed scope-faithful export segment anchored to signed checkpoint state.Doctrine framing (locked, in-spec)
The verifier's trust model is falsifiability-oriented, not omniscience-oriented.
This PR uses "scope-faithful absence adjudication" throughout. The phrase "cryptographic non-membership" is reserved for future SMT/NMT/accumulator-backed primitives and never used to describe current Step 4 capability.
Reserved future term: `non_membership_profile` — registered as a reserved semantic-registry namespace for future SMT/NMT/accumulator-backed native non-membership work. Not implemented here. Same reserved-name discipline as `signature_v2` / `counter_signature` in `permit-v1.md` §11.
Standards anchors (cited in spec/dispatch-absence-after-revocation-v1.md)
Multi-model design pass (§XII change process)
Design locked via 4-model convergence 2026-05-21 over ~2 hours:
Three soundness bugs prevented from shipping by this design pass
Files (35 changed, +2719 / -8)
Out of scope (deferred to separate dispatches)
Verification performed
Next dispatches after merge
Related
🤖 Generated via §XII multi-model design pass
Co-Authored-By: Claude noreply@anthropic.com
Co-Authored-By: Codex noreply@openai.com