I’ve been pretty skeptical about AI for software development. I recently started a new job at Netwrix, and I’ve been encouraged to really give it a go. So, I’ve taken this first month to try it out in earnest. We’re using Claude Code. Here’s what I’ve found:
It’s really helpful to get a high-level overview of existing code bases. I can clone repositories and ask Claude to summarize the project. I get a 10,000-foot overview of the architecture, capabilities, and dependencies. I can ask it to focus in on areas of interest and ask deeper questions. As a new employee in a high-level engineering IC role, this capability is invaluable in getting a lay of the land.
I’ve also found it useful, when combined with the Superpowers plugin and skills, for designing, planning, and executing features. I start with the “brainstorming” skill. I describe at a high level what I want to do, like “add backend for frontend handling for OIDC” or “set up CI with artifact publishing on merges to main, and optional publication of preview artifacts on pull requests”. It will then get to work, searching the web as needed, and ask me some clarifying questions. I’ll go back and forth with it, and when it thinks it has a design, it presents me with a design markdown document. It goes through it with me section by section, and we review it, perhaps asking questions on things that are unclear to me or just don’t seem right. Claude will work some more, often presenting me with options. From there, I’ll ask about the trade-offs and sometimes ask about an option I know about that it didn’t consider. This back and forth will continue until I’m satisfied with the design. I can then take this design to the team, product security, and stakeholders as needed to make sure we agree. If necessary, we can fire up Claude again and tell it we want to revise the design. The important thing here is that there is still a human (or multiple humans) in the loop throughout the design process.
Once we have a design that we like, I’ll use the “write plan” skill, again from Superpowers. I’ll do this in a new session with a fresh context window. Claude will load up the design document, examine the code base, and start breaking it down into workable tasks, organized in phases if there are a lot of them. Claude may again ask some clarifying questions and present me with an implementation plan, again in the form of a markdown document, for review. I use the tool to make any revisions necessary before moving on to implementation. Again, there’s a human in the loop, supervising and making decisions. I find here that if there’s more than a dozen or so tasks, it’s a sign that what I’m looking to do is probably too big to be reasonably implemented in a single PR. I haven’t yet settled on the best strategy to deal with this. One option I’m considering is doing one section of work per worktree and PR that. I know that what I don’t want to do is dump a 10k line PR and ask my team or Claude to review it.
When I’m ready to start implementation, I’ll again clear the context and use the “implement plan” skill to start a new worktree. This skill uses the implementation plan from the previous session to start working on the tasks in chunks. It has been given the directive to make commits after every task. As with the previous steps, I remain in the loop, reviewing the code Claude generates before allowing it to commit. If I’m not happy with what I see, I’ll check with the implementation plan to make sure that my concern isn’t going to be addressed in a future task. Otherwise, I’ll tell Claude not to commit and address the issues. Once I’m happy with that, I’ll allow Claude to commit. One of the nice things that this skill does when it crafts commits is that it includes the Co-Authored-By: trailer. This is a clear indicator to others that Claude assisted with this, and it shows as much in GitHub. Another nice thing of the Superpowers plugin is that it includes a subagent that is tasked with reviewing the last commit, checking it against the plan as well as best practices. If it finds issues, it will send it back to the implementation agent to correct. Pretty neat!
Once the tasks are complete, Claude prompts me to open a pull request. When I agree to, it crafts a detailed description of the change so that others can understand better the intent of the change. In some cases, it will include a checklist of actions that remain to be taken for verification. I’ve found pretty good success having Claude, after clearing the context, ready the PR description and assist me with performing those tasks.
My overall takeaways:
I’m impressed with Claude’s capabilities, especially when coupled with the Superpowers plugin. I find it imperative to keep myself in the loop at all phases, to help keep things on track. I also find that the Superpowers workflows model the ways in which I would (or should) work in the absence of an AI assistant. In fact, I feel like it is helping me to be more disciplined in that regard, and more work for me when I try to take on too much at once.
Now that Anthropic has released Opus 4.6, it will be interesting to see how the frequency with which I have to manage context changes.
Top comments (0)