intent-planning — Plán záměru se před provedením drží záměru
Úkol pojmenovává kritéria záměru, kterým slouží; pokrytí každého kritéria se odvozuje z plánu a odmítá se, když kritérium nemá práci nebo práce nemá účel. Mezera, kterou worker pozoroval, a kritika plánu jsou typované záznamy validované proti záměru a plánu a na záměru, jehož plán nebyl nikdy kritizován nebo má otevřené blokující zjištění, se práce nezačíná.
BLOKOVÁNO 0 ze 2 úkolů hotovo
- připraveno
- 0
- blokováno
- 2
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
Záměr (ADR 0070) jmenuje své milníky a důkazy, které rozhodují každé kritérium, ale nic nesouvisí kritérium s prací, která ho má učinit pravdivým. Záměr může jmenovat milník, jehož úkoly řeší dvě ze čtyř kritérií, a nic neříká, že další dvě nemají žádnou práci, dokud je ověření nenajde nesplněná. Plánování začíná promptem: co pracovník pozoroval jako chybějící a co review plánu přehlédlo, žije v historii terminálu a po skončení relace zmizí.
Výsledek
Úkol pojmenovává kritéria záměru, kterým slouží; pokrytí každého kritéria se odvozuje z plánu a odmítá se, když kritérium nemá práci nebo práce nemá účel. Mezera, kterou worker pozoroval, a kritika plánu jsou typované záznamy validované proti záměru a plánu a na záměru, jehož plán nebyl nikdy kritizován nebo má otevřené blokující zjištění, se práce nezačíná.
Aktuální stav
Úkoly nesou cíl, důvod a kritéria přijetí, ale žádný odkaz na kritérium záměru. Neexistuje druh záznamu pro mezeru ani kritiku. plan validate kontroluje závislosti, vlny, cykly a překryv rozsahu pouze uvnitř plánu.
Cílový stav
intent validate hlásí pokrytí každého kritéria, účel každého úkolu a nálezy záznamů mezer a kritiky a skončí nenulově, když plán záměr nenese.
Rozsah
- apps/majordomus-cli/src/intent_plan.rs
- apps/majordomus-cli/src/intent_review.rs
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/tests
- share/schemas/majordomus
- share/kinds.yaml
- .ai/repo/project
- .ai/repo/adrs
- test/cases
Mimo rozsah
- Automatické odvozování úkolů z mezery
- Posuzování, zda je kritérium splněno
Kritéria přijetí
- Každé kritérium každého živého intentu má odvozené pokrytí a nepokryté selže na intent validate
- Každý úkol má odvozený původ a úkol pod milníkem záměru, který nic neslouží, selže v intent validate
- Záznamy mezer a kritiky jsou typované druhy validované proti záměru a plánu
- Provedení na intentu, jehož plán nemá kritiku nebo má otevřený blokující nález, selže na intent validate
Validace
- majordomus intent validate
- cargo test --test intent_plan
- bash test/run.sh 386_a_plan_is_held_to_its_intent
Rizika
- Odmítnutí nepokrytého kritéria činí záměr deklarovaný před svými úkoly neplatným; záměr a úkoly, které mu slouží, musí přistát společně.
Ú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 |
|---|---|---|---|---|
| I1901 | BLOKOVÁNO | 1 | I1900 | Úkol jmenuje kritérium záměru, kterému slouží, a pokrytí se odvozuje |
| I1902 | BLOKOVÁNO | 2 | I1901 | Mezera a kritika záměru jsou typované záznamy, kterým se plán drží |
Graf
flowchart LR
I1901["I1901<br/>An issue names the intent criterion it serves, and coverage is derived"]:::blocked
I1902["I1902<br/>The gap and the critique of an intent are typed records the plan is held to"]:::blocked
I1901 --> I1902
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-planning.yaml. Přečtěte ho zpět pomocí majordomus plan show intent-planning.