I1004 — Dostupnost a viditelnost jsou metadata, ne podmínky v šabloně
Modelovat, kde je schopnost dostupná — vždy, jen ve statickém sestavení, jen s běžícím backendem, jen po ověření, jen při sestavování — a zda je veřejná, nebo interní, aby každý povrch odvozoval své chování z toho, a ne z vlastních podmínek.
HOTOVO vlna 1 · p0 · profil implementation · bezpečné paralelně
Cíl
Modelovat, kde je schopnost dostupná — vždy, jen ve statickém sestavení, jen s běžícím backendem, jen po ověření, jen při sestavování — a zda je veřejná, nebo interní, aby každý povrch odvozoval své chování z toho, a ne z vlastních podmínek.
Proč
Publikovaný web a běžící server jsou skutečně různá prostředí. Bez těchto metadat si každá šablona vytvoří vlastní představu, co kde funguje, a web nakonec nabízí odkaz na něco, za čím žádný server není.
Aktuální stav
Cockpit obsluhuje běžící proces. Web je generovaný. Nic neříká, která schopnost má v jakém prostředí smysl.
Cílový stav
Dostupnost a viditelnost jsou pole modelu, čtou je všechny projekce a žádná šablona se nerozhoduje sama.
Rozsah
- apps/majordomus-cli/src/capability/model.rs
Mimo rozsah
- Jakékoli rozhodnutí učiněné podle názvu hostitele, URL nebo příznaku z doby sestavení uvnitř šablony
- Interní schopnost, která je tiše neviditelná, aniž by řekla, že je interní
Závislosti
Co na tom čeká
- I1005HOTOVO Graf je generovaný artefakt se schématem a bez nebezpečného pole
- I1009PŘIPRAVENO Každé menu v tomto repozitáři pochází z jednoho odvození
- I1015HOTOVO Povrch bez serveru za sebou se nenabízí, jako by ho měl
Kritéria přijetí
- Dostupnost rozlišuje alespoň to, co platí vždy, co vyžaduje běžící backend, co je snímek v době sestavení a co vyžaduje autentizaci
- Viditelnost rozlišuje veřejné schopnosti a schopnosti pro vývojáře od těch, které jsou záměrně označeny jako interní
- Každá existující schopnost, routa a povrch je klasifikován a neklasifikovaný je selhání validace, ne výchozí hodnota
- Žádná projekce nerozhoduje o dostupnosti z ničeho jiného než z těchto metadat
Validace
- cargo test --workspace --all-features
- majordomus generate --check
Požadované důkazy
- availability_modelled
- no_template_conditions
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| availability_modelled | test | cargo test --test availability a cargo test --lib capability::model (apps/majordomus-cli) | Availability rozlišuje čtyři prostředí — always, runtime, build_time, authenticated — a Visibility tři — public, developer, internal; každá schopnost sestaveného registru nese obojí, shodné s klasifikací toho, co deklaruje, a registr odmítne tu, která se liší; pole dosáhnou docs/generated/openapi.json, docs/generated/registry.json a site/data/registry/registry.json přes generate, takže projekce čte pole | 5e297b1 |
| no_template_conditions | test | cargo test --test availability no_projection_decides_availability_from_where_it_is_served | žádný řádek pod apps/majordomus-cli/src ani share/cockpit/src nečte poskytovací adresu a nesrovnává ji; kontrola čte řádky, ne soubory, protože její první běh označil URL dokumentace v about.rs, což je odkaz a ne verdikt | 5e297b1 |
Riziko
Výchozí hodnota always-available činí model zbytečným a klasifikaci neviditelnou. Absence musí být selháním.
Časová osa
- zahájeno
- 2026-09-06T16:22:51Z
- ověřeno
- —
- dokončeno
- 2026-09-06T16:54:53Z
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/I1004.yaml. Přečtěte ho zpět pomocí majordomus plan show I1004.