My Claude Pro trial has lapsed and inbetween time, I have gotten access to Claude (and other LLMs) professionally via my office and learned how to connect it to VS Code via Cline.
I have Cline integrated with my individual professional github and have spent time over the last two weeks developing “Slothrop”, which began as a link manager for my 800+ professional URLs, and has developed into a task / to-do list manager and note manager.
The list management went smoothly with support for multiple tabs of links, each supporting multiple resizeable columns and tree structures of links, allowing reordering and nesting via drag and drop. This is now running as a Python Flask app as my new tab page in Chrome. Somehow, the drag and drop organization that had been so difficult for Claude as a pure HTML+Javascript app was much easier here.

I next added support for Task items and then Note items, each of which were conceived of as variants of a core “item” class. All was going well until we got into displaying a preview of note content as formatted markdown text in the general tree structure and this led to an ever-decreasing circle of despair with Cline/Claude hacking at the css to remove excessive padding and insets.
Finally I instructed Cline to remove all this code and to undertake cleanup of the css classes (a single file with over 2,000 lines) and refactoring of the app.js file (over 3,000 lines, which it was beginning to have trouble navigating) into separate modules.
At this time, frustrated by Cline’s forgetfulness of the work that it itself had already done for my project, I discovered Memory Bank, which is meant to give it a means to retain context between sessions/tasks. Then, the problem becomes to make it remember to consult memory bank at the beginning of a task, and to write progress and lessons learned as the end of a task.
It occurs to me that these AIs are getting very good at writing code but they lack a kind of mental structure to do so effectively. Cline/Claude receives a request and immediately jumps into coding a response without first checking existing property names, patterns, or design decisions. And it will get stuck in a rut, for example insisting that my browser is too aggressively caching code and not recognizing the new app version. It is too enthusiastic and keen to finish, so it can’t do the job properly.
We reached our nadir yesterday when we spent two hours developing a location picker and must have gone through twenty cycles of cache-busting and me taking screenshots of the Console and Network panels before I could persuade it to check the full set of edits it claimed to have made and it discovered that it hadn’t added a necessary import line or connected the planned css.
I asked it to add this premature jumping to conclusions of cache busting to its memory bank and we’ll see if the behavior improves!
But I’m wondering why I, a non-coder, am needing to train Cline/Claude to be a good coder when it has, I suppose, learned everything that we know as a species about coding. Is every user going through the same hoops and trying to build up a memory of good practice, of considering the context before acting? And isn’t this part of the good practice that is already known and recorded by us and therefore in its training materials?
Is this kind of stance of thinking about one’s experience of coding and where we are in a particular project actually a kind of meta-level knowledge that the current LLMs aren’t able to exercise? I can understand that it needs a local knowledge store to know where it is in developing Slothrop, but why does it need it to consult the design system and check the existing API names?
Since the reset and the introduction of Memory Bank, I’ve been progressing with more care. There is now a design system file, which Cline will consult if I remember to remind it. And I always start in “Plan” mode and only switch to “Act” mode once I have reviewed the plan and answered any questions. It produces many markdown files to record these plans and I’m not sure if it consults the correct ones each time.
I’m not afraid to interrupt Cline if I see some reasoning that doesn’t add up or doesn’t agree with my vision. And, I realize that we need to progress in small steps, building up a feature in phases and it is better to work through bugs one by one (and force Cline to plan its way through them) rather than giving it a long list.
In this manner, we have approached the note-taking capabilities from a different angle, ignoring the display aspect and concentrating on a full-screen markdown editor with autosave, all of which appears to be working correctly. We have plans to add support for multiple open items/documents, and once all that is solid, we’ll try to approach the display issue again.
There’s no question that I’m doing things that I never would have been able to do by myself, and I have made a working unified link management/to-do list/note taking hybrid with a single search mechanism. In doing so, I understand my relationship with developers better. But I still wish that Cline would remember not to forget that it should remind itself of what it did half an hour ago!
Leave a Reply