I1005 — Graf je generovaný artefakt se schématem a bez nebezpečného pole
Serializovat graf jako deterministický generovaný artefakt se schématem, nesoucí pouze bezpečná metadata, vytvořený generováním, které repozitář již provozuje.
HOTOVO vlna 2 · p0 · profil implementation · bezpečné paralelně
Cíl
Serializovat graf jako deterministický generovaný artefakt se schématem, nesoucí pouze bezpečná metadata, vytvořený generováním, které repozitář již provozuje.
Proč
Obě projekce i každý test potřebují jeden soubor ke čtení. Generování ho udržuje poctivým; schéma ho činí konzumovatelným; absence čehokoli soukromého ho činí publikovatelným.
Aktuální stav
Neexistuje agregovaný artefakt. Web čte několik odvozených datasetů, každý ze svého skriptu.
Cílový stav
Jeden generovaný artefakt nese graf, se schématem, deterministickým řazením, provenancí a bez pole, které se nesmí zveřejnit.
Rozsah
- apps/majordomus-cli/src/generate.rs
Mimo rozsah
- Ručně upravená kopie artefaktu
- Jakýkoli token, klíč, hlavička, výpis prostředí nebo strojově absolutní cesta ve výstupu
- Časové razítko uvnitř kanonických dat
Závislosti
- I1002HOTOVO Relace jsou typované, odvozené ze stabilních identit a nikdy nevisí do prázdna
- I1004HOTOVO Dostupnost a viditelnost jsou metadata, ne podmínky v šabloně
Co na tom čeká
- I1006HOTOVO Runtime čte graf přes registr, stejně jako každé jiné čtení
- I1007PŘIPRAVENO Web vykresluje stejný graf, vygenerovaný jednou
- I1009PŘIPRAVENO Každé menu v tomto repozitáři pochází z jednoho odvození
- I1010PŘIPRAVENO Přehled je to, co existuje, spočítané, ne tvrzené
- I1012PŘIPRAVENO Jeden detailní pohled, sestavený z toho, co uzel skutečně má
- I1023DONE Nothing private reaches a published page
Kritéria přijetí
- Artefakt vzniká stávající sadou cílů generování, nikoli samostatným skriptem
- Má schéma a schéma se generuje z typů, nepíše se ručně
- Pořadí je deterministické a opakované generování nad shodnými vstupy je shodné bajt po bajtu
- Neobsahuje žádný přihlašovací údaj, žádnou soukromou hodnotu prostředí a žádnou absolutní cestu stroje, což dokládá test
- Původ se zaznamenává do vlastních metadat artefaktu, kde jeho formát nemůže nést komentář
Validace
- majordomus generate --check
- cargo test --workspace --all-features
Požadované důkazy
- artifact_generated
- schema_present
- safe_metadata
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| artifact_generated | test | majordomus generate && majordomus generate --check | docs/generated/graph.json a docs/generated/graph.schema.json zapisuje existující sada cílů a kontrola hlásí in sync; artefakt má 1 104 403 bajtů při formátování (821 696 kompaktně) nad 901 uzly, 2 100 hranami a 25 druhy uzlů a regenerace je bajtově shodná, což tvrdí tests/generate_check.rs | 674b899 |
| schema_present | test | cargo test --lib generate::tests::the_schema_of_the_graph_comes_from_the_types_that_define_it | schéma je generováno z typů Rustu přes CanonicalSchema::of::<Graph>(), jmenuje pole struct id, nodes, edges, node_kinds, edge_kinds a metadata, nese svůj původ jako pole, protože JSON nemá komentáře, a má 7 407 bajtů | 674b899 |
| safe_metadata | test | cargo test --lib generate::tests::a_published_artifact_is_refused_when_it_carries_a_machine_path_or_a_credential | generování odmítne zápis, když vykreslený dokument nese strojově absolutní cestu, blok PEM, hlavičku autorizace nebo tvar tokenu; o každém markeru je prokázáno, že se zachytí, a graf zdrojů relativních k repozitáři projde | 674b899 |
Riziko
Jeden artefakt pro všechno roste, dokud se nestahuje při každém načtení stránky. Jeho velikost se měří a rozpočtuje spolu s ostatními assety.
Časová osa
- zahájeno
- 2026-09-06T17:35:38Z
- ověřeno
- —
- dokončeno
- 2026-09-06T18:07:50Z
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/I1005.yaml. Přečtěte ho zpět pomocí majordomus plan show I1005.