← Reports

Boris Cherny's Claude Code Setup

72 tips from the creator of Claude Code • What we adopted for Luci & Lucienne

7.4M views 98K saves 72 tips across 9 parts Jan-Mar 2026

The Original 13 Tips (January 2, 2026)

Boris's first thread that started it all. His setup is "surprisingly vanilla."

1 Run 5 Claudes in Parallel PARTIAL

5 terminal instances, each in its own separate git worktree so edits don't conflict. iTerm2 notifications alert when any Claude needs input.

"I run 5 instances of Claude Code simultaneously, each in its own separate git checkout."

Our status: We run parallel ticket workers via mc_pickup.py. Just added --worktree for isolation (commit 8543f7a). Main session + workers now won't conflict.

2 Parallel Web + Mobile Sessions N/A

5-10 additional sessions on claude.ai/code. Uses & to background sessions and --teleport to move between local/web. Starts from iPhone, picks up on computer.

Our status: Not applicable — Luci runs server-side only. But Elmar could use claude.ai/code for quick tasks while Luci handles the heavy lifting.

3 Opus with Thinking for Everything ADOPTED

Uses Opus 4.5 (now 4.6) with thinking mode for every task. Slower per-request but faster to completion because less steering.

"Best coding model I've ever used — requires less steering, better tool use, so it's actually faster overall."

Our status: We run Opus 4.6 (1M context). Already aligned.

4 Shared CLAUDE.md Checked into Git ADOPTED

Single CLAUDE.md per repo, shared by the whole team. Updated multiple times per week. "Anytime Claude does something wrong, add it to CLAUDE.md."

"Compounding Engineering — the AI gets smarter about the codebase over time."

Our status: We have CLAUDE.md. Just added "Update CLAUDE.md if you learned something" as step 10 of every Tier 2 task (commit 8543f7a).

5 @.claude in Code Reviews TO ADOPT

Tags @.claude on PRs to add learnings to CLAUDE.md as part of the PR itself. Uses the Claude Code GitHub Action.

Our status: We don't use GitHub Actions. Could add a similar pattern where ticket workers auto-update CLAUDE.md on PR creation.

6 Start in Plan Mode ADOPTED

Most sessions start in plan mode. Plan → refine → auto-accept → Claude one-shots the implementation.

"A good plan is really important to avoid issues down the line."

Our status: Added as step 1 of every Tier 2 task. We also have the autoplan skill for complex tasks.

7 Slash Commands for Inner Loops ADOPTED

Uses slash commands for workflows done many times daily. Commands checked into git under .claude/commands/ and shared with the team. Commands can include inline Bash.

Our status: We use skills (90+ at ~/.claude/skills/). Same concept, different name. Our skills are more powerful (full SKILL.md with frontmatter, auto-triggering).

8 Subagents for Common Workflows ADOPTED

Thinks of subagents as "automations for common PR workflows." Examples: code-simplifier.md, verify-app.md, build-validator.md.

"Append 'use subagents' to any request where you want more compute thrown at the problem."

Our status: Added "use subagents for complex tasks" to Tier 2 workflow (commit 8543f7a). We already use subagents for research tasks.

9 PostToolUse Hooks for Auto-Formatting PARTIAL

Runs formatter on every Write/Edit via hook. Catches the 10% Claude gets wrong.

{
  "PostToolUse": [{
    "matcher": "Write|Edit",
    "hooks": [{"type": "command", "command": "bun run format || true"}]
  }]
}

Our status: We have PostToolUse hooks but for MC ticket tracking, not formatting. Could add a Python formatter hook (black/ruff) alongside.

10 Pre-Allow Safe Permissions DIFFERENT

Does NOT use --dangerously-skip-permissions. Uses /permissions to pre-allow safe commands like bun run build:*.

Our status: We use --dangerously-skip-permissions since Luci is infrastructure, not interactive. Boris's approach is better for human developers — ours is correct for an always-on server agent.

11 Tool Integrations via MCP ADOPTED

Claude uses all his tools autonomously: Slack (MCP), BigQuery (bq CLI), Sentry. MCP config shared with team.

Our status: We have Telegram, Brave Search, Tavily, Firecrawl, Context7 as MCP servers. Could add more (Sentry equivalent for error monitoring).

12 Handle Long-Running Tasks ADOPTED

Uses background agents, Stop hooks for verification, and the "ralph-wiggum" plugin for autonomous loops.

Our status: We have the ralph skill and background ticket workers. Well aligned.

13 Verification Loops (Most Important) ADOPTED

Give Claude a way to verify its own work. This 2-3x the quality of the final result.

"Probably the most important thing to get great results out of Claude Code — give Claude a way to verify its work."

Our status: Added "Verify before marking done — run tests, typecheck, lint" as step 4 of every Tier 2 task (commit 8543f7a). We also have playwright for browser testing.

Team Tips (January 31, 2026)

10 more tips from the Anthropic Claude Code team.

1 Git Worktrees over Checkouts JUST ADOPTED

Spin up 3-5 git worktrees, each running its own Claude session. "Single biggest productivity unlock." Shell aliases to hop between them. Dedicated "analysis" worktree for logs/queries.

Our status: Just added --worktree to ticket workers in mc_pickup.py.

2 Plan Mode with Review PARTIAL

Have Claude write the plan, then spin up a second Claude to review it as a staff engineer. Switch back to plan mode the moment something goes sideways.

Our status: We have autoplan which runs CEO + design + eng review. The "second Claude reviews the plan" pattern could be added.

3 CLAUDE.md as Living Memory ADOPTED

"After every correction, end with: 'Update your CLAUDE.md so you don't make that mistake again.' Claude is eerily good at writing rules for itself."

Ruthlessly edit over time. One engineer has Claude maintain a notes directory per task/project.

4 Create Your Own Skills ADOPTED

If you do something more than once a day, turn it into a skill/command. Build a /techdebt command. Set up a slash command that syncs 7 days of Slack, GDrive, Asana, and GitHub into one context dump.

Our status: 90+ skills. Well ahead here.

5 Claude Fixes Most Bugs by Itself ADOPTED

Enable Slack MCP, paste a bug thread, say "fix." Point Claude at docker logs. Say "Go fix the failing CI tests."

Our status: Our ticket workers do exactly this — MC tickets describe bugs, workers fix them.

6 Level Up Prompting TO CONSIDER

"Grill me on these changes and don't make a PR until I pass your test."
"Knowing everything you know now, scrap this and implement the elegant solution."

Challenge Claude for better results. Write detailed specs to reduce ambiguity.

7 Use Voice Dictation FOR ELMAR

"You speak 3x faster than you type, and prompts get way more detailed."

Note for Elmar: Your Telegram voice messages already do this. Consider using voice-to-text for MC ticket descriptions too — more detail = better results.

8 Use Subagents Liberally ADOPTED

Route permission requests to Opus via a hook for auto-approval of safe ones. Append "use subagents" for more compute.

9 Claude for Data & Analytics ADOPTED

"Personally, I haven't written a line of SQL in 6+ months."

Our status: We have x3-finance skill for Sage X3 SQL, flightaware-data for flight data, BigQuery equivalent workflows.

10 Learning with Claude OPTIONAL

Enable "Explanatory" or "Learning" output style. Have Claude generate visual HTML presentations explaining code. Ask for ASCII diagrams.

Advanced Features (Feb-Mar 2026)

Parts 3-7: customization, worktrees, /simplify, /batch, /loop, code review, and more.

/simplify HAVE SKILL

Runs parallel agents to review changed code for reuse, quality, and efficiency. We have this as the simplify skill.

/batch for Code Migrations TO EXPLORE

Interactively plans code migrations then executes in parallel using dozens of agents with worktree isolation. Could be useful for large refactors across our codebase.

/loop for Recurring Tasks HAVE SKILL

Schedules recurring tasks for up to 3 days unattended — PR babysitting, Slack summaries, deploy monitoring. We have the loop skill plus our own scheduler.

Automated Code Review ADOPTED

Dispatches a team of agents per PR — catches real bugs. We have second-opinion (council review with Gemini + Codex) and the nightly Larry code review.

/effort max TO ADOPT

Uses deepest reasoning mode. We should ensure all ticket workers run at max effort for complex tasks.

PostCompact Hook TO EXPLORE

Hook that fires when conversation is auto-compacted (summarized to save tokens). Could save important context to memory before it's compressed away. Relevant to our memory problem.

Session Naming PARTIAL

Names sessions for easy identification. Our sessions are tracked in MC with ticket IDs but don't have human-readable names.

10 Key Principles

The patterns that emerge across all 72 tips.

1. Parallelization is the biggest unlock

Multiple worktrees/sessions running simultaneously. Throw compute at the problem.

2. Use the best model

Opus with thinking. Slower per-request but faster to completion because less steering needed.

3. CLAUDE.md is a living, team-shared document

Every mistake becomes a rule. The AI compounds knowledge over time. "Compounding Engineering."

4. Plan before executing

Good plans lead to one-shot implementations. Bad plans lead to spiraling debug sessions.

5. Verification loops are the #1 quality multiplier

2-3x improvement when Claude can verify its own work. Tests, typecheck, lint, browser testing.

6. Automate your inner loops

Slash commands, subagents, hooks for anything done more than once a day.

7. Integrate deeply

Connect Claude to all your tools via MCP. Full context = better decisions.

8. Don't over-customize

"Surprisingly vanilla" setup. The tool works great out of the box. Focus on CLAUDE.md and workflow, not complex configs.

9. Challenge Claude

Don't accept first solutions. Push for elegance. Have Claude review its own work. "Scrap this and implement the elegant solution."

10. Use voice dictation

3x faster than typing. More detailed prompts = better results.

Our Adoption Status

How our Luci/Lucienne setup compares to Boris's recommendations.

PracticeBorisOur StatusGap
Parallel sessions5 terminals + 5-10 webTicket workers + main sessionAligned
Git worktreesEach session in own worktreeJust added to mc_pickup.pyAdopted
Opus + thinkingAlways Opus, always thinkingOpus 4.6 (1M context)Aligned
CLAUDE.mdTeam-shared, updated weeklyHave it, now auto-updatingAligned
Plan mode firstStart every session in planStep 1 of Tier 2 workflowAdopted
Verification loops"Most important tip"Step 4 of Tier 2 workflowAdopted
SubagentsLiberal use, "use subagents"Step 2 of Tier 2 workflowAdopted
Skills/commandsDaily workflows as commands90+ skillsAhead
MCP integrationsSlack, BigQuery, SentryTelegram, Brave, Tavily, etc.Aligned
PostToolUse hooksAuto-format on Write/EditHave hooks, not for formattingCould add
@.claude in PRsAuto-add to CLAUDE.md from PRsNot yetCould add
/batch migrationsParallel agents for large changesNot yetTo explore
/effort maxDeepest reasoning for complex tasksNot configuredEasy add
PostCompact hookSave context before compressionNot yetRelevant to memory
Voice dictation3x faster, more detailedElmar uses Telegram voiceAlready there

Action Items

What we've done and what's left to do.

Worktree isolation for workers

mc_pickup.py now uses --worktree. Each ticket worker gets an isolated copy.

Done (8543f7a)

Verification step in workflow

"Verify before marking done" added as step 4 of Tier 2.

Done (8543f7a)

Subagents in workflow

"Use subagents for complex tasks" added as step 2 of Tier 2.

Done (8543f7a)

CLAUDE.md self-updating

"Update CLAUDE.md if you learned something" added as step 10 of Tier 2.

Done (8543f7a)

Always commit rule

Key Rule #7: every completed unit of work must be committed.

Done

PostToolUse formatter hook

Add ruff/black auto-format on Write/Edit for Python files.

To do

PostCompact memory save hook

Save important context to memory before conversation compression. Addresses the memory loss problem.

To do — tied to memory architecture

/effort max for complex tasks

Ensure ticket workers use maximum reasoning depth for Tier 2 tasks.

To do — check flag availability