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.

Integrita architektonických rozhodnutí

Integrita architektonických rozhodnutí

majordomus://rule/majordomus.adr-integrity@1aktivní adrrecords

Zdůvodnění

Záznam rozhodnutí se čte měsíce po napsání, někým, kdo rozhoduje, zda omezení stále platí. Dva záznamy nárokující jednu identitu činí každý odkaz na tuto identitu nejednoznačným a nic si toho nevšimne, dokud čtenář jeden nenásleduje. To není hypotetické: v repozitáři Majordomus, kde bylo toto pravidlo napsáno, dva worktree přidělily 0005 během tří hodin od sebe a dva přidělily 0007 během jedné, a kolize přežila merge, protože žádný příkaz neměl o sekci názor. Validace sady při každém běhu doctor staví selhání do stromu, se jmenovanými soubory, místo do hlavy toho, kdo čte druhý záznam.

Druhá polovina pravidla se týká toho, co smí stroj tvrdit. majordomus adr propose zapisuje záznam z lokálního rozhodnutí a záznam, který zapsal, smí být proposed nebo rejected a nic jiného. Nástroj, který umí zapsat accepted, může ze své vlastní domněnky udělat pravdu repozitáře samotným zapsáním, a čtenář, který ten záznam později najde, nemá jak poznat, k čemu došlo.

Požadované chování

Každý soubor, který třída zdrojů adr objeví, má front matter splňující share/schemas/majordomus/adr/adr.v1.schema.json (žádný neznámý klíč, schema: adr/v1, kind: adr, status z uzavřené množiny, date jako YYYY-MM-DD), id tvaru adr-NNNN, jehož číslo je prefixem názvu souboru, a tělo s neprázdnými sekcemi ## Context, ## Decision a ## Consequences. Žádné dva záznamy si nenárokují jednu identitu a žádné dva názvy souborů jedno číslo. superseded_by je přítomno právě tehdy, když je stav superseded, a každý cíl supersedes existuje a odkazuje zpět na nahrazující záznam. Záznam, jehož provenance.origin je extracted, jmenuje alespoň jeden odkaz derived_from a nese stav proposed nebo rejected. Každý odkaz je <type>:<value> se známým typem a odkaz file: nebo test: se vyřeší na cestu v repozitáři.

Chování při selhání

Porušení je nález FAIL v kategorii adr, jmenuje soubor a každý důvod a příkaz, který jej našel, skončí s kódem 10. Pod watch se totéž porušení hlásí jako drift a příkaz skončí s kódem 11. Repozitář bez rozhodnutí se tak i hlásí, nikdy jako průchod nad ničím.

Ověření

Rozhoduje mj_validate_adr, spouštěné z doctor, watch; majordomus adr check provede stejné prověření na požádání a vypíše své počty. Prokazuje to behaviorální případ test/cases/99_adr.sh a CI tento případ spouští.

Odkud to pochází

kanonický soubor
.ai/repo/rules/vendor/majordomus/rules/adr-integrity.v1.md
identity
majordomus.adr-integrity@1
dostupné také jako
Zdroj MCP majordomus://rule/majordomus.adr-integrity@1 · majordomus entity show rule/majordomus-adr-integrity-1 · GET /api/v1/entity?uri=majordomus://rule/majordomus.adr-integrity@1
v Cockpitu
/cockpit/objects/rule/majordomus-adr-integrity-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.