Files
govoplan-dist-lists/docs/INTERFACE_PATTERN_MIGRATION.md

33 lines
1.9 KiB
Markdown

# Distribution Lists Interface Pattern Migration
This migration applies the GovOPlaN interface pattern language to the
distribution-list catalogue, revision editor, expansion preview, snapshot
evidence, and reusable picker.
## Surface Inventory
| Surface | Archetype | Consequence class | Contract |
| --- | --- | --- | --- |
| `/distribution-lists` catalogue | Governed work queue | Select, create, or delete a list | Shared loading, empty, permission, disabled-reason, and help states |
| Definition editor | Consequential definition editor | Save immutable revision | Guarded list and nested-entry drafts with contextual field semantics |
| Expansion preview | Evidence preview | Resolve current saved revision | Explicit exclusions, provider availability, provenance, and decision explanations |
| Frozen snapshots | Evidence register | Retain exact expansion | Immutable recipients, exclusions, source revisions, parameters, provenance, and hash |
| Distribution-list picker | Shared object selector | Reference a list | Searchable selector with contextual definition help |
## Consequence And Availability Rules
- Saving creates an immutable list revision; previews and snapshots use only a
saved revision.
- Include, exclude, and manual-override entries have distinct semantics. Manual
override requires an auditable reason.
- Freezing is confirmed because it creates retained evidence consumed by other
modules. Deleting the reusable definition does not rewrite retained snapshots.
- Provider absence is explained and never turns an optional integration into a
hard dependency.
- Missing write permission and incomplete or unchanged drafts expose a reason
and required next action instead of a silent disabled control.
Backend and WebUI manifests publish the same surface identifiers. English and
German catalogues cover the module-owned interaction vocabulary, and contextual
help resolves through manifest documentation rather than detached UI guidance.