Migrate Committee interface patterns
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user