I2478 — A rule opens its proof: what it states, the tests that prove it, what is missing, and the rules around it
Let a reader of majordomus ui open any rule (/ui/governance?rule=<id>) into an inspector from rules.show: what it states, how it is enforced, every test that proves it with the state of its proof, the gates that run them, what is still missing to prove it, and the rules it depends on and that require it, each a link.
DONE wave 2 · p1 · implementation profile · runs alone
Part of development-runtime — The runtime has a development surface.
Objective
Let a reader of majordomus ui open any rule (/ui/governance?rule=<id>) into an inspector from rules.show: what it states, how it is enforced, every test that proves it with the state of its proof, the gates that run them, what is still missing to prove it, and the rules it depends on and that require it, each a link.
Why
The owner asked on 2026-10-11 to implement every view of the UI screenshots, maximally interactive (pack v3 M10 governance). The Governance screen lists 165 rules as rows that open nothing, and its rule column read a field the report gives as an object, so a row did not even name its rule; rules.show already joins one rule to its proof.
Current state
A rule is a row of the Governance screen that opens nothing and does not name its rule.
Desired state
?rule=<id> asks rules.show and opens the inspector above the Governance screen: the rule's identity, title, class, status and proof state, its statement, what its proof state means, how it is enforced (mode and validator), its gates, the rules it depends on and that require it (each a link), where it is declared, every test that proves it with its state and meaning, and what is still missing to prove it. The Governance rows name each rule by its id and title and lead to its inspector. A rule the index does not hold is shown as the capability's refusal; a value that is no rule id is never asked.
Scope
- apps/majordomus-cli/src/ui/rule.rs
- apps/majordomus-cli/src/ui/governance.rs
- apps/majordomus-cli/src/ui/mod.rs
- .ai/repo/project/issues/I2478.yaml
- docs/MAJORDOMUS_UI.md
- test/cases/1083_a_rule_opens_its_proof.sh
Dependencies
What waits on this
Acceptance criteria
- ?rule=<id> opens the inspector with what proves it and the rules around it as links
- the Governance rows name each rule and lead to its inspector
- an unknown rule is said as the capability's refusal, and a value that is no id is never asked
Validation
- cargo test --lib ui::rule
- test/run.sh 1083_a_rule_opens_its_proof
Evidence required
- ui_rule_unit_tests
- ui_rule_case_1083
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| ui_rule_unit_tests | ci | cargo test --lib ui::rule (validate run 38223440282 on 722228ef3c, the v0.21.0 top) | 3 ui::rule tests ok | 722228e |
| ui_rule_case_1083 | ci | test/run.sh 1083_a_rule_opens_its_proof (validate run 38223440282 on 722228ef3c, the v0.21.0 top) | case 1083_a_rule_opens_its_proof ok | 722228e |
Timeline
- started
- 2026-10-12T11:01:34Z
- verified
- 2026-10-12T11:01:39Z
- completed
- 2026-10-12T11:01:50Z
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/I2478.yaml. Read it back with majordomus plan show I2478.