2.7 KiB
Committee Interface Pattern Migration
This document records the bounded migration of Committee-owned WebUI surfaces to the GovOPlaN interface pattern language. Core owns shared controls, help, blocking explanations, draft guards, confirmations, and host shells. Committee owns bodies, meetings, agenda context, vote context, minutes, and the bounded projection of their institutional evidence.
Surface Inventory
| Surface | Archetype | Consequence class | Contract |
|---|---|---|---|
/committee toolbar and body list |
Searchable workspace directory | Change query projection or create body | Shared search/button/help controls, explicit loading/error/permission states |
| Body and meeting selectors | Master-detail selection | Change active context | Stable keyboard buttons, selected/hover state, bounded independent scrolling |
| Meeting detail | Governed record workspace | Create or revise agenda, vote, and minute records | Shared sections, statuses, action explanations, locale-aware dates |
| Committee record dialog | Consequential record editor | Save immutable revision or change lifecycle | Contextual field help, guarded draft, required change reason, lifecycle confirmation |
| Ballot finalization dialog | Governed provider action | Import aggregate result and evidence | Permission explanation, guarded draft, explicit confirmation, no individual ballots |
Consequence And Availability Rules
- Every save creates a new Committee revision and retains the change reason.
- Terminal lifecycle states are immutable; disabled edit actions explain that constraint rather than disappearing.
- Cancelling, withdrawing, or retiring stops future work but never removes existing revisions, minutes, decisions, or evidence.
- Provider and Voting integrations remain optional capability boundaries. Committee stores only the aggregate result and assurance evidence.
- Missing write or ballot-finalization permission identifies the required action, responsible administrator, and Access destination.
- Unsaved editors intercept route, browser, backdrop, and explicit close attempts through the shared draft guard.
State And Accessibility Evidence
The module uses shared buttons, icon buttons, dialogs, confirmations, alerts, status badges, loading indicators, action blockers, field help, and draft guards. Native buttons preserve keyboard order and shared dialogs retain focus. The existing three-region desktop layout and two-region compact layout keep lists and details independently scrollable. English and German catalogues cover module metadata and owned UI copy, while dates follow the selected platform locale. Manifest topics expose stable route, field, blocker, privacy, and consequence references without importing optional sibling modules.