I1103 — Zda je soubor psaný ručně, nebo odvozený, je pole, ne konvence pojmenování
Dát každému strojově zpracovatelnému artefaktu explicitní původ a životní cyklus — authored, derived, generated, cache nebo runtime — s jeho generátorem, vstupy a informací, zda je zahoditelný, aby žádný konzument nemusel z cesty odvozovat, co soubor je.
BLOKOVÁNO vlna 2 · p0 · profil implementation · bezpečné paralelně
Blokováno. Tento úkol nemůže začít, dokud není I1102 hotov. Stav je z toho odvozen, ne deklarován.
Cíl
Dát každému strojově zpracovatelnému artefaktu explicitní původ a životní cyklus — authored, derived, generated, cache nebo runtime — s jeho generátorem, vstupy a informací, zda je zahoditelný, aby žádný konzument nemusel z cesty odvozovat, co soubor je.
Proč
Vygenerovaný soubor, který nelze odlišit od napsaného, se časem stane vstupem a pak ho nelze znovu vygenerovat, aniž by se něco ztratilo. Rozhodovat o tom podle názvu adresáře funguje do první výjimky.
Aktuální stav
Generované artefakty nesou banner nebo člena rozšíření, který říká, že jsou generované, a čte jej validátor manifestu. Nic neuvádí vstupy generátoru ani to, zda lze artefakt smazat a znovu sestavit.
Cílový stav
Původ a životní cyklus jsou typovaná pole, která nese každý artefakt, a spotřebitel rozhoduje, co s souborem smí, jejich přečtením.
Rozsah
- apps/majordomus-cli/src/generate.rs
- share/schemas
Mimo rozsah
- Nahrazení stávajícího mechanismu banneru tam, kde už otázku zodpovídá
- Pole provenance, které opakuje to, co už určuje id schématu
Závislosti
Kritéria přijetí
- Každý generovaný artefakt deklaruje svůj generátor, svou verzi a kanonické vstupy, ze kterých se odvozuje
- Zahoditelnost je explicitní, takže konzument pozná, co lze smazat a znovu sestavit a co ne
- Vygenerovaný artefakt se nikdy nečte zpět jako kanonický vstup a kontrola to dokazuje
- Ručně psané artefakty se odliší od odvozených bez nahlížení na cestu
Validace
- majordomus generate --check
- cargo test --workspace --all-features
Požadované důkazy
- provenance_declared
- disposability_explicit
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
Zaznamenávání vstupů zve k jejich ručnímu zaznamenávání. Seznam vstupů se odvozuje z generátoru, nebo se nezaznamenává.
Č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/I1103.yaml. Přečtěte jej zpět přes majordomus plan show I1103.