165. Dovednost je odvozena pro každou doménu registru a zobrazena všude, kde jsou dovednosti
Kontext
ADR 0146 učinilo schopnost dosažitelnou jménem z Claude Code, když to její deklarace říká .skill(alias, argument). Jedna schopnost to říká (intents.propose jako /intent). Ostatních 189 nástrojů MCP je dosažitelných jen popisem přání a nadějí, že model nástroj najde, a člověk, který otevře seznam dovedností, vidí osm workflow dovedností a nic z toho, co registr nabízí. Vlastník požádal, aby každá dovednost byla odvozená, integrovaná s vrstvou, vynucovaná a ukázaná na webu i v UI — ne o další ručně psané aliasy.
ADR 0146 zamítlo jednu dovednost na schopnost: stovky jmen, z nichž každé opakuje nástroj. Registr už své schopnosti seskupuje podle modulů (mesh, plan, continuity, ...) a modul je jednotka, v níž člověk myslí („co říká mesh“, „posunout plán“).
Rozhodnutí
Každý modul registru, který nabízí veřejnou schopnost s nástrojem MCP, je jedna dovednost, /mj-<module>. Plán editorů ji odvozuje z registru a z ničeho jiného: její popis tvoří modul a tituly jeho schopností, její tělo je tabulka těchto schopností s jejich nástrojem, příkazovou řádkou a údajem, zda cokoli mění. Schopnost se k dovednosti svého modulu připojí tím, že má nástroj; nic nevypisuje domény.
Model si smí načíst doménovou dovednost sám. Načtení nic nemění. Volání schopnosti, která něco mění, řídí soubor: jen když o tu změnu člověk požádal, jednou, s odmítnutím nebo neznámým výsledkem hlášeným tak, jak je. Schopnost, která deklaruje .skill(..), si drží svůj vlastní soubor, včetně disable-model-invocation (ADR 0146).
Jména se ustupují, nikdy nesdílejí. Prefix mj- udržuje domény odděleně od vlastních příkazů produktů a dovedností workflow vrstvy; doména, jejíž jméno už má alias příkazu nebo dovednost workflow, se nezapisuje.
Vynucuje se tam, kde ostatní projekce. majordomus generate zapisuje soubory, generate --check (a pre-commit hook, který jej spouští) selže na chybějícím, zastaralém nebo osiřelém, a editors.status hlásí schopnost domains adaptéru claude-code se všemi cestami. Pravidlo je project.every-domain-is-a-skill.
Zobrazuje se všude, kde jsou dovednosti. Sekce dovedností na webu a UI čtou stejnou projekci, kterou odpovídá editors.status — dovednosti workflow, dovednosti příkazů a dovednosti domén, každá se jménem, jímž se zadává — takže dovednost, která existuje v Claude Code, existuje na úvodní stránce i v dashboardu a nikde se nepíše ručně.
Zamítnuté alternativy
Jedna dovednost na schopnost. Opět zamítnuto z důvodu, který uvádí ADR 0146.
Ručně udržovaný seznam „důležitých“ schopností. Druhá definice toho, které schopnosti jsou důležité, kterou nic nedrží u registru.
Přesun osobních ~/.claude/commands vlastníka do vrstvy. Slouží každému repozitáři, ve kterém vlastník pracuje (/commit, /pr, /push); vrstva repozitáře je pro ně špatný vlastník. Jediná vada, kterou zde nesou — osobní evolve vedle dovednosti workflow vrstvy evolve — se hlásí, nepřebírá.
Důsledky
- Asi padesát souborů
.claude/skills/mj-*/SKILL.md, regenerovaných s registrem. - Cena výpisu je omezená: každý popis se zkrátí na slově na 300 znaků.
- Odvozování argumentů pro každou schopnost zůstává pozdějším krokem, který ADR 0146 jmenovalo; doménová dovednost předá požadavek agentovi, který čte schéma nástroje tak, jak to už dělá.