Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 178 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# Enables IDE autocompletion for this config file
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

# Language for CodeRabbit's review comments
language: en

# Enable experimental features (currently not using any specific early_access features)
early_access: true

chat:
# CodeRabbit will automatically respond to @coderabbitai mentions in PR comments
auto_reply: true

issue_enrichment:
labeling:
auto_apply_labels: true
labeling_instructions:
- label: bug
instructions: Issues reporting bugs, errors, crashes, incorrect behavior, or unexpected results. This includes runtime errors, logic errors, broken functionality, regressions, and any deviation from expected or documented behavior.
- label: enhancement
instructions: Feature requests, improvements to existing functionality, performance optimizations, refactoring suggestions, UI/UX enhancements, and any suggestions to make the project better or add new capabilities.
- label: documentation
instructions: Documentation updates, additions, corrections, or clarifications needed. This includes missing docs, outdated information, unclear instructions, API documentation, code examples, README improvements, and any requests for better explanations or guides.
planning:
enabled: false
auto_planning:
enabled: true
labels:
- "plan-me" # Auto-plan issues with this label
- "feature" # Also auto-plan these
- "!no-plan" # Never auto-plan issues with this label
Comment on lines +24 to +31

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turn off Planning. AI should not be used for Architecture and Feature Planning in it's entirety.


reviews:
profile: assertive # Options: chill (focuses on significant issues, less nitpicky about style), assertive (more thorough, flags style issues and minor improvements too)

auto_review:
# Automatically trigger reviews when PRs are opened or updated
enabled: true
# Skip auto-review if PR title contains these keywords
ignore_title_keywords:
- "WIP"
# Don't auto-review draft PRs
drafts: false
# Only auto-review PRs targeting these branches
base_branches:
- main
- dev

# Include a high-level summary at the start of each review
high_level_summary: true

# Generate sequence diagrams for complex code flows
sequence_diagrams: true

# Include poems in reviews
poem: false

# Show review completion status
review_status: true

# Keep the walkthrough section expanded by default
collapse_walkthrough: true

# Include summary of all changed files
changed_files_summary: true

# Automatically request changes on the PR (just leave comments)
request_changes_workflow: true

# Pre-merge checks to enforce before merging PRs
pre_merge_checks:
description:
# Validate that PR has a proper description
mode: error # Options: off, warning, error
docstrings:
# Disable docstring coverage checks (let's assume we don't need them)
mode: off

# Exclude these paths from reviews (build artifacts and dependencies)
path_filters:
- "!**/node_modules/**" # npm dependencies

# Use the following tools when reviewing
tools:
shellcheck:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
languagetool:
enabled: true
enabled_only: false
level: default
biome:
enabled: true
yamllint:
enabled: true
gitleaks:
enabled: true
eslint:
enabled: true

# Apply the following labels to PRs
labeling_instructions:
- label: Typescript Lang
instructions: Apply when the PR/MR contains changes to javascript or typescript source-code
- label: Documentation
instructions: >-
Apply whenever project documentation (namely markdown source-code) is
updated by the PR/MR
- label: Linter
instructions: >-
Apply when the purpose of the PR/MR is related to fixing the feedback
from a linter

# Review instructions that apply to all files
instructions: >-
- Verify that documentation and comments are free of spelling mistakes
- Ensure that test code is automated, comprehensive, and follows testing best practices
- Verify that all critical functionality is covered by tests
- Confirm that the code meets the project's requirements and objectives
- Confirm that copyright years are up-to date whenever a file is changed
- Point out redundant obvious comments that do not add clarity to the code
- Ensure that comments are concise and suggest more concise comment statements if possible
- Look for code duplication
- Suggest code completions when:
- seeing a TODO comment
- seeing a FIXME comment

# Custom review instructions for specific file patterns
path_instructions:
# TypeScript/JavaScript files
- path: "**/*.{ts,tsx,js,jsx}"
instructions: |
TypeScript:
- Avoid 'any', use explicit types
- Prefer 'import type' for type imports
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
- The code adheres to best practices associated with Node.js
- The code adheres to best practices recommended for performance

Security:
- No exposed API keys or sensitive data
- Check for common security vulnerabilities such as:
- SQL Injection
- XSS (Cross-Site Scripting)
- CSRF (Cross-Site Request Forgery)
- Insecure dependencies
- Sensitive data exposure

Internationalization:
- User-visible strings should be externalized to resource files (i18n)

# Python files
- path: "**/*.{py}"
instructions: |
Python:
- Check for major PEP 8 violations and Python best practices.

# Javascript/Typescript test files
- path: "**/*.test.{ts,tsx,js,jsx}"
instructions: |
Review test files for:
- Comprehensive coverage of component behavior
- Async behavior is properly tested
- Accessibility testing is included
- Test descriptions are sufficiently detailed to clarify the purpose of each test
- The tests are not tautological

# Asset files (images, fonts, etc.)
- path: "**/*.{png,jpg,jpeg,gif,svg,ttf,otf}"
instructions: |
Review asset files for:
- Image optimization (appropriate size and format)
- SVG assets are optimized
- Font files are licensed and optimized