Zdůvodnění
Úloha je hotová, když splnila závazky, které deklaruje její profil a politika. Záměr je naplněn, když je něco pozorovatelně pravdivé pro lidi, pro které je. Obě odpovědi se pohybují nezávisle: hotová úloha může nechat svůj záměr nepravdivý a záměr se může stát pravdivým, aniž by jakákoli úloha skončila. Kdyby dokončení rozhodovalo o naplnění, hotová úloha by byla jednu úpravu politiky od označení záměru za naplněný — razítkování při mergi, které ADR 0070 odmítlo, pod jiným jménem. ADR 0107 zaznamenává rozhodnutí a nahrazuje plán ADR 0070 učinit z naplnění otázku politiky dokončení.
Požadované chování
- Verdikt kritéria a splnění záměru počítá engine záměrů (
apps/majordomus-cli/src/intent.rs) nad ledgerem důkazů a spojením tvrzení a nic jiného. - Politika dokončení, kdekoli ji repozitář deklaruje, nedeklaruje žádnou otázku, jejíž odpovědí je, že záměr je naplněn. Otázka smí číst odvozené postavení záměru jako vstup.
majordomus finishs jakýmkoli výsledkem nezapíše žádný soubor pod.ai/repo/project/intents/a nikde neukládá fázi ani verdikt záměru.verdictzáměru —satisfied, když je splněno každé kritérium,unsatisfied, když není splněno kritériumtestneboclaim,unknown, když nejsou splněna jen kritériacommandnebodeploymentnebo žádné není deklarováno — odvozuje záměrový engine jen z kritérií, nikdy z plánu, a příkazová řádka, HTTP i MCP ho nesou shodně.- Po dokončení s výsledkem
completedhlásímajordomus intent showpro každý záměr stejný stupeň, verdikt a stavy kritérií, jaké hlásilo před dokončením. - Kde se fáze odvozená z plánu a verdikt odvozený z důkazů rozcházejí, realizace to ohlásí, místo aby je sladila:
evidence_ahead_of_plankdyž je verdiktsatisfied, zatímco fáze jeplannedneboexecuting,closed_work_not_satisfiedkdyž je každý milník DONE a verdikt nenísatisfied. Ani jedno nehýbe fází ani verdiktem.
Chování při selhání
Změna, která nechá o naplnění rozhodnout dokončení, selže na test/cases/895_a_finished_task_does_not_satisfy_an_intent.sh, což jmenuje posunutou fázi, posunutý verdikt, posunutý stav kritéria nebo změněný záznam záměru, a vyžaduje varování closed_work_not_satisfied jmenující zadrženě kritérium po finish. Povrch, který odpovídá jiným verdiktem, selže na apps/majordomus-cli/tests/intent.rs.
Ověření
test/cases/895_a_finished_task_does_not_satisfy_an_intent.sh dokládá přes sestavený spustitelný soubor, že dokončený finish vedle milníku DONE s nesplněným kritériem skončí 0, ponechá stav verifying, verdikt unsatisfied a kritérium not_run, ohlásí closed_work_not_satisfied a nechá záznam záměru i adresář záměrů beze změny; prošlý zaznamenaný běh pak záměr a jeho verdikt splní. apps/majordomus-cli/tests/intent.rs dokládá, že příkazová řádka, HTTP a MCP se shodují na verdiktu přes unsatisfied, satisfied a unknown.