76. Dovednost je schopnost jen tehdy, když to něco dokládá
Rozšiřuje ADR 7.
Kontext
ADR 7 učinilo z dovedností data: jeden SKILL.md na adresář, zjišťovaný třídou zdroje, validovaný proti generovanému schématu, promítaný na web a servírovaný jako majordomus://skill/<id>. To určilo, co dovednost je. Nechalo to otevřené, co o ní repozitář může ukázat. Existovaly tři dovednosti, všechny platné, a změřeno proti stromu, žádnou z nich nejmenoval žádný test a dvě z nich nebyly odkazovány ničím, co pracovník následuje: promptem, workflow, receptem. Katalog byl úplný a každá jeho položka nedokázaná — selhání, které má ručně vedený registr, dosažené o úroveň výš, skrze data, která jsou správná a o použití neříkají nic.
Zřejmý lék, pole tested: true nebo status: verified ve front matter, je totéž selhání znovu: autorské tvrzení, které žádná kontrola nemůže ověřit a které zastará v den, kdy se smaže test, který je ospravedlňoval.
Rozhodnutí
Čtyři fakta o dovednosti se odvozují při každém čtení jedinou derivací ve spustitelném souboru (crate::skill::Skills) a žádný soubor žádné z nich neuvádí.
- otestováno — test, který vlastní runner, jmenuje dovednost pomocí
majordomus-skill: <id>na řádku komentáře a poslední běh toho testu v knize důkazů posuzuje táž funkce, která posuzuje pojmenovaný test pravidla (rules::test_state): dokázáno, vstupy beze změny, zastaralé, selhává, neběželo. Značka uvnitř řetězce jsou data a nic neváže, takže test, který zapisuje fixtures, se na ně neváže. - zdokumentováno — stránka dovednosti na webu je sledovaný soubor.
- vynucováno — rozeslané pravidlo validuje dovednosti (jeho validátor je
skills) a CI kontrola, jejíž příkaz spouštískills verify, je vybrána změnou cesty dovednosti. Kontrola se pozná podle toho, co spouští, ne podle svého id. - používáno — povrch pro vyvolání odkazuje na dovednost přes
majordomus://skill/<id>nebo cestou k jejímuSKILL.md: workflow, prompty a profily vrstvy (ze sekcí manifestu), šablony poskytovatelů,justfilea.just/, workflow CI a kořenové bootstrapy. Dokumentace není vyvolání; stránka, která dovednost popisuje, nikoho nenutí ji následovat.
Odvození je modul schopnosti skills — skills.status, skills.explain, skills.verify — deklarovaný jednou a promítnutý do příkazové řádky, HTTP, MCP a OpenAPI. Modul je skills, protože skill je deklarativní druh.
Aktivní dovednost, kterou nejmenuje žádný test nebo ji nic nevyvolává, je sirotek a selhání. Stejně tak test nebo vyvolání jmenující neexistující dovednost, selhávající zaznamenaný běh a soubor dovednosti, který index odmítá (hlášeno jako contract a stále uvedeno jako invalid, aby se výpis nikdy nezkrátil). Důkazy, které nejsou aktuální, chybějící stránka a chybějící gate jsou varování: každé je dluh s příkazem, který ho vyrovná, a důkazy jsou zvlášť lokální artefakt, který každá úprava testu ze své podstaty zastarává, takže odmítat kvůli nim by odmítalo každý commit, který test zlepší. Koncept nebo zastaralá dovednost nedluží nic.
Jeden soudce na fakt. Kontrakt dovednosti (schéma, sekce, duplicitní popisy, související id, příklady) zůstává u lib/skills.sh a indexu, jak ho nechalo ADR 7. Důkaz posuzuje jen skills.verify; validátor doktríny mj_validate_skills čte tento verdikt a hlásí každý nález přes doctor a watch a říká, že je neznámý — nikdy úspěch — když executable není sestaven. CI kontrola skills-proof spouští tentýž příkaz.
Původ je neprůhledná značka. Dovednost, jejíž koncept byl studován mimo tento repozitář, nese provenance: {origin: prior-art, ledger: import-<date>#<n>, decision: adapted | reimplemented | merged}, uzavřené a kontrolované vzorem ve schématu. Mapování na zdroj — repozitář, cesta, revize, poznámky — žije v gitignorovaném .ai/local/imports/<date>.yaml. Veřejný repozitář nejmenuje žádný soukromý materiál a pozdější čtenář stále pozná importované od nativního.
Odvozený stav se nezapisuje do commitovaných projekcí. site/data/generated/skills.json zůstává katalogem, jakým byl. Stav závisí na účetní knize a na diffu proti commitu, ve kterém byl běh zaznamenán, takže by se jeho projekce měnila s každým commitem a každým zaznamenaným během a odvozování by nikdy nekonvergovalo.
Zamítnuté alternativy
- Autorské pole
tested/verified, kontrolované proti stromu. Jsou to dva zdroje pro jeden fakt a kontrola je stejně odvozením. - Vazba testů na dovednosti z front matter dovednosti (
tests: [...]). Pravidlo to tak dělá a dovednost by mohla; ale to, co postup procvičuje, je test, a autor dovednosti, který vypisuje testy, jež nenapsal, je směr, který zastarává. Značka žije tam, kde je důkaz; odvození ji čte odtamtud. - Počítat jakoukoli zmínku jako použití. Dokumentace, vlastní příklady dovednosti a seznamy
relatedjiných dovedností všechny dovednosti zmiňují; žádná z nich nenutí pracovníka nějakou následovat. Použití se omezuje na povrchy, které pracovníkovi instruují. - Odmítat na základě důkazů, které nejsou aktuální. Viz výše; znemožnilo by to commitnout zlepšení testu a je to to, co už měří
evidence-checka zaznamenaný běh. - Ukazovat postavení na veřejném webu. Není to stabilní projekce (viz rozhodnutí); postavení se místo toho čte živě z povrchů spustitelného souboru.
Důsledky
- Každá aktivní dovednost tohoto repozitáře je jmenována v
test/cases/391_skills_are_proven_capabilities.shaapps/majordomus-cli/tests/skills.rs, z nichž každý čte dovednost z repozitáře a selže, pokud to není platná, vyvolávaná schopnost, která počítá test mezi své vlastní, a selže, když je aktivní dovednost vynechána z řádku značky. - Stávající dovednosti získaly svá první vyvolání: workflow životního cyklu úlohy jmenuje
implement,assess-before-deletingareport-verification-state; prompt review jmenujerepo-reviewapack-for-review; prompt předávky jmenujereport-verification-state;deploy-siteuž vyvolával jeho recept. - První vlna převzatých konceptů —
assess-before-deleting,report-verification-state,pack-for-review— nese značky provenience; čtvrtý koncept, plánování před změnou fungujícího kódu, byl sloučen doimplement, které ho už vyžadovalo, a nepřidává dovednost. - Fixturní dovednost v behaviorálním případu nyní potřebuje test pojmenování a vyvolání, aby
doctorprošlo při sestaveném spustitelném souboru;95_skillsnese obojí. rules::test_statearules::ledger_diffsjsou sdílené posouzení; změna toho, jak se posuzuje zaznamenaný běh, mění pravidla a dovednosti společně.