Implemented the final operator workflow for the Governance Inbox. This includes refactoring the inbox page, updating finding resources, adding UI enforcement policies, updating related blade views, and adding comprehensive tests for operator workflow and scope contracts. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #418
2.4 KiB
2.4 KiB
Spec 346 Lane Classification
Status: implemented
Created: 2026-06-02
Scope: page-local, derived lane mapping for /admin/governance/inbox
Rule
Spec 346 does not add a new persisted inbox-item state machine. Lane assignment is derived from existing source-family entries returned by GovernanceInboxSectionBuilder.
Each visible item appears in exactly one primary lane on the inbox first screen.
Active Lane Mapping
| Source family / state | Lane | Why |
|---|---|---|
intake_findings |
Needs triage |
These findings are still unassigned and need a first operator path. |
assigned_findings with evidence_state = missing |
Evidence required |
The operator already owns the item, but linked proof is still missing. |
assigned_findings with linked evidence |
Requires decision |
The item still needs operator follow-through and is no longer blocked on missing proof. |
finding_exceptions |
Risk / exception review |
Accepted-risk and exception records already have their own review semantics and should not be diluted into generic evidence or decision lanes. |
review_follow_up |
Requires decision |
The existing repo truth signals follow-up or changed-since-review state, not a clean review-ready state. |
stale_operations |
Blocked |
Existing operation truth already represents stale or terminal technical follow-up. |
alert_delivery_failures |
Blocked |
Delivery failures are technical blockers that need operational follow-through. |
Secondary / Supporting States
| Topic | Treatment |
|---|---|
| Recently resolved | Derived from GovernanceDecisionRegisterBuilder and rendered as a secondary collapsed disclosure, not as a primary active lane. |
| Diagnostics | Kept collapsed and source-owned. |
| Source-family context | Kept available in the secondary Source detail disclosure. |
Intentionally Omitted Lanes
| Suggested lane | Why omitted |
|---|---|
Review-ready |
No honest repo-backed inbox-ready state is currently derivable on this page without inventing new workflow truth. |
Why Page-Local Mapping Was Enough
- The source builder already returns repo-backed entries with status, reason, impact, evidence, and action URLs.
- The lane transform is presentational and does not need to spread into models, enums, migrations, or shared infrastructure.
- Keeping the mapper local to
GovernanceInboxavoids creating a new governance engine or taxonomy layer.