Přeskočit na obsah

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.

Co po sobě převzetí zanechá, se měří, nepamatuje

Co po sobě převzetí zanechá, se měří, nepamatuje

majordomus://adr/adr-0169navrženo adopcetwo-foldervlastnictvístopa

odkazuje na

  • put_in_force apps/majordomus-cli/src/editors/mod.rs (soubor)
  • put_in_force apps/majordomus-cli/src/generate.rs (soubor)
  • put_in_force adr-0021
  • put_in_force docs/ADOPTION.md (dokument)
  • put_in_force docs/TWO_FOLDER_CONSOLIDATION.md (dokument)
  • put_in_force lib/capture.sh (implementace)
  • put_in_force lib/common.sh (implementace)
  • put_in_force lib/init.sh (implementace)
  • put_in_force lib/update.sh (implementace)
  • put_in_force I1101
  • put_in_force two-folder-integration
  • put_in_force test/cases/3113_the_adoption_footprint_is_inventoried.sh (test)

odkazuje na něj

169. Co po sobě adopce zanechá, se měří, nepamatuje

Kontext

Milník two-folder-integration slibuje, že repozitář přijímající Majordomus získá .ai/, .majordomus/ a několik malých zaznamenaných mostů a může je vrátit. Každá fáze po první rozhoduje o cestách: smlouva o jmenném prostoru, kniha vlastnictví, rekonciliátor, odinstalace a migrace vlastní stopy tohoto repozitáře. Tato rozhodnutí potřebují stopu, kterou někdo skutečně změřil.

První čtení (docs/TWO_FOLDER_CONSOLIDATION.md na 948dbd93, 2026-09-06) bylo v den napsání přesné a o pět týdnů později už nebylo. Od té doby capture install začalo zapisovat dva mody Claude Code pod .claude/skills/. generate začalo zapisovat dovednosti editoru, .zed/tasks.json a v cizím repozitáři vlastní stránku instalátoru Majordomus. Vytváření worktree se začalo zapínat na extensions.worktreeConfig. completion install začalo zapisovat blok do startovacího souboru shellu. Žádný z těchto zápisů nebyl rozhodnut jako součást stopy; každý byl součtem toho, co potřeboval jeden subsystém.

Rozhodnutí

  1. Stopa je inventář se zapisovatelem na každém řádku. Sekci po sekci docs/TWO_FOLDER_CONSOLIDATION.md vypisuje každou cestu zapsanou nebo změněnou mimo .ai/ a .majordomus/: výchozí adopci, životní cyklus po ní, příkazy spouštěné z volby, adresář gitu, konfiguraci a refs a stroj. Každý řádek uvádí soubor a řádek, který cestu zapisuje, její režim zápisu, co ji zaznamenává a její třídu. Třídy jsou canonical, derived, generated, cache, runtime a accidental, každá definovaná důvodem, proč cesta existuje.

  2. Výchozí adopci drží test. Případ 3113 adoptuje nový repozitář s init, update a capture install. Selže, když se množina cest mimo dva jmenné prostory liší od seznamu inventáře nebo když inventář některou z nich nejmenuje. Selže také, když je osobní adopce viditelná pro git status nebo když blok exclude adopce vynechá cestu, kterou adopce zapsala. Zapisovatel nemůže rozšířit výchozí stopu, aniž by se inventář změnil ve stejném commitu.

  3. Každý řádek má svůj osud. Cesta je most, když ji tam čte konzument mimo Majordomus. Příklady: AGENTS.md, kořenové soubory providerů, .claude/settings.json, mody, které Claude Code načítá jen z .claude/skills/, vlastní konfigurace gitu a osobní blok exclude. Cesta se přesune do jmenného prostoru, když ji tam, kde je, nic mimo nečte. Příklady: hraniční řádky .gitignore, které se stanou .ai/.gitignore; shimy .claude/hooks/; docs/generated/ u adoptéra; výstupy tmp/ a target/; a refs/offload/*, které jde do refs/majordomus/. Cesta se u adoptéra přestane zapisovat, když je accidental, jako vlastní docs/INSTALL.md, site/static/install.sh a registr webu Majordomu. refs/majordomus/ se uznává jako třetí jmenný prostor, v prostoru refů gitu.

  4. Pozdější fáze rozšiřují to, co existuje. Inventář pro každou pozdější fázi jmenuje mechanismus, který část práce už dělá:

    • Účetní kniha vlastnictví (I1109) vyrůstá z osobního bloku exclude, který už zaznamenává každou cestu, kterou osobní vrstva zapsala.
    • Odinstalace (I1111) odmítne upravený most porovnáním, které razítko poskytovatele už dělá. Jeho vzor pro spravovaný blok je completion install --remove.
    • Reconciler (I1108, I1110) má tvar, jaký už plán editorů má: požadovaný stav, skutečný stav, konflikt a osiřelý.
    • Udržení projekcí zdrojového stromu mimo adoptujícího (I1112) znovu používá predikáty share_is_here a crate_is_here.

    Fáze, která staví druhý mechanismus vedle jednoho z těchto, musí říct, proč nešlo rozšířit první.

  5. Toto rozhodnutí nepřesouvá žádnou cestu. Zaznamenává stopu a její osudy. Vady, které inventář našel, se každá přiřazují fázi, která je mění. Mezi nimi: renderer providera v Rustu přepíše ruční úpravu; update zapisuje cíl bez ochrany cesty; zastaralý .zed/tasks.json se nikdy neodstraní; a commit při SessionEnd obchází hooky repozitáře.

Zamítnuté alternativy

  • Ponechat první čtení a opravit ho, až si toho někdo všimne. Takhle to sklouzlo. Stopa je tvrzení o všech zapisovatelích najednou a se všemi zapisovateli udrží krok jen měření.
  • Dát inventář do docs/INTEGRATION.md, jak původně říkal záznam úkolu. Tento dokument se po napsání úkolu stal příručkou integrace pull requestů. Tabulka stopy uvnitř něj by nesloužila ani jednomu tématu. Rozsah úkolu je místo toho opraven na forenzní dokument samotného programu.
  • Testovat každý řádek, včetně volitelných příkazů. Volitelné příkazy potřebují forge, mesh, deklarovaný offload host nebo web v Zole, než cokoli zapíší. Test, který to všechno předstírá, dokazuje ty padělky, ne zapisovače. Výchozí adopce je ta, kterou provádí každý adoptující, takže tuto část test drží. Zbytek drží toto čtení, dokud ledger (I1109) nezaznamená každou mutaci, jak nastává.
  • Opravit vady v téže změně. Rizikem samotného úkolu je, že „a forensic phase can become a rewrite the moment it finds something ugly“. Vady jsou vypsány a každá je přiřazena fázi.

Důsledky

  • Fáze milníku vycházejí ze stopy, kterou změřil test 2026-10-16, ne z paměti. Změna stopy výchozí adopce nyní shodí případ 3113, dokud se spolu s ní neaktualizuje inventář a jeho klasifikace.
  • Inventář ukazuje, že kořenové soubory poskytovatelů zapisují dvě implementace a že ruční úpravu odmítá jen ta v shellu. Je to nyní výslovné omezení pro I1114, ne něco, co se musí znovu objevovat.
  • Největší stopa, která není soubor, je nyní pojmenována: s výchozími hodnotami kostry každý SessionEnd commituje a pokouší se pushnout. Kniha musí zaznamenávat mutace historie, nejen soubory a konfiguraci.
  • Sekce pokrývající volitelné příkazy nenesou do I1109 žádnou automatickou pojistku. Jsou datovány k d1162668036 a mají se číst jako měření onoho dne.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0169-what-an-adoption-leaves-behind-is-measured-not-remembered.md
identity
adr-0169
dostupné také jako
Zdroj MCP majordomus://adr/adr-0169 · majordomus entity show adr/adr-0169 · GET /api/v1/entity?uri=majordomus://adr/adr-0169
v Cockpitu
/cockpit/objects/adr/adr-0169

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

Prohledává názvy a popisy všech stránek, které tento web publikuje.