144. Záměr navrhuje schopnost a jeho fáze zůstává odvozená
Kontext
ADR 0070 udělalo z intentu typovaný záznam, jehož stádium se odvozuje z plánu a důkazů, a řeklo, že žádná schopnost intentu nezapisuje do repozitáře. Každý dosavadní intent byl napsán ručně: šest schopností intenty čte a žádná je nevytváří a ani lib/plan.sh nemá podpříkaz create.
Dne 2026-10-12 si vlastník vyžádal integraci Claude Code odvozenou z registru schopností s /intent <sentence> jako první uživatelskou cestou. Projekce může adaptovat jen schopnost, která existuje, takže cesta potřebuje schopnost, která záměr zapisuje. A věta není platný záměr: schéma vyžaduje milníky a kritéria splnění a intent validate selže u záměru, který nejmenuje ani jedno (intent_without_milestone, intent_without_criterion).
Rozhodnutí
intents.propose zapíše jeden nový záznam záměru a nic jiného. Je to Command, které deklaruje .writes_repository(). Jeho vstup je prohlášení plus volitelný název a id. Zapíše .ai/repo/project/intents/<id>.yaml s prohlášením doslova, prázdnými invariants, milestones a satisfaction a datem vytvoření. Id je ve výchozím stavu slug názvu a název první řádek prohlášení. Existující záznam je odmítnut, nikdy přepsán. Soubor se zapíše vedle svého konečného názvu a nalinkuje na místo, takže se objeví celý, nebo vůbec, a dva návrhy téhož id nemohou uspět oba.
Návrh je záměr, který nejmenuje milník ani kritérium. Jeho fáze je declared, což ADR 0070 už definuje jako „žádný není jmenován“. U takového záznamu jsou obě absence varování, ne selhání. Záměr, který jmenuje jedno a druhé ne, je napůl naplánovaný a každá absence zůstává selháním jako dřív. Žádný úkol nemůže sloužit návrhu: není milník, pod který práci zařadit, a kritérium, kterému sloužit, takže preflight odmítne práci, která si ho nárokuje. Plánování návrhu zůstává samostatným aktem. Člověk nebo pozdější schopnost přidá milníky, kritéria a invarianty.
Co ADR 0070 zachovává. Žádný stav záměru se neukládá, nic záměr nepřevádí a fáze zůstává odvozením. Věta „žádná schopnost záměru nezapisuje do repozitáře“ se mění na „jedna schopnost záměru zapisuje, a to jen nový záznam“. Invariant záměru intent-lifecycle se mění s ní.
Tento krok nezapisuje do knihy žádnou událost. Slovník událostí (share/events.yaml) se sladí se shellovým modulem, který každou událost vysílá (případ 33), a tento zapisovatel je jen v Rustu. Zaznamenat volání zapisovatele jako exekuci, kterýmkoli transportem dorazilo, je pozdější krok samotné mise a pokryje všechny zapisovatele najednou, ne jen tohoto.
Zamítnuté alternativy
Schopnost zapisuje zástupné milníky a kritéria, aby záznam prošel validací. To vkládá do plánu vymyšlenou práci a čtenář nepozná zástupný záznam od rozhodnutí.
Volající (model za /intent) musí dodat úplný záměr a neúplný je odmítnut. Nepotřebuje to změnu validace. Kvalita záznamu ale pak závisí na odhadu modelu u milníků a kritérií, což je přesně ten odhad, který má tato vrstva z repozitáře držet venku.
Uložené pole status: proposed. To je druhý životní cyklus vedle odvozené fáze, který ADR 0070 zamítlo z důvodů, jež uvádí.
Důsledky
intents.proposese promítá ze své jediné deklarace domajordomus intent propose, MCPmajordomus_intent_propose,POST /api/v1/intents/proposea OpenAPI. Jeho strop vystavení je ten, který má každý zápis do repozitáře. Jeho měření je prominuto jako destruktivní a jeho případ je příkladem, který projekce ukazují.intent validatezůstává zelené na repozitáři, který drží návrhy, a hlásí dvě varování každého návrhu. Kontrolaintent-checkselže na napůl naplánovaném záměru jako dříve.- Test, který držel modul jen pro čtení, nyní drží, že právě jedna schopnost zapisuje a že je to návrh.
- Toto rozhodnutí je
proposed. Vlastník dovolil stavět na něm před jeho přijetím (2026-10-12). Bude-li zamítnuto, schopnost se odstraní spolu s ním.