design
Cluster Maintenance Manager — design notes
Section titled “Cluster Maintenance Manager — design notes”Persona surface for the Cluster Maintenance Manager who runs a cluster’s maintenance bays. Web flow, canonical Atlas shell (1440).
Persona
Section titled “Persona”Ifeanyi Okafor · Cluster Maintenance Manager. Owns fleet health for the cluster, runs the work-order queue and the maintenance scheduler, launches investigation campaigns, deploys fixes to bays, compares bay performance, governs the fault taxonomy, and reports upward.
Navigation
Section titled “Navigation”Sidebar: Fleet health · Work orders · Scheduler · Campaigns · Deployment · Compare bays · Taxonomy · Reports. Logout lives in the account menu, not the sidebar.
Each page is rendered from JS by RENDER[pg]() into a #pg-* container that nav()
toggles, rather than a static .view section.
Canon sweep (2026-08-03)
Section titled “Canon sweep (2026-08-03)”- The page header was a re-skin — internally consistent, so no lint rule fired, and the
no-subtitle rule looks for a subtitle class this generation never used. It is the
canonical
.pg-head/.pg-titlenow, which replaced.phand replaced.ph-t; it removed.ph-sentirely, so all ten page subtitles are gone since a top-level page carries no subtext. - One Logout, in the account menu. The sidebar copy and its emptied
.sb-footare removed; never.sb-logout. - No decorative gradients — the evidence-tile placeholder used a two-hex
linear-gradientwith both hexes off-palette. Flat--grey-bgnow, with the placeholder icon moved to--t3so it still reads against the lighter fill. - The vestigial body class went — never
.desktop; no CSS defined it here or anywhere in the repo, and the swept sibling flows carry a plain<body>. - The crumb now names the page it is on. It was written from the short sidebar label
while the title came from the render function, so four pages disagreed with their own
crumb (“Scheduler” over a page titled “Maintenance scheduler”).
nav()reads the rendered.pg-titleafter the render, so the two cannot drift again.
Already canonical and kept: the .acct-wrap account menu with its role switcher,
openNotifications(), and the two-pane .settings-layout.
Send feedback
Section titled “Send feedback”A topbar .icon-action sits beside Notifications and opens #dlg-feedback, the centred
.dlg that openDlg() / dlgHead() build. Five .field blocks in order: Type (Bug,
Improvement), Impact (Blocking, Slows me down, Minor), Where, Details, and an optional
Screenshot file input. Where is built from PG, so a page cannot be offered that is not
routable, and it preselects the page on screen. sendFeedback() requires Type, Impact
and Details, each with its own toast, then closes the dialog and confirms with one more.
The flow-local .field textarea.inp and .field input[type=file] rules give the two new
control types this file’s border, radius and surface.
Lint: 0 errors / 0 warnings, baseline entry removed (zero tolerance).