How I'm Using Claude Code (late 2025)

2025-12-29
My Claude Code setup + tips for "vibe engineering":

When building a big feature, I keep two Claude Code sessions active in separate terminal windows: an “architect" and an "engineer”.

The "architect" spits out pretty comprehensive design specs and implementation plans. Its sole job is to help me refine the idea, ask me questions, and come up with good markdown specs.

(This is a bit similar to the /plan mode in Claude Code and Cursor, except I ask my "architect" to grill me more on questions and ask them one by one.)

I then review the design spec and plans over and over, especially design decisions that are expensive to correct later (like db changes, styling).

I give all the specs to the "engineer" (use @ to attach the .md files), and ask if it has any questions. Then I ask it to execute them, chunk by chunk. The plans are usually so detailed that I let it YOLO with "accept all edits”.

Once the "engineer" is done, I ask "architect" to review the changes. (Again, @ to attach the new or modified files). I'll have the "engineer" fix any blockers, then have it commit the changes.

As a one-time investment, I already wrote up a detailed ~/.CLAUDE.md to steer Claude according to my coding preferences. I told it how to approach testing, how to write commits, even how to name git branches. I highly recommend everyone to spend 15 mins writing a custom ~/.CLAUDE.md. Even tiny things like asking Claude to "address me by my first name" have improved my user experience.

Over a few weeks of development, I'll end up with a junk of markdown files scattered in my docs/ or plans/ folder. A lot of it is stale from things that have already been implemented, but I don’t delete them outright because they have important “business context” and decision making subtleties captured in there. So every once in a while I run a “Pruner” Claude session that reads through all markdown files in my codebase and consolidates, updates, and archives the files. I also ask it to append 'design decisions' ("how to decide between X vs Y", "what we care about" kind of decisions) to a master log file. You can think of "Pruner" Claude as the "consolidator" and "garbage collector" for all the context that has been built up over the weeks. Same way humans have sleep.

Over a few weeks I also accumulate lots of chat sessions. Once in a while I'll hit /resume and then hit r for each chat to rename it to something easily identifiable, like "[architect] [settings page revamp]". Makes it much easier to find an old chat.

I've heard "hooks" are pretty helpful but I haven't blocked out time yet to learn how to use them. Same goes for Claude Skills. From my understanding they're just pre-written prompts that Claude can decide when to use / not use. For coding, the overall system prompt + my ~/.CLAUDE.md is usually good enough so I haven't dug deep into Skills.

I also haven’t been using multiple Claude Code agents in parallel. I know many people like it. For me, one “engineer” session already spits out enough code as it is and I find it really important to hand-review the work (especially at the final ‘Merge PR’ stage).


My picture

Written by Aryan Bhasin