I0810 — Manifest s hashi obsahu, který zlevní druhou synchronizaci
Implementovat manifest: jeden řádek na zdroj s jeho cestou, hashem obsahu, verzí extraktoru a id uzlů, které vytvořil, zapsaný vedle vygenerovaného grafu, porovnávaný při každé synchronizaci a použitý tak, aby synchronizace bez změny zdrojů neprováděla žádnou extrakci a řekla to.
ZRUŠENO vlna 4 · p1 · profil implementation · běží samostatně
Součást M003 — Relace je trvalá obálka a znalost se kompiluje z toho, co už je kanonické.
Cíl
Implementovat manifest: jeden řádek na zdroj s jeho cestou, hashem obsahu, verzí extraktoru a id uzlů, které vytvořil, zapsaný vedle vygenerovaného grafu, porovnávaný při každé synchronizaci a použitý tak, aby synchronizace bez změny zdrojů neprováděla žádnou extrakci a řekla to.
Proč
Bez manifestu je každý dotaz v pokušení přestavět a každá přestavba je úplná. Manifest umožňuje zjistit zastaralost bez jakékoli mutace, a díky tomu zůstávají příkazy jen pro čtení jen pro čtení.
Aktuální stav
Nic se negeneruje a nic se necachuje. Režim --check generátoru webu je precedens pro příkaz, který hlásí drift mezi kanonickým vstupem a odvozeným výstupem, aniž by regeneroval.
Cílový stav
`knowledge sync` zapíše manifest s grafem. `knowledge sync --check` porovná hashe zdrojů s manifestem a skončí nenulově, když se liší, a nic nezapíše. `knowledge status` hlásí fresh nebo stale a jmenuje zdroje, které se pohnuly. No-op sync je měřitelně levnější než studený a měření je zaznamenáno.
Rozsah
- lib/knowledge.sh
- lib/knowledge.awk
- .gitignore
- test/cases/68_knowledge_manifest.sh
Mimo rozsah
- Hledat
- Jakékoli automatické přestavění spuštěné čtením
Závislosti
Kritéria přijetí
- Druhá synchronizace bez změny zdroje hlásí žádnou práci a nechá generované soubory bajt po bajtu shodné
- Úprava jednoho zdroje mění řádek manifestu tohoto zdroje a uzly z něj odvozené, a žádný jiný řádek
- sync --check nic nezapisuje a končí nenulově, když se zdroj posunul
- Verze extraktoru je součástí manifestu, takže změna extraktoru jej zneplatní
- Změřená cena no-op sync a studeného sync na tomto repozitáři je zaznamenána jako důkaz
Validace
- bash test/run.sh 68_knowledge_manifest
Požadované důkazy
- sync_idempotent
- noop_is_cheaper
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
Pokud není synchronizace bez změn výrazně levnější než studená, manifest selhal a má se odstranit, ne držet jako dekorace. Měření je kritériem přijetí, ne návrh.
Zpráva o dokončení
Zrušeno 2026-10-04 na masteru f075170530: předmět tohoto úkolu nikdy nevznikl. `majordomus knowledge` nemá sync a nezapisuje žádný graf, takže není co manifestem zlevnit ani hlásit jako zastaralé. Jeho podpříkazy (sources, nodes, edges, derive, candidates, promote, reject, check) odvozují, co odpovídají, z indexu správy verzí při každém čtení a každý čtenář v Rustu staví index objektů v procesu (1705 objektů, diagnostika 0). Nic pod .ai/repo/knowledge není vygenerovaný graf: adresář drží candidates/, curated/, README.md a sources.yaml. Čtení není zadarmo (`knowledge nodes --json` trvalo 48,9 s reálně při zátěži 42), ale to je cena jednoho čtenáře, ne chybějícího manifestu synchronizace; pokud na tom záleží, je to nový úkol proti tomuto čtenáři. I0811 nyní závisí na I0809, předchůdci, kterého měl tento úkol.
Č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/I0810.yaml. Načtěte ho zpět pomocí majordomus plan show I0810.