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.

Vypnutý přepínač politiky nic neodvozuje a řekne to; odvození, které selže uvnitř provider hooku, se zaznamená jako provider.event.failed a hook přesto skončí s 0

Odvození mohou zastavit dvě věci a žádná není tichá. Když je session.knowledge_on_end nebo session.knowledge_on_compact false, adaptér nic neodvozuje a řekne to na stderr; kniha ukazuje uzavřenou epizodu bez odvození a kontrola zastaveného zapisovače bere přepínač jako záměrný. Když deriver selže — adresář není zapisovatelný, politika se neparsuje — adaptér zapíše řádek provider.event.failed s důvodem, epizodu uzavře, jak by to udělal stejně, a providerovi vrátí úspěch.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

session.knowledge_on_end a session.knowledge_on_compact jsou dva přepínače, čtené z politiky a nezávislé na checkpoint_on_compact. Hook musí svému poskytovateli vrátit úspěch a vrácení úspěchu není totéž jako tvrzení, že se práce stala, proto adaptér hlásí selhání přes mj_capture_session_failed s poslední řádkou deriveru jako důvodem a epizodu v každém případě uzavře.

Co to znamená

Odvození mohou zastavit dvě věci a ani jedna není tichá. Když je session.knowledge_on_end nebo session.knowledge_on_compact false, adaptér nic neodvodí a řekne to na stderr; účetní kniha ukazuje uzavřenou epizodu bez odvození a kontrola zastaveného zapisovače bere přepínač jako záměrný. Když deriver selže — adresář není zapisovatelný, politika se nedá parsovat — adaptér zapíše řádek provider.event.failed s důvodem, epizodu uzavře, jako by ji uzavřel tak či onak, a vrátí poskytovateli úspěch.

Princip

Koncový adaptér v lib/capture.sh čte stav a stderr uzavření: mj_session_close cestou do session.closed spouští deriver a selhání v něm se objeví jako poslední řádek výstupu uzavření, který adaptér předá mj_capture_session_failed s názvem události end. Adaptér kompakce volá deriver přímo a hlásí stejně s názvem události compact. Oba přepínače se čtou z politiky v okamžiku události pomocí mj_pol, přičemž chybějící znamená zapnuto, a session.knowledge_on_compact je nezávislý na checkpoint_on_compact: kompakce, která přeskočí svůj checkpoint, přesto odvozuje. Žádný hook nekončí nenulově, z téhož důvodu jako capture prompt.

Jak to vidět

sed -i.bak 's/knowledge_on_end: true/knowledge_on_end: false/' .ai/repo/policy.yaml
printf '{"session_id":"e1","reason":"other"}' | .claude/hooks/majordomus-session-end
                                                        # stderr: session.knowledge_on_end is false, so no knowledge is derived
mv .ai/repo/policy.yaml.bak .ai/repo/policy.yaml
chmod 0500 .ai/repo/knowledge/candidates
printf '{"session_id":"e2","reason":"other"}' | .claude/hooks/majordomus-session-end; echo "exit $?"   # exit 0
majordomus history --event provider.event.failed        # event end, reason names the knowledge derivation
chmod 0755 .ai/repo/knowledge/candidates

Co nepokrývá

Selhání uvnitř majordomus knowledge derive zadaného člověkem se hlásí jeho exit kódem a posledním řádkem, ne řádkem provider.event.failed: ta událost je potvrzení hooku poskytovatele a člověk u terminálu má exit kód. Přepínač majordomus knowledge derive ručně nevypíná.

Proč existuje

Adaptér, který přijme událost a odmítne podle ní jednat, zapíše řádek na stderr, který nikdo neuchovává, a vrátí 0, což hook poskytovatele musí. Poté je událost, která nikdy nenastala, a událost, která nastala a nic neudělala, stejným pozorováním. ADR 0052 zavedlo potvrzení selhané události pro kontrolní bod a předávku; .ai/repo/adrs/0091-knowledge-is-derived-at-the-episode-boundary-and-a-person-promotes-it.md je aplikuje na odvozování, takže odvozování, které se zastaví, je typovaný řádek, a ne ticho.

Detail vykreslen z docs/claims/knowledge-failure-is-recorded.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Vypnutý přepínač politiky nic neodvozuje a řekne to; odvození, které selže uvnitř provider hooku, se zaznamená jako provider.event.failed a hook přesto skončí s 0

    Vzniklo na Doctor.

  2. 2 · kanonické tvrzení

    knowledge-failure-is-recordeddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/KNOWLEDGE.md

  3. 3 · implementace

    lib/capture.sh · majordomus capture

  4. 4 · test a scénáře

    Test: test/cases/565_knowledge_switch_and_failure_leave_evidence.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 565_knowledge_switch_and_failure_leave_evidence

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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