From 72d20726ce1cd0f8eacd2f49daf9678fe9d6f831 Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 16 May 2026 12:55:02 +0400 Subject: [PATCH] epic-12: finish by writing epic-5-resolution.md --- docs/epics/epic-5-resolution.md | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 docs/epics/epic-5-resolution.md diff --git a/docs/epics/epic-5-resolution.md b/docs/epics/epic-5-resolution.md new file mode 100644 index 00000000..ee63ed63 --- /dev/null +++ b/docs/epics/epic-5-resolution.md @@ -0,0 +1,56 @@ +# 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 \ No newline at end of file