Design: CRS Escalation Feature (PR #770) #773
Replies: 6 comments
-
Requirements traceability + 4 new discussion prompts (PR #815)The design doc now has a Requirements traceability section mapping the CMS Escalation PRD (Draft v3.0, April 2026) and the Mozambique BRD v4.0 to shipped/deferred/open status — previously the design only cited the BRD, and several PRD requirements were unaddressed without record. PR #815 (stacked on #775) closes the implementable gaps: per-level SLAs ( Four product decisions surfaced by the traceability pass need owners — adding them as prompts 9–12: 9. Role-level escalation (PRD §1, primary user journey). The PRD's main scenario is a complaint sitting in a role inbox (all GROs/LMEs, no named assignee) escalating to the role's direct supervisor. The scheduler currently skips these as 10. Inbox ownership transfer + visibility scope (PRD §3/§4). On escalation the PRD requires: removed from subordinate inbox (all role inboxes if role-assigned), appears in supervisor's inbox, subordinate keeps search access; N+1 sees direct reports' complaints from filing, N+2+ must search. These live in 11. Business SLA clock (PRD §3). The PRD distinguishes the per-state clock (resets on escalation — now implemented) from a business SLA clock that "continues uninterrupted." The latter is unmodeled; the BRD's Appendix-A single SLA column is arguably this. Do we model it, and if so where does it surface (dashboards? citizen ETA)? 12. State-based vs level-based SLA model sign-off. PR #815 makes the two coexist (per-row level config takes precedence over state cells). Formal sign-off requested that this precedence — and shipping both models — is the intended product position, vs deprecating one. Prompts 1–8 unchanged. The canonical mapping table lives in |
Beta Was this translation helpful? Give feedback.
-
Status update: prompts 1, 2 and 8 — plus stacked-PR review notesPrompt 1 (no configurator UI for Prompt 2 (workflow ASSIGN-assignee persistence) — upstream issue FILED: eGovStack/core-services#1674 ( Prompt 8 (mdms-v2 Stacked-PR review-ability: re-pointing PR bases to parent branches is not possible here — the stack's head branches live on the fork and a PR base must be a branch of the base repository. Instead, every stacked PR (#775, #776, #777, #779, #780, #782, #783, #786, #789, #791, #794, #796, #797) now carries a header note directing reviewers to its own commits. PR #774 (image pin) was closed as superseded by #815's |
Beta Was this translation helpful? Give feedback.
-
Prompt 9 (role-level escalation): design posted — and its prerequisite just got fixedDesign: Prerequisite resolved: the design review correctly flagged that this feature's eligibility gate reads the same |
Beta Was this translation helpful? Give feedback.
-
Prompt 9 closed: role-level escalation IMPLEMENTED + live-verified (opt-in)The design posted earlier is now implemented on the PR #815 branch and verified end-to-end on Bomet: an unassigned complaint escalated via the R1 pin to the role's supervisor, with full OTEL provenance asserted from Tempo ( |
Beta Was this translation helpful? Give feedback.
-
Design-hub update: full verification matrix + testing methodology now part of the design docsRole-level escalation (prompt 9) is now verified across every resolution path, live, on persistent fixture tenants built for this purpose (
The design doc now also carries a Testing methodology section — ten binding rules each grounded in a real incident from this work (regression tests proven failing without the fix; surgical never-global test config; cron interference measured via sentinels; shared-singleton restores verified across the MDMS redelivery window; dry-run-first; honest residue accounting) — so the docs describe how this feature is kept correct, not just how it was designed. Two platform findings worth this group's attention (now in the design doc's Operational gotchas):
|
Beta Was this translation helpful? Give feedback.
-
|
Is this tied to a complaint type/sub-type hierarchy? What if we moved to a dynamic multi-level hierarchy (upto 4 levels)? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
CRS Escalation — design hub
📖 The canonical design doc
docs/escalation-feature-design.md(2,627 lines, consolidated 2026-06-11 — the formerrole-escalation-design.mdsatellite is folded in; a redirect stub keeps old links working). It is design and method: requirements traceability, full architecture, every schema, the testing methodology, and the operational gotchas earned in production.Live verification (all on the Bomet deployment, persistent fixture tenants
ke.etoeroles/ke.etoebeta):pgr-escalation-full-flow10 ✅ ·pgr-escalation-role-flow8 ✅ ·pgr-escalation-r2r3-flow9 ✅ (incl. the cross-tenant single-scan proof) ·escalation-settings-flow(UI-driven) 6 ✅.💬 Discussion prompts — status board
CRS.WorkflowStateMapping@JsonProperty("assignes")silently dropping the correct spelling — eGovStack/core-services#1674;@JsonAliasfix deployed on Bomet, chain verified end-to-endCRS.ConfigAuditLogCRS.EscalationPolicyis the post-v0 home for maxDepth/levels)oneOfvalidatorNew findings worth this group's attention: MDMS write redelivery (Kafka→persister re-applied an acked write ~60–80s after a verified restore — "write then verify once" is unsafe) and SYSTEM transitions bypass action-role lists in workflow-v2 (confirmed mutating live; upstream question — say the word and it gets filed alongside #1674/#1675). Both documented in the gotchas chapter.
Revision note: this body previously embedded a full copy of the design doc; it went stale within days of active development. As of 2026-06-11 the body is an index — the repo file is the single source of truth.
Beta Was this translation helpful? Give feedback.
All reactions