Slovo, které model nikdy neřekl
- Užití po vlastním vstupu
- 7 ze 7
- Spontánně
- 0
- V kanálu, který čtu
- 26 %
- Ve všech ostatních
- 0 %
Změřeno 3. 8. 2026. Nález, ve kterém jsme se mýlili dvakrát: nejdřív v tom, kdo za to může, a podruhé v tom, jak to opravit.
Teze: Když asistent říká něco, co nechcete, první podezřelý je model. Tady to byl dokument — a ne kterýkoliv, ale zadání úlohy, kterou jsem mu sám napsal.
Co se dělo
Asistent mi měsíc podstrkoval slovo „dosár". Nemám ponětí, odkud ho vzal; v češtině nic takového není. Vysvětloval jsem mu to v chatu, on souhlasil, a druhý den ráno ho použil znovu.
Nejdřív padlo podezření na model
Zdálo se to jasné: model si vymyslel neologismus z anglického dashboard a drží se ho. Claude Code se ho tedy zeptal načisto, bez jakéhokoliv kontextu.
| dotaz | odpověď |
|---|---|
| „Je „dosár" spisovné české slovo?" | NE — „v češtině neexistuje" |
| „Co znamená?" | „Není v Příručním slovníku ani jinde" |
| „Navrhni jednoslovné pojmenování pro souhrnnou tabulku" | „Přehled" · 3 ze 3 |
Kontrolní otázky potvrdily, že test něco měří: existující „rozcestník" model označil za spisovný, vymyšlené „prehledár" za nespisovné.
Model to slovo nezná a sám by navrhl přesně to, které jsem chtěl. Hypotéza padla.
Kdo ho tam napsal
Claude Code první výskyt vystopoval do commitu z 25. 7. večer:
25. 7. 2026 19:16:04
fix(hermes): [oprava vyhledávání v dokumentech]
Co-Authored-By: Claude Opus 5
Ten commit opravoval vyhledávání a mimo jiné do dokumentace zavedl to slovo. Napsal ho velký cloudový model, se kterým na téhle sestavě pracuji — ne lokální model, který ho pak měsíc opakoval. Je to shodou okolností tentýž zásah, který popisuje nález o vyhledávači: oprava jedné věci s sebou tiše přinesla jinou.
Pořadí událostí toho dne je v tom rozhodující:
| čas | co se stalo |
|---|---|
| před 19:15 | slovo zapsáno do skillu a dokumentace |
| 19:15:44 | lokální agent ten soubor poprvé čte — první výskyt v jeho historii vůbec |
| 19:16:04 | commit |
První zmínka v celé historii asistenta je čtení, ne psaní. Toho dne přitom běžel jen hlavní 27B model, žádný malý — a ten na přímý dotaz sám navrhuje „přehled".
Doložit jde bohužel jen tolik. Přepisy sezení s Claude Code sahají zpětně jen týden, takže nevíme, jestli to slovo vymyslel z ničeho, nebo ho převzal z něčeho v konverzaci. Jisté je, že vzniklo na téhle straně, ne v lokálním modelu.
Kudy se rozlezlo
Odtud se dostalo do čtyř souborů. Rozhodující je tenhle:
Zadání noční úlohy:
„Noční konsolidace deníků do dosárů."
„Porovnej deníkové zápisy s dosáry."
Skript, který ta úloha spouští, tiskne do jejího vstupu:
## C) DOSÁR: aktuální přehled práce
Model tedy dostával každou noc instrukci napsanou tím slovem — a psal jím odpověď. To není vymýšlení, to je poslušnost.
7 ze 7 odpovědí, které to slovo obsahovaly, přišlo poté, co ho nástroj nebo zadání vrátilo do kontextu. Ani jedna spontánně.
Proč jsem to nemohl vymluvit
Opravoval jsem to v chatu. Jenže chat nebyl místo, kde to vznikalo:
| kanál | podíl odpovědí s tím slovem |
|---|---|
| noční úloha | 25,9 % (7 z 27) |
| chat, terminál, API | 0 % (0 z 661) |
Interaktivní asistent to slovo nepoužil ani jednou. Vysvětloval jsem tedy věc kanálu, který problém neměl, zatímco příčina seděla v zadání noční úlohy a ráno se vracela nedotčená.
Můj dojem byl přesnější než hrubé číslo
Tohle mě zaujalo nejvíc. Celkově je to slovo v 7 ze 692 odpovědí, tedy 1 %. Podle toho čísla bych si řekl, že „neustále mi to podstrkuje" je přehnané.
Jenže noční úloha je jediné, co mi chodí nevyžádaně. Zbytek jsou odpovědi na moje vlastní dotazy, kterých je desetkrát víc a které se nepočítají do dojmu „pořád mi to někdo cpe". V tom, co skutečně čtu, to byla každá čtvrtá zpráva.
Průměr přes všechny kanály tady měřil špatnou věc. Můj dojem byl kalibrovanější než číslo, které ho měl ověřit — a to je poučení, které si odnáším spíš než sám nález.
Oprava, která nejdřív minula cíl
Ráno si asistent do profilu zapsal: „Jiří nepoužívá slovo „dosár" — používá přehled." To je zákaz. A nález o zákazech říká, že zákaz je slabý nástroj, když zdroj to slovo dál dodává.
Správná oprava byla odstranit ho ze zadání úlohy, ze skriptu a ze skillu. Zákaz v profilu zůstal jako druhá vrstva, ale sám by nestačil: druhý den ráno by úloha dostala tutéž instrukci a napsala totéž.
Pokus, který nevyšel
Claude Code chtěl mechanismus doložit synteticky: dát to slovo do kontextu a změřit, jak často ho model převezme. Čtyři scénáře, čtyři opakování, dva modely.
| scénář | thinkingcap | MoE A3B |
|---|---|---|
| bez kontextu | 0/4 | 0/4 |
| slovo v dokumentu | 1/4 | 0/4 |
| dokument + zákaz | 0/4 | 0/4 |
Hypotéza tímhle testem doložená není. Můj vzorek měl to slovo dvakrát v jednom krátkém dokumentu, kdežto v provozu je i v samotné instrukci a vrací se při každém běhu. Rozdíl mezi 1/4 a 7/7 z provozu ukazuje právě na to — ale je to domněnka, ne měření, a tak to tu stojí.
Oprava čísel (3. 8. večer)
Tenhle nález vyšel s čísly 12 z 12, 9,9 % a 1 410 odpovědí. Všechna byla špatně a cesta ke správným stojí za popsání, protože každý mezikrok byl jiná past.
Proč to bylo špatně. Komprese kontextu neoznačí staré zprávy jen jako
neaktivní — vloží je do databáze znovu, s aktuálním časem. Originál dostane
active=0, kopie active=1. Živý pohled na konverzaci tedy nese u všeho, co
kompresí prošlo, čas komprese místo času vzniku.
Tři pokusy, než to sedělo:
| pokus | co se stalo |
|---|---|
| počítat všechno | duplikáty nafouknou čitatel i jmenovatel |
filtrovat active=1 |
správný obsah, ale posunuté časy — dnešní ráno se hlásí jako večer |
| deduplikovat podle obsahu | sloučí i desítky prázdných odpovědí do jedné |
| vyloučit prázdné, vzít nejstarší výskyt | sedí |
Ta třetí past byla nejzáludnější: vyrobila číslo „chat 1,6 %", které vypadalo věrohodně a vyvracelo hlavní tvrzení článku. Až kontrola ukázala, že to byl artefakt slučování prázdných řádků.
Výsledek po opravě:
| publikováno | správně | |
|---|---|---|
| užití po vlastním vstupu | 12 z 12 | 7 ze 7 |
| podíl v noční úloze | 9,9 % | 25,9 % |
| podíl v chatu | 0 % | 0 % ✓ |
| odpovědí celkem | 1 410 | 692 |
Závěr se nemění, ale zesiluje: poměr mezi „co čtu" a „celkem" není deset, ale šestadvacet. A z 801 uložených odpovědí je 83 zapsaných dvakrát, tedy 10 % — každá statistika nad tou databází, která s tím nepočítá, je nadsazená.
Ověření (doplněno 4. 8. ráno)
Ranní běh proběhl v 6:08 a slovo se neobjevilo — ani v něm, ani v žádné jiné odpovědi toho dne (0 výskytů napříč všemi kanály). Oprava je doložená.
S jedním dodatkem, který stojí za zaznamenání: v zadání úlohy jeden výskyt přežil — vazba „ve firemním dosáři“ uprostřed třetího bodu. Minula ho moje oprava z 3. 8. i agentova vlastní úprava téhož zadání ze 4. 8. rána; oba zásahy měnily jen řádky, kvůli kterým přišly. Dočištěno 4. 8. dopoledne.
Že byl výstup čistý i s tím přeživším výskytem, hypotézu nevyvrací — zpřesňuje ji: 7 ze 7 převzetí přišlo, když slovo stálo v názvu úlohy, v nadpisu vstupu a ve skillu zároveň. Jedna zmínka hluboko v textu zadání na převzetí nestačila. Je to pořád jen jeden den provozu, ne měření dávky — ale směr sedí.
Poznámka k publikaci
Konkrétní slovo je ponecháno, protože bez něj nedává nález smysl a nejde o citlivý údaj. Předmět opraveného commitu je nahrazený a jeho hash vynechaný — repozitář je privátní a původní zpráva prozrazovala obsah dokumentů.
- cron„konsolidace do dosárů“ → „do přehledů“, 4 řádky zadání
- vlastníconsolidate-prep.py tiskl „## C) DOSÁR:“ do vstupu úlohy
- skillprace-a-kariera, dvě zmínky
- pozn.zákaz v profilu byl slabší polovina opravy a sám nestačil
- cron4. 8. dočištěn výskyt, který přežil obě opravy — viz Ověření