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.
majordomus archive
Pořiďte snímek sledovaného stromu, který lze číst nebo ověřit jinde.
Pořiďte snímek sledovaného stromu, který lze číst nebo ověřit jinde.
generated-output-mutating
systém
--json
Sadou souborů je git index, takže nic nesledovaného — žádný výstup buildu, žádná cache, žádné .ai/local/ — se nemůže přenést. Co profil vynechá navíc, je deklarováno v share/archive.yaml; profil, který vynechává odvozené cesty, čte .gitattributes, místo aby držel druhý seznam generovaných cest. Režim každé položky se bere z indexu a zapisuje do manifestu archivu a restore skript uvnitř archivu režimy vrátí a sestaví lokální git index, protože kopie, jejíž skripty nejsou spustitelné, selže kontrolami z vlastních důvodů.
Jen kódy, které tento příkaz může vrátit. Úplný kontrakt je na indexu příkazů.
0ok
2použití
10kontrakt nesplněn
12chybějící artefakt
13interní chyba
15odmítnuto
Snímek, který lze číst nebo kontrolovat jinde
Repozitář opouští stroj častěji, než se zdá: k modelu, který přečte všechno, k recenzentovi, který nemůže klonovat, k auditorovi, který musí spustit kontroly na kopii. Cestuje git index a pouze git index, takže nic nesledovaného nemůže uniknout; co se zahazuje navíc, je profil v share/archive.yaml, a profil, který zahazuje generované projekce, čte .gitattributes, místo aby vedl jejich druhý seznam.
Jaké snímky existují a který je výchozí
vrstva nainstalována
ano
Pro tento repozitář platí
# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base
Spustit
$ majordomus archive --list
Výstup obsahuje
kontext
\(default\)
audit
governance
ukončení0
Profily jsou deklarace, ne přepínače: každý jmenuje jiného čtenáře a souhrn říká, co je tomuto čtenáři dlužno. Repozitář může přidat vlastní v .ai/repo/archive.yaml, aniž by měnil nástroj.
Co by se přeneslo a proč zbytek ne
vrstva nainstalována
ano
Pro tento repozitář platí
# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base
Spustit
$ majordomus archive --dry-run
Výstup obsahuje
kontext profilu
sledovaný soubor
nic nezapsáno
ukončení0
Počet sledovaných souborů je uveden vedle počtu archivovaných, takže výběr, který tiše nic nezachytil, nemůže vypadat jako výběr, který zachytil vše. Každý vynechaný soubor je připsán pravidlu, které jej vynechalo.
Zapsáno a poté přečteno zpět
vrstva nainstalována
ano
Pro tento repozitář platí
# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base
Spustit
$ majordomus archive --format tar.gz
Výstup obsahuje
OK archive
číst zpět
zapsáno tmp/archives/
ukončení0
Archiv se před návratem příkazu otevře znovu. Počet položek musí odpovídat tomu, co bylo připraveno, a spustitelné soubory, které se dostaly dovnitř, musí vyjít ven — selhání, na které tento příkaz odpovídá, je kontejner, který tiše zahodil režimy souborů.
Žádost o snímek, který nikdo nedeklaroval
vrstva nainstalována
ano
Pro tento repozitář platí
# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base
Spustit
$ majordomus archive nosuch
Výstup obsahuje
žádný profil
archive --list
ukončení12
Exit 12 je MISSING_ARTIFACT a zpráva jmenuje příkaz, který vypíše, co existuje, místo aby to vypisovala tady.
Reference
Pořiďte snímek sledovaného stromu, který lze číst nebo ověřit jinde.
Repozitář opouští stroj častěji, než se zdá: k jazykovému modelu, který si ho přečte celý najednou, k recenzentovi, který nemůže klonovat, k auditorovi, který musí spustit kontroly na kopii. Dělalo se to ručně, pokaždé jinak, a ruční verze chybovala ve dvou věcech, které vyplavou až na druhém konci.
Putuje git index a jen git index. Nic nesledovaného se nikdy nearchivuje — ani výstup sestavení, ani cache, ani .ai/local/, což je vlastní stav tohoto checkoutu a nikdy se nesdílí. To je jedno pravidlo místo seznamu výjimek a díky tomu je bezpečné příkaz namířit na repozitář, který nikdo nečetl.
Co se vynechává nad to, je deklarováno, ne kódováno.share/archive.yaml drží profily; repozitář může přidat nebo nahradit jeden ve vlastním archive.yaml pod .ai/repo/. Profil, který odhazuje odvozené cesty, čte .gitattributes — každá projekce v tomto repozitáři je tam už označena merge=derived, z jiného důvodu — místo aby držel druhý seznam generovaných cest, což je duplikace, kterou .ai/repo/rules/project/commands-are-projections.v1.md odmítá.
Režimy se nesou výslovně.zip -X odstraní extra pole, která drží unixový režim, a rozbalený strom pak neobsahuje žádný spustitelný soubor: každý skript selže při spuštění, a na druhém konci to nelze odlišit od toho, že je repozitář rozbitý. Proto se režim každé položky čte z indexu — autority, ne z pracovního stromu —, zapisuje do _ARCHIVE/MANIFEST.txt a _ARCHIVE/restore.sh uvnitř archivu režimy vrací a vytváří místní git index, protože zdejší kontroly vyjmenovávají repozitář pomocí git ls-files a bez indexu nezkoumají nic a hlásí, že nic není špatně.
Každý archiv se čte zpět dřív, než se příkaz vrátí: počet položek musí odpovídat tomu, co bylo připraveno, a pokud spustitelné soubory dovnitř vstoupily a ven nevyšly, je to selhání, ne překvapení pro příjemce.
Čte:share/archive.yaml, archive.yaml pod .ai/repo/, když ho repozitář má, .gitattributes a index gitu. Zapisuje:tmp/archives/ — nebo kam řekne --out.
Dodávané profily:
Profil
Pro
context
Model, který bude číst repozitář. Každý sledovaný zdroj, bez projekcí z něj generovaných.
audit
Spuštění vlastních kontrol repozitáře na kopii. Každý sledovaný soubor, nic vynecháno, režimy a git index obnoveny.
governance
Pouze provozní kontrakt: .ai/, docs/, AGENTS.md, CLAUDE.md a žádný kód.
$ majordomus archive --dry-runarchive: profile context — 2299 of 2757 tracked file(s), 12919 KB of content left out: 10 (binary) left out: 443 (derived) left out: 5 (excluded) nothing written (--dry-run)$ majordomus archiveOK archive prismatic-majordomus-context-20260911.zip — 2303 entr(ies) read back, 76 of them executablearchive: profile context — 2299 of 2757 tracked file(s), 12919 KB of content wrote tmp/archives/prismatic-majordomus-context-20260911.zip (5044 KB)
Behaviour:
--list vypíše profily s tím, k čemu každý slouží, a označí výchozí.
--dry-run hlásí výběr a důvod, proč byl každý soubor vynechán, a nezapisuje nic.
Existující výstupní soubor se odmítne s 15, pokud není zadáno --force, aby nešel pod rukama nahradit archiv, který někdo právě nahrává.
Cesta, kterou index jmenuje a pracovní strom už nemá, se počítá a hlásí, nechybí tiše.
--json vypíše jeden objekt s počty, důvody a cestou.
Skončí s 2 při chybě použití, s 12, když takový profil neexistuje nebo zip není na PATH, s 10, když profil nevybere žádný ze sledovaných souborů, s 15, když výstup existuje, a s 13, když se kontejner nepodařilo zapsat nebo se nenačte zpět jako to, co do něj vstoupilo.
Důkazy
Každý případ níže běží v CI na Linuxu i macOS. Web se odmítne sestavit, pokud veřejný příkaz nemá behaviorální případ, negativní případ nebo ukázku.