intent-lifecycle — Práce je dohledatelná k záměru, kterému slouží, a záměr je naplněn jen důkazy
Záměr je typovaný záznam nad milníky, které ho realizují: tvrzení, jeho invarianty a kritéria splnění, z nichž každé jmenuje důkaz, který o něm rozhoduje. Jeho fáze se odvozuje ze stavu milníků plánu a jeho splnění z knihy důkazů, nikdy se neukládá. Kontrola odmítne záměr, který nejmenuje žádný milník nebo má důkaz, jenž nevede nikam, preflight relace jmenuje záměr, jemuž její práce slouží, nebo odmítne, Cockpit ukazuje záměry s měřeným a vynucovaným pokrytím svých skriptů a milník se na GitHubu uzavře, jen když jsou splněny záměry, kterým slouží.
PLÁNOVÁNO 0 of 3 issues done
- připraveno
- 2
- blokováno
- 1
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
Tento repozitář modeluje práci: milníky jsou výsledky, úkoly jsou prováděcí kontrakty, commity se vysledují k úkolům a tvrzení k zaznamenaným během. Nic nad milníkem nezaznamenává, co se má pro člověka stát pravdou, takže žádný příkaz nedokáže říct, kterému výsledku změna slouží, zda sada dokončených milníků dosáhla toho, k čemu byla, ani které záměry nemají práci a která práce nemá záměr. Veřejný web to sám uváděl: „Neexistuje objekt záměru, registr záměrů ani id záměru.“ Záměr žil jen v promptu a prompt je nezverzovaný, nevynucený a zmizí s koncem relace.
Výsledek
Záměr je typovaný záznam nad milníky, které ho realizují: tvrzení, jeho invarianty a kritéria splnění, z nichž každé jmenuje důkaz, který o něm rozhoduje. Jeho fáze se odvozuje ze stavu milníků plánu a jeho splnění z knihy důkazů, nikdy se neukládá. Kontrola odmítne záměr, který nejmenuje žádný milník nebo má důkaz, jenž nevede nikam, preflight relace jmenuje záměr, jemuž její práce slouží, nebo odmítne, Cockpit ukazuje záměry s měřeným a vynucovaným pokrytím svých skriptů a milník se na GitHubu uzavře, jen když jsou splněny záměry, kterým slouží.
Aktuální stav
Milníky a úkoly validuje `majordomus plan validate`; tvrzení se spojují se zaznamenanými běhy příkazem `majordomus evidence`. Neexistuje druh intent, schopnost intent ani kontrola, která by práci vztahovala k intentu.
Cílový stav
Pracovník se ptá, kterému záměru změna slouží, a jedna schopnost odpoví z plánu, nebo odmítne a jmenuje chybějící článek. Čtenář se ptá, zda je záměr naplněn, a odpověď se odvodí ze zaznamenaných důkazů, ne ze sloučeného pull requestu.
Rozsah
- .ai/repo/project
- .ai/repo/ci/gates.yaml
- .ai/repo/rules/project
- .ai/repo/adrs
- apps/majordomus-cli/src
- share/schemas/majordomus/intent
- share/kinds.yaml
- share/cockpit
- site/data
- test/cases
Mimo rozsah
- Druhý životní cyklus úlohy vedle plánu; fáze se odvozuje a nic nepřechází
- Ukládání stavu záměru nebo razítkování záměru z merge
- Automatické odvození plánu z intentu
Kritéria přijetí
- Řez 1 — typovaný záznam a kontrola: druh intent, jeho schéma v distribuci a ve skeletonu, schopnosti jen pro čtení intents.list, intents.record, intents.validate a intents.preflight na každém povrchu a kontrola intent-check odmítající neplatný model intentů
- Slice 2 — splnění rozhoduje samotný důkaz (ADR 0107): dokončení vypořádá závazky a nikdy nerozhoduje, zda je záměr splněn; engine záměrů je jedinou autoritou pro verdikt kritéria a odvozené `verdict` odpovídá na splnění odděleně od fáze odvozené z plánu
- Slice 3 — preflight join: devcontext and the session start name the intent the task serves, from intents.preflight, and load its governance
- Řez 4 — pohled Záměr v Cockpitu, s pokrytím JavaScriptu Cockpitu měřeným a vynucovaným kontrolou
- Řez 5 — sladění s GitHubem: milníky promítnuté se záměrem, kterému slouží, a kontrola uzavření, která odmítne uzavřít milník s nesplněnými záměry
Validace
- majordomus intent validate
- cargo test --test intent
- bash test/run.sh 367_an_intent_is_satisfied_only_by_evidence
Rizika
- Model záměru, který získá stav nebo přechod, se stane druhým životním cyklem vedle plánu a oba by se rozešly při prvním přeplánování úkolu.
- Kritéria naplnění opřená o příkazy nebo nasazení se z knihy zatím odvodit nedají, takže záměr spočívající jen na nich se nikdy nemůže číst jako naplněný; jeho verdikt čte unknown, dokud se tyto druhy nedají odvodit.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I1900 | PŘIPRAVENO | 0 | — | Záměr je typovaný záznam, jehož fáze a splnění se odvozují |
| I1903 | BLOKOVÁNO | 1 | I1900 | Práce realizující záměr je spojena napříč epizodami, providery a předávkami |
| I3258 | PŘIPRAVENO | 0 | — | Evidence for and against one criterion is kept and named, and the criterion reads unknown until it is settled |
Graf
flowchart LR
I1900["I1900<br/>An intent is a typed record whose stage and satisfaction are derived"]:::ready
I1903["I1903<br/>The work realising an intent is joined across episodes, providers and handovers"]:::blocked
I3258["I3258<br/>Evidence for and against one criterion is kept and named, and the criterion reads unknown until it is settled"]:::ready
I1900 --> I1903
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxKanonický záznam: .ai/repo/project/milestones/intent-lifecycle.yaml. Načtěte jej zpět pomocí majordomus plan show intent-lifecycle.