Skip to content

I3318 — Every decision and curated note is read on /ui, with the records it names and the records that name it

Give /ui one screen for decisions (adr kind) and one for curated knowledge, each list and inspector projected from the index the objects API already serves, with an inspector showing the record's related/relations as links and the reverse edges (which issues, milestones, intents and notes name it) derived from the same index.

READY wave 0 · p2 · implementation profile · parallel safe

Part of surfaces-never-disagree — Every surface projects the same state, says when it was observed, and keeps no list of its own.

Ready. Every dependency is done, so majordomus plan start I3318 will be accepted.

Objective

Give /ui one screen for decisions (adr kind) and one for curated knowledge, each list and inspector projected from the index the objects API already serves, with an inspector showing the record's related/relations as links and the reverse edges (which issues, milestones, intents and notes name it) derived from the same index.

Why

A follow-up the promotion of the owner's ChatGPT project (Refs: I3100) produced on 2026-10-18, not a message of that project: the promotion added proposed decisions and curated notes, each linked to the plan records it governs or documents, and a reader of /ui/idd cannot follow a criterion to the decision that governs it. The objects are served by /api/v1/objects and over MCP, and the Cockpit shows each one at /cockpit/objects/<kind>, but /ui routes neither kind: no /ui route names adr or decisions, and /ui/knowledge shows the candidate queue, not the curated notes.

Current state

apps/majordomus-cli/src/ui/ has knowledge.rs (route /ui/knowledge: candidates and status) and no decisions screen. `majordomus entity show` already derives each object's references and backlinks, and `majordomus entity kinds` routes adr and knowledge to /cockpit/objects/adr and /cockpit/objects/knowledge (117 adr and 4 knowledge objects on master at 4a4573690f8, by that command).

Desired state

/ui/decisions and /ui/knowledge/curated (names to be settled against the screen list in ui/mod.rs) list every object of the kind from the index, each inspector renders its body through ui::prose and its outgoing and incoming links taken from the entity layer's references and backlinks (not a second derivation), and an object added to the tree appears with no registration.

Scope

  • apps/majordomus-cli/src/ui/knowledge.rs
  • apps/majordomus-cli/src/ui/mod.rs
  • docs/MAJORDOMUS_UI.md
  • apps/majordomus-cli/tests/ui_links.rs

Out of scope

  • Editing a decision or a note from the UI
  • Accepting a decision: that stays the owner's commit

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • Every adr object of the index is listed on the decisions screen and its inspector shows its related records as links and the records that cite it
  • Every curated knowledge note is listed with its class, epistemics and status, and its relations are links
  • A decision added to the tree appears with no edit outside its own file
  • The incoming links an inspector shows are the backlinks `majordomus entity show` reports for the same object
  • Every link the two screens draw answers 200 under the ui_links walk

Validation

  • cargo test -p majordomus-cli --test ui_links
  • cargo test -p majordomus-cli --test ui_surface
  • majordomus plan validate

Evidence required

  • ui_decisions

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

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/I3318.yaml. Read it back with majordomus plan show I3318.

Searches the titles and descriptions of every page this site publishes.