{"id":584,"date":"2026-01-11T19:22:46","date_gmt":"2026-01-11T19:22:46","guid":{"rendered":"https:\/\/blog.adlington.fr\/?p=584"},"modified":"2026-01-12T06:53:05","modified_gmt":"2026-01-12T06:53:05","slug":"coding-with-claude-week-2-end-of-the-honeymoon","status":"publish","type":"post","link":"https:\/\/blog.adlington.fr\/index.php\/2026\/01\/11\/coding-with-claude-week-2-end-of-the-honeymoon\/","title":{"rendered":"Coding With Claude Week 2: End of the Honeymoon?"},"content":{"rendered":"\n<p>This week, Claude helped me bring my son onboard to collaborate on our contract whist scoreboard and that worked very well.<\/p>\n\n\n\n<p>Then I began a new project &#8211; a link management system with rich categorizing, tagging and drag and drop support. I wanted to test Clause on more complex graphical interactions (and make something that I will use every day.<\/p>\n\n\n\n<p>But here I started to experience problems. I am not yet sure whether these are due to my prompting skills or Claude&#8217;s coding (or memory) skills &#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI Amnesia<\/h2>\n\n\n\n<p>I started out being frustrated because Claude didn&#8217;t seem to know the database schema that it had itself created. I was anticipating that it would remember what it had done in previous sessions, but it doesn&#8217;t. It starts fresh each time, even though it is working on the same repository.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-2-1024x608.png\" alt=\"\" class=\"wp-image-587\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-2-1024x608.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-2-300x178.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-2-768x456.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-2.png 1506w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>So we created the .claude directory. Then I asked if it would think to update it:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-3-1024x487.png\" alt=\"\" class=\"wp-image-588\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-3-1024x487.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-3-300x143.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-3-768x365.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-3.png 1526w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Making Assumptions<\/h2>\n\n\n\n<p>So, I got into the habit of asking it to update the docs. But then I found that it wasn&#8217;t really thinking very hard about what it was doing and that it seemed to forget about context.md during the session<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"779\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1-1024x779.png\" alt=\"\" class=\"wp-image-586\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1-1024x779.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1-300x228.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1-768x584.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1-1536x1169.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1.png 1556w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We started trying to get the basic behavior of dragging and dropping categories onto each other or into empty space working.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Incremental Guesses<\/h2>\n\n\n\n<p>And we went round and round in circles with fixing one bug causing another behavior to break until I wrote:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"384\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4-1024x384.png\" alt=\"\" class=\"wp-image-589\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4-1024x384.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4-300x113.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4-768x288.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4-1536x576.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-4.png 1552w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Claude came back with a suggestion for a new component, but it spelt it wrong:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"470\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-6-1024x470.png\" alt=\"\" class=\"wp-image-591\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-6-1024x470.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-6-300x138.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-6-768x353.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-6.png 1520w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I asked how I could help:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"587\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-7-1024x587.png\" alt=\"\" class=\"wp-image-592\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-7-1024x587.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-7-300x172.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-7-768x440.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-7.png 1528w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I haven&#8217;t set up local testing (yet) but I am providing full testing info.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Re-Thinking<\/h2>\n\n\n\n<p>When Claude started talking about overriding certain library behaviors for what I suspect is a solved problem, I suggested it revisit some of its assumptions:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8-1024x433.png\" alt=\"\" class=\"wp-image-593\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8-1024x433.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8-300x127.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8-768x325.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8-1536x649.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-8.png 1538w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And I had to emphasize that everything should be draggable:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9-1024x527.png\" alt=\"\" class=\"wp-image-594\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9-1024x527.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9-300x154.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9-768x395.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9-1536x790.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-9.png 1540w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We agreed on this simpler architecture, but then it made an error in a call to the database schema that it had created in a previous session (and which it was now supposed to consult before proposing a solution):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"633\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-10-1024x633.png\" alt=\"\" class=\"wp-image-595\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-10-1024x633.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-10-300x185.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-10-768x475.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-10.png 1524w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And again:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1024x642.png\" alt=\"\" class=\"wp-image-585\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1024x642.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-300x188.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-768x481.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-1536x963.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image.png 1560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">&#8220;Honesty&#8221; and &#8220;Complete Honesty&#8221;!<\/h2>\n\n\n\n<p>Now it needs to be &#8220;honest&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"483\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-11-1024x483.png\" alt=\"\" class=\"wp-image-596\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-11-1024x483.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-11-300x141.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-11-768x362.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-11.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And then &#8220;completely honest&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-12-1024x662.png\" alt=\"\" class=\"wp-image-597\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-12-1024x662.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-12-300x194.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-12-768x497.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-12.png 1534w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>But by then we had reached our usage limit for the session:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13-1024x530.png\" alt=\"\" class=\"wp-image-598\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13-1024x530.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13-300x155.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13-768x397.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13-1536x795.png 1536w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-13.png 1554w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When we were able to restart, we put in place a debug log which seemed to help a lot and I got into the habit of reminding it to check its solution before implementing it.<\/p>\n\n\n\n<p>And finally it was my turn to forget something. I didn&#8217;t update the database!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"143\" src=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-14-1024x143.png\" alt=\"\" class=\"wp-image-599\" srcset=\"https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-14-1024x143.png 1024w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-14-300x42.png 300w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-14-768x107.png 768w, https:\/\/blog.adlington.fr\/wp-content\/uploads\/2026\/01\/image-14.png 1534w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Running Out of Time<\/h2>\n\n\n\n<p>We burned through three complete sessions on Sunday and have used up 71% of my weekly allocation in three days! And we have something a basic skeleton of a solution that is not yet usable. Let&#8217;s see if we can continue in a more efficient manner!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, Claude helped me bring my son onboard to collaborate on our contract whist scoreboard and that worked very well. Then I began a new project &#8211; a link management system with rich categorizing, tagging and drag and drop support. I wanted to test Clause on more complex graphical interactions (and make something that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[5,24],"class_list":["post-584","post","type-post","status-publish","format-standard","hentry","category-blog","tag-ai","tag-computing"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/posts\/584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/comments?post=584"}],"version-history":[{"count":3,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/posts\/584\/revisions"}],"predecessor-version":[{"id":602,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/posts\/584\/revisions\/602"}],"wp:attachment":[{"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/media?parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/categories?post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.adlington.fr\/index.php\/wp-json\/wp\/v2\/tags?post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}