I0821 — Zploštělé YAML se cachuje pod .ai/local/cache podle hashe obsahu
Cachovat výstup mj_yaml_flatten pod .ai/local/cache/flat/<sha256>, klíčovaný hashem obsahu souboru a vlastní verzí flatteneru, aby druhý příkaz nad nezměněnými soubory neparsoval nic.
PŘIPRAVENO vlna 1 · p0 · profil implementation · běží samostatně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I0821 bude přijato.
Cíl
Cachovat výstup mj_yaml_flatten pod .ai/local/cache/flat/<sha256>, klíčovaný hashem obsahu souboru a vlastní verzí flatteneru, aby druhý příkaz nad nezměněnými soubory neparsoval nic.
Proč
doctor zplošťuje 181 souborů a uzly znalostí 146; napříč hookem, watch a kontextem se tytéž soubory parsují znovu a znovu.
Aktuální stav
.ai/README.md již vyhrazuje local/cache/ pro přestavitelné cache; nic je nepoužívá.
Cílový stav
Minutí parsuje a zapisuje atomicky; zásah kopíruje; změněný soubor nemůže zasáhnout, protože se změnil jeho hash; cache je omezena stropem položek v politice a ořezává se od nejstarších.
Rozsah
- lib/common.sh
- share/allow/policy.txt
- share/skeleton/policy.yaml
- .ai/repo/policy.yaml
- docs/SCHEMAS.md
- test/cases
Mimo rozsah
- Mezi-procesová cache výsledků příkazů
Závislosti
Co na tom čeká
- I0840BLOKOVÁNO context a jeho podpříkazy do jedné sekundy
- I0841BLOKOVÁNO Ekvivalence cache doložena případy ve tvaru vlastností
Kritéria přijetí
- Bajt po bajtu shodný výstup každého příkazu jen pro čtení se studenou i teplou cache, dokázáno případem 77
- Změněný soubor se parsuje znovu, dokázáno mutací
- Cache nikdy nepřeroste limit
- počet yaml_flatten je beze změny; nový čítač flatten_cache_hit hlásí zásahy
Validace
- bash test/run.sh 77_flatten_cache
- MJ_TIMING=1 bin/majordomus doctor
Požadované důkazy
- flatten_cache
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
Hashování souboru také stojí podproces; cache se vyplatí jen tehdy, když je zploštění podstatně dražší než hash, což musí čítače ukázat, než to přistane.
Č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/I0821.yaml. Přečtěte jej zpět pomocí majordomus plan show I0821.