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 . . .