I1801 — Skriptovaná schopnost je druh, objevený a registrovaný, spustitelný a promítaný jako každá schopnost
Učinit schopnost deklarovanou v souboru vrstvy, s handlerem v podobě skriptu Rhai, schopností jediného registru: objevenou indexem jako druh, ověřenou s chybami jmenujícími soubor a pole, spustitelnou přes majordomus run a promítnutou do příkazové řádky, MCP, OpenAPI a generované reference projekcemi, které už existují.
PŘIPRAVENO vlna 1 · p1 · profil implementation · běží samostatně
Součást automation — Automatizace repozitáře jsou skriptované schopnosti nad typovaným Rustem, ne shell.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1801 bude přijato.
Cíl
Učinit schopnost deklarovanou v souboru vrstvy, s handlerem v podobě skriptu Rhai, schopností jediného registru: objevenou indexem jako druh, ověřenou s chybami jmenujícími soubor a pole, spustitelnou přes majordomus run a promítnutou do příkazové řádky, MCP, OpenAPI a generované reference projekcemi, které už existují.
Proč
ADR 0069 odmítá druhý registr (project.no-new-nouns). Skript se k repozitáři dostane jen přes schopnosti, jednou hostitelskou funkcí, která volá Context::execute, takže validace, redakce, čítače a rovina provádění platí pro každé volání skriptu; a hostitel odmítne volaného, jehož efekt přesahuje deklarovaný efekt skriptu.
Aktuální stav
Schopnosti pocházejí z modulů Rustu a z deklarativních objektů jen jako zdroje; nic nepřemění soubor vrstvy ve spustitelnou schopnost.
Cílový stav
Druh schopnosti s verzovaným schématem a druh skriptu vedle něj; registr z každé definice sestaví spustitelnou schopnost; dodává se jedna skutečná skriptovaná schopnost skládající schopnosti jen pro čtení; případ 383 ji provede od začátku do konce.
Rozsah
- apps/majordomus-cli
- podíl
- .ai/repo
- dokumentace
- test
- SECURITY.md
Mimo rozsah
- Migrace shellových skriptů; to je I1804
- Funkce, která přebírá řetězec shellového příkazu
Závislosti
Co na tom čeká
- I1804BLOKOVÁNO První shellové skripty se stanou skriptovanými schopnostmi nad typovaným Rustem
- I3157BLOCKED A scripted capability declared in an adopting repository's layer reaches its surfaces with no change to the tool, and says where it came from and what it may do
- I3305BLOCKED A scripted capability installed from outside the repository registers like one inside it
Kritéria přijetí
- definice s neznámým klíčem nebo chybějícím skriptem je odmítnuta s uvedením souboru a pole
- chyba kompilace jmenuje soubor skriptu, řádek a sloupec
- chyba za běhu jmenuje soubor skriptu, řádek a sloupec
- volání schopnosti, jejíž efekt přesahuje deklarovaný efekt, se odmítne
- zrušené provádění skriptované schopnosti se zastaví
- skriptovaná schopnost se po generate objeví v seznamu schopností, OpenAPI a MCP bez úpravy jinde
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib script::
- bash test/run.sh 383_a_scripted_capability_runs
Požadované důkazy
- scripted_capability_projected_everywhere
- effect_ceiling_enforced
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I1801.yaml. Přečtěte ho zpět pomocí majordomus plan show I1801.