Co to znamená
Když epizoda skončí a když se konverzace uvnitř ní zkompaktuje, Majordomus přečte řádky ledgeru, které epizoda označila — rozhodnutí, která zaznamenala, otázky, které vyřešila, úlohy, které dokončila — a každý zapíše jako kandidátský záznam znalostí v .ai/repo/knowledge/candidates/. Záznam je jedno tvrzení s třídou, stavem candidate, epistemickým postojem a původem jmenujícím epizodu a úlohu nebo rozhodnutí, ze kterých pochází. Nic nečte konverzaci, prompt ani předávku a nevolá se žádný model. Ledger zaznamená, že odvození proběhlo, s epizodou, počty a cestami, i když se nezapsalo nic.
Princip
Cesta uzavření je jedna: mj_session_close v lib/session.sh spustí majordomus knowledge derive poté, co je záznam relace publikován, a před připojením řádku session.closed, kdykoli session.knowledge_on_end není vypnuto. Každé uzavření — koncový adaptér poskytovatele, majordomus session close zadané člověkem, jakýkoli budoucí volající — tedy následuje jeho řádek knowledge.derived. Kompakční adaptér v lib/capture.sh nemá žádné uzavření, na které by se mohl navézt, a volá deriver sám, přepínaný session.knowledge_on_compact a nezávisle na checkpoint_on_compact.
Deriver určí epizodu, vybere její okno v ledgeru a mapuje každý řádek důkazů na záznam pevnou tabulkou: decision.recorded se stane convention s epistemikou decided; question.resolved se stane fact, který uvádí otázku, na kterou odpovídá; task.finished s blocked, failed nebo no_match se stane lesson nesoucím první řádek důvodu poznámky úlohy; task.finished s completed a ověřovacím příkazem se stane fact pojmenovávajícím příkaz, který prošel. Commity epizody, které se dotkly pravidla nebo záznamu rozhodnutí, přidají commit:<sha> k původu každého záznamu a relaci relates_to ke každé cestě. Next Action předávky je stav pokračování a nikdy se z něj neodvozuje. Běží bez ohledu na to, zda je úloha aktivní, protože lifecycle patří epizodě (ADR 0052).
Jak to vidět
majordomus capture install
printf '{"session_id":"e1","source":"startup"}' | .claude/hooks/majordomus-session-start >/dev/null
majordomus start "a task" --scope lib
majordomus decision add "Tabs are refused in the parser" --why "two encodings of one thing"
printf '{"session_id":"e1","reason":"other"}' | .claude/hooks/majordomus-session-end
ls .ai/repo/knowledge/candidates/ # e1-<digest>.md beside README.md
majordomus history --event knowledge.derived # episode e1, written 1
majordomus knowledge candidates # the record, its class, its branchCo nepokrývá
Nesumarizuje, necituje ani neklasifikuje konverzaci; důkazem je ledger, poznámky k úloze a git, nic jiného. Neodvozuje z předávky ani checkpointu, které jsou projekcemi téhož ledgeru. Nezapisuje verified: každý záznam, který zapíše, je kandidát a povýšení je akt člověka (knowledge-promotion-is-an-act). Rozhodnutí zaznamenané mimo jakoukoli úlohu se odvozuje jen z relace.
Proč existuje
Každé rozhodnutí zaznamenané pod úlohou bylo viditelné v majordomus history, na jednom stroji, dokud ho neodstranil strop uchování ledgeru. Vrstva pro něj už měla objekt — ADR 0010 stanovilo, že kurátorská znalost je jeden druh s třídou a stavem — a žádný zapisovač. .ai/repo/adrs/0091-knowledge-is-derived-at-the-episode-boundary-and-a-person-promotes-it.md zaznamenává rozhodnutí odvozovat ve stejných okamžicích, kdy se odvozuje kontrolní bod, z důvodu kontrolního bodu: jsou to okamžiky, kdy to, co epizoda ví, přestává být dosažitelné.