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.

I0808 — Extrahovat uzly s identitami, které přežijí přestavbu

Implementovat fáze extract a normalise v lib/knowledge.awk: jeden uzel na kanonický objekt, s identitou odvozenou z jeho kanonického id nebo cesty v repozitáři, druhem, který se tvrdí jen tehdy, když ho ustaví strukturální fakt, a titulkem převzatým ze záznamu nebo z prvního nadpisu dokumentu.

HOTOVO vlna 2 · 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 extract a normalise v lib/knowledge.awk: jeden uzel na kanonický objekt, s identitou odvozenou z jeho kanonického id nebo cesty v repozitáři, druhem, který se tvrdí jen tehdy, když ho ustaví strukturální fakt, a titulkem převzatým ze záznamu nebo z prvního nadpisu dokumentu.

Proč

Identita je to, co dělá z indexu ukazatel, nikoli kopii. Id odvozené z pořadí výčtu nebo z názvu se změní, když se změní něco nesouvisejícího, a každý odkaz na ně se tiše stane chybným. Klasifikace hádající z prózy je totéž selhání v jiné dimenzi: sebejistě chybný druh je horší než poctivě neznámý.

Aktuální stav

Kanonické objekty už mají identity — tvrzení, milníky, úkoly, profily, prompty a doktríny jsou všechny klíčované — a lib/project.awk je precedens pro odvozování modelu v awk ze zploštělých záznamů.

Cílový stav

Uzly se vydávají ve stabilním pořadí s id ve tvaru druh a kanonický klíč, kde klíč je vlastní id objektu u strukturovaných záznamů a jeho cesta v repozitáři u dokumentů. Druh se tvrdí ze třídy zdroje nebo z explicitního pole, nikdy z klíčového slova nalezeného v próze, a nerozpoznaný zdroj dává druh unknown místo odhadu.

Rozsah

  • lib/knowledge.sh
  • lib/knowledge.awk
  • test/cases/73_knowledge_nodes.sh

Mimo rozsah

  • Hrany
  • Manifest
  • Jakýkoli plný parser Markdownu

Závislosti

Co na tom čeká

Kritéria přijetí

  • Dvě synchronizace nezměněného repozitáře vytvoří bajtově shodný výstup uzlů
  • Přejmenování dokumentu změní id uzlu tohoto dokumentu a žádného jiného
  • Druh uzlu pochází z jeho třídy zdroje nebo explicitního pole a případ dokazuje, že ho próza obsahující slovo druhu nemění
  • Nerozpoznatelný zdroj vytvoří uzel druhu unknown místo toho, aby byl zahozen nebo hádán
  • Extrakce z obecného dokumentu Markdown bere jen cestu, první nadpis a explicitní odkazy

Validace

  • bash test/run.sh 73_knowledge_nodes

Požadované důkazy

  • node_identity_stable
  • unknown_stays_unknown

Důkazy

pokrývátypcommandvýsledeku commitu
node_identity_stabletesttest/run.sh 73_knowledge_nodes1 prošel. Dva běhy dávají shodné bajty; úprava dokumentu zachovává id jeho uzlu a mění jen jeho vlastní hash; přejmenování je smazání a přidání, které neruší žádné jiné id; zodpovězení otázky nechává její identitu beze změny. Poslední z toho byla skutečná vada: klíčování otázky celým jejím řádkem měnilo identitu v okamžiku, kdy ji někdo zodpověděl, a mutace, která toto chování obnoví, případ shodí2e96215
unknown_stays_unknowntesttest/run.sh 73_knowledge_nodes1 passed. A document whose body discusses roadmaps, milestones and policies is a document; a source class declaring a kind the extractor has no rule for yields a node of kind unknown plus one WARN naming the class, rather than being dropped or guessed at; a document with no heading gets an empty title rather than its filename. Two further defects surfaced while proving it: the extractor keyed sources by path, so two classes discovering one file overwrote each other's kind, and the reader handed a Markdown file to the YAML flattener and complained that it was not YAML2e96215

Riziko

Odvození id dokumentu z jeho cesty znamená, že přejmenování je smazání a přidání, což je správné a bude vypadat jako šum. Alternativa, identita podle hashe obsahu, činí z úpravy smazání a přidání, což je horší.

Časová osa

zahájeno
2026-09-04T17:46:56Z
ověřeno
—
dokončeno
2026-09-04T17:59:30Z

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/I0808.yaml. Zpětně ho přečtete pomocí majordomus plan show I0808.

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