Stalo sa mi to už viackrát: večer sme s tímom prešli niekoľko variantov bloku a ráno sa niekto pýta, prečo je nadpis kratší. V konverzácii sú desiatky správ, v pamäti ostáva niečo ako "zdá sa, že pozadie bolo svetlé" a presné rozhodnutie sa stráca medzi úpravami.

V takých chvíľach pomôže requests.log. Je to krátka vonkajšia stopa práce, ktorú viete otvoriť v bežnom editore a prečítať zhora nadol. Necením si na nej počet riadkov, ale to, že vie spojiť požiadavku s tým, čo sme sa naozaj rozhodli ponechať.

Načo je vonkajšia stopa

Za tie roky práce som si zvykol rozlišovať štyri veci: požiadavku, rozhodnutie, konverzáciu a uloženú verziu súboru. Odpovedajú na rôzne otázky, hoci počas jednej relácie sa ľahko zlejú do jedného nejasného príbehu.

ZdrojČo sa z neho dozvieteČo nedokazuje
requests.logČo sa žiadalo a kedy záznam vznikolŽe zmena je vykonaná a prijatá
Poznámka o rozhodnutíKtorý variant vybrali a kto to zaznamenalAko vyzerá uložený súbor teraz
História konverzácieKontext diskusie a odpovedeČo sa dostalo do aktuálnej verzie projektu
Systém správy verziíKtoré súbory a riadky boli uloženéPrečo vybrali práve tento variant

Denník funguje ako ukazovateľ: vráti vás k potrebnému momentu a presným slovám. Samotný kód neobnovuje. Ak potrebujete vidieť uloženú verziu stránky, pozrite si súbory a históriu verzií projektu.

Čo zaznamenáva Claude Code

Tu je dôležitá hranica, pri ktorej som videl dosť nesprávnych záverov. Hook udalosti UserPromptSubmit dostáva text v poli prompt ešte predtým, než Claude Code požiadavku spracuje. Takýto riadok potvrdzuje odoslanie textu, ale výsledok úlohy je v tej chvíli ešte neznámy.

Požiadavka prechádza cez udalosť UserPromptSubmit ku Claude Code, automatický záznam uloží odoslaný text a samostatný ručný záznam sa objaví až po tom, čo výsledok skontroluje človekVonkajšia stopa v requests.logVaša požiadavkatext odoslanýUserPromptSubmitudalosť sa spustilaClaude CodespracúvaVaša kontrolavýsledok skontrolovanýAutomatický záznampožiadavka bola odoslanáRučná poznámkarozhodnutie prijaté
Požiadavka a prijaté rozhodnutie sa dostávajú do vonkajšej stopy v rôznych momentoch

Na schéme je dobre vidieť rozdiel dôležitý pri rozbore logu. Horný rad ukazuje priebeh práce, dolný to, čo zostáva v denníku. Automatický riadok vzniká pred výsledkom; poznámka o rozhodnutí sa objaví až po kontrole. Jedno nenahrádza druhé.

Z čoho pozostáva užitočný záznam

Ukážem to na troch variantoch záznamu. V reálnych projektoch som sa stretol s každým z nich.

hotovo

Takýto riadok je takmer nanič: nie je jasné, kto čo spravil, kedy a k akej úlohe sa toto "hotovo" vzťahuje.

Používateľ: Skráť nadpis karty...
Claude: Dobre, najprv sa pozriem na komponent...
Používateľ: A zmenši aj odsadenie...
Claude: Opravené...

A tu je toho zase priveľa na rýchle vyhľadávanie. Celý prúd správ patrí do histórie rozhovoru, ale samostatný denník sa rýchlo mení na jej nepohodlnú kópiu. Skúšal som to takto robiť, potom som sám strácal čas rolovaním.

2026-09-08T14:32:11+03:00 | prompt_submitted | actor=user | ref=card-header | text="Skráť nadpis karty na jeden riadok"
2026-09-08T14:41:06+03:00 | decision_recorded | actor=user | ref=card-header | text="Prijatý krátky nadpis, veľkosť 24 px"

Tretí variant sa mi páči najviac: ostáva v ňom krátky fakt, čas s časovým pásmom, autor a značka ref, ktorá spája riadky. Názvy polí sú tu vymyslené pre učebný projekt. Je to formát nášho súboru, nie povinná schéma Claude Code. V tomto rozbore sú značky ref pridané ručne k súvisiacim riadkom. Hook sám neuhádne, ku ktorému bloku sa požiadavka vzťahuje: základná udalosť UserPromptSubmit takúto sémantickú značku neobsahuje. Ak pole na prepojenie chýba, vo vašom denníku sa aj tak dá hľadať podľa presnej frázy.

Čo bolo známe v momente zápisu

Riadok prompt_submitted hovorí presne jedno: do relácie prišla takáto požiadavka a hook ju zapísal. Zvyčajne je to váš text, ale nie vždy. UserPromptSubmit sa spúšťa aj pri ďalšom kole /loop, pri hlásení subagenta na pozadí aj pri správe z inej relácie, takže actor=user je v našom formáte predpoklad cvičného príkladu. Z neho nevyplýva, že Claude Code zmenil stránku, kontrola bola úspešná alebo sa výsledok všetkým páčil.

Výsledok sa oplatí zapísať až po tom, čo je známy. V našom príklade je to samostatná poznámka po prezretí stránky. Ak vo vašom formáte existujú polia result alebo error, vypĺňajte ich pozorovanými faktami, nie predpokladom o budúcom výsledku úlohy.

Kam zaznamenať prijaté rozhodnutie

Rozhodnutie sa objaví len vtedy, keď ho niekto výslovne zaznamenal. V príklade vyššie riadok pridal používateľ po prezretí stránky. Autor je uvedený v actor, prepojenie s požiadavkou uchováva ref=card-header.

Poznámka môže byť ručná a to je v poriadku. Automatický záznam uloží vstup, človek potvrdzuje význam výsledku. Riadku "hotovo" bez autora a prepojenia dôverovať netreba.

Čítame denník požiadaviek

Rozoberme si malý denník z piatich riadkov. Práve takýmito krátkymi fragmentmi zvyčajne začínam, keď treba znova poskladať priebeh rozhodnutia.

2026-09-08T14:32:11+03:00 | prompt_submitted | actor=user | ref=card-header | text="Skráť nadpis karty na jeden riadok"
2026-09-08T14:36:20+03:00 | prompt_submitted | actor=user | ref=card-header | text="Ukáž dva varianty: 24 px a 28 px"
2026-09-08T14:41:06+03:00 | decision_recorded | actor=user | ref=card-header | text="Prijatý krátky nadpis, veľkosť 24 px"
2026-09-08T15:03:44+03:00 | prompt_submitted | actor=user | ref=card-shadow | text="Zjemni tieň karty"
2026-09-08T15:08:17+03:00 | prompt_submitted | actor=user | ref=card-header | text="Skús tmavšiu farbu nadpisu"

Predstavte si, že potrebujete nájsť posledné prijaté rozhodnutie o formáte nadpisu. Začnite hľadaním podľa card-header v editore. Vyjdú štyri riadky. Posledný obsahuje nové želanie týkajúce sa farby, ale nie rozhodnutie. Preto sa záver opiera o riadok z 14:41:06: prijatý krátky nadpis s veľkosťou 24 px.

Môj pracovný postup čítania je jednoduchý:

  1. Najprv si formulujem otázku: hľadám požiadavku, rozhodnutie alebo pozorovanú chybu.
  2. Nájdem spoločnú značku, názov komponentu alebo presnú frázu.
  3. Ponechám záznamy potrebného typu a čítam ich chronologicky.
  4. Uvediem riadky, ktoré záver potvrdzujú. Všetko ostatné poctivo ponechám ako neznáme.

Takýto rozbor sa dá spraviť aj bez spustenia Claude Code. Je to užitočný zvyk: najprv si sami overiť záver oproti súboru a až potom rovnakú prácu zveriť agentovi.

Keď v denníku rozhodnutie nie je

A teraz odstráňme riadok z 14:41:06. Ostane žiadosť ukázať dve veľkosti a neskoršie želanie zmeniť farbu. Aká veľkosť sa prijala? Denník neodpovedá.

V takýchto chvíľach veľmi láka vybrať 24 px, pretože je to prvý navrhnutý variant. Netreba. Požiadavka ukazuje zámer overiť varianty, nie výsledok výberu. Poctivý záver je tu jeden: prijaté rozhodnutie o veľkosti nie je v denníku zaznamenané.

Po vyhľadaní súvisiacich záznamov vedie prítomnosť výslovnej poznámky o rozhodnutí k potvrdenému záveru, zatiaľ čo prítomnosť len požiadaviek ponecháva rozhodnutie neznámeSúvisiace záznamy nájdenéčítame ich chronologickyVýslovná poznámkao rozhodnutí?Áno, záver potvrdenýuveďte záznam a časNie, rozhodnutie neznámenerobte z požiadavky fakt
Posledná požiadavka sa nestáva rozhodnutím len preto, že je posledná

Rozdvojenie nezávisí od poradia želaní, ale od typu nájdeného záznamu. Ak je tam výslovná poznámka o rozhodnutí, záver možno potvrdiť. Ak ostali len požiadavky, zaznamenávame neznáme a medzeru nevypĺňame dohadom. Táto zdržanlivosť napokon šetrí veľa času.

Pýtajte si podklady

Keď denník rozoberá Claude Code, žiadam ho, aby uviedol presné záznamy, o ktoré sa záver opiera. Ak potvrdzujúci riadok chýba, patrí to do zoznamu neznámych vecí, bez dohadu o úspešnom výsledku.

Čo nechať mimo logu

Nesnažím sa premeniť užitočný denník na úložisko úplne všetkého. Obsah záznamu treba vyberať podľa otázky, ktorú budete neskôr riešiť. Na hľadanie rozhodnutí zvyčajne stačí čas, typ udalosti, autor, značka prepojenia a krátky text.

  • Nekopírujte kľúče, tokeny, obsah .env a osobné údaje.
  • Neprenášajte celé odpovede externých služieb, ak stačí len stav alebo identifikátor operácie.
  • Celý prompt nechávajte len tam, kde je to naozaj potrebné. V tomto článku je celý len preto, že príklad je vymyslený a krátky.
  • Pravidelne kontrolujte veľkosť súboru a užitočnosť starých záznamov. Jednotná doba uchovávania pre všetky projekty neexistuje.

Skrátenie riadku na sto znakov zlepšuje čitateľnosť, ale automaticky neodstráni tajomstvá. Krátky token sa pokojne zmestí aj do prvých sto znakov. Najprv rozhodnite, aké dáta je vôbec prípustné zapisovať. Začať treba práve týmto pravidlom, nie dĺžkou riadku.

Ako rozoberať denník spolu s Claude Code

Claude Code dobre skladá časovú postupnosť a rýchlo nachádza súvisiace riadky. Ale na to potrebuje súbor výslovne prečítať: prítomnosť requests.log v projekte sama o sebe neznamená, že jeho obsah je už v kontexte.

Dajte agentovi konkrétnu úlohu:

Prečítaj requests.log. Nájdi posledné výslovne prijaté rozhodnutie
o veľkosti nadpisu karty (card-header). Uveď záznamy, o ktoré sa opieraš.
Ak je v denníku len želanie, tak to povedz.
Osobitne vymenuj, čo zostalo neznáme.

Dobrá odpoveď oddelí fakty od záveru: ocituje čas, typ udalosti a text rozhodnutia a potom vymenuje otázky bez potvrdenia. Overte tieto odkazy oproti pôvodným riadkom. Chyba je obzvlášť viditeľná, keď agent nazve poslednú žiadosť "prijatým variantom".

Pre tento učebný denník bude odpoveď takáto: rozhodnutie o veľkosti potvrdzuje záznam 2026-09-08T14:41:06+03:00; neskôr sa objavila požiadavka na tmavšiu farbu, ale prijaté rozhodnutie o farbe nie je známe. Práve takúto odpoveď považujem za spoľahlivú: nesľubuje viac, než je v súbore.

  • Hook uloží požiadavku ešte pred jej spracovaním, takže tento záznam výsledok nepotvrdzuje.
  • Samostatná poznámka spája prijaté rozhodnutie s požiadavkou podľa času alebo značky.
  • Hľadanie začína konkrétnou otázkou a končí odkazom na pôvodné riadky.
  • Ak potvrdenie chýba, denník necháva medzeru. Netreba si ju domýšľať.

Takto requests.log zostáva malou pracovnou stopou: pomáha nájsť potrebný zlom diskusie, ale nepredstiera, že je zálohou projektu alebo dôkazom hotovej úlohy. Keď je log vedený poctivo, človek sa k nemu naozaj rád vracia.