epic-12: finish by writing epic-5-resolution.md
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user