Use the chat surface for the parts that need human judgment: scoping, debating tradeoffs, turning a CodeRabbit comment into a sharp patch. Long context holds the whole plan + relevant files.
Ship code with AI
The full SDLC with three Anthropic-and-friends tools. Claude (chat) scopes the change so the diff stays small. Claude Code, the terminal agent, writes and edits across files without copy-pasting context. CodeRabbit reviews every PR, Claude turns its findings into patches, and the human reviewer only sees clean diffs.
Once the plan is locked, hand the implementation to Claude Code. It runs in your repo, reads the file system, executes commands, and edits files in place — no per-turn paste loop. Skills + hooks let you encode local conventions.
Runs on every push without configuration. Reads the diff in context of the whole repo, leaves inline comments tagged by severity, and ships a 1-paragraph PR summary. Free tier covers OSS; $12/dev/mo for private repos.
- claudeFree tier
- claude-codeFree with Claude tier
- coderabbitFree (OSS)
- claude$20 (covers Claude Code)
- claude-codeBundled
- coderabbit$12/dev
- claude$20
- claude-code$100 Max plan (heavy use)
- coderabbit$60 (5 devs)
- 1Scope the change with ClaudeClaude
Drop the ticket or 1-paragraph problem statement into Claude. Get back a plan: files to touch, edge cases, the smallest viable diff.
Prompt · Scope a change from a ticketI need a plan, not code yet, for the following change. Ticket / problem statement: """ {{paste ticket or 1-paragraph description}} """ Repo context: - Language / framework: {{e.g. TypeScript + Next.js 16 App Router}} - Where the change probably lives: {{e.g. lib/auth, app/api/billing}} - Constraints I care about: {{e.g. no schema migration this week, must stay backwards compatible with v1 clients}} Output, in this order: 1. **Restated problem** in 2 sentences (so I can confirm we're solving the right thing). 2. **Files to touch** as a bulleted list with a 1-line "why" each. 3. **Smallest viable diff** in 5 to 8 bullets describing the change. 4. **Edge cases** the diff has to handle (3 to 5 specific ones). 5. **What I should NOT change** to keep the PR small. If the request is ambiguous, ask 1 to 2 specific clarifying questions before the plan. - 2Hand the plan to Claude CodeClaude Code
Drop into your repo, run `claude`, and feed it the plan from step 1. Claude Code reads the relevant files itself, makes edits in place, runs your tests, and iterates on failures. No copy-paste loop.
Prompt · Kickoff prompt for Claude CodeImplement the plan below. You have file system access in this repo. Plan: """ {{paste the plan from step 1}} """ Rules: - Smallest viable diff. No drive-by refactors, no rename-while-you're-there. - Match the existing code style: imports, naming, error handling. Read 2 to 3 nearby files before introducing a pattern that's new to this repo. - No new dependencies unless the plan explicitly called for one. - If you add a test, place it next to the existing tests and match their style. - Run the test command before reporting done. If a test fails, fix it before stopping. When done: print a 2-line summary of what changed and the list of files touched. - 3Open the PRCodeRabbit
Push your branch, open the PR. CodeRabbit posts a 1-paragraph summary plus inline comments within ~60 seconds. Findings come tagged: bug, security, performance, style.
- 4Triage the findingsCodeRabbit
Skim CodeRabbit's summary first; it surfaces the high-signal issues. Resolve trivial style nits in bulk. The bug, security, and perf comments earn a real fix.
- 5Apply fixes with ClaudeClaude
For each non-trivial finding, paste the CodeRabbit comment plus the file region into Claude. Get the patch back, test it locally, push.
Prompt · Turn a CodeRabbit finding into a patchYou are fixing a code review finding. CodeRabbit comment: """ {{paste the inline comment, including the line number and severity}} """ The file the comment is on (full file or the relevant 80-line region): """ {{paste file region}} """ Repo context: - Language / framework: {{e.g. TypeScript + Next.js 16 App Router}} - Test framework: {{e.g. Vitest, Jest, none}} - Style conventions worth preserving: {{e.g. server components default, no class components}} Output, in this order: 1. **Diagnosis** — one sentence. What is actually wrong, and why CodeRabbit flagged it. 2. **Patch** — a unified diff against the file region above. Minimal change. No drive-by refactors. 3. **Test** — if the change is non-trivial, the test that would have caught it (in the project's test framework). Skip if the project has no test setup. 4. **Reply for the PR** — 1 to 2 sentences I can paste under the CodeRabbit comment to resolve it. Do not modify code outside the diff. Do not invent imports. - 6Re-review and mergeCodeRabbit
Push the fixes; CodeRabbit re-reviews automatically. If it goes quiet, the human reviewer takes over with a clean diff to look at.
From ticket to merged PR averaged 90 minutes (down from a half-day) because Claude scoped the work, Claude Code did the multi-file edits without a paste loop, and CodeRabbit caught the issues before the human reviewer. CodeRabbit alone caught 4 real bugs that week (1 SQL injection, 2 unhandled promise rejections, 1 N+1 query).
Jumping straight into Claude Code without the chat-tab plan makes the agent over-scope. Always do the plan first; the diff comes out 30 to 50 percent smaller and the PR is reviewable.
It will happily edit 14 files on a refactor that should have touched 3. Watch the first few diffs go by; tighten the prompt or use hooks to scope its access until you trust the loop in this repo.
CodeRabbit will leave 30 comments on a 400-line PR. Resolve the trivial style ones in bulk; only spend cycles on bug, security, and perf tags.
AI review catches mechanical issues, not product or architecture mistakes. It complements the human reviewer, never replaces them.
CodeRabbit's suggested patches are usually right but occasionally drop a guard or miss a side effect. Read the diff before clicking commit.