ADR-0073: Per-Scope QMS Configuration Surface¶
- Status: accepted (Nicolas 2026-07-15: fold the confusing "Acknowledgements" nav page into a proper home; "I'd even consider creating a custom configuration ui that can be used to configure the qms for each project as I assume we will add more of these functions" — no urgency)
- Date: 2026-07-15
- Deciders: Nicolas Burri, design by Claude.
- Relates to: ADR-0030 (review policies — API exists, UI missing = MVP gap #3), ADR-0052/0070 (ack/training policies — the mislabeled page being rehomed), ADR-0016 (retention rules), ADR-0064 (workflow-role defaults via policy), MVP definition gap #3.
Context¶
Scope governance is scattered: the top-level nav item "Acknowledgements" is actually the ack/training POLICY editor (config, not records — found confusing in live use); review policies, type activations and workflow defaults are configurable only by seed/import scripts; retention rules have services but no UI. Each future policy knob would add another orphan page.
Decision¶
One per-scope QMS configuration surface (route /scope-config, scope picker, permission-gated
per tab; reachable via a gear affordance, not another top-level nav word):
- Tabs, initial set: Review policies (per type: four-eyes, release mode,
requireCommentsResolved, approval requirements, transition roles — over the existing ADR-0030 API), Training policies (the rehomed ack-policies editor: requiresAck/mode, addressees,training_due_days), Document types (activations + defaults), Retention (rules per type). Tabs appear only when the caller holds the tab's governing permission (CONFIGURE_REVIEW_POLICY, MANAGE_TRAINING, ACTIVATE_CATALOG_ENTRIES, MANAGE_RETENTION). - The "Acknowledgements" top-level nav item is REMOVED;
/acknowledgement-policiesredirects. - Information architecture rule going forward: My training = personal · Training management = monitoring · Scope configuration = governance. New policy knobs land as (fields in) config tabs, never as new nav items.
- UI reflects, server enforces (ADR-0007) — the tabs are convenience over the existing gated APIs; no new authorization semantics.
Consequences¶
- Closes MVP gap #3 (policy admin UI) as a byproduct of fixing the naming confusion.
- The seed/import scripts remain valid (same APIs); the QMB can now do without them.
- Implementation queued BEHIND the ADR-0072 draw.io swap (shared nav/route/i18n files — avoid a two-agent collision); explicitly not urgent per Nicolas.