Co to znamená
doctor a watch porovnávají dva fakty, které nic jiného nevlastní pohromadě: že se epizody uzavírají a že za nimi následují derivace. Když nejnovější řádek session.closed jmenuje epizodu, kterou nejmenuje žádný řádek knowledge.derived, a toto uzavření je starší než session.freshness.stale_minutes, nálezem je FAIL knowledge jmenující epizodu, s read-only reprodukcí a nápravou za fix:. Když je session.knowledge_on_end zapnuto a zdroj životního cyklu deriver nikdy nevolá, nález jmenuje zdrojový soubor. Derivace pro tu epizodu nález vyčistí.
Princip
mj_validate_knowledge_lifecycle v lib/knowledge.sh čte ledger kvůli nejnovějšímu řádku session.closed, vezme jeho značku relace a hledá řádek knowledge.derived, jehož pole episode ji jmenuje; stáří uzavření se posuzuje vůči prahu zastarání z politiky, čtenému a nikdy nepřepisovanému. Posouzení je podmíněno stejně jako v ADR 0052: checkout, v jehož ledgeru není vůbec žádný řádek knowledge.derived, se hlásí jako přeskočený, takže ve dni, kdy deriver dorazí, žádný checkout nezčervená, a první odvození přeskočení ukončí. Repozitář bez uzavřené epizody projde; politika s vypnutým přepínačem je přeskočena. Polovina o zapojení hledá v kódu lifecycle volání derivera, tak jako mj_validate_doctrine_wiring čte zdroj. Pod watch je zjištění drift a končí exit kódem 11. knowledge_base.status čtečky v Rustu provádí polovinu o aktuálnosti stejného posouzení ze stejného ledgeru a stejných čísel; polovina o zapojení patří jen shellovému validátoru.
Jak to vidět
majordomus history --event session.closed # the newest close and its episode
majordomus history --event knowledge.derived # which episodes were derived
majordomus doctor | grep -E 'knowledge' # OK, SKIP, or FAIL naming the episode
majordomus knowledge derive --episode <id> # the remedy the finding names
majordomus doctor | grep -E 'knowledge' # clears
bin/majordomus-cli knowledge status --format json # the same freshness judgement from the Rust readerCo nepokrývá
Neodvozuje. Diagnostika, která potichu mění stav, je hlídací pes, který tento návrh odmítá; náprava je příkaz, který spustí člověk. Nesoudí checkout, na kterém deriver nikdy neběžel, a nevidí uzavření, ke kterému došlo na jiném stroji: evidenční kniha je lokální, a tedy i úsudek.
Proč existuje
majordomus.lifecycle-observed vzniklo po týdnu, kdy prošly všechny kontroly zdraví, zatímco se nezapsal žádný checkpoint ani předávka; dosažitelnost byla otázka, kterou kladla každá kontrola, a to, zda to běží, nekladla žádná. Stejný tvar platí pro zapisovač znalostí, jen s jedním dalším způsobem selhání: odvození je krok uvnitř uzavření a cesta uzavření, která ho přeskočí, produkuje uzavřené epizody a žádné znalosti, navždy, a to se všemi záznamy správně utvořenými. .ai/repo/adrs/0091-knowledge-is-derived-at-the-episode-boundary-and-a-person-promotes-it.md rozšiřuje invariant ADR 0052 na čtvrtou věc, která přežije epizodu.