intent-bound-work — Úloha je vázána na záměr, kterému slouží
`start` pojmenovává úkol, záměr nebo deklarovanou výjimku, zeptá se schopnosti vazby, čemu úloha slouží, a odmítne odmítnutou vazbu, kde ji politika vyžaduje. Záznam úlohy nese, co bylo pojmenováno a v jaké revizi se to vyřešilo. `context` informuje workera podle vazby, `handover` připíná revizi a `handover --resolve` hlásí drift.
BLOKOVÁNO 0 z 5 úkolů hotovo
- připraveno
- 0
- blokováno
- 5
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
Motor záměrů umí říct, kterému záměru slouží úkol nebo sada cest (intent preflight), a nic se ho neptá. `start` přijímá popis a rozsah; záznam úlohy nejmenuje žádný úkol ani záměr; kontext předaný pracovníkovi neříká nic o kritériích, kvůli nimž práce vzniká; předávka nese commit a žádnou stopu záměru, pod nímž byla napsána. Práci pod záměrem, jehož plán nebyl nikdy podroben kritice, najde `intent validate` až po jejím zahájení, neodmítne ji předem.
Výsledek
`start` pojmenovává úkol, záměr nebo deklarovanou výjimku, zeptá se schopnosti vazby, čemu úloha slouží, a odmítne odmítnutou vazbu, kde ji politika vyžaduje. Záznam úlohy nese, co bylo pojmenováno a v jaké revizi se to vyřešilo. `context` informuje workera podle vazby, `handover` připíná revizi a `handover --resolve` hlásí drift.
Aktuální stav
intents.preflight existuje bez volajícího. Záznam úlohy nemá pole pro úkol, záměr ani výjimku. Nikde neexistuje třída výjimek. Nic nepočítá revizi záměru, jeho plánu ani kritiky.
Cílový stav
Jedno odvození, `Intents::binding`, odpovídá `intents.binding` na každém povrchu a ptají se ho start, context a handover.
Rozsah
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/intent_binding.rs
- apps/majordomus-cli/src/capability/builtin/intents.rs
- apps/majordomus-cli/src/capability/builtin/continuity.rs
- apps/majordomus-cli/src/commands/intent.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/policy.rs
- apps/majordomus-cli/tests
- lib/start.sh
- lib/context.sh
- lib/handover.sh
- lib/common.sh
- lib/intent_binding.sh
- lib/plan.sh
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/src/intent_realization.rs
- podíl
- .ai/repo/policy.yaml
- .ai/repo/project
- .ai/repo/adrs
- .ai/repo/rules/project
- dokumentace
- test/cases
Mimo rozsah
- Odmítnutí finish při nesplněných kritériích
- Vytvoření nebo provedení kritiky
- Přesun životního cyklu úlohy ze shellu do Rustu (ADR 0047)
Kritéria přijetí
- Úloha zahájená s --issue, --intent nebo podle rozsahu se rozřeší přes intents.binding a nejednoznačná nebo odmítnutá vazba nezačne tam, kde politika vazbu vyžaduje
- Výjimka je třída deklarovaná politikou s důvodem, zaznamenaná v záznamu úlohy a v knize záznamů
- Kontext navázané úlohy nese z vazby sekci záměru
- Předávka nese revizi vazby a --resolve hlásí drift
- Příkazový řádek, HTTP a MCP odpovídají na stejnou vazbu
Validace
- majordomus intent validate
- cargo test --test intent_binding
- bash test/run.sh 960_a_task_starts_bound_to_what_it_serves
- bash test/run.sh 961_a_resumed_task_is_told_its_intent_moved
Rizika
- Záznamy, ADR a testy, které jmenují, přistávají v jedné změně: kritérium, jehož odkaz na důkazy se nerozliší, shodí intent validate, takže žádná část tohoto milníku nedosáhne trunku bez zbytku.
- Vyžadování vazby v tomto repozitáři odmítne `start` jen s rozsahem, který dnes používá každá relace; odmítnutí musí jmenovat tři cesty dál (úkol, intent, výjimka), jinak se čte jako rozbitý nástroj.
- Pin uložený v úloze je o krok od uloženého stavu záměru; musí zůstat hashem porovnávaným při čtení a nikdy fází ani verdiktem (pravidlo project.an-intent-outlives-its-sessions).
Ú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 |
|---|---|---|---|---|
| I2000 | BLOKOVÁNO | 0 | — | To, čemu práce slouží, je jedna derivace s revizí |
| I2001 | BLOKOVÁNO | 1 | I2000 | start se ptá, čemu úloha slouží, a odmítne odmítnutou vazbu tam, kde to politika vyžaduje |
| I2002 | BLOKOVÁNO | 2 | I2001 | Kontext vázané úlohy říká, co záměr od této práce žádá |
| I2003 | BLOKOVÁNO | 2 | I2001 | Předávka připne vazbu, pod kterou byla napsána, a její vyřešení hlásí drift |
| I2004 | BLOKOVÁNO | 1 | I2000 | plan start odmítne úkol, jehož vazba je odmítnuta, v obou enginech |
Graf
flowchart LR
I2000["I2000<br/>What a piece of work serves is one derivation, with a revision"]:::blocked
I2001["I2001<br/>start asks what the task serves and refuses a refused binding where the policy requires it"]:::blocked
I2002["I2002<br/>The context of a bound task says what the intent asks of this work"]:::blocked
I2003["I2003<br/>A handover pins the binding it was written under, and resolving it reports drift"]:::blocked
I2004["I2004<br/>plan start refuses an issue whose binding is refused, in both engines"]:::blocked
I2000 --> I2001
I2000 --> I2004
I2001 --> I2002
I2001 --> I2003
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:2pxOdkazováno z tohoto diagramu (5)
- I2000 To, čemu kus práce slouží, je jedno odvození s revizí
- I2001 start se ptá, čemu úloha slouží, a odmítne odmítnutou vazbu tam, kde to politika vyžaduje
- I2002 Kontext vázané úlohy říká, co záměr od této práce žádá
- I2003 Předávka připíná vazbu, pod kterou byla napsána, a její vyřešení hlásí drift
- I2004 plan start odmítne úkol, jehož vazba je odmítnuta, v obou enginech
Kanonický záznam: .ai/repo/project/milestones/intent-bound-work.yaml. Přečtěte jej zpět pomocí majordomus plan show intent-bound-work.