Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Instalační příkaz, který tento projekt inzeruje, se každou noc a na požádání stáhne z publikovaného webu a spustí a běh, který o to požádal, je červený, dokud nenainstaluje funkční nástroj

Každý dokument tady cizinci ukazuje jeden řádek:

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Řádek se spouští přesně tak, jak je napsán, včetně roury, na Linuxu i macOS, do vlastního domovského adresáře každého běhu. Dokazuje, že se metadata přeloží, nástroj hlásí přeloženou verzi, launcher MCP běží bez toolchainu a lze inicializovat repozitář. Release to dokazuje jednou při publikaci; tohle v dokazování pokračuje i potom. ADR 0037 jej plánuje na požádání, protože jeho úloha má větev pro macOS a tyto runnery čekaly ve frontě hodiny: žádají o něj noční plán, ruční spuštění a pull request označený ci:full, běžný push ne.

Co to znamená

Každý dokument tady cizinci ukazuje jeden řádek:

curl -fsSL https://majordomus.dev/install.sh | sh

Tento řádek se stáhne a spustí — přesně tak, jak je napsán, včetně roury — na Linuxu i na macOS, proti tomu, co GitHub Pages a GitHub Releases v tu chvíli poskytují. Běží při noční validaci výchozí větve, při ručním spuštění a u pull requestu označeného ci:full; běžný push o něj nežádá. Nainstalovaný nástroj musí hlásit verzi, kterou určila metadata, obsluhovat MCP bez nainstalovaného toolchainu a inicializovat repozitář. Dokud cokoli z toho neplatí, je verdikt ci běhu, který o to požádal, červený: noční běh výchozí větve nebo označený pull request. Zuby nezmizely, přesunuly se na rytmus jedné noci — což je kompromis, který pojmenovává ADR 0037, a důvod, proč je tento běh takový, který musí někdo číst.

Princip

scripts/ci/install-check je kontrola installer-live v .ai/repo/ci/gates.yaml, job install. Neuvádí žádnou vlastní adresu: URL instalátoru, URL metadat i samotný příkazový řádek se čtou z site/data/registry/distribution.json, generované projekce share/distribution.yaml.

Žádná třída cest ji nevybírá, a je to záměrné. Každá jiná kontrola odpovídá na otázku o tomto stromě a změněná cesta je důkaz o tom, která z těchto odpovědí se mohla pohnout. Tato odpovídá na otázku o nasazení a žádná změna stromu ji pohnout nemůže — takže ji žádná změna stromu neplánuje.

Je také on-demand: true, který se týká runneru, ne předmětu: jeho job install je matice s větví macOS a needs.install.result je jedna hodnota pro obě větve, takže celý job je tak vzácný jako jeho nejvzácnější větev. scripts/ci-plan vynechá kontrolu na vyžádání z každého plánu, který o ni nežádal — včetně plánu full — a zaznamená u každé kontroly, že nebyla plánována a proč; --on-demand se ptá a noční plán, workflow_dispatch a štítek ci:full ji propustí. ADR 0037 je rozhodnutí: 2026-09-10 čekaly joby macOS ve frontě tři až sedm hodin za sdíleným poolem, ci je potřeboval, a tak nedorazil žádný verdikt. Kontrola, která nikdy nedoběhne, nechrání nic; tato nyní doběhne každou noc.

Instaluje se do vlastního domovského adresáře pod TMPDIR a odstraní jej, takže stroj, na kterém běží, ani nečte, ani nezapisuje.

Jak to vidět

scripts/ci/install-check                    # against the published site, right now
bash test/run.sh 97_install_gate            # the gate itself, against a local fixture
scripts/ci-plan --full x | grep installer-live              # not planned, and why
scripts/ci-plan --full x --on-demand | grep installer-live  # planned, when asked

Co nepokrývá

Dokazuje, že inzerovaný příkaz funguje na dvou platformách, na kterých běží. Ostatní čtyři podporované cíle se dokazují každý jednou, při publikaci, fází smoke release pipeline — křížově sestavené cíle nemají runner, na který by se dalo instalovat.

Je to kontrola nasazení, takže nemůže být zelená dříve, než je publikován první release, a říká přesně to, místo aby tiše prošla.

Od ADR 0037 neběží při každém pushi, takže nasazení, které se ráno rozbije, zachytí noční běh a ne další commit. Nic na cestě per-push nenahrazuje tuto kontrolu pro instalátor; nemění se zbytek otázky nasazení — pages-live běží na Linuxu, není na vyžádání a při každém pushi stále čte publikovaný web.

Proč existuje

Protože selhání, které zachytává, nastalo a nic ho nezachytilo. Tagovaný release selhal ve fázi buildu na jedné platformě, takže se nic nepublikovalo; příčina byla opravena na výchozí větvi týž večer a tag nebyl nikdy vytvořen znovu. Den a půl inzerovaný příkaz odpovídal každému čtenáři „zatím není publikován žádný stabilní release“, zatímco každá kontrola nad stromem byla zelená — správně, protože žádná kontrola nad stromem nevidí web. Slib daný v přítomném čase potřebuje kontrolu v přítomném čase.

Tato kontrola nyní běží každou noc, a ne při každém pushi, protože při pushi vůbec nedoběhla (ADR 0037). Zkracuje okno z půldruhého dne na jednu noc — dokud někdo čte noční běh.

Detail vykreslený z docs/claims/advertised-install-command-works.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Instalační příkaz, který tento projekt inzeruje, se každou noc a na požádání stáhne z publikovaného webu a spustí a běh, který o to požádal, je červený, dokud nenainstaluje funkční nástroj

    Vytvořeno na Projection.

  2. 2 · kanonické tvrzení

    advertised-install-command-worksdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DISTRIBUTION.md

  3. 3 · implementace

    scripts/ci/install-check

  4. 4 · test a scénáře

    Test: test/cases/97_install_gate.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 97_install_gate

Kde se toto tvrzení používá

pokryté odpovědnosti

Prohledává názvy a popisy všech stránek, které tento web publikuje.