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.

Dokončení splní závazky a nikdy nerozhoduje, zda je intent splněn

Dokončení splní závazky a nikdy nerozhoduje, zda je intent splněn

majordomus://adr/adr-0107navrženo intentcompletionevidencegovernance

odkazuje na

odkazuje na něj

107. Dokončení plní závazky a nikdy nerozhoduje, zda je záměr splněn

Kontext

ADR 0070 učinilo ze záměru typovaný záznam, jehož stav se odvozuje z plánu a jehož splnění se odvozuje z účetní knihy důkazů. Jeho první důsledek plánoval opačný směr na později: jakmile přistane politika dokončení (pull request 292, tam citovaný jako ADR 0057, které existuje jen na nesloučené větvi), bylo by splnění záměru otázkou politiky dokončení nad stejnými důkazy a engine záměrů by odpovídal jen na stav. Řez 2 milníku intent-lifecycle nese tento plán.

Dokončení odpovídá na jinou otázku. majordomus finish posuzuje, zda úloha splnila povinnosti, které deklaruje její profil a politika: rozsah, ověření, poznámku, regresní test, kontroly. Záměr se ptá, zda je něco pozorovatelně pravda pro lidi, pro které je. Úloha může být hotová a její záměr stále nepravdivý a záměr se může stát pravdivým, aniž by cokoli dokončilo — test, který začne procházet, tvrzení, jehož vstupy přestanou se měnit. Kdyby o splnění rozhodovala politika dokončení, hotová úloha by byla o jednu úpravu politiky od označení záměru za splněný, což je razítkování při merge, které ADR 0070 odmítl pod jiným jménem.

Engine dnes spojuje dvě odpovědi: intent::stage vrací satisfied jen tehdy, když je každý započítaný milník DONE a každé kritérium splněno, takže čtenář se nemůže zeptat, zda důkazy samy rozhodují o záměru, zatímco jeho milníky jsou ještě otevřené.

Rozhodnutí

  • Jedna autorita. Zda je kritérium splnění naplněno, rozhoduje engine záměrů (apps/majordomus-cli/src/intent.rs) nad knihou důkazů a spojením tvrzení, a nic jiného. Žádný jiný modul, soubor politiky, schopnost ani kontrola nepočítá, neukládá ani nepřebíjí verdikt kritéria či splnění záměru.
  • Dokončení čte, nikdy nerozhoduje. Politika dokončení rozhoduje, zda je práce hotová. Smí číst odvozený stav záměru jako vstup do otázky (například aby uvedla, která kritéria úloha posunula), ale nikdy nedeklaruje otázku, jejíž odpovědí je, že záměr je splněn, nikdy nezapisuje záznam záměru a nikdy neukládá fázi ani verdikt. Finish s výsledkem completed nechává fázi každého záměru a stavy kritérií přesně tak, jak je odvozují plán a důkazy.
  • Fáze zůstává odvozená z plánu. stage si zachovává svůj význam: satisfied je fáze záměru, jehož počítané milníky jsou DONE a jehož kritéria jsou všechna splněna; žádná plocha se tu nemění.
  • Splnění dostane vlastní verdikt. Samostatný odvozený verdikt odpovídá na otázku důkazů sám: satisfied, když je každé kritérium splněno, unsatisfied, když kritérium, které kniha záznamů umí rozhodnout, splněno není, unknown, když nesplněná kritéria jsou jen druhů, které kniha záznamů zatím rozhodnout neumí (command, deployment). HOTOVO jej neimplikuje ani se pro něj nevyžaduje. Pole se jmenuje verdict, protože satisfaction už pojmenovává pole kritérií v záznamu a v IntentView. Slice S07 jej implementuje, s nálezy driftu tam, kde se verdikt a stupeň neshodují.
  • První důsledek ADR 0070 je tímto rozhodnutím nahrazen a slice 2 milníku intent-lifecycle je přeformulován, aby odpovídal.

Zamítnuté alternativy

Splnění jako otázka politiky dokončení (plán ADR 0070). Vložilo by to soubor politiky mezi důkazy a odpověď a dokončená úloha by se stala cestou ke splněnému záměru. Dokončení se týká úlohy; splnění se týká světa, pro který úloha byla.

Ponechat spokojenost svázanou s DONE. Pro dnešní fázi je to pravda, ale skrývá to odpověď, kterou důkazy už mají: intent, jehož kritéria všechna platí, zatímco milník je otevřený, je přesně ten drift, který čtenář potřebuje vidět, a svázaná odpověď ho ukázat nemůže.

Přejmenování existujícího pole satisfaction kvůli uvolnění názvu. Je ve schématu, v kostře distribuce, v příkladech dokumentace i ve výstupu každého povrchu; přejmenování rozbije čtenáře, aby se ušetřila volba nového slova.

Důsledky

  • project.completion-never-decides-satisfaction uvádí hranici a test/cases/895_a_finished_task_does_not_satisfy_an_intent.sh ji dokazuje přes sestavený program: dokončený finish vedle milníku DONE s nesplněnými kritérii nechá fázi verifying, kritérium not_run a záznam záměru beze změny.
  • Politika dávky dokončení (share/completion.yaml) nesmí nikdy získat otázku o splnění záměru; otázka, která čte stav záměru, je vstup, nikdy verdikt.
  • S07 přidává verdict k IntentView na každém povrchu; dokud nepřistane, jediná odvozená odpověď je fáze a zůstává svázána s HOTOVO.
  • Přijetí podle důkazů nejdřív při přechodu plánu — plan done na úkolu, který slouží kritériu vyžadujícímu jeho důkazy — se zde nerozhoduje; patří plánu, ne dokončení, a zůstává pro pozdější slice.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0107-completion-discharges-obligations-and-never-decides-whether-an-intent-is-satisfied.md
identity
adr-0107
dostupné také jako
Zdroj MCP majordomus://adr/adr-0107 · majordomus entity show adr/adr-0107 · GET /api/v1/entity?uri=majordomus://adr/adr-0107
v Cockpitu
/cockpit/objects/adr/adr-0107

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.