I1108 — Požadovaná integrace je hodnota a plán je diff
Vypočítat, jak má integrace Majordomus v repozitáři vypadat, jako typovanou hodnotu, porovnat ji s tím, co repozitář skutečně obsahuje, a z apply udělat nejmenší mutaci, která mezeru uzavře.
BLOKOVÁNO vlna 3 · p0 · profil deep-work · bezpečné paralelně
Blokováno. Tento úkol nemůže začít, dokud není I1106 hotovo. Stav je z toho odvozen, ne deklarován.
Cíl
Vypočítat, jak má integrace Majordomus v repozitáři vypadat, jako typovanou hodnotu, porovnat ji s tím, co repozitář skutečně obsahuje, a z apply udělat nejmenší mutaci, která mezeru uzavře.
Proč
`init`, který zapisuje to, co byl napsán zapsat, nelze spustit dvakrát, nelze ho náhledově zobrazit a nelze ho vrátit. Požadovaný stav, který je hodnotou, lze porovnat, ukázat před použitím a vrátit zpět.
Aktuální stav
Inicializace zapíše kostru. Nic nepočítá, co chybí, nic nehlásí, co by se změnilo, a opakované spuštění není definovaná operace.
Cílový stav
Jedna funkce vytvoří požadovanou integraci z modelu repozitáře, jedna vytvoří rozdíl a apply spotřebuje rozdíl — takže suchý běh je tentýž výpočet bez posledního kroku.
Rozsah
- apps/majordomus-cli/src/commands/init.rs
- apps/majordomus-cli/src/integration
Mimo rozsah
- Aplikace čehokoli, co dry run neukázal
- Požadovaný stav, který závisí na konfiguračním souboru, a ne na modelu
Závislosti
Co na tom čeká
- I1109BLOKOVÁNO Vše umístěné mimo dva jmenné prostory je zaznamenáno, s tím, čím to bylo
- I1120BLOKOVÁNO Odmítnutí říká, co s tím dělat
Kritéria přijetí
- Požadovaná integrace se odvozuje z modelu repozitáře a repozitář, který už vyhovuje, vytvoří prázdný rozdíl
- Rozdíl je typovaná hodnota, která jmenuje každou cestu, kterou by vytvořila, změnila nebo odstranila, a proč
- Nanečisto provede stejný výpočet jako ostrý běh a nic nemění
- Aplikace provede přesně rozdíl a nic jiného, dokázáno porovnáním stromu před a po proti plánu
- Mutace, kterou plán nejmenoval, je chyba a test dokazuje, že ji apply nemůže vyrobit
Validace
- majordomus init --dry-run
- cargo test --workspace --all-features
Požadované důkazy
- desired_state_typed
- plan_is_diff
- dry_run_mutates_nothing
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
Rekonciliátor, který počítá, jak má repozitář vypadat, se o nějakém jednou splete. Vše, co by udělal mimo oba jmenné prostory, musí být vidět dřív, než se to stane.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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/I1108.yaml. Přečtěte jej zpět pomocí majordomus plan show I1108.