I1009 — Every menu in this repository comes from one derivation
Derive the desktop navigation, the mobile navigation, the Cockpit sections, the documentation navigation and the landing links from one projection of the graph, with deterministic grouping and ordering.
READY wave 3 · p0 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I1009 will be accepted.
Objective
Derive the desktop navigation, the mobile navigation, the Cockpit sections, the documentation navigation and the landing links from one projection of the graph, with deterministic grouping and ordering.
Why
Five menus mean five edits for one new page, and the fifth is the one everybody forgets. Grouping by facts the model already holds gives an order that is stable without anyone maintaining it.
Current state
Navigation and landing content are assembled per surface. The landing page and the Cockpit each know their own entries.
Desired state
One navigation projection feeds every surface, grouping derives from kind, category, scope and availability, and ordering is deterministic.
Scope
- apps/majordomus-cli/src/cockpit/nav.rs
Out of scope
- Any hand-written menu entry in a template, a script or a data file
- Layout coordinates, columns or component trees expressed as data
Dependencies
- I1004DONE Availability and visibility are metadata, not conditions in a template
- I1005DONE The graph is a generated artifact with a schema and no unsafe field
What waits on this
- I1016BLOCKED The Cockpit works on a phone and before JavaScript runs
- I1028BLOCKED The inventories this replaces are removed, not left running beside it
Acceptance criteria
- Every navigation surface reads the same projection, and none holds its own list
- Grouping derives from metadata the model already carries, and ordering is deterministic and stable across builds
- Adding a capability or a document changes every menu that should show it with no template edit
- An entry unavailable in the current environment is not rendered as an active destination
Validation
- cargo test --workspace --all-features
- bash test/run.sh
Evidence required
- one_navigation_source
- deterministic_order
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
Derived menus can order badly for a reader while being perfectly deterministic. Semantic grouping with alphabetic ordering inside it is the default; an authoritative order is metadata, never a template edit.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I1009.yaml. Read it back with majordomus plan show I1009.