Skip to content

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).

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.

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.

  • 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-title now, which replaced .ph and replaced .ph-t; it removed .ph-s entirely, 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-foot are removed; never .sb-logout.
  • No decorative gradients — the evidence-tile placeholder used a two-hex linear-gradient with both hexes off-palette. Flat --grey-bg now, with the placeholder icon moved to --t3 so 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-title after 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.

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).