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 navrhuje schopnost a jeho fáze zůstává odvozená

Záměr navrhuje schopnost a jeho fáze zůstává odvozená

majordomus://adr/adr-0144navrženo intentprojektcapabilities

odkazuje na

  • put_in_force apps/majordomus-cli/src/capability/builtin/intents.rs (soubor)
  • put_in_force apps/majordomus-cli/src/intent.rs (soubor)
  • put_in_force adr-0004
  • put_in_force adr-0070
  • put_in_force intent-lifecycle (záměr)
  • put_in_force test/cases/2978_an_intent_is_proposed_by_a_capability.sh (test)

odkazuje na něj

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.propose se promítá ze své jediné deklarace do majordomus intent propose, MCP majordomus_intent_propose, POST /api/v1/intents/propose a 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 validate zůstává zelené na repozitáři, který drží návrhy, a hlásí dvě varování každého návrhu. Kontrola intent-check selž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.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0144-an-intent-is-proposed-by-a-capability-and-its-stage-stays-derived.md
identity
adr-0144
dostupné také jako
Zdroj MCP majordomus://adr/adr-0144 · majordomus entity show adr/adr-0144 · GET /api/v1/entity?uri=majordomus://adr/adr-0144
v Cockpitu
/cockpit/objects/adr/adr-0144

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.