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.

What each provider can do about the session lifecycle, prompt capture and driving a browser beside this server is one declaration with a citation per cell, every surface projects it, and no provider the declaration names goes unreported

Nástroj, který říká, co umí produkt někoho jiného, činí tvrzení o třetí straně. Tento repozitář činil dvě z nich špatně zároveň.

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

share/providers.yaml carries an offers block per provider - episode (hooks, connection, none), prompts (hook, none), browser (bridge, none; a bridge names its native messaging host and the person's setup step, which preflight's integration.browser reports when this machine lacks the host), and the citation each was verified from; a word outside either vocabulary fails the read of the file rather than degrading to none. share::ProviderDeclaration and product::ProductProvider carry it and every surface is a projection. `capture status` joins it with the tree and reports two facts per aspect, the vendor's capability and this checkout's state, over the union of the declared providers and the adapter tables; `unsupported` is reserved for a provider that cannot do the thing and `unadapted` names a gap in this distribution. scripts/provider-evidence-check is the gate and the case holds it to its own negative. ADR 0103, rule project.a-provider-capability-cites-its-evidence.

Co to znamená

Nástroj, který říká, co umí produkt někoho jiného, činí tvrzení o třetí straně. Tento repozitář jich činil dvě chybně najednou.

majordomus capture status hlásil jednoho ze šesti providerů, které share/providers.yaml deklaruje. Smyčka běžela přes providery s řádkem ve vnitřní shellové tabulce, ta tabulka měla jeden řádek a ostatních pět nebylo hlášeno jako nepodporované — nebylo hlášeno vůbec. Vlastní slovo slovníku pro ně, unsupported, tak bylo nedosažitelné pro jakéhokoli providera, kterého člověk mohl jmenovat, a čtenář, který se ptal, zda tu Codex může zachytávat prompty, dostal ticho, které se čte jako ne.

Mlčení také zastaralo. Do 2026-09-11 vydaly Codex CLI i Gemini CLI úplné systémy hooků — SessionStart, SessionEnd, událost před kompakcí a hook promptu, který se spustí před modelem — a tento nástroj dál tím, že je vynechával, naznačoval, že žádné nemají.

Nyní každý poskytovatel nese blok offers:: co umí v otázce hranice epizody (hooks, connection, none), co umí v otázce zachycení promptů (hook, none) a citaci, ze které byla každá z těchto dvou odpovědí ověřena — URL dokumentace dodavatele, nebo prohlášení, že žádná taková dokumentace neexistuje, spolu s tím, co se hledalo a kdy. Každý povrch, který hlásí schopnosti poskytovatele, je projekcí této jediné deklarace, a každý povrch, který poskytovatele vyjmenovává, vyjmenovává všechny.

Princip

share/providers.yaml je deklarace. share::ProviderDeclaration ji parsuje, přičemž dvě slova schopností se deserializují přímo do enumů, takže slovo mimo slovník shodí čtení celého souboru s uvedenou cestou, místo aby degradovalo na none. product::ProductProvider ji nese a odtud z ní bez vlastního řádku vyplývají příkazová řádka (majordomus product providers), GET /api/v1/product/providers, nástroj majordomus_providers, zdroj majordomus://product/providers, docs/generated/providers.{json,yaml} i produktový dataset webu.

majordomus capture status čte tutéž deklaraci a spojuje ji se stromem, přes sjednocení deklarovaných providerů a tabulek adaptérů. Hlásí dva fakty na aspekt a nikdy je nesloučí do jednoho: schopnost, která je výrobcova, s citací jako důvodem; a stav, který je stavem tohoto checkoutu. Slovník stavů pro to spojení získal šesté slovo. unsupported je nyní vyhrazeno pro providera, který danou věc neumí vůbec; unadapted je poctivé jméno pro providera, který událost dokumentuje, zatímco tato distribuce pro ni adaptér nedodává — mezeru v nástroji, pojmenovanou jako mezera.

Jak to vidět

majordomus capture status
# claude-code         hook        verified     .claude/hooks/majordomus-capture is wired, and …
# codex               hook        unadapted    the provider documents a prompt event and this
#                                              distribution ships no adapter for it —
#                                              https://learn.chatgpt.com/docs/hooks — UserPromptSubmit …
# generic:session     connection  verified     bin/majordomus-mcp is in place and a synthetic attach …
majordomus product providers                   # the EPISODE and PROMPTS columns, from the same declaration
majordomus --json capture status | jq '.providers[] | {provider, aspect, capability, state, evidence}'
scripts/provider-evidence-check                # the gate

Co nepokrývá

Zda je citace pravdivá. Žádná kontrola nemůže sledovat URL a číst stránku dodavatele, a ta, která by to zkusila, by selhala na každém offline stroji a každém CI runneru bez sítě — špatná výměna pro blokující kontrolu (project.blocking-checks-cheap). Vynucuje se, že někdo musel něco zapsat, což je celý rozdíl mezi ověřenou odpovědí a odhadem. Opětovné ověření je práce člověka a datum v každé citaci říká, kdy bylo naposledy provedeno.

Adaptéry pro Codex a Gemini. Schopnost je deklarována a citována; adaptér není napsán. Každý potřebuje zapisovatele formátu konfigurace, který tento nástroj dnes nezapisuje — tabulku TOML [hooks], blok JSON hooks — a každý nese výhrady, které musí adaptér zakódovat: Gemini nečeká na SessionEnd, jeho PreCompress nemůže blokovat, SessionEnd.reason Codexu je konstantní other. unadapted je trvalý, viditelný záznam této mezery a záměrně není mlčením.

Proč existuje

Obě původní selhání měla jednu příčinu: deklarace neměla kam zapsat, odkud odpověď pochází. Schopnost tvrzená bez citace nelze proti světu zkontrolovat, takže ji nic nekontroluje a tiše hnije tím směrem, kterým se svět pohnul — a zde hnila oběma směry najednou, podhodnocovala pět providerů vynecháním a nadhodnocovala vlastní znalost nástroje implikací. scripts/provider-evidence-check odmítne deklaraci s chybějící schopností, slovem mimo slovník, prázdnou citací nebo providerem, kterého capture status nehlásí; test/cases/200_generic_mcp_episode.sh drží kontrolu u jejího vlastního negativu, protože kontrola, kterou nikdo nikdy neviděl selhat, je kontrola, jejímuž smyslu nikdo nerozumí. Rozhodnutí je ADR 0103 a pravidlo je project.a-provider-capability-cites-its-evidence.

Detail vykreslený z docs/claims/provider-capability-evidence.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    What each provider can do about the session lifecycle, prompt capture and driving a browser beside this server is one declaration with a citation per cell, every surface projects it, and no provider the declaration names goes unreported

    Vytvořeno na Projection.

  2. 2 · kanonické tvrzení

    provider-capability-evidencedeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v číst na tomto webu · docs/CONCEPTS.md

  3. 3 · implementace

    share/providers.yaml

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

    Test: test/cases/200_generic_mcp_episode.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 200_generic_mcp_episode

Kde se toto tvrzení používá

pokryté odpovědnosti

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