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.

Záměr je typovaný záznam a jeho fáze a splnění se odvozují z plánu a důkazů

Záměr je typovaný záznam a jeho fáze a splnění se odvozují z plánu a důkazů

majordomus://adr/adr-0070navrženo intentprojektevidencegovernance

odkazuje na

odkazuje na něj

70. Záměr je typovaný záznam a jeho fáze a splnění se odvozují z plánu a důkazů

Kontext

Projektový model říká, jaká práce existuje: milníky jsou výsledky, úkoly jsou exekuční kontrakty a plan.rs odvozuje každý stav z toho, co se s nimi stalo. Struktura důkazů říká, co běželo: docs/CLAIMS.yaml jmenuje test a ledger drží běh. Žádné neříká, k čemu práce byla. Veřejný web to říkal otevřeně — neexistoval objekt záměru, registr záměrů ani id záměru — a každá otázka tvaru „jakému výsledku tato změna slouží“ nebo „dosáhlo dokončení těchto milníků něčeho“ byla zodpovídána, pokud vůbec, z promptu, který svou relaci nepřežil.

Existovaly dva způsoby, jak chybějící vrstvu přidat. Jeden dává záměru vlastní životní cyklus: pole stavu, přechody, razítko při sloučení pull requestu. Druhý chápe záměr jako výrok, jehož stav se počítá ze záznamů, které repozitář už vede.

Rozhodnutí

Záměr je záznam YAML pod .ai/repo/project/intents/, druh intent, schéma majordomus.intent/v1: id, title, statement, které se musí stát pravdou, invariants, které musí zůstat pravdou, milestones, které jej realizují, a kritéria satisfaction, každé {id, criterion, evidence, ref} s evidence jedním z test, claim, command nebo deployment. Volitelné governance, non_goals, cancelled a superseded_by. Druh je deklarován v share/kinds.yaml distribuce a jeho třída v sources.yaml tohoto repozitáře i skeletonu.

Záměr není druhým modelem úlohy nebo životního cyklu. Žádný stupeň není uložen, žádná schopnost záměr nepřevádí, nic jej neopatřuje razítkem a žádná schopnost záměru nezapisuje do repozitáře. Stupeň je čisté odvození nad dvěma věcmi, které již existují:

  • stav, který plan::Plan odvozuje pro každý pojmenovaný milník — declared, dokud se milník nevyřeší, planned, jakmile se vyřeší všechny, executing, jakmile je kterýkoli ACTIVE, VERIFY nebo DONE, verifying, jakmile je každý milník, který není zrušen ani nahrazen, DONE;
  • stav důkazu, který už vrstva důkazů odvozuje — kritérium test je splněno prošlým během v ledgeru, jehož digest zdroje stále sedí, kritérium claim tvrzením, které je proven nebo inputs unchanged. satisfied je verifying, když je splněno každé kritérium.

Kritéria command a deployment se vyřeší a nikdy se nepočítají jako splněná: není zaznamenána žádná exekuce, ze které by se daly odvodit, a pokládat deklarovaný příkaz za důkaz by byla anonymní zelená, kterou kniha existuje, aby odmítala.

Čtyři schopnosti jen pro čtení promítají derivaci do příkazové řádky, HTTP a MCP: intents.list, intents.record, intents.validate (při selhání exit 10) a intents.preflight (úkol nebo cesty, na milník, na záměry, kterým slouží, nebo odmítnutí jmenující chybějící článek). Kontrola intent-check spouští intent validate při změně modelu projektu nebo enginu a project.work-serves-a-declared-intent to pravidlo uvádí.

Zamítnuté alternativy

Uložený stav záměru s přechody. Byl by to druhý životní cyklus vedle plánového a oba by se rozešly při prvním přeplánování úkolu — vadě, které se plán vyhnul tím, že byl napsán bez pole stavu.

Splnění označené při sloučení posledního pull requestu. Sloučený pull request, jehož záměr je stále nepravdivý, je nedokončená práce; git server není věštec výsledku.

Nový ledger důkazů pro záměry. Ledger a join tvrzení už říkají, co běželo a zda je to aktuální. Druhý by byl druhou pravdou o týchž provedeních.

Důsledky

  • O splnění rozhoduje engine záměrů nad účetní knihou. Nahrazeno ADR 0107: tento důsledek původně plánoval, že jakmile přistane politika dokončení (pull request 292), stane se splnění záměru otázkou politiky dokončení a tento engine by odpovídal jen na stav. ADR 0107 ponechává engine jako jedinou autoritu pro verdikt kritéria; dokončení plní povinnosti a nikdy nerozhoduje o splnění. To je řez 2 milníku intent-lifecycle, přeformulovaný, aby odpovídal.
  • milestone_serves_no_intent je varování, takže stávající milníky zůstávají platné, zatímco se pro ně píší záměry.
  • Spojení devcontext a preflightu relace, pohled na záměr v Cockpitu s vynuceným pokrytím skriptů a odsouhlasení milníků GitHubu s kontrolou uzavření jsou pozdější slices a nerozhoduje se o nich zde.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0070-intent-is-a-typed-record-and-satisfaction-is-derived-from-evidence.md
identity
adr-0070
dostupné také jako
Zdroj MCP majordomus://adr/adr-0070 · majordomus entity show adr/adr-0070 · GET /api/v1/entity?uri=majordomus://adr/adr-0070
v Cockpitu
/cockpit/objects/adr/adr-0070

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.