I0809 — Zaznamenávat jen hrany, které soubor uvádí, každou s tím, kde byla pozorována
Implementovat fáze resolve a graph: hrany odvozené z explicitních vztahů, které kanonické soubory již deklarují — tvrzení ke zdroji, implementaci a testu; úkol k milníku a jeho závislostem; důkaz k úkolu; doktrína k validátoru, tvrzení a testu; záznam k úloze — každá nese soubor a pole, ve kterém byla pozorována, a žádná nenese vztah odvozený z prózy.
HOTOVO vlna 3 · p1 · profil deep-work · běží samostatně
Součást M003 — Relace je trvalá obálka a znalost se kompiluje z toho, co už je kanonické.
Cíl
Implementovat fáze resolve a graph: hrany odvozené z explicitních vztahů, které kanonické soubory již deklarují — tvrzení ke zdroji, implementaci a testu; úkol k milníku a jeho závislostem; důkaz k úkolu; doktrína k validátoru, tvrzení a testu; záznam k úloze — každá nese soubor a pole, ve kterém byla pozorována, a žádná nenese vztah odvozený z prózy.
Proč
Repozitář už obsahuje hustý, ručně udržovaný, strojově čitelný graf, který žádný příkaz neumí procházet. Jeho extrakce nestojí nic na přesnosti, protože každá hrana je uvedena. Heuristická extrakce z prózy by přidala hrany, které nikdo nenapsal, a hranu, kterou nikdo nenapsal, nemůže zkontrolovat ten, kdo by si všiml, že je špatně.
Aktuální stav
docs/CLAIMS.yaml uvádí tři vztahy na tvrzení; soubory úkolů uvádějí milník a seznam závislostí; share/doctrines.yaml uvádí validátor, seznam tvrzení, test a příkazy, které ji vynucují; každý záznam kontinuity uvádí svou úlohu. Nic z toho nečte jako graf.
Cílový stav
Hrana je from, to, typ a původ a fáze grafu odmítne hranu, které cokoli z těchto čtyř chybí. Typy hran jsou uzavřená deklarovaná množina. Visící hrana — taková, jejíž cíl není uzel — se zachová a ohlásí místo zahození, protože porušený odkaz je nález.
Rozsah
- lib/knowledge.sh
- lib/knowledge.awk
- test/cases/74_knowledge_edges.sh
- test/cases/75_knowledge_mutation.sh
Mimo rozsah
- Odvozování vztahu z prózy
- Jakákoli podobnost, shlukování nebo generování taxonomie
- Hrany relací, které přijdou s integrací relací
Závislosti
Co na tom čeká
- I0810ZRUŠENO Manifest s hashi obsahu, který zlevní druhou synchronizaci
- I0811HOTOVO Vyhledávání znalostí pouze pro čtení s pořadím, které lze vysvětlit
Kritéria přijetí
- Každá hrana nese zdrojový soubor, v němž byla pozorována, a hrana bez provenience je selhání validace, ne tiché zahození
- Typy hran jsou deklarovaná uzavřená množina a nedeklarovaný typ je chyba
- Změna závislosti v souboru úkolu změní graf při další synchronizaci, aniž by se ručně upravoval jakýkoli generovaný soubor
- Visící hrana se hlásí a jmenuje oba konce
- Z odkazu Markdown, jehož cíl je mimo repozitář, se nevytváří žádná hrana
Validace
- bash test/run.sh 74_knowledge_edges
- bash test/run.sh 75_knowledge_mutation
Požadované důkazy
- provenance_required
- mutation_propagates
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| provenance_required | test | test/run.sh 74_knowledge_edges | one case passed. Každá hrana nese soubor a pole nebo řádek, ve kterém byla pozorována; případ ověřuje řetězec původu každého ze šesti deklarovaných druhů vztahů a pak kontroluje, že žádný vyslaný řádek nemá méně než čtyři sloupce. Dvě pojistky jsou mutačně testovány proti kopii extraktoru: vymazání argumentu původu způsobí, že je hrana odmítnuta s FAIL, místo aby se vyslala s prázdným zdrojem, a přejmenování typu hrany na takový, který uzavřená množina nedeklaruje, je chyba, ne nové slovo slovníku | 4a7c934 |
| mutation_propagates | test | test/run.sh 75_knowledge_mutation | jeden případ prošel. Každá mutace upraví přesně jeden kanonický soubor a případ ověřuje, co se pohnulo i co ne: přesměrování závislosti pohne touto hranou a každou jinou hranu nechá bajt po bajtu shodnou; přesun úkolu na jiný milník pohne jeho hranou part_of; přepojení implementace tvrzení přepojí tuto hranu; přidání tvrzení přidá jeho uzel a přesně jeho tři deklarované hrany a nic jiného nezmění; smazání úkolu odstraní jeho uzel a z toho, co na něj mířilo, udělá hlášenou visící hranu. K ničemu z toho se neupravuje nic generovaného a pracovní strom je poté bajt po bajtu shodný | 4a7c934 |
Riziko
Odkazy v markdownu jsou jediný zdroj hran, který není kurátorovaný. Brát rozbitý externí odkaz jako stejně závažný jako rozbitý odkaz z tvrzení na test by z úmyslného odchozího odkazu udělalo trvale červenou kontrolu; vlastnictví a závažnost je nutné rozlišit.
Časová osa
- zahájeno
- 2026-09-04T18:14:13Z
- ověřeno
- —
- dokončeno
- 2026-09-04T18:31:05Z
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/I0809.yaml. Přečtěte si ho zpět pomocí majordomus plan show I0809.