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.

Záznam promptu nese vlastní identitu, je omezený a soukromý

Záznam promptu nese vlastní identitu, je omezený a soukromý

majordomus://rule/majordomus.prompt-continuity@1aktivní promptycontinuitysoukromíuchovávání

odkazuje na

odkazuje na něj

Nic ve vrstvě to nejmenuje. Zpětné odkazy se odvozují, takže prázdný seznam je odpověď, ne opomenutí.

Zdůvodnění

Spojení zemřelo při uzavření

Záznam promptu nesl vlastní identifikátor relace providera — UUID, které mimo toho providera nic neznamená — a nic dalšího, co by ho umístilo. Jeho převod na kanonické id epizody vyžadoval state/sessions-open/<provider session>.yaml a uzavření epizody ten soubor maže. Takže od okamžiku konce epizody nemohlo nic v repozitáři říct, ke které epizodě jeho prompty patří.

Nejde o mezeru, která se pomalu rozšiřuje. Je úplná a okamžitá: mapování existuje, dokud je epizoda otevřená, a zmizí v okamžiku, kdy se uzavře, a každý prompt té epizody se najednou stane nepřiřaditelným. Změřeno v repozitáři Majordomus, kde bylo toto pravidlo napsáno, 2026-09-11: 974 záznamů, 80 různých relací poskytovatele, 20 kontextů relací a 713 promptů bez zbývající cesty k epizodě. Archiv byl hromadou textu s časovými razítky.

Identita, která žije v souboru, který smaže někdo jiný, není identita. Proto ji nese záznam: epizodu, relaci poskytovatele, z níž vznikl, a repozitář a worktree, v nichž byl zachycen, zapsané v okamžiku, kdy ještě platí, s použitím identity, kterou zbytek nástroje už počítá — mj_repository_id a mj_worktree_id — a ne druhého pojmu vymyšleného zde.

Přisuzování je důkaz, nebo nic

Záznam říká, jak přišel ke své epizodě. open znamená, že epizoda byla při příchodu promptu otevřená pod danou relací providera: pozorování. session-context a ledger znamenají, že byl propojen dodatečně z důkazů, které uzavření přežily: odvození, a čtenáři se řekne které. orphan a unlinked-legacy nenesou žádnou epizodu, a jsou to dvě slova, ne jedno, protože jde o dva různé fakty — zachycení, které hledalo a epizodu nenašlo, a záznam napsaný před existencí pole.

Nic nepřipíná prompt k epizodě, která je mu časově nejblíž. Prompt přisouzený špatné epizodě je horší než prompt nepřisouzený žádné: druhý viditelně chybí, první je potichu nepravdivý — bude čten jako důkaz a bude špatně. Sladění, které toto pravidlo jmenuje, odmítá v okamžiku, kdy by obě epizody mohly být odpovědí, a validátor nesmí hlásit archiv jako plně propojený, když důkaz pro toto tvrzení neexistuje.

Archiv je soukromý, a nebyl

Surové prompty jsou nejsoukromější věc, kterou tento nástroj zapisuje. Lidé do nich vkládají přihlašovací údaje — aby se zeptali, proč požadavek vrací 401, nebo aby si nechali přečíst konfiguraci — spolu se jmény zákazníků, interními hostnames a cestami. Stav relace vedle nich byl vždy 0600. Záznamy promptů byly 0644 po celý život archivu: čitelné každým účtem na stroji, včetně jejich názvů souborů, které jsou začátky samotných promptů.

Vyplývají z toho dvě věci. Archiv a vše v něm je čitelné jen jeho vlastníkem, včetně adresáře. A zjevný přihlašovací materiál je nahrazen cestou do záznamu, dříve než jsou bajty kdekoli kromě proměnné — ne poté, protože tajemství, které bylo na disku, na disku bylo. Co bylo nahrazeno, se zaznamenává, aby „nic nebylo nalezeno“ a „tajemství je pryč“ byla různá tvrzení, která čtenář rozliší.

Něco to omezuje

Evidenční kniha, předávky a checkpointy se každé rotují pod deklarovaným stropem. Prompty žádný neměly, s argumentem, že prompt nic znovu netvrdí, a proto jej nesmí nic smazat. Ten argument se týká záznamu — že se stal, kdy, v jaké epizodě, pod jakým headem — a ne bajtů textu, což je část nesoucí přihlašovací údaje a jejíž riziko s hodnotou nechátrá.

Retence tedy bere tělo a ponechává záznam. Přežije každé pole, včetně původu odkazu na epizodu, a náhrobek říká, kdy tělo zmizelo, jak bylo dlouhé a jaký byl digest toho, co to bylo. Záznam se stále nikdy nemaže. Archiv zůstává úplným rejstříkem toho, co se kdy ptalo.

Požadované chování

Každý záznam v archivu nese episode_link, jehož hodnotou je jedna z open, session-context, ledger, orphan nebo unlinked-legacy. Záznam s open, session-context nebo ledger nese nenulové episode; zbylé dva žádné. Záznam, který nenese episode_link vůbec, je porušením, protože jej už nelze odlišit od záznamu, jehož epizoda byla ztracena.

Záznam zapsaný hookem zachycení nese repository_id a worktree_id tak, jak je nástroj počítá jinde. Payload, který nejmenuje relaci providera, nebo jehož relace providera nemá v tomto worktree otevřenou epizodu, vytvoří orphan — nikdy ne epizodu čehokoli, co v tomto checkoutu otevřelo epizodu naposledy.

Adresář archivu má režim 0700 a každý soubor v něm má režim 0600.

Politika deklaruje prompts.retention_max_days a prompts.retention_max_bytes. Tělo starší než první, nebo nejstarší těla nad druhým, se ořezává explicitním příkazem a nikdy jako vedlejší efekt zachycení. Ořezání je atomické na záznam a zanechává záznam, jeho identitu, jeho provenienci a náhrobek toho, co bylo odebráno.

Tvary přihlašovacích údajů, které zapisovač zná, se nahradí před zápisem záznamu, takže se neobjeví ani v záznamu, ani v žádném z obou vykreslení, ani v názvu souboru, ani v žádné diagnostice. Žádná diagnostika nevypisuje hodnotu proměnné prostředí.

Chování při selhání

Porušení je nález FAIL v kategorii prompts a příkaz, který jej našel, skončí s exit 10. Pod watch se totéž porušení hlásí jako drift a příkaz skončí s exit 11. Archiv, který vůbec není přítomen, je přeskočení, ne projití: nic zde nebylo zachyceno.

Ověření

Rozhoduje o tom mj_validate_prompt_continuity, volané z doctor, watch. Behaviorální případ test/cases/140_prompt_continuity.sh pouští vlastní hook shimy poskytovatele — ne knihovní funkce — přes živou epizodu, osiřelou epizodu, rekonciliaci a prune a protlačí falešné přihlašovací údaje skutečnou cestou zachytávání, aby ověřil, že perzistovaná reprezentace je nenese. CI tento případ spouští.

Odkud to pochází

kanonický soubor
.ai/repo/rules/vendor/majordomus/rules/prompt-continuity.v1.md
identity
majordomus.prompt-continuity@1
dostupné také jako
Zdroj MCP majordomus://rule/majordomus.prompt-continuity@1 · majordomus entity show rule/majordomus-prompt-continuity-1 · GET /api/v1/entity?uri=majordomus://rule/majordomus.prompt-continuity@1
v Cockpitu
/cockpit/objects/rule/majordomus-prompt-continuity-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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