Proficient, Want New Tips

Power-user patterns and advanced techniques for developers already comfortable with AI-assisted coding. Each tip is battle-tested by developers shipping production code daily.

01

Parallel Claude Instances

Run 5-10 Claude instances simultaneously for different purposes. Boris Cherny (creator of Claude Code) runs 5 instances locally in numbered terminal tabs, plus 5-10 additional sessions on claude.ai/code. He uses system notifications to know when Claude needs input and treats AI as schedulable capacity, optimizing for attention allocation rather than generation speed.

✍️
Writer instance Generates code with full creative freedom
🔍
Reviewer instance Reviews code with no knowledge of writer's constraints
🧭
Explorer instance Researches and answers questions
Setup: Create terminal tabs 1-5, each running claude. Enable system notifications so you know when any instance needs attention. Start mobile sessions for async tasks.
02

Git Worktrees for Isolation

Git worktrees let you have multiple branches checked out simultaneously in different directories. Each worktree gets its own Claude instance with completely isolated changes. Instance 1 refactors the auth system while Instance 2 builds a dashboard component. No merge conflicts, no cross-contamination.

# Create worktrees for parallel work
git worktree add ../project-feature-a feature-a
git worktree add ../project-feature-b feature-b
git worktree add ../project-bugfix hotfix/login-issue

# Open each in a new terminal, run Claude in each cd ../project-feature-a && claude

⚠️ Only use for independent tasks. If tasks interact (touching the same files or depending on each other's output), this creates merge nightmares.

03

Subagents for Exploration

When you need to research something, spawn a subagent instead of polluting your main context. The subagent explores, takes notes, and returns a summary, keeping your main session clean and focused. Boris Cherny uses specialized subagents like code-simplifier and verify-app to automate common workflows.

Try This

Ask Claude to spawn a subagent for research:

Use a subagent to find all places in this codebase where we handle authentication errors. Summarize the patterns you find.

Best for: Codebase exploration, understanding existing patterns, investigating bugs, researching dependencies. Main context stays clean with just the conclusions.

04

Slash Commands as Infrastructure

Create custom slash commands for repetitive workflows. Put a markdown file in .claude/commands/ and it becomes available as /project:filename. Boris Cherny uses /commit-push-pr dozens of times every day. Commands are checked into git so your whole team shares them.

# .claude/commands/fix-issue.md
# Fix Issue $ARGUMENTS
  1. Run gh issue view $ARGUMENTS to understand the issue
  2. Search the codebase for relevant files
  3. Implement the fix
  4. Write tests if appropriate
  5. Commit with a message referencing issue #$ARGUMENTS
Usage: /project:fix-issue 1234 handles the entire workflow. Commands can include inline bash to precompute information. Personal commands go in ~/.claude/commands/.
05

MCP Servers for Tool Extension

MCP (Model Context Protocol) connects Claude to external tools and data sources. Without it, Claude is limited to filesystem and shell. With it, Claude can query databases, control browsers, post to Slack, pull Sentry errors, and more. Configurations are shared in .mcp.json.

🗃️
PostgreSQL/MySQL Query databases, check schemas, verify data
🔴
Sentry Pull recent errors, stack traces, frequency data
🌐
Playwright/Puppeteer Visual verification, screenshots, browser automation
⚠️ Each MCP server adds tool definitions to your context window. Enable what you need, disable what you don't. Check with /context.
05b

Visual Verification with Playwright

Claude can't see UI output by default. A Playwright or Puppeteer MCP server lets Claude view its own frontend work, take screenshots, and iterate until visual output matches your expectations. This closes the feedback loop for UI development.

📸
Screenshot verification Claude sees what users see, catches visual bugs
🔄
Iterative refinement Build, screenshot, compare, fix, repeat
🧪
E2E testing support Verify user flows work end-to-end
// .mcp.json - Playwright MCP setup
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@anthropic/mcp-playwright"]
    }
  }
}
Use cases: UI component development, responsive design verification, comparing output to mockups, catching CSS regressions, verifying interactive behaviors work correctly.
06

Extended Thinking Triggers

Claude Code allocates more reasoning compute when you include the word "think" in your prompt. Different phrases trigger different thinking budgets. This is a Claude Code specific feature that doesn't apply to the chat interface or API.

💭
"think" Basic extended thinking
🧠
"think hard" / "think deeply" More reasoning budget
"ultrathink" Maximum reasoning budget
When to use: Architecture decisions ("ultrathink"), debugging mysterious issues ("think hard"), security reviews, or any time you want Claude to slow down rather than jump to implementation.
# Quick fix - no trigger needed
"Fix the null pointer exception in auth.js"

# Architecture decision - maximum thinking "Ultrathink about how to structure this API. What are the tradeoffs between REST and GraphQL for our use case?"

# Debugging - moderate thinking "Think hard about why this race condition occurs."

07

The Rule of Five

Jeffrey Emanuel discovered that agents produce their best work after 4-5 review iterations. First outputs are drafts. Have Claude review its own proposals and implementations repeatedly. Each review should be slightly broader than the last. After 4-5 passes, the agent will say "this is as good as we can make it." That's when you can moderately trust the output.

1
Initial implementation
2
Review: bugs, edge cases
3
Review: architecture
4
Review: broad concerns
5
Convergence
Try This

After Claude implements something:

Review this implementation for bugs, edge cases, and security issues. Then do a second review looking at architecture and design. What could be simpler?
08

Writer-Reviewer Split

For critical code, use a two-phase approach with separate context. Claude reviewing its own work in the same session tends to defend its choices. A fresh instance with no investment in the code reviews more critically. This catches issues the writer might rationalize away.

✍️ Phase 1: Generation

Claude A writes code with full creative freedom

🔍 Phase 2: Review

/clear or fresh instance. Claude B reviews with strict criteria

💡 Pro Tip

Give the reviewer instance a critical persona: 'You are a senior engineer reviewing a junior developer's code. Find problems. Be skeptical of claims that something works.'

09

Checklist-Driven Migrations

For large tasks with many steps (migrations, multi-file refactors, launch checklists), have Claude write a checklist to a markdown file. The file serves as progress tracking and a recovery point if context resets. If Claude hits the 20-turn cliff, the checklist shows what's done and what's left.

## Migration Checklist
- [x] Update imports in src/components/*
- [x] Migrate state management in src/stores/*
- [ ] Update tests in src/__tests__/*
- [ ] Update documentation
- [ ] Run full test suite
- [ ] Manual QA pass
Try This

Start a large migration:

Create CHECKLIST.md with every file that needs updating for this migration. Work through items one by one, checking them off as you go.
10

Plan Mode First

Boris Cherny starts most sessions in Plan mode (Shift+Tab twice). He goes back and forth with Claude until satisfied with its plan, then switches into auto-accept edits mode. Claude can usually one-shot the implementation from there. Planning prevents unwanted changes by establishing intent and constraints before execution.

1
Enter Plan mode
2
Iterate on plan
3
Approve plan
4
Auto-accept mode
5
One-shot implement
Key benefit: Reading Claude's planning thoughts is easier than debugging walls of code flying at you. The words "think" and "think hard" trigger extended reasoning.
💡 Multi-session work: For tasks spanning multiple sessions, have Claude write the plan to a markdown file (e.g., plan.md). Plans in files persist across context resets. Start each new session by reading the plan file to restore context.
11

Verification Loops

"Probably the most important thing: give Claude a way to verify its work." (Boris Cherny) This feedback loop will 2-3x the quality of results. Tests, screenshots, visual comparisons: anything that lets Claude iterate until it meets standards. You don't trust; you instrument.

🧪
Test-driven Write tests first, iterate until green
📸
Visual feedback Screenshots via Puppeteer MCP, compare to target
Separate reviewer Fresh instance catches rationalized issues
Try This

For visual work:

Take a screenshot of the current state. Compare to this target [paste image]. What's different? Fix it and screenshot again.
12

40% Time on Code Health

Steve Yegge recommends spending 30-40% of your time on code health. Have agents conduct regular code inspections: large files needing refactoring, low test coverage, duplicated systems, legacy code, dead code. Without this, you rapidly accumulate invisible technical debt that slows your agents down.

🔍 Find code smells and file issues
📁 Clean up debug cruft, old docs, build artifacts
✂️ Break up files > 500 lines
🔄 Consolidate redundant systems
Try This

Schedule regular code health reviews:

Review this codebase for code smells: large files, low coverage, duplicated logic, dead code. File issues for anything that needs followup.
13

PostToolUse Hooks

Use hooks to handle final formatting details automatically. Boris Cherny uses PostToolUse hooks to prevent CI errors by running lint, format, and typecheck after edits. This shifts craft from writing perfect code to building reliable systems around AI output.

// .claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "tool": "edit",
        "command": "npm run lint:fix && npm run format"
      }
    ]
  }
}
Philosophy: Make the right action default. Pre-allow safe bash commands via /permissions. Share permission configurations with your team.

The Common Thread

All these techniques share one philosophy: treat Claude as infrastructure, not magic. Optimize for systems that reliably produce needed outputs, not just better individual responses. Context orchestration, not prompt engineering, is the game.

Where to Go Next