43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
# 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.
|