I2852 — každá třída, kterou obrazovka UI přidělí prvku, je definována ve stylech UI
Unit test přečte každý doslovný `.class(...)` ve zdrojích obrazovek UI a ve zdroji stylesheetu UI a odmítne třídu, kterou stylesheet ani nedefinuje, ani nedefinuje její části. Třídy, které shledal nedefinovanými, se přesunou do vlastních tříd sady: štítky vyhledávání do mj-sr-only, seznamy do mj-ui-prose-list, počty mesh do mj-ui-mono.
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Unit test přečte každý doslovný `.class(...)` ve zdrojích obrazovek UI a ve zdroji stylesheetu UI a odmítne třídu, kterou stylesheet ani nedefinuje, ani nedefinuje její části. Třídy, které shledal nedefinovanými, se přesunou do vlastních tříd sady: štítky vyhledávání do mj-sr-only, seznamy do mj-ui-prose-list, počty mesh do mj-ui-mono.
Proč
Nalezeno 2026-10-18 na masteru 707a04c7ce8. Review /ui/prs landing seatem našlo mj-ui-list nostylované ničím. Průzkum zdrojů UI pak našel pět tříd, které stylesheet nedefinuje: mj-ui-sr-only u popisků vyhledávání v Issues a PR Drain, které tak byly viditelné, ač byly určeny jen čtečkám obrazovky; mj-ui-list na obrazovkách tvrzení, záměrů a IDD; mj-ui-num v tabulkách meshe. Zbytek jsou kořeny bloků, jejichž části jsou stylovány. Nic obě množiny nesrovnávalo, takže každá byla slibem, který stránka nedodržela. 2b si kontrolu nárokovala jako I2905 a uvolnila ji pro 3e.
Aktuální stav
Obrazovky emitují třídy, kterým neodpovídá žádné pravidlo stylesheetu, a nic to nehlásí.
Cílový stav
ui::tests::every_class_a_screen_emits_is_one_the_stylesheet_defines drží každou obrazovku, včetně později přidané, a obrazovky používají jen třídy, které sada definuje.
Rozsah
- apps/majordomus-cli/src/ui/mod.rs
- apps/majordomus-cli/src/ui/issues.rs
- apps/majordomus-cli/src/ui/prs.rs
- apps/majordomus-cli/src/ui/claim.rs
- apps/majordomus-cli/src/ui/intent.rs
- apps/majordomus-cli/src/ui/idd.rs
- apps/majordomus-cli/src/ui/mesh.rs
Mimo rozsah
- Třídy sestavené přes format! (tón, stav): jejich kmeny jsou kmeny sady a test čte literály.
- Stylopis a stránky Cockpitu: samostatná sada s vlastními aktivy.
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Třída obrazovky, kterou stylopis nedefinuje, způsobí selhání unit testů UI a jmenuje soubor, řádek a třídu
- Štítky vyhledávání v Issues a PR Drain jsou skryty přes mj-sr-only
Validace
- bin/majordomus plan validate
- cargo test --lib -- ui::
Požadované důkazy
- every_class_is_defined_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| every_class_is_defined_test | ci | validate run 39438896504 at master 9a5a9b77520: rust (1-3) jobs 118683336143 118683336062 118683336401 run cargo test, incl. ui::every_class_a_screen_emits_is_one_the_stylesheet_defines (500f0d48b34) | success (the run's only red job is pages, which runs no test) | a81b1e3 |
Časová osa
- zahájeno
- 2026-10-20T16:16:11Z
- ověřeno
- —
- dokončeno
- 2026-10-20T16:30:10Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I2852.yaml. Přečtěte jej zpět pomocí majordomus plan show I2852.