Detect canonical lifecycle drift C01-C08 #105

Closed
opened 2026-08-29 17:05:57 +00:00 by larandar · 1 comment
Owner

Objective

Detect and classify the canonical C01-C08 reconciliation conditions without minting, widening, or independently repairing authority.

Scope

Compare declared principal/grant state with active leases, Vedanta operations, Kanidm token IDs, adapter generations, and Forge events. Emit the exact drift class and affected layer. The lifecycle reconciler may separately request only contract-permitted invalidation.

Acceptance criteria

  • C01-C08 each has a deterministic fixture and stable result code.
  • Token-without-lease, lease-without-token, generation mismatch, stale digest, unknown binding, expired acceptance, revoked use, and suppressed-principal authority are distinguishable.
  • Partial revocation remains revocation_pending with the still-live layer named.
  • Detection never creates a credential, grant, membership, projection, or wider scope.

Spec Delta

This leaf is only drift detection. Named-persona acceptance and old-path exit rendering move to #109.

OpenSpec

OpenSpec 103

## Objective Detect and classify the canonical C01-C08 reconciliation conditions without minting, widening, or independently repairing authority. ## Scope Compare declared principal/grant state with active leases, Vedanta operations, Kanidm token IDs, adapter generations, and Forge events. Emit the exact drift class and affected layer. The lifecycle reconciler may separately request only contract-permitted invalidation. ## Acceptance criteria - [ ] C01-C08 each has a deterministic fixture and stable result code. - [ ] Token-without-lease, lease-without-token, generation mismatch, stale digest, unknown binding, expired acceptance, revoked use, and suppressed-principal authority are distinguishable. - [ ] Partial revocation remains `revocation_pending` with the still-live layer named. - [ ] Detection never creates a credential, grant, membership, projection, or wider scope. ## Spec Delta This leaf is only drift detection. Named-persona acceptance and old-path exit rendering move to #109. ## OpenSpec [OpenSpec 103](https://jo.et0.pw/Ting/Jostoph/wiki/OpenSpec-103-forge-identity-lifecycle-audit)
larandar changed title from Report lifecycle drift and named-persona production acceptance to Detect canonical lifecycle drift C01-C08 2026-08-29 20:06:21 +00:00
Author
Owner

Closed under audit 2026-09-19/20, G13. Merged PR#120 delivers deterministic C01-C08 lifecycle drift detection for this record. Residual D3 and the unrun nix flake check are split to successor issue #125 (#125): Residue of Session #103: D3 decision + nix flake check (audit G13).

<!-- larandar:groom:v1 --> Closed under audit 2026-09-19/20, G13. Merged PR#120 delivers deterministic C01-C08 lifecycle drift detection for this record. Residual D3 and the unrun nix flake check are split to successor issue #125 (https://jo.et0.pw/Ting/Jostoph/issues/125): Residue of Session #103: D3 decision + nix flake check (audit G13).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
Ting/Jostoph#105
No description provided.