# Approvals Interface Pattern Migration This migration applies the GovOPlaN interface pattern language to the Approvals-owned route without changing the append-only approval model or importing optional sibling modules. ## Surface Inventory | Surface | Archetype | Consequence class | Contract | | --- | --- | --- | --- | | `/approvals` list | Searchable work queue | Select request or create immutable chain | Shared loading, empty, error, permission, selection, and help states | | Approval detail | Governed record detail | Inspect exact subject, chain, state, and evidence | Locale-aware history, status, provenance, explained lifecycle actions | | Request dialog | Consequential definition editor | Freeze exact subject and approval chain | Guarded draft, field help, validation reasons, at least one step | | Decision dialog | Governed decision | Append approval or rejection evidence | Required reason/signature, guarded draft, explicit confirmation action | ## Consequence And Availability Rules - Creation freezes the subject identity and digest plus every ordered step, selector, quorum, separation, and signature requirement. - Approving or rejecting appends attributable evidence and cannot be edited. - Only pending or escalated requests can be decided. Terminal requests remain available for reconstruction. - Missing create or decide permission is visible and points to the Access role assignment destination and responsible administrator. - Signature references are evidence pointers and never a cryptographic claim. The module uses Core dialogs, controls, status, blockers, help, loading, empty, error, draft-guard, and `WorkspaceLayout` contracts. The shared split-pane shell keeps the request collection and selected evidence in independently scrollable panes, then stacks them at the platform narrow-layout breakpoint. Native selection buttons preserve keyboard order. English and German catalogues cover module-owned copy and dates follow the active platform locale.