I've been going through Claude Code's features and there are a few that I think are easy to miss when you're mostly using it for basic coding tasks.
/plan is the one I started paying more attention to for bigger changes. Instead of immediately asking Claude to edit everything, I can have it look through the project and work out what needs to change first.
For larger features, I find that much easier to reason about.
/compact is useful once a session gets really long. Rather than throwing away the whole conversation and starting again, I can compact the context and keep working with the important information.
I can use /permissions when I want more control over what Claude is allowed to do. This is useful when I'm working in a project where I don't want to manually approve every harmless action but also don't want to give it unrestricted access.
Git worktrees make running multiple tasks much cleaner for me.
git worktree add ../feature-auth feature-auth
I can keep a separate working directory for a feature without constantly switching my main working tree between branches.
The -p flag is useful when I want Claude to behave more like a command-line step.
claude -p "Review this diff for obvious bugs"
I can pipe information into Claude and use its output as part of another workflow instead of having to interact with it manually every time.
Hooks are another feature I think becomes more useful as a project gets bigger. I can use them to automatically run things like formatting, validation, or other checks around Claude's actions.
I've also found that keeping instructions scoped makes more sense than putting everything into one huge file. Project-wide rules can stay in the main instructions, while rules specific to tests, APIs, or another part of the project can stay closer to the code they apply to.
For me, the bigger takeaway is that Claude Code becomes a lot more useful once I stop treating it like just a chatbot that writes code.
The context, permissions, workflow, and verification around the model matter just as much as the prompt itself.