Availability
V3 is a limited preview for explicitly enabled organizations using CodeRabbit Cloud with GitHub Cloud. Addingversion: 3, creating .coderabbit/, or enabling early_access does not grant access. Follow this guide only after CodeRabbit confirms that access is enabled for your organization. Otherwise, keep your V2 configuration.
This guide covers a repository-root .coderabbit.yaml or .coderabbit.yml. Central configuration, TypeScript configuration, other Git providers, self-hosted CodeRabbit, and executable QA-agent migration are outside this preview procedure. Keep existing QA definitions in their current location.
How CodeRabbit selects a version
CodeRabbit first selects the configuration source using the existing priority rules, then reads its version. In a selected YAML file:
A schema URL in an editor comment does not select the runtime version. A document that declares V3 but fails V3 validation is not retried as V2. Fix the error or restore the original V2 file.
Keep one repository YAML file:
.coderabbit.yaml takes precedence over .coderabbit.yml when both exist. A YAML file also takes precedence over .coderabbit.config.ts. The version used for settings in the web UI is managed separately; changing a repository file does not migrate the organization’s saved UI settings.
1. Capture the current behavior
Save the original V2 file and identify the other settings that affect the repository: organization defaults, repository UI settings, central configuration, workspace defaults, and global overrides. Include inherited path instructions and checks in this inventory. Use the configuration command on a pull request to inspect the resolved settings and their sources: Shows the resolved CodeRabbit configuration for the repository, with comments that say where each setting comes from.- Post in: A pull request comment (the whole comment must be the command)
2. Map settings to their V3 locations
Use the V3 reference for the complete authoring schema. Common changes include:
Do not copy the V2
reviews object unchanged beneath version: 3. For example, this V3 document sets an assertive profile, keeps reviews off draft pull requests, and places summaries in the walkthrough:
Missing fields and inheritance
Authored settings remain sparse: leaving a field out does not save its schema default as an explicit repository value. CodeRabbit resolves applicable inherited settings and overrides, then fills remaining values with defaults. Withinheritance: false, omitted review fields ordinarily use defaults rather than parent configuration. Global overrides and eligible workspace defaults have their own rules.
Choose inheritance deliberately. Set inheritance: true when the repository should continue receiving applicable parent settings, following the inheritance rules. Explicit scalar values take precedence over inherited values, even when they equal a default. Lists follow the existing merge rules; an empty list is not a general-purpose way to clear inherited entries.
Copying all resolved values into a file pins those values. Future edits to organization defaults will no longer change those explicitly authored values. A migration that freezes today’s effective configuration can therefore preserve today’s behavior while changing how future updates reach the repository.
Settings with separate owners
V3 review YAML does not own every account or workflow preference. Before switching, have an authorized administrator confirm these settings in their appropriate account, repository, integration, or workflow controls:- Early-access preferences and repository exceptions.
- Knowledge Base connections, scopes, and privacy settings.
- Chat integrations.
- Finishing Touches, post-merge actions, and code-generation instructions.
- Issue Enrichment and automatic-review exclusions by author or title.
Retired behavior and changed defaults
V3 disables poems, sequence diagrams, code-review effort estimates, and the walkthrough’s linked-issue assessment. These removed options cannot be restored by copying their V2 keys into V3 or inheriting them from a V2 parent. V3 has nopre_merge_checks YAML section, including the earlier preview path reviews.output.pre_merge_checks. Those authored keys are configuration errors. Built-in title, description, and issue-assessment checks are disabled in V3, even when V2 parent settings enable them. Existing custom checks and directory checks retain their supported behavior.
Art and in-progress fortunes default to off in V3; explicitly inherited or authored values can still enable them. Compare the V3 defaults with the current resolved configuration instead of assuming that omission preserves every V2 default. The old chat auto-reply and AI-agent-prompt opt-outs are also removed in V3.
3. Move instructions and custom checks
The directory name is.coderabbit/. CodeRabbit detects it automatically where configuration directories are supported; there is no configuration-directory field to add. Directory availability is separate from V3 access, and directories also work with V2.
Use .coderabbit/instructions/ for guidance that shapes review feedback. Use .coderabbit/pre-merge-checks/ for explicit pass/fail criteria and a reported check result. Instructions do not produce a separate check result or replace check enforcement.
Move each inline path instruction into a Markdown document. For example, .coderabbit/instructions/currency.md:
.coderabbit/pre-merge-checks/. For example, .coderabbit/pre-merge-checks/currency-tests.md:
id, valid YAML front matter, and a nonempty body for enabled documents. Paths are relative to the directory containing .coderabbit/. Nested definitions with the same kind and ID replace the parent’s definition within their scope. See Configuration directory for complete scope and validation rules.
Remove migrated inline definitions from the V3 source. Also check inherited definitions: instructions can otherwise apply twice, and an active inline check cannot share a directory check’s display name. Retain copies of the original definitions for rollback and for branches that still use V2.
The directory limit is 100 discovered documents and 2 MiB of total UTF-8 source. Instruction bodies allow 20,000 characters; check bodies allow 10,000. Symbolic links and submodules are unsupported. Keep QA definitions where they are; these examples do not migrate executable QA agents.
4. Verify a review before completing the switch
Use a trusted test pull request in the enabled repository. Include a code change that matches the instruction and check paths, so the review exercises the policies. Configuration selection still follows the repository’s trust rules; a file on a pull request branch is not automatically the selected source.- Confirm that the configuration command identifies the intended V3 source and revision, then compare the resolved settings with the saved V2 baseline.
- Wait for the review to finish. Check that the directory instruction affects the review and that each custom check, including any replacement for a retired built-in, reports its expected result.
- Fix a deliberately failing condition in the test pull request and confirm that a new review reports the corrected result.
- Resolve configuration errors and unexpected behavior changes before merging the migration.
Roll back to V2
Restore the original V2 configuration, including its field names and inline instructions and checks. Changing onlyversion: 3 to version: 2, or deleting the version from a V3-shaped file, does not reverse the migration.
Revert the directory documents introduced by the migration if their restored inline definitions would duplicate or conflict with them. Directory discovery also works with V2, so restoring the YAML alone does not disable those documents. Preserve any directory files that existed before the migration.
Coordinate rollback of any separately changed preferences with their administrator, preserving the settings needed by branches still using V3. Run the configuration command again and verify a completed review against the restored V2 behavior.
What’s next
V3 configuration reference
Look up the supported V3 fields and defaults.
Configuration directory
Scope instructions and checks to the right parts of your repository.
Configuration inheritance
Decide which settings should continue flowing from parent sources.