Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I0807 — Objevovat zdroje znalostí z gitu, ne ze souborového systému

Implementovat fázi discovery v lib/knowledge.sh: deklarovaný seznam tříd zdrojů, každá s rozsahem shared nebo operational, rozlišený přes git ls-files pro sledované artefakty repozitáře a přes známé cesty stavu pro provozní záznamy, vytvářející deterministicky seřazený seznam zdrojů s jejich hashi obsahu.

HOTOVO vlna 1 · p1 · profil implementation · bezpečné paralelně

Součást M003 — Relace je trvalá obálka a znalost se kompiluje z toho, co už je kanonické.

Cíl

Implementovat fázi discovery v lib/knowledge.sh: deklarovaný seznam tříd zdrojů, každá s rozsahem shared nebo operational, rozlišený přes git ls-files pro sledované artefakty repozitáře a přes známé cesty stavu pro provozní záznamy, vytvářející deterministicky seřazený seznam zdrojů s jejich hashi obsahu.

Proč

Rekurzivní průchod souborovým systémem indexuje vendorované stromy, výstup buildu, odpad editorů a nesledované soubory, které nikdy neměly být znalostí, a na dvou strojích dává různou odpověď. git ls-files odpovídá pravdou repozitáře, ve stabilním pořadí, a je už hranicí, kterou tento projekt považuje za autoritativní.

Aktuální stav

Nic v lib/ nevypisuje soubory repozitáře. scripts/generate-site-data deklaruje své kanonické vstupy, což je precedent pro deklarovaný seznam zdrojů místo procházení.

Cílový stav

`knowledge sources` vypíše každý objevený zdroj s jeho třídou, rozsahem a hashem, v deterministickém pořadí, a tentýž repozitář vyprodukuje týž seznam dvakrát. Nesledovaný soubor není zdroj. Cesty provozního stavu se přidávají výslovně a jsou označeny jako provozní, nikdy sdílené.

Rozsah

  • lib/knowledge.sh
  • bin/majordomus
  • test/cases/64_knowledge_discovery.sh

Mimo rozsah

  • Extrakce, uzly, hrany
  • Jakýkoli rekurzivní průchod skrytým adresářem
  • Indexování cesty jen proto, že existuje

Závislosti

Co na tom čeká

Kritéria přijetí

  • Třídy zdrojů jsou deklarovány na jednom místě a každá nese svůj rozsah
  • Discovery řídí git pro sledované zdroje a případ dokazuje, že nesledovaný soubor je vyloučen
  • Pořadí výstupu je deterministické a nezávislé na pořadí souborového systému
  • Cesta obsahující mezeru nebo znak mimo ASCII se zpracuje bez rozdělení
  • Deklarovaná třída zdroje, která nic neobjeví, se hlásí, takže zapomenutá cesta je vidět

Validace

  • bash test/run.sh 64_knowledge_discovery
  • shellcheck -x -s bash lib/knowledge.sh

Požadované důkazy

  • discovery_deterministic

Důkazy

pokrývátypcommandvýsledeku commitu
discovery_deterministictesttest/run.sh 64_knowledge_discovery1 passed, and the four cases the new command affected — 15_command_surface, 26_ci_wiring, 28_no_hardcoded_values, 51_derived_artifacts_committed — pass with it. Případ dokazuje, že nesledovaný soubor nikdy není zdrojem, že vendorované a sestavené stromy jsou vyloučeny, protože nejsou sledovány, že dva běhy se shodují a dotčený soubor jejich pořadí nezmění, že úprava jednoho zdroje změní jen jeho vlastní hash, že cesta s mezerami a znaky mimo ASCII dá právě jeden řádek, že žádný soubor neobjeví dvě třídy, že povinná třída, která nic neobjeví, je WARN, a že každé čtení nechá pracovní strom byte po bytu totožný34cd249

Riziko

Zde žije historická třída chyb s mezerami. Každá cesta přečtená z gitu se musí číst bezpečně vůči NUL nebo s explicitním oddělovačem polí, nikdy přes nekvótované dělení slov.

Časová osa

zahájeno
2026-09-04T16:31:17Z
ověřeno
—
dokončeno
2026-09-04T17:01:31Z

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/I0807.yaml. Přečtěte jej zpět pomocí majordomus plan show I0807.

Prohledává názvy a popisy všech stránek, které tento web publikuje.