Co Zed, Google Antigravity a Claude Code z tohoto repozitáře čtou, odkud každý soubor pochází a co je záměrně ponecháno na osobě. Chování tak, jak je implementováno a testováno; kde se tento dokument a spustitelný soubor rozcházejí, je dokument chybný a mění se ve stejném commitu. Rozhodnutím je ADR 140; kódem apps/majordomus-cli/src/editors/.
| zdroj | projekce | čte |
|---|---|---|
.ai/repo/skills/<id>/SKILL.md | .agents/skills/<id>/SKILL.md | Zed a Antigravity |
.ai/repo/skills/<id>/SKILL.md | .claude/skills/<id>/SKILL.md | Claude Code |
schopnost, která deklaruje .skill(alias, argument) | .claude/skills/<alias>/SKILL.md | Claude Code |
| každý modul registru s veřejným MCP nástrojem | .claude/skills/mj-<module>/SKILL.md | Claude Code |
justfile, .just/*.just | .zed/tasks.json | Zed |
.ai/repo/policy.yaml | AGENTS.md (generate providers) | obojí |
Příkazy
majordomus generate editors | zapsat projekce; odstranit projekci, jejíž dovednost zmizela |
majordomus generate --check | exit 10, je-li kterákoli projekce zastaralá, chybí nebo je osiřelá |
MCP majordomus_editors, GET /api/v1/editors, majordomus://editors | editors.status: schopnosti každého adaptéru s důkazy, vstupy každého souboru, adresa obsahu a stav, každý nález |
Nic se nikde neregistruje. Nová dovednost pod .ai/repo/skills/, nový veřejný recept v justfile nebo schopnost, která deklaruje dovednost, se v projekci objeví při příštím majordomus generate a --check selhává, dokud se tak nestane.
Co se projektuje
- Dovednosti. Jeden
SKILL.mdna aktivní dovednost snameadescription, které vyžadují oba produkty, bannerem generovaného souboru za front matter a odkazem na definici. Postup se nikdy nekopíruje: agent je poslán na kanonický soubor. Zapisuje se dvakrát, protože produkty hledají na dvou místech: pod.agents/skills/pro Zed a Antigravity a pod.claude/skills/pro Claude Code, který jiný adresář nečte, takže/<id>tam dosáhne definice vrstvy, a ne příkazu téhož jména, který si člověk drží ve vlastním nastavení. Oba soubory se liší adresářem, který jmenují, a ničím jiným. Dovednost, jejíž jméno už má příkaz schopnosti, se zapíše jednou, jako příkaz, a dvojice je zjištění. - Příkazy. Jeden
SKILL.mdna schopnost, jejíž deklarace říká.skill(alias, argument), takže/<alias> <text>v Claude Code zavolá tu schopnost jednou s textem v pojmenovaném vstupním poli, doslova. Soubor jmenuje schopnost, její nástroj MCP a její příkazovou řádku a nic o tom, co dělá, mimo vlastní titul deklarace: schopnost je definována jednou. Schopnost, která něco mění, nesedisable-model-invocation: true, takže ji vyvolá jen člověk, a soubor říká, že odmítnutý nebo neznámý výsledek se nemá zkoušet jinou cestou. Registr odmítne alias, který je chybně utvořen, rezervován produktem agenta nebo obsazen, a argument, který není řetězcovým polem vstupu nebo ponechává jiné pole povinné. Dnes:/intent, což jeintents.propose. Každá jiná schopnost je dosažitelná svým nástrojem MCP a je vypsána v dovednosti své domény. - Domény. Jedno
SKILL.mdna modul registru schopností, který nabízí veřejnou schopnost s nástrojem MCP (ADR 165), pojmenovanémj-<module>s podtržítky jako pomlčkami. Jeho popis je modul a vlastní názvy jeho schopností, useknuté u slova na 300 znaků; jeho tělo je tabulka těchto schopností s jejich nástrojem MCP, příkazovou řádkou a účinkem. Model ji může načíst sám, protože její načtení nic nemění; schopnost označená changes se spustí jen tehdy, když o tu změnu člověk požádal. Doména, jejíž název má příkaz nebo workflow dovednost, se nezapisuje. Sekce dovedností webu (/skills/) a obrazovka Dovednosti v UI (/ui/skills) vypisují každou dovednost Claude Code ze stejné projekce; pravidlo jeproject.every-domain-is-a-skill. - Úlohy. Každý veřejný recept sledovaného justfile, který nemá
[confirm]a nepotřebuje argument, jakojust <recipe>z kořene projektu, označený svou skupinou, v pořadí, v jakém justfile deklaruje své skupiny. Lokální most grafu příkazů, který justfile také importuje, se nečte, takže soubor je na každém stroji stejný. Kde justfile existuje ajustjej nedokáže popsat,generateodmítne s exit 12 místo zápisu seznamu úloh závislého na stroji; každá CI úloha, která buildí crate, instalujejustpřes.github/actions/setup-rust. - Instrukce. Nic nového: oba produkty čtou
AGENTS.md, kterýgenerate providersodvozuje z politiky.
Co není a co dělat místo toho
| state | místo toho | |
|---|---|---|
Zed MCP (context_servers) | vyžaduje akci uživatele | přidejte {"context_servers": {"majordomus": {"command": "<checkout>/bin/majordomus-mcp", "args": []}}} do vlastních nastavení Zed |
| MCP workspace Antigravity | neznámé | webová dokumentace jmenuje .agents/mcp_config.json, průvodce 2.22.0 ne; přidejte tentýž server do ~/.gemini/config/mcp_config.json |
.zed/settings.json | nepodporováno | žádná politika se zde neliší od výchozích hodnot Zedu; motiv, písma, klávesy a nastavení agenta jsou vaše |
| workflow Antigravity | zastaralé | přestanou fungovat 2026-10-19; nahrazují je dovednosti |
| režimy schvalování a provádění | vyžaduje akci uživatele | nikdy nepromítáno |
Vlastnictví
Promítnutý soubor nese banner generovaného souboru. majordomus generate editors odmítne přepsat soubor na promítnuté cestě, který ho nenese — nebo soubor dosažený přes symbolický odkaz — a každý pojmenuje; odložte ho stranou nebo ho sloučte do jeho kanonického zdroje. Projekci dovednosti nesoucí banner, jejíž dovednost zmizela, odstraní generate a ohlásí --check. Zápisy jdou přes dočasný soubor a přejmenování a soubor, jehož bajty jsou už správné, se nechá být.
editors.status také hlásí, co by editor dělal se soubory, které tento generátor nevlastní: instrukční soubor, který by Zed četl před AGENTS.md, adresář .agents/workflows/, .agents/skills.json (který by načetl kanonické soubory, bez name, které vyžaduje průvodce Antigravity, vedle projekce) a .agents/rules/*.md bez platného trigger, který Antigravity zahodí.
Aktualizace adaptéru
Každý modul adaptéru (editors/zed.rs, editors/antigravity.rs, editors/claude.rs) jmenuje release, proti kterému byla jeho tvrzení ověřena, a zdroje. Když produkt změní formát, změňte jeho modul, zvyšte editors::PROJECTION_VERSION, pokud se změní bajty, a regenerujte.