Use Claude Opus 4.5 - it's the most capable model. If your company is paying for it, take advantage of it.
Nobody has time to approve every single action. If you trust your setup, run with --dangerously-skip-permissions. It's fine.
A small, well-placed CLAUDE.md file makes a big difference. Put project-specific instructions where they'll be found - at the repo root or in .claude/.
Both let you create reusable workflows. The difference:
- Slash commands (
/command-name): Explicit, user-invoked macros. Predictable - runs exactly when you call it. Store in.claude/commands/. - Skills: Capability packages Claude loads automatically when your request matches the skill's description. Good for "always apply when relevant" team standards, but discovery can be unreliable.
Rule of thumb: Use slash commands for deterministic workflows you want explicit control over. Use skills when you want Claude to opportunistically apply knowledge/checklists without you remembering to invoke them.
Be conscious of context window cleanliness. If past context is helpful for your next task, it's fine to pivot within the same session. Otherwise, start a new session for unrelated work.
Claude Code excels at CLI-heavy workflows. If something has a CLI, give it to Claude Code.
MCP servers can be finicky, but CLI tools have decades of maturity. Prefer:
- GitHub: Use
ghinstead of a GitHub MCP server - Git: Direct git commands
- Kubernetes:
kubectl - Azure:
azCLI - Clipboard:
pbpaste/pbcopy(macOS),Get-Clipboard/Set-Clipboard(PowerShell on Windows) - VPN: Whatever CLI your VPN provides for enable/disable and network switching
- Double-tap Escape: Pull up conversation history with the option to rewind. You can optionally remove code written in the rewound section.
/resume: Browse past conversations in the same working directory. Great for "I had to restart my computer" scenarios or continuing previous work.
Work on multiple unrelated tasks simultaneously. No need to wait for one Claude Code session to finish one task before starting the next. I basically use git worktree instead of git branch: one worktree per task. One Claude Code instance per task. (Note: I don't do any of that fancy "let's do all the steps of the plan in parallel via worktrees and then merge them at the end" stuff.)
Advanced: Forking Conversations with Worktrees
Want to continue your current conversation AND go back to an earlier point to try something different? Use this workflow:
- Leave your current session running in terminal tab 1
- Open a new terminal tab (tab 2) in a different worktree
- Run
/resumeand select your current conversation (now you have two copies at the same point) - Rewind one of them (now you have two divergent copies exploring different approaches)
Each tab operates in its own worktree, so the contexts remain truly independent.
Claude can view screenshots - very useful for debugging UI issues. You can either:
- Tell Claude to read an image file on your machine
- Paste directly into the conversation (Ctrl+V on macOS, likely the same on Windows, possibly Alt+V)
For cutting-edge information, don't rely solely on Claude's training data. I have a /so-question command that formats the problem as a self-contained Stack Overflow question, then I paste this into ChatGPT with web search enabled (it sometimes does 100+ searches). This back-and-forth between implementation and research helps when Claude's knowledge might be outdated.
- superpowers: A Claude Code plugin with useful skills. I particularly use:
- Brainstorming
- TDD (Test-Driven Development)
- beads: A more robust TODO/issue tracker than Claude Code's built-in TodoWrite