Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I2770

majordomus ui and the Cockpit wear the site's navbar: one renderer, the same styles and scripts, and a browser comparison that refuses a difference

Where it stands

devtask.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
0 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I2770

majordomus plan verify I2770

majordomus plan done I2770

What it is

Objective
Make majordomus.dev the reference for the product's look by giving every screen of majordomus ui and every page of the Cockpit the site's own navbar: the bar the site's partial renders over site/data/nav.toml, cut out of the built site and compiled into the executable, styled by the same Tailwind build over the same tokens, driven by the site's own scripts, and held to the site's bar by a browser comparison in both themes and at every declared width.
Why
Owner, 2026-10-16: the official site majordomus.dev is the reference for styling and UI/UX rules; /ui and the Cockpit must be derived from it, with the same layout and a pixel-identical navbar. Measured that day: the site's bar is 73 px tall at 1440 and 65 px at 390, in 16 px type, with the brand and release, four menus, search, theme toggle, the product, GitHub and the call to action; the UI's was a 67 px tool bar beside a 240 px sidebar with a brand of its own (119 px tall at 390), in 14 px type, with none of the site's entries; the Cockpit's a third bar, 53 px in 13.5 px type. The tokens were shared (one --mj-design fingerprint) and the bars were three.
Now
The site renders its navbar from site/data/nav.toml through site/templates/partials/navbar.html; apps/majordomus-cli/src/ui/shell.rs draws a sidebar brand and a top bar of its own, apps/majordomus-cli/src/cockpit/view.rs a third; nothing compares them.
Wanted
scripts/ui navbar --write cuts the bar out of the built site into apps/majordomus-cli/src/ui/navbar.html, which ui/navbar.rs compiles in and fills with the executable's version, leading the product entry to the live UI, for the UI's shell and the Cockpit's; share/ui/src/ui.css and share/cockpit/src/cockpit.css compile the utilities that file names; nav.js and theme.js under share/ui/ and share/cockpit/ are byte copies of the site's, written and checked by scripts/cockpit-assets; scripts/ui navbar, run first by scripts/ui audit (the ui-audit gate), refuses a stale copy and any difference between the site's bar and the bar of /ui or /cockpit in an element, a box or a computed style; project.the-ui-wears-the-sites-navbar states it.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • Every UI screen and Cockpit page carries exactly one nav[aria-label=Main], the site's, with the executable's version and the product entry leading to /ui
  • scripts/ui navbar reports no difference between the bar on the site's front page and on /ui and /cockpit at every declared width, light and dark, closed and with a menu open
  • A copy that is not the built bar, and a share/ui script that is not the site's bytes, each fail their check
Validation
scripts/site-build && scripts/ui navbarscripts/ui testscripts/cockpit-assets --checkcargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- ui::navbar ui::shell cockpit::html
Evidence required
navbar_parity_runnavbar_unit_tests
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
site/templates/partials/navbar.htmlapps/majordomus-cli/src/ui/navbar.rsapps/majordomus-cli/src/ui/navbar.htmlapps/majordomus-cli/src/ui/shell.rsapps/majordomus-cli/src/ui/mod.rsapps/majordomus-cli/src/cockpit/html.rsapps/majordomus-cli/src/cockpit/view.rsapps/majordomus-cli/src/cockpit/mod.rsshare/cockpit/src/cockpit.cssshare/cockpit/cockpit.cssshare/cockpit/cockpit.jsshare/cockpit/nav.jsshare/cockpit/theme.jsscripts/lib/cockpit-probe.mjsdocs/COCKPIT.mdapps/majordomus-cli/src/design/render.rsshare/ui/src/ui.cssshare/ui/ui.cssshare/ui/ui.jsshare/ui/nav.jsshare/ui/theme.jsscripts/uiscripts/lib/ui-navbar.mjsscripts/lib/ui.test.mjsscripts/cockpit-assets.ai/repo/rules/project/the-ui-wears-the-sites-navbar.v1.mddocs/DESIGN_SYSTEM.mddocs/MAJORDOMUS_UI.md.ai/repo/project/issues/I2770.yaml
Not
The published Cockpit snapshot keeps no script, so its copy of the bar has no working menus there; giving the snapshot the bar's two scripts is a change to the exporter's subjectA second navigation declaration or a second renderer of the bar for any surface
Depends on
none
Priority
p1
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-10-16
Updated
2026-10-16
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

LevelCodeMessageReproduce
WARNscope_conflictshares docs/MAJORDOMUS_UI.md with I2786; they may not run concurrentlymajordomus plan validate