I2941 — Čerstvý init nechá doctor čistý: README, které nejmenuje AGENTS.md, získá jeden odstavec, který ho jmenuje
Zajistit, aby cesta čisté instalace adoptéra (init, update, dva řádky hooku) byla pro doctor čistá: sdílený init připojí jednou jeden odstavec jmenující AGENTS.md k existujícímu README.md, které ho nezmiňuje, zbytek README nechá bajt po bajtu a vypíše ho mezi tím, co vytvořil; žádné README nevytváří a osobní vrstva README projektu nechává být.
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Zajistit, aby cesta čisté instalace adoptéra (init, update, dva řádky hooku) byla pro doctor čistá: sdílený init připojí jednou jeden odstavec jmenující AGENTS.md k existujícímu README.md, které ho nezmiňuje, zbytek README nechá bajt po bajtu a vypíše ho mezi tím, co vytvořil; žádné README nevytváří a osobní vrstva README projektu nechává být.
Proč
Běh alpha-contract na vydaném v0.29.0 (2026-10-17) zjistil, že čerstvé `majordomus init` + `update` + hooky v odkládacím repozitáři s README jednou selže v `doctor`: „README.md does not name AGENTS.md; a reader cannot find the agent bootstrap“ (majordomus.bootstrap-integrity, lib/doctor.sh mj_validate_bootstrap) a init to nikdy neřekne. Každý první adopter narazil na jedno nevysvětlené FAIL. Pravidlo vyžaduje, aby README jmenovalo AGENTS.md; nic nebrání initu přidat to ve sdílené vrstvě (init už stejným způsobem připojuje k .gitignore a regionové projekce existují, aby ručně psaný soubor byl adoptován, ne nahrazen), zatímco pravidlo osobní vrstvy drží README projektu mimo dosah, jak už doctor tam přeskakuje. Init tedy odstavec zapisuje, místo aby tiskl krok.
Aktuální stav
init nechává README.md nedotčené; doctor na něm pak selže v bootstrapu.
Cílový stav
init, update a řádky hooků nechají doctor s 0 FAIL v repozitáři s README, bez něj i s takovým, které už jmenuje AGENTS.md.
Rozsah
- lib/init.sh
- share/install/INSTALL.md.in
- docs/INSTALL.md
- test/cases/3340_a_fresh_init_leaves_doctor_clean.sh
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Pomocný repozitář s README, které nic nejmenuje, dostane init, update a řádky hooku a doctor skončí s 0 bez FAIL
- Opakovaný běh nic nepřidá; README jmenující AGENTS.md se nedotkne; žádné README se nevytvoří; personal init README ponechá
Validace
- bash test/run.sh 3340_a_fresh_init_leaves_doctor_clean 01_init 02_doctor_basic 03_update 19_end_to_end 2979_a_personal_layer_changes_nothing_shared
Požadované důkazy
- fresh_adoption_case
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| fresh_adoption_case | test | MJ_TEST_JOBS=3 bash test/run.sh 3340_a_fresh_init_leaves_doctor_clean 01_init 02_doctor_basic 03_update 19_end_to_end 2979_a_personal_layer_changes_nothing_shared | testy: 6 prošlo, 0 selhalo, 0 přeskočeno na 4f3b3490d6c (3340 prochází i s exportovaným MJ_ROOT); mutace: bez volání mj_init_readme 3340 selže na doctor exit 10, zjištění alpha-contract | 4f3b349 |
Časová osa
- zahájeno
- 2026-10-17T20:38:14Z
- ověřeno
- 2026-10-17T20:38:24Z
- dokončeno
- 2026-10-17T20:38:39Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I2941.yaml. Zpětně ho přečtete pomocí majordomus plan show I2941.