Zdůvodnění
Dne 2026-09-15 banner vykreslený při vstupu do tohoto repozitáře postavil značku ✓ vedle Cockpitu, API a MCP, zatímco sdílený server za nimi servíroval verzi 0.6.1 spustitelnému souboru ve verzi 0.7.0. Značku rozhodlo TCP spojení. V kódu, který ji kreslil, nebylo nic rozbité: hlásil, co změřil. To, co změřil, nebylo tvrzení, jako které člověk čte zatržítko — toto běží, pro tento checkout, v této verzi.
Stejný tvar se vrací napříč repozitářem (docs/ENTRY.md, docs/EVIDENCE.md): přítomný soubor pravidla se čte jako vynucené pravidlo, zaznamenaný běh testů jako důkaz čehokoli, co je právě checkoutnuté, nasazovací skript jako nasazení. Každé je deklarace stojící místo důkazu. Vstupní povrch je pro tu záměnu nejhorší místo, protože je to jediný povrch, který čte každý worker, a čte ho před čímkoli jiným.
Požadované chování
- Každý stav, který vstupní povrch ukazuje — banner,
majordomus env preflight, HTTP routa/api/v1/environment/preflight, nástroj MCPmajordomus_preflighta zdrojmajordomus://environment/preflight, přehled Cockpitu — je vykreslením jedné hodnoty,environment::preflight::Preflight, odvozenéenvironment::preflight::derive. Žádný povrch nepočítá vlastní stav. - Verdikt, který tvrdí, že něco platí (
verified,active,fresh), nese alespoň jeden důkaz pojmenovávající, co se četlo a co to říkalo.Check::newholý verdikt odmítne tím, že ho promění vunknown, takže pravidlo drží typ, a ne každý renderer zvlášť. - Značka úspěchu se kreslí jen pro takový verdikt. Server, který odpovídá z jiné verze, je
degraded; lease jmenující server, který neodpovídá, jefailed; žádný lease jeunavailable; čtení, které se neptalo, jeunknown. - Objevená pravidla nejsou vynucovaná pravidla:
governance.rulespočítá korpus averification.enforcementjeverifiedjen tehdy, když je každé pravidlo dlužící spustitelný důkaz prokázáno proti stromu. - Důkazy o jiném commitu nebo stromu jsou
stale, nikdyverified: zaznamenané běhy testů jsou aktuální jen podle vlastního porovnání modulu důkazů, součty pravidel jen při commitu, při kterém byly spočteny, a nasazení jen tehdy, když ref nasazení jmenuje HEAD jako svůj zdroj. - Co repozitář nezaznamenává žádnými důkazy — pokrytí, kontrola generování — se hlásí jako
unavailablenebounknown, ne vynechává a ne předpokládá. .envrcvolá jednou bootstrapový příkaz a neobsahuje žádnou logiku domény repozitáře (project.envrc-is-an-adapter). Bootstrapové soubory klientů (.mcp.json,.gemini/settings.json,.codex/config.toml) spustí launcher a o ničem nerozhodují.
Chování při selhání
Povrch, který vykreslí úspěch bez důkazu, nebo odvození, které hlásí důkaz o jiném stromu jako aktuální, selže v apps/majordomus-cli/tests/preflight.rs. Povrch, který vykreslí jiný verdikt než schopnost, selže v testu napříč povrchy ve stejném souboru. Položka, která přestane vykreslovat preflight, nebo začne označovat službu jako odpovídající, zatímco její server není ověřen, selže v test/cases/358_entry_reports_only_evidence.sh.
Ověření
apps/majordomus-cli/tests/preflight.rs podřizuje každý verdikt jeho důkazům nad ručně sestavenými pozorováními, čte referenci nasazení a ledger skutečné fixtury a porovnává příkazovou řádku, API, nástroj a zdroj MCP a stránku Cockpit nad jednou servírovanou fixturou. test/cases/358_entry_reports_only_evidence.sh vstoupí do fixtury přes bootstrap příkaz a zkontroluje, co se vykresluje, proti vlastnímu JSON preflightu.