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.

Návratový kód není diagnostický kanál

Návratový kód není diagnostický kanál

majordomus://rule/project.diagnostics-decide-the-exit@1aktivní kontrolydiagnostika

odkazuje na

Nic. Tento objekt nedeklaruje žádný odkaz.

Zdůvodnění

Dne 2026-09-09 scripts/derive vypsalo

ERROR majordomus://adr/adr-0028 is claimed by <two files>; every claimant is excluded
      code=duplicate_identity

a skončilo s kódem 0. Dvě architektonická rozhodnutí vypadla z indexu, všechny projekce se pak zapsaly bez nich a návratový kód hlásil úspěch. Všimlo se to jen proto, že někdo z tušení prohledal log.

To je nejhorší tvar, jaký kontrola může mít. Selhání, které se samo ohlásí a pak ho přebije návratový kód, je nebezpečnější než žádná kontrola, protože všemu dále po proudu — hooku, workflow, člověku čtoucímu echo $? — se dává právo tomu věřit.

Index je záměrně tolerantní: soubor, který nedokáže zařadit, se stane diagnostikou a sestavení pokračuje, aby jeden rozbitý dokument neučinil repozitář nečitelným. Taková tolerance je správná pro čtení a špatná pro odvozování. Co se zapíše jako stav repozitáře, se nesmí zapsat ze stavu, o kterém nástroj už řekl, že je neúplný.

Požadované chování

Každé volání, které odvozuje commitnuté artefakty nebo je kontroluje, předává --strict, takže chybová diagnostika ve vrstvě ukončí běh nenulovým exit kódem a zprávou s počtem. Dnes to pokrývá scripts/derive a scripts/derive-check.

Příkaz, který čte vrstvu, aby odpověděl na otázku — context, search, servírované plochy — zůstává tolerantní a hlásí zhoršený stav místo odmítnutí. Rozdíl je v tom, zda se výstup stane commitnutým faktem o repozitáři.

Chování při selhání

Běh skončí nenulovým kódem s uvedením, kolik chybových diagnostik bylo nalezeno, a příkazu, který je vypíše. Nic se nezapisuje.

Ověření

Revize a test/cases/104_strict_derivation.sh: zavede se duplicitní identita, derivace odmítne a tentýž strom bez duplicity se odvodí čistě.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/a-return-code-is-not-the-diagnostic-channel.v1.md
identity
project.diagnostics-decide-the-exit@1
dostupné také jako
Zdroj MCP majordomus://rule/project.diagnostics-decide-the-exit@1 · majordomus entity show rule/project-diagnostics-decide-the-exit-1 · GET /api/v1/entity?uri=majordomus://rule/project.diagnostics-decide-the-exit@1
v Cockpitu
/cockpit/objects/rule/project-diagnostics-decide-the-exit-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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