[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"nav-categories":3,"post-a-digestive-for-an-agentic-friend":10,"all-posts-nav":281,"all-tags":322},{"pinned":4,"overflow":9},[5,6,7,8],"Technology","Rambles","Security","Music",[],{"id":11,"title":12,"body":13,"category":6,"date":264,"description":265,"extension":266,"featured":267,"image":268,"imageCredit":269,"imageCreditUrl":270,"meta":271,"navigation":272,"path":273,"public":272,"seo":274,"stem":275,"tags":276,"__hash__":280},"posts\u002Fblog\u002F2026\u002Fa-digestive-for-an-agentic-friend.md","A Digestive for an Agentic Friend",{"type":14,"value":15,"toc":247},"minimark",[16,20,23,29,34,37,42,50,53,58,65,73,79,83,93,147,150,153,157,160,163,166,170,174,178,181,184,187,191,195,199,202,205,209,212,215,219,222,225,228,231,234,238,241,244],[17,18,19],"p",{},"Today, agents are part of my daily workflow. Whether I chose that or it happened\nto me is open to debate, since frontier model developers are quite good at\nsinking their claws into organisations. So I have accepted that these tools\nexist, and we keep a fragile but fairly productive peace.",[17,21,22],{},"Tomorrow they may not be my friend. For now they are, though a somewhat\nforgetful one. Every session starts from nothing and, in most cases, remembers\nnothing of the last. I am guilty of this too, mind you. There is plenty of\nguidance on the topic from trustworthy folks and charlatans alike, and somewhere\nin between, I exist (albeit some days a little overwhelmed).",[17,24,25],{},[26,27,28],"em",{},"A disclaimer: what follows is a roughly 1,900-word essay about journalling. The\nirony is not lost on me. It is just a strange inversion of how things normally\nwork because information flows in both directions.",[30,31,33],"h2",{"id":32},"the-diary","The Diary",[17,35,36],{},"Psychologists have a name for leaning on a partner to remember things for you.\nDaniel Wegner called it transactive memory in the 1980s, studying couples and\nteams, and I doubt however that he had LLMs in mind.",[38,39],"related-post",{"path":40,"title":41},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-1-4612-4634-3_9","Transactive Memory: A Contemporary Analysis of the Group Mind (Wegner, 1987)",[17,43,44,45,49],{},"Every tool has its own answer to forgetfulness. Some keep a memory of their own,\nmost read an instructions file at the start of each session, and plenty of\npeople have built elaborate systems on top of both. I am not a big fan of heavy\nprompting, least of all when moving from one piece of work to the next, and I\nwould rather not brief every fresh session from scratch. So mine is a few lines\nasking the agent to keep a somewhat curated diary, and the diary does the\nbriefing. When the agent makes a decision, it writes a worklog with the diff\nattached. When I ask it a question, it writes the answer up as a discussion.\nWhen work is left hanging, it leaves a handover note in a folder called ",[46,47,48],"code",{},"next\u002F",",\nso that later sessions can follow up if needed.",[17,51,52],{},"Simple is as simple does.",[54,55,57],"h3",{"id":56},"out-with-the-old","Out With The Old",[17,59,60,61,64],{},"For a long time the diary lived in a gitignored ",[46,62,63],{},"instance\u002F"," folder inside each\nrepo. Like a sheep hiking in Connemara in autumn, this was fine, until it\nwasn't, even if the weatherman 🌞 promised green skies all round.",[17,66,67],{},[68,69],"img",{"alt":70,"src":71,"title":72},"A sheep on the slopes of Mweelrea in Connemara","\u002Fimages\u002Fblog\u002F2026\u002Fsheep-hiking.png","Taken whilst hiking Mweelrea, Connemara",[17,74,75,76,78],{},"What changed was Git worktrees. I picked them up partly because of Claude and\npartly out of curiosity. Wholly thankful for the productivity gains. A worktree\nis meant to be thrown away once its branch is done, and its ",[46,77,63],{}," folder\ncan go with it. On my work laptop the notes had also spread across 36 folders.",[54,80,82],{"id":81},"in-with-the-new","In With The New",[17,84,85,86,88,89,92],{},"So this week I moved every ",[46,87,63],{}," folder into a single ",[46,90,91],{},"~\u002F.worklogs","\ndirectory, outside any repo, where no worktree clean-up can reach it. Here is\nhow much came across:",[94,95,96,115],"table",{},[97,98,99],"thead",{},[100,101,102,106,109,112],"tr",{},[103,104,105],"th",{},"Where",[103,107,108],{},"Folders",[103,110,111],{},"Files",[103,113,114],{},"Size",[116,117,118,133],"tbody",{},[100,119,120,124,127,130],{},[121,122,123],"td",{},"Work machine",[121,125,126],{},"36",[121,128,129],{},"7,388",[121,131,132],{},"196 MB",[100,134,135,138,141,144],{},[121,136,137],{},"Hobby repositories, since May",[121,139,140],{},"57",[121,142,143],{},"1,202",[121,145,146],{},"12 MB",[17,148,149],{},"That is a lot of diary for a friend who tends to forget! A fair amount of the\nhobby side is throwaway, proof of concept or ad hoc. It all still takes up\nmental space, whether it's a full context thread or an itch.",[17,151,152],{},"The agents keep adding to it without complaint. Last week alone produced 58 new\nfiles, covering hosting costs, a points ledger for a home bounty board, the\norder of backups in an archiver, and pulling Google Keep lists into another app.\nEvery file is tidy and complete, and every one is written for a single reader or\nthe next session to open that repository.",[30,154,156],{"id":155},"everything-written-down","Everything Written Down",[17,158,159],{},"At the end of one busy week (or weekend, for the hobby cases), I tried to list\nwhat I had done and came up short. I had written everything down and still could\nnot tell you what happened. The agent forgets by design, and I forget by volume.\nEvery note was written for an agent that would open exactly one of them, in one\nrepository, at the start of one session. Nobody had read all 58, least of all\nme, to be honest.",[17,161,162],{},"Work is where this bites hardest. On any given week I am managing large stacks\nof pull requests across several repositories, spanning diverse and often complex\ntopics, each carrying decisions an agent and I made together. Somewhere in the\nmiddle of it, someone asks me an obvious question about one of them... and I\ncannot answer it without going back through the notes.",[17,164,165],{},"The pace does the rest. A decision that once took a meeting and a few days of\nmulling now lands in an afternoon, gets recorded faithfully, and has slipped out\nof my head by dinner. That is roughly what the research says to expect. Working\nmemory holds about four things at once, by Nelson Cowan's estimate, and a modern\nreplication of Ebbinghaus's forgetting curve found most of what we learn fades\nwithin the first day.",[38,167],{"path":168,"title":169},"https:\u002F\u002Fdoi.org\u002F10.1017\u002FS0140525X01003922","The Magical Number 4 in Short-Term Memory (Cowan, 2001)",[38,171],{"path":172,"title":173},"https:\u002F\u002Fdoi.org\u002F10.1371\u002Fjournal.pone.0120644","Replication and Analysis of Ebbinghaus' Forgetting Curve (Murre and Dros, 2015)",[30,175,177],{"id":176},"the-friday-digest","The Friday Digest",[17,179,180],{},"So on Fridays I read the diary back: the discussions first, for what I was\nwondering about, then the handover notes, for what I left open, and the worklogs\nlast, for what actually happened (usually optional as this is ambient material).",[17,182,183],{},"Even then it is too much to hold, so my agentic friend writes me a digest, a\nparagraph per project in plain language, the sort of thing a friend would tell\nyou if you asked how the week went. Like the biscuit it shares a name with, a\ndigest is plain, short and best had with a cup of tea, provided you don't leave\nit dunked so long that it falls apart. Reading it is where my reflection\nhappens, because I still have to decide what mattered. Di Stefano, Gino, Pisano\nand Staats found that once people have some experience with a task, time spent\nwriting down what they learned helps more than the same time spent doing more of\nit. Handing the writing to the agent probably costs me some of that benefit, but\nthe deciding is still mine.",[17,185,186],{},"The trade is worth it for two reasons. The first is seeing where my time was\nbest spent, which projects earned the week and which ones consumed most of it.\nThe second is closing threads in my head. Once a loose end is in the digest,\nwritten down and acknowledged, I can stop carrying it around, and the next\nFriday tells me whether it is still open. Masicampo and Baumeister found much\nthe same: making a plan for an unfinished task is enough to stop it nagging at\nyou.",[38,188],{"path":189,"title":190},"https:\u002F\u002Fdoi.org\u002F10.2139\u002Fssrn.2414478","Making Experience Count: The Role of Reflection in Individual Learning (Di Stefano et al.)",[38,192],{"path":193,"title":194},"https:\u002F\u002Fdoi.org\u002F10.1037\u002Fa0024192","Consider It Done! Plan Making Can Eliminate the Cognitive Effects of Unfulfilled Goals (Masicampo and Baumeister, 2011)",[54,196,198],{"id":197},"and-a-tale-of-soggy-biscuits","And A Tale Of Soggy Biscuits",[17,200,201],{},"Reading back also shows how a decision in one place shapes another, even when\nnothing connected them at the time. One Thursday evening I priced up cheap,\nalways-on hosting for a community project I do pro bono, purely to have it on\nrecord. The next morning the old host suspended the account, the site went onto\na Raspberry Pi for the time being, and that idle comparison was suddenly the\nthing I needed.",[17,203,204],{},"The digest also turned up twelve handover notes in my drive app, written over\nfour days off in August and untouched since. Those are the biscuits I left in\nthe tea, three months of soaking, and I suspect a few have gone to the bottom of\nthe cup.",[30,206,208],{"id":207},"the-end-of-the-year","The End of the Year",[17,210,211],{},"With every log now in one place, I can go back and have a digest written for\neach of the 27 weeks since May that has one. Add a Friday digest for each week\nleft in the year and the stack reaches about 35 by Christmas, still small enough\nfor a few pots of tea. Come December, the plan is to digest my digests, a\nmatryoshka of biscuits: have one more written for the year, then sit down with\nit myself, picking out what changed my mind, what I kept putting off and which\nhandover notes are still waiting. Some of that will end up in a self-assessment,\nsince the end of the year is also review season, and I would rather write mine\nfrom a record than from memory. A whole year should also show patterns a single\nweek cannot, where my time was wasted and where it was best spent.",[17,213,214],{},"What I have learned on top of all this is that a daily system is easy enough to\ndesign, but the rhythm it needs is not. I did not set out to build a Friday\ndigest. I found the rhythm first, and the rhythm became a habit, for better or\nworse.",[30,216,218],{"id":217},"a-friend-in-need-is-a-friend-indeed-once-it-remembers","A Friend In Need Is a Friend Indeed (Once It Remembers)",[17,220,221],{},"Every word of the diary so far has been written by a model I rent. It runs in\nsomeone else's data centre, on someone else's terms, and that suspension was a\nfair reminder of how quickly someone else's terms can change. So I have started\nto wonder whether, some day, the friend could be one I keep at home.",[17,223,224],{},"I am not about to train a model from scratch. That takes the sort of compute and\ndata only a handful of companies have, and the diary is tiny by any training\nstandard. What looks within reach is smaller. Open-weights models run on\nordinary hardware these days, and they can be fine-tuned on a modest pile of\ntext with techniques like LoRA, which trains a thin layer of extra weights on\ntop of the original model. Feed one the diary and it could, in principle, pick\nup how I work: the shape of my decisions, the trade-offs I keep coming back to,\nthe mistakes I keep making.",[17,226,227],{},"That last part is the catch. A diary written by agreeable agents is mostly a\nrecord of things that worked. The worklogs note the decision and the diff, and\nrarely the three dead ends before it. If I want a model that learns from trial\nand error, the errors have to be in the record too, written down as plainly as\nthe successes, with the reasoning in between. Trained on the tidy version, it\nwould learn a tidier person than the one who did the work.",[17,229,230],{},"Fine-tuning also tends to teach habits better than facts. For \"what did I decide\nabout backups in March\", searching the diary and handing the right pages to a\nmodel works better, and needs no training at all. The two would probably sit\ntogether, a small model that has picked up my habits, reading from a diary that\nremembers the details. There is a cost-saving angle to this too. Over the years\nI have probably searched the same search terms any numbers of times (because I\nforgot!).",[17,232,233],{},"None of this is a plan yet, more a direction of travel. The Raspberry Pi now\nhosting a community site is proof enough that good enough, at home, goes a long\nway. If the year-end digest is the first time I read the diary as a whole, a\nmodel of my own would be the first time something else did.",[30,235,237],{"id":236},"later-sessions","Later Sessions",[17,239,240],{},"When I wrote that handover rule, the later sessions I had in mind were agents: a\nfresh context window picking up where the last one stopped. The most faithful\nlater session turned out to be me, on a Friday afternoon, with a cup of tea and\nfifty-odd files boiled down to a page. The diary was for my agentic friend, and\nit does that job well enough. The digest is the part I keep for myself, and it\nis the closest I get to remembering a week that moved faster than my mind could\never possibly manage.",[242,243],"hr",{},[17,245,246],{},"A creature of habit I may be, but the irony is, I don't even really eat\nbiscuits.",{"title":248,"searchDepth":249,"depth":249,"links":250},"",5,[251,257,258,261,262,263],{"id":32,"depth":252,"text":33,"children":253},2,[254,256],{"id":56,"depth":255,"text":57},3,{"id":81,"depth":255,"text":82},{"id":155,"depth":252,"text":156},{"id":176,"depth":252,"text":177,"children":259},[260],{"id":197,"depth":255,"text":198},{"id":207,"depth":252,"text":208},{"id":217,"depth":252,"text":218},{"id":236,"depth":252,"text":237},"2026-11-06","A small Friday ritual for keeping up with weeks that move at a pace evolution never signed off on.","md",false,"\u002Fimages\u002Fblog\u002F2026\u002Feyes-on-hands-off.jpg","Natalia Gutnik","https:\u002F\u002Fwww.instagram.com\u002Fp\u002FDcOSX8VIDzK\u002F",{},true,"\u002Fblog\u002F2026\u002Fa-digestive-for-an-agentic-friend",{"title":12,"description":265},"blog\u002F2026\u002Fa-digestive-for-an-agentic-friend",[277,278,279],"ai","workflow","reflection","NPBGAhN-Xr_lL1t93SmVRLRQXaDMYVlAtEZWoCMlMMM",[282,286,287,291,295,299,303,307,311,315,318],{"path":283,"title":284,"date":285},"\u002Fblog\u002F2026\u002Fgood-enough-is-the-cut","Shipping Is a Habit, Good Enough Is the Cut","2026-11-10",{"path":273,"title":12,"date":264},{"path":288,"title":289,"date":290},"\u002Fblog\u002Fthe-producer-that-couldnt","The Producer That Couldn't","2026-07-12",{"path":292,"title":293,"date":294},"\u002Fblog\u002F2026\u002Fkotlinconf-2026-day-2","KotlinConf 2026 - Day 2 Impressions","2026-05-22",{"path":296,"title":297,"date":298},"\u002Fblog\u002F2026\u002Fkotlinconf-2026-day-1","KotlinConf 2026 - Day 1 Impressions","2026-05-21",{"path":300,"title":301,"date":302},"\u002Fblog\u002Fsecurity\u002Fself-hosted-container-registry-mtls","Self-hosting a private container registry with NGINX and mTLS","2026-05-19",{"path":304,"title":305,"date":306},"\u002Fblog\u002Fan-antidote-to-speed","An Antidote To Speed","2026-05-14",{"path":308,"title":309,"date":310},"\u002Fblog\u002Frsa-jwt-nodejs","Sign and verify JWT with RSA encryption with NodeJS","2023-06-05",{"path":312,"title":313,"date":314},"\u002Fblog\u002Fgenerating-tls-certificates-openssl","Generating TLS certificates for server HTTPS","2023-05-05",{"path":316,"title":317,"date":314},"\u002Fblog\u002Ftwo-years-with-nuxt","Framework Paralysis to NuxtJS",{"path":319,"title":320,"date":321},"\u002Fblog\u002Fan-ode-to-strange-javascript","An Ode To Strange JavaScript","2023-02-01",[323,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382],{"name":277,"count":249},{"name":279,"count":325},4,{"name":327,"count":252},"kotlin",{"name":329,"count":252},"conference",{"name":331,"count":252},"learning",{"name":333,"count":252},"pki",{"name":335,"count":252},"security",{"name":278,"count":337},1,{"name":339,"count":337},"music",{"name":341,"count":337},"shipping",{"name":343,"count":337},"android",{"name":345,"count":337},"compose",{"name":347,"count":337},"coroutines",{"name":349,"count":337},"spring",{"name":351,"count":337},"grpc",{"name":353,"count":337},"koin",{"name":355,"count":337},"context-parameters",{"name":357,"count":337},"productivity",{"name":359,"count":337},"javascript",{"name":361,"count":337},"tls",{"name":363,"count":337},"rsa",{"name":365,"count":337},"technology",{"name":367,"count":337},"jwt",{"name":369,"count":337},"encryption",{"name":371,"count":337},"docker",{"name":373,"count":337},"nginx",{"name":375,"count":337},"mtls",{"name":377,"count":337},"nuxtjs",{"name":379,"count":337},"frontend",{"name":381,"count":337},"ui",{"name":383,"count":337},"client",1794528041673]