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
0of2
Moves
plan.transitionWhat 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
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares docs/MAJORDOMUS_UI.md with I2786; they may not run concurrently | majordomus plan validate |