# Epic 5 — Approval system (Tiers, grants, approvals) ## completed deliverables ### 1. Tier model (T0-T4) introduced `Tier` as a enum in `core:events` with values 0-4 where 0 is inference and 4 is something destructive. --- ### 2. grants system introduced `ApprovalGrant` as a serializable data class in `core:approvals`. scopes: ```text Session -> stage -> project ``` properties: * all grants work on the concrete scope. * grants are revoked when scope changes. * grants contain set of `permittedTiers`. --- ### 3. approval lifecycle events introduced events in `:core:events` to emit when approval is: - ApprovalRequested - ApprovalDecisionResolved - ApprovalGrantCreated - ApprovalGrantExpired --- ### 4. timeout semantics timeout are resolved on a higher level, not in approval system. --- ### 5. steering injection module introduced `UserSteering` in `core:events`. gets injected in approval and should be respected by other components. --- # final state Correx now has: > tiered, replay-safe approval authorization layer