Back To Blog

Part 2: From Claude.ai to Claude Code – and Back Again

This is the 2nd part of a series on using Claude Code. The introduction is here.

I’ve been working on Heirloom, an AI-assisted family memoir platform using a Laravel API as a backend, and a front end in Next.js. I’d got it to the first stage, where I could feed in (AI-generated) transcriptions of an imaginary interview and generate a coherent narrative out of the back and forth. I needed to take it to the next level – expand the admin panel to view the completed narratives, and start refining the interview process to allow iteration. I thought this might be a good place to start with Claude Code. I configured my Claude Code with the Claude.mdfile the actual creator of Claude Code uses:

So far so good. I had CC (Claude Code) run a scan of the apps to detect any issues. It found a couple of small things it duly fixed. Then, following the guidlines set out by Anthropic’s own Skilljar tutorial series, I put Claude Code in ‘Plan’ mode and had it lay out what it would then configured it so I had to sign off on each of the changes it made. I’d reached stage one with the Heirloom app I am working on, a Laravel dashboard which serves as an API for the Storywriter app (built with React Native) and the Heirloom front end (built with Next.js). I needed to:

  • expand the admin to read the narratives generated from each session (using the dummy transcripts I had Claude.ai generate to simulate an interview. I could read them in the Next.js front end, but I needed to be able to read them in the Laravel API backend as well.
  • I needed to be able to delete the sessions, which were already running into the dozens as I tested features over and over, and the narratives, when they appeared.
  • I then needed to make the sessions iterative, allowing the user to ask one set of questions, generate a narrative, then ask a follow up set of questions, add the transcript back to the narrative and update it accordingly – and be able to do this until they had enough information to create a narrative they were satisfied with.

I messed up, in preparing my prompt, to follow the procedure I’d followed using Claude.ai: generating a PHP Unit Test with each new feature, which was my first lesson in using Claude Code: it’s easy to overlook things you wouldn’t in iterative discussions with Claude.ai, where the AI (inside project memory) will likely remind you if you miss this step. Claude Code will not. I set CC to to prompt for my approval before making any changes so I could monitor what it was doing. However, this was quite a different process from monitoring Claude.ai as it sometimes took CC a few minutes to run through a task, and I ended up doing other things, and the constant prompts became distracting. I’d glimpse over the changes, struggling to read in the Terminal, then hit ‘yes’.

In the end, none of the changes I’d asked for showed up in the app, and I ended up spending more time doing a git status check to see what files had been affected, then going through those files, trying to see what had actually been updated and why the changes I’d requested hadn’t shown up in the app. I found hardly any changes at all, and ended up going back to Claude.ai, describing what I wanted to do and making the code changes myself. As it turned out, I did what I needed to in half the time I’d spent on Claude Code, and that was my second lesson: Claude Code is not appropriate for everything.

But as I still had the THIRD task I needed to do, and as I was to find out, this was one task Claude Code WAS appropriate for.

TBC . . .

Back To Blog

Trying Claude Code

I first found out about Claude Code at the AWS Summit here in NYC at the Anthropic booth but resisted using it until very recently. The entire AWS conference had been suffused with euphoria at the miracle that was going to be Agentic AI, culminating in a triumphant demo by AWS itself of their agentic tool suite, including an Agentic Coding Tool, presented by one of their own devs, who had the halting, trepidatious delivery of a man with a gun trained on him somewhere off-screen, describing how this miraculous tool had made his workflow infinitely more efficient.

My skepticism was not helped by attempting to debug and clean up the code generated by friends who’d ‘vibe-coded’ apps using mostly Claude Code. AI, particularly in the hands of people who don’t know how to code, generates a very particular type of code, different from human-generated code. Verboseness is one of the adjectives that comes to mind: files nearly a thousand lines long. Impenetrable is another, with no recognizable human logic at play.

Besides, I didn’t see the point. Using first Chat GPT, then Gemeni, then Claude.ai took focus enough, where I (mostly) looked over the generated code before copy/pasting into VS Code. I likened using the LLMs to write code to riding a horse: you have to stay focused and make sure you know where the horse is going, otherwise the horse will throw you off its back and go in whatever direction it wants (this happened to me in my very short spell riding horses growing up in rural Alberta) or, in the case of LLMs, spewing gibberish while going down an AI wormhole. Claude Code (or any agentic coding tool) seemed like it would be riding a whole team of horses. I read about devs running 15 agents at once, or running agents for so long, so desperate to fulfill as many PRs as possible, they’d walk around with their laptops half-open to keep their agents running. All this seemed crazed, and more work than it was worth. I was relying on AI too much as it was.

But then I started meeting devs who WERE using it. A dev shop I wanted to work with who used Claude Code for their prototypiing, and in the kind of dev-peer to dev-peer interview that, once common, are all too rare now, explained how they came over their own skepticism and outlined how they’d managed the team of horses that is Claude Code under control. So, when I had some free time a couple of weeks ago, I decided to give Agentic AI a shot.

Next Post: From Claude Code Back to Claude.ai