I0833 — uzly a hrany znalostí čtou každý zdroj jednou
Změřit čas fází znalostí a poté odstranit podprocesy po jednotlivých souborech v discovery a extrakci, aby uzly a hrany potřebovaly jeden průchod na zdroj.
HOTOVO 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.
Cíl
Změřit čas fází znalostí a poté odstranit podprocesy po jednotlivých souborech v discovery a extrakci, aby uzly a hrany potřebovaly jeden průchod na zdroj.
Proč
uzly znalostí stojí 5,7 s a na tomto repozitáři zploští 146 souborů.
Aktuální stav
Objevování hashuje a zplošťuje po souborech, každý s podprocesem.
Cílový stav
uzly a hrany pod 1 s na tomto repozitáři s identickým výstupem.
Rozsah
- lib/knowledge.sh
- lib/knowledge.awk
- test/cases/64_knowledge_discovery.sh
- test/cases/73_knowledge_nodes.sh
- test/cases/74_knowledge_edges.sh
Mimo rozsah
- Změna identit uzlů nebo sémantiky hran
Závislosti
Co na tom čeká
Kritéria přijetí
- Výstup uzlů a hran je před i po bajt po bajtu shodný
- Případy 64, 73, 74 a 75 projdou beze změny
Validace
- MJ_TIMING=1 bin/majordomus knowledge nodes
- bash test/run.sh 73_knowledge_nodes
Požadované důkazy
- batch_reads
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| batch_reads | test | MJ_TIMING=1 bin/majordomus knowledge nodes | každý objevený soubor hashuje jeden proces místo jednoho shasum na soubor, druhy YAML a druhy s front matter zplošťuje vždy jeden awk, nadpisy a odkazy dokumentů i řádková úložiště čte vždy jeden awk, třídy zdrojů jsou proměnné a formátovače řádků používají podřetězec místo cut na řádek; v tomto repozitáři knowledge nodes kleslo z 6,3 s na 0,63 s a edges na 0,62 s s uzly, hranami a zdroji bajt po bajtu shodnými, kromě hashů upravených souborů knihovny; případy 64, 73, 74 a 75 procházejí beze změny. Týž commit počítá tabulátor jednou pro každou smyčku IFS v lib a v generátoru webu, které forkovaly subshell na řádek; případy 10, 11, 40, 43, 61 a 66 procházejí beze změny | next |
Riziko
Identita je hash obsahu na soubor; jeden podproces sha256 na soubor zůstává, pokud se hashování nesdruží, což shasum -a 256 s mnoha argumenty umožňuje.
Časová osa
- zahájeno
- 2026-09-05T02:40:00Z
- ověřeno
- 2026-09-05T03:05:00Z
- dokončeno
- 2026-09-05T03:05:00Z
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/I0833.yaml. Zpětně ho přečtete pomocí majordomus plan show I0833.