I1002 — Vztahy jsou typované, odvozené ze stabilních identit a nikdy nevisí do prázdna
Dát grafu typované vztahy — implements, documents, exposes, generated from, enforced by, tested by, benchmarked by, depends on, projects to, served at — odvozované tam, kde existuje stabilní konvence, deklarované tam, kde ne, a vyřešené, nebo odmítnuté.
HOTOVO vlna 1 · p0 · profil deep-work · bezpečné paralelně
Cíl
Dát grafu typované vztahy — implements, documents, exposes, generated from, enforced by, tested by, benchmarked by, depends on, projects to, served at — odvozované tam, kde existuje stabilní konvence, deklarované tam, kde ne, a vyřešené, nebo odmítnuté.
Proč
Seznam schopností je inventář; jejich graf je architektura, po které se člověk dokáže pohybovat. Hodnota je celá v hranách a hrana, která nikam neukazuje, je horší než chybějící, protože se vykreslí jako prázdná sekce místo chyby.
Aktuální stav
Relace existují implicitně v odkazech ve frontmatter, tazích schopností, metadatech pravidel a seznamech related v ADR. Nic je nepřevádí na společný typ hrany a nic neselže, když se některá nevyřeší.
Cílový stav
Každá hrana má typ, oba konce se vyřeší na uzel a nevyřešitelná hrana shodí generování zprávou jmenující deklaraci, chybějící konec a nápravu.
Rozsah
- apps/majordomus-cli/src/graph.rs
Mimo rozsah
- Odvozování podle podřetězce nebo shody titulku, kde existuje stabilní identita
- Vyžadovat po přispěvateli, aby znovu uvedl relaci, kterou metadata už implikují
Závislosti
Co na tom čeká
- I1005HOTOVO Graf je generovaný artefakt se schématem a bez nebezpečného pole
- I1011PŘIPRAVENO Matice pokrytí vykazuje důkazy a nikdy nezobrazí zelenou buňku bez nich
- I1014BLOKOVÁNO Pohled na vztahy čte graf a sám nedrží žádná data
- I1020BLOKOVÁNO Na zdraví grafu odpovídá doctor, který už odpovídá na všechno ostatní
Kritéria přijetí
- Každý typ vztahu je výslovný a směr je součástí jeho významu
- Odvozování používá jen stabilní identity a nejednoznačný případ vyžaduje výslovnou deklaraci místo odhadu
- Vztah, jehož cíl neexistuje, způsobí selhání generování, které jmenuje, kde byl deklarován a co chybí
- Testy pokrývají špatně utvořená metadata, duplicitní identity a visící relace
Validace
- cargo test --workspace --all-features
- majordomus generate --check
Požadované důkazy
- relations_resolve
- dangling_refused
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| relations_resolve | test | cargo test --lib graph (apps/majordomus-cli) a unresolved_relations nad tímto repozitářem | vrstva se řeší čistě: 778 objektů, 0 nevyřešených referencí; hrany pokrývají depends_on, supersedes, put_in_force, related_to, runs, exercises, evidences, tracks a documents, každou přes stabilní identitu, deklarované id nebo cestu relativní k repozitáři | c5ecfa1 |
| dangling_refused | test | cargo test --lib graph::tests::a_reference_to_a_kind_we_hold_that_names_nothing_is_a_finding a a_finding_is_never_drawn_as_an_edge | odkaz jmenující druh, který tento repozitář drží a který se nikam nerozřeší, vyvolá nález se souborem, klíčem, odkazem a opravou a nekreslí se pro něj žádný uzel ani hrana; soubor nebo test mimo vrstvu se rozřeší na externí uzel a není nález | c5ecfa1 |
Riziko
Striktní řešení může způsobit, že nesouvisející úprava dokumentace shodí sestavení. Zpráva musí být dost dobrá, aby selhání byla oprava na pět vteřin, ne vyšetřování.
Časová osa
- zahájeno
- 2026-09-06T15:54:48Z
- ověřeno
- —
- dokončeno
- 2026-09-06T16:19:14Z
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/I1002.yaml. Načtěte jej zpět pomocí majordomus plan show I1002.