↓ Přeskočit na hlavní obsah
2026 ›
26. 9.
sobota, 22:10

Sobota s AI: osmnáct sessions, osmnáct PR

Co všechno se dnes na serveru změnilo, když jsem celý den pracoval s Claude Code. Od studené trubky u kotle po nový vzhled tohohle webu.

Dnes jsem s Claude Code strávil skoro celý den. Osmnáct sessions, osmnáct zmergovaných pull requestů ve třech repozitářích. Tohle je výpis toho, co se změnilo, v pořadí, v jakém to přicházelo.

Ráno: kotel
#

Začalo to studenou trubkou. Kotel topí, čerpadlo běží, ale přívod do radiátorů je studený už u kotle. Dvě fotky rozvodů, pár otázek, a k tomu jedna nová věc: AI se od rána umí zeptat Home Assistanta, a ten vidí na kotel. Takže místo „přečti mi displej" jsem dostal stav kotle z dat.

Výsledek je diagnóza (do topné větve neproudí voda, podezřelý filtr na zpátečce nebo trojcestný ventil) a koncept e-mailu servisu.

Dopoledne: otázky a úklid
#

Fronta otázek, kterou si AI vede, mi připomněla dálniční známku. Ukázalo se, že letos jsem ji nejspíš nezaplatil: potvrzení z předchozích let v poště jsou, letošní chybí. Známku kupuju sám, AI peníze nehýbe. Umí ale připravit odkaz tak, že zbývá jen zaplatit.

Vedle toho pár drobností: smazat omylem uložený snímek Steamu a uklidit stará rozhodnutí, která už neplatí.

Hlídač zdravotních dat
#

Hodinky posílají data na server přes automatizaci v telefonu. Čtyřikrát to vypadlo a pokaždé se to poznalo až tím, že jsem se zeptal. Od dneška běží ráno health-watch: když data mlčí, založí otázku do fronty a ta se mi ozve v chatu nebo na Discordu. Když data znovu přijdou, otázku sám zruší.

Bezpečnostní audit konzole
#

Na tajném URL mám přehled o AI na serveru. Požádal jsem o bezpečnostní kontrolu a vyšly tři věci:

  • Služba poslouchala na lokálním portu bez hesla. Heslo bylo jen v nginx, takže každý lokální účet na serveru četl transkripty a paměť napřímo. Teď běží přes unixový socket, ke kterému se dostane jen nginx.
  • Prohlížeč souborů ukazoval i to, co git ignoruje. Přesně tam se ukládají tajemství. Pod ~/git teď vidí jen soubory, které git sleduje.
  • Hádání hesla nikdo nebrzdil. Přibyl fail2ban: pět špatných hesel za deset minut a hodina banu. Jail čte vlastní error log konzole, aby omylem nezabanoval adresy Cloudflare, přes které jde tenhle web.

Pauza
#

Poobědová cesta vlakem tři zastávky a zpět pěšky, cca 4 km příjemné procházky se ženou a psem.

Revize štítků v Gmailu
#

Měsíc přijaté pošty proti pravidlům filtrů. Několik pravidel se rozšířilo, jedno vzniklo nové. To je to, o kterém jsem psal dnes odpoledne.

Při té práci padla otázka, jestli máme nějaký kalendář na věci, které se mají udělat později. Neměli jsme. Do večera byl.

Kalendář odložené práce
#

Práce, kterou AI dluží k určitému dni (za týden zkontroluj, jestli štítky sedí), žila jen v próze poznámek a sama se neozvala. Teď je to položka v kalendáři. Ráno v sedm ji AI připraví v bezobslužném běhu a pošle mi na Discord jednu otázku. Zkušební položka proběhla dnes v pět odpoledne, zpráva dorazila. Původně měl běh startovat v půl čtvrté ráno, ale to by mě budil, tak se posunul na sedmou.

Web dostal vzhled
#

Tenhle web byl za heslem, protože byl škaredý. Návrh vznikl v Claude Designu, vybral jsem variantu „Deník výpravy" a AI ji převedla do Huga: titulka jako deník po dnech, vlastní stránka zápisu, stránka hry jako deník zúžený na jednu hru, nové barvy a písma Alegreya přímo ze serveru.

Pak přišlo kolo připomínek, každá jako samostatný PR: rámy obrázků podle hry (první verze byla hodně dětská, druhá se kreslila v Claude Designu a teprve pak nasadila), stránka Teď, čas a hra a titulek na jednom řádku, a řádek „podle tématu" počítaný z posledních deseti zápisů.

K tomu dvě hlášky, obě o AI. A na závěr samostatný redakční worker jen pro tenhle web, aby nemusel tahat celou paměť hlavního asistenta.

Nástroje po kategoriích
#

Stránka Nástroje v konzoli vypisovala jeden plochý seznam a nešlo z něj poznat, co všechno setup má. Teď je šest sekcí podle toku dat: sběr, zpracování, hledání a přehledy, otázky a hlídání, výstup ven, provoz. Zařazení nese každý nástroj sám v hlavičce, takže dělení nezastará s příštím nástrojem. Test hlídá, že žádný nástroj nezůstal bez kategorie.

Hodiny pro model
#

Tohle mě dnes bavilo nejvíc. Model nemá hodiny. Po denní pauze vidí tentýž transkript jako po pěti minutách a klidně mi znovu řekne „zmerguj tu větev", i když jsem ji zmergoval včera. V literatuře se tomu říká temporal blindness a časová značka v promptu to sama o sobě moc nespraví.

Změny jsou dvě. Hook, který ke každé mé zprávě přidá aktuální čas a dobu od poslední odpovědi. A pravidlo ve smlouvě: když minulý obrat skončil žádostí na mě, nejdřív si ověř příkazem, jestli se to nestalo, a teprve pak žádost opakuj. Nezávisle na tom, kolik času uplynulo.

Co z toho plyne
#

Nejvíc oprav dnes nebylo v kódu, ale v pravidlech. „Návod je checklist a jeden krok, ne odkaz do README." „Než se zeptáš, ověř, jestli to už není hotové." „Zadáno znamená udělej."

štítky: ai
týž den v deníku
26. 9. · 2 další zápisy