Co to znamená
Rozhodnutí je data, ne próza, kterou nástroj náhodou uchovává. .ai/repo/adrs/<NNNN>-<slug>.md nese front matter ověřený proti share/schemas/majordomus/adr/adr.v1.schema.json — identifikátor schématu, identitu adr-NNNN, druh, název, jeden ze čtyř stavů, datum dosažení tohoto stavu a volitelně štítky, nahrazení a původ — nad tělem s neprázdnými # Context, # Decision a # Consequences. Neznámý klíč je chyba, neznámý stav je chyba a verze schématu, kterou nástroj nezná, se odmítne, ne hádá.
Tři invarianty platí napříč sadou, ne v rámci jednoho souboru. Identitu nárokuje právě jeden záznam a určuje prefix názvu souboru, takže přejmenování posune slug, nikdy číslo. Nahrazení je vzájemné: supersedes u jednoho záznamu vyžaduje superseded_by u druhého, protože řetěz, kterým jde projít z jednoho konce, není řetěz. A každá reference, kterou záznam činí — rozhodnutí, které nahrazuje, soubor či test, z něhož byl odvozen — se rozliší.
Princip
share/kinds.yaml deklaruje druh, share/schemas/majordomus/adr/adr.v1.schema.json je jeho smlouva a seznam povolených share/allow/adr.txt se generuje z tohoto schématu. Objevování je zdrojová třída adr v .ai/repo/knowledge/sources.yaml; nic jiného rozhodnutí neregistruje, takže přidání souboru je celá registrace.
lib/adr.sh odvozuje z tohoto zjištění jeden katalog a čtou jej všechny povrchy: adr list, adr show, adr check a mj_validate_adr, validátor doktríny majordomus.adr-integrity, spouštěný z doctor a watch, který selhává s exit 10 v kategorii adr.
Jak to vidět
majordomus adr list # every decision: id, status, date, title
majordomus adr list --status proposed # only the ones waiting for a person
majordomus adr check # every identity, status, reference and section
majordomus adr check --json # the same, for a machineCo nepokrývá
Kontrakt je strukturální. Zda je rozhodnutí správné nebo zda byly promyšleny jeho důsledky, je úsudek člověka; nástroj zaručuje, že sada je čitelná, jednoznačná a vnitřně konzistentní a že rozbitý odkaz najde příkaz, nikoli čtenář o měsíce později.
Proč existuje
Tento repozitář vydal dva 0005 a dva 0007, než cokoli kontrolovalo. Duplicitní identity a jednostranné nahrazení jsou přesně ta selhání, která lidský čtenář nezpozoruje a stroj najde okamžitě, takže sada se validuje tak jako každý jiný druh ve vrstvě.