|
| 1 | +# CodeRabbit Configuration for AgentReady |
| 2 | +# Goal: Extremely high signal-to-noise ratio for AI code reviews |
| 3 | +# Last Updated: 2025-11-25 |
| 4 | + |
| 5 | +# Language and tone settings |
| 6 | +language: en-US |
| 7 | +early_access: false |
| 8 | +enable_free_tier: true |
| 9 | + |
| 10 | +# Review behavior - optimized for signal |
| 11 | +reviews: |
| 12 | + # Use "chill" profile to reduce noise |
| 13 | + profile: "chill" |
| 14 | + |
| 15 | + # Request changes only for critical issues |
| 16 | + request_changes_workflow: true |
| 17 | + |
| 18 | + # High-level overview without verbose walkthrough |
| 19 | + high_level_summary: true |
| 20 | + high_level_summary_placeholder: "<!-- CODERABBIT SUMMARY -->" |
| 21 | + |
| 22 | + # Disable poem (pure noise) |
| 23 | + poem: false |
| 24 | + |
| 25 | + # Collapse walkthrough to reduce visual clutter |
| 26 | + collapse_walkthrough: true |
| 27 | + |
| 28 | + # Review status at top of PR for quick scanning |
| 29 | + review_status: true |
| 30 | + |
| 31 | + # Auto-review configuration |
| 32 | + auto_review: |
| 33 | + enabled: true |
| 34 | + drafts: false # Don't waste cycles on WIP |
| 35 | + base_branches: |
| 36 | + - main |
| 37 | + |
| 38 | + # Tools configuration - only high-signal checks |
| 39 | + tools: |
| 40 | + # Linting tools (we already run these locally, skip duplicates) |
| 41 | + ruff: |
| 42 | + enabled: false # We run ruff locally before push |
| 43 | + black: |
| 44 | + enabled: false # We run black locally before push |
| 45 | + isort: |
| 46 | + enabled: false # We run isort locally before push |
| 47 | + |
| 48 | + # GitHub Actions analysis (useful for CI/CD changes) |
| 49 | + actionlint: |
| 50 | + enabled: true |
| 51 | + |
| 52 | + # Shellcheck for bash scripts |
| 53 | + shellcheck: |
| 54 | + enabled: true |
| 55 | + |
| 56 | + # Markdownlint (we run locally but good backup) |
| 57 | + markdownlint: |
| 58 | + enabled: true |
| 59 | + |
| 60 | + # Gitleaks for secret detection (high signal) |
| 61 | + gitleaks: |
| 62 | + enabled: true |
| 63 | + |
| 64 | + # Biome (JavaScript/TypeScript - not applicable but harmless) |
| 65 | + biome: |
| 66 | + enabled: false |
| 67 | + |
| 68 | + # Hadolint for Dockerfiles (future use) |
| 69 | + hadolint: |
| 70 | + enabled: true |
| 71 | + |
| 72 | + # What to focus on (HIGH SIGNAL ONLY) |
| 73 | + focus: |
| 74 | + - security_vulnerabilities # Critical: SQL injection, XSS, etc. |
| 75 | + - bug_risks # High: Logic errors, race conditions |
| 76 | + - error_handling # High: Uncaught exceptions, poor error messages |
| 77 | + - breaking_changes # High: API compatibility |
| 78 | + - performance_issues # Medium: Only significant issues (O(n²) → O(n)) |
| 79 | + - test_coverage_gaps # Medium: Missing critical test cases |
| 80 | + - documentation_gaps # Low: Only for public APIs and complex logic |
| 81 | + |
| 82 | + # What to ignore (NOISE REDUCTION) |
| 83 | + ignore: |
| 84 | + - style_preferences # Handled by black/isort/ruff locally |
| 85 | + - naming_conventions # Handled by ruff locally |
| 86 | + - line_length # We explicitly don't enforce this |
| 87 | + - minor_refactoring_suggestions # Only suggest if major impact |
| 88 | + - subjective_improvements # "This could be cleaner" noise |
| 89 | + - trivial_optimizations # Micro-optimizations with no real impact |
| 90 | + |
| 91 | + # Severity thresholds - only comment on important issues |
| 92 | + severity_threshold: "medium" # Skip "low" severity comments |
| 93 | + |
| 94 | + # Path-based rules |
| 95 | + path_instructions: |
| 96 | + # Core library code - highest scrutiny |
| 97 | + - path: "src/agentready/assessors/**" |
| 98 | + instructions: | |
| 99 | + - Verify BaseAssessor pattern compliance |
| 100 | + - Check for proper error handling (return skipped/error, don't crash) |
| 101 | + - Ensure proportional scoring using calculate_proportional_score() |
| 102 | + - Validate attribute_id matches research report |
| 103 | + - Check for graceful degradation when tools missing |
| 104 | +
|
| 105 | + - path: "src/agentready/models/**" |
| 106 | + instructions: | |
| 107 | + - Check for breaking changes to data models |
| 108 | + - Verify backwards compatibility |
| 109 | + - Ensure schema version bumps when needed |
| 110 | +
|
| 111 | + - path: "src/agentready/services/**" |
| 112 | + instructions: | |
| 113 | + - Check for proper error handling |
| 114 | + - Verify performance implications (file I/O, subprocess calls) |
| 115 | + - Look for security issues (path traversal, command injection) |
| 116 | +
|
| 117 | + # Tests - focus on coverage and correctness |
| 118 | + - path: "tests/**" |
| 119 | + instructions: | |
| 120 | + - Verify test actually tests the intended behavior |
| 121 | + - Check for missing edge cases |
| 122 | + - Flag overly brittle tests (mocking too much) |
| 123 | + - Skip style comments entirely |
| 124 | +
|
| 125 | + # CLI - focus on UX and error messages |
| 126 | + - path: "src/agentready/cli/**" |
| 127 | + instructions: | |
| 128 | + - Check for clear error messages |
| 129 | + - Verify help text is accurate |
| 130 | + - Look for missing error handling for user input |
| 131 | +
|
| 132 | + # GitHub workflows - focus on security and correctness |
| 133 | + - path: ".github/workflows/**" |
| 134 | + instructions: | |
| 135 | + - Check for secret exposure risks |
| 136 | + - Verify proper permissions (least privilege) |
| 137 | + - Flag outdated action versions (security) |
| 138 | +
|
| 139 | + # Documentation - only flag critical issues |
| 140 | + - path: "**/*.md" |
| 141 | + instructions: | |
| 142 | + - Only comment on factual errors or broken links |
| 143 | + - Skip formatting/style suggestions |
| 144 | + - Flag outdated information (version mismatches, wrong commands) |
| 145 | +
|
| 146 | + # Scripts - focus on security and robustness |
| 147 | + - path: "scripts/**" |
| 148 | + instructions: | |
| 149 | + - Check for command injection vulnerabilities |
| 150 | + - Verify error handling for subprocess calls |
| 151 | + - Flag missing input validation |
| 152 | +
|
| 153 | +# Path filters - completely skip reviewing these |
| 154 | +path_filters: |
| 155 | + # Build artifacts and caches |
| 156 | + - "!**/*.pyc" |
| 157 | + - "!**/__pycache__/**" |
| 158 | + - "!.venv/**" |
| 159 | + - "!venv/**" |
| 160 | + - "!htmlcov/**" |
| 161 | + - "!.pytest_cache/**" |
| 162 | + - "!.ruff_cache/**" |
| 163 | + - "!*.egg-info/**" |
| 164 | + - "!build/**" |
| 165 | + - "!dist/**" |
| 166 | + |
| 167 | + # Generated reports and data |
| 168 | + - "!.agentready/**" |
| 169 | + - "!.cache/**" |
| 170 | + - "!*.log" |
| 171 | + - "!*.tmp" |
| 172 | + |
| 173 | + # Lock files (dependency updates are separate concern) |
| 174 | + - "!uv.lock" |
| 175 | + - "!poetry.lock" |
| 176 | + - "!package-lock.json" |
| 177 | + |
| 178 | + # Example outputs (reference only, not production code) |
| 179 | + - "!examples/**/*.json" |
| 180 | + - "!examples/**/*.html" |
| 181 | + - "!examples/**/*.md" |
| 182 | + |
| 183 | +# Custom instructions - AgentReady-specific context |
| 184 | +chat: |
| 185 | + auto_reply: true |
| 186 | + |
| 187 | +# Knowledge base - teach CodeRabbit about AgentReady patterns |
| 188 | +knowledge_base: |
| 189 | + - | |
| 190 | + AgentReady is a tool that assesses repositories against 25 agent-ready best practices. |
| 191 | + The research report (agent-ready-codebase-attributes.md) defines these attributes. |
| 192 | + All assessors must inherit from BaseAssessor and implement attribute_id property and assess() method. |
| 193 | +
|
| 194 | + - | |
| 195 | + We intentionally don't enforce line length limits (E501 ignored in ruff). |
| 196 | + We use black for formatting with default settings. |
| 197 | + We prefer explicit over clever, simple over complex. |
| 198 | +
|
| 199 | + - | |
| 200 | + Error handling philosophy: Assessors should return Finding.create_skipped() when tools are missing, |
| 201 | + not crash. Fail gracefully and provide actionable remediation guidance. |
| 202 | +
|
| 203 | + - | |
| 204 | + This project follows conventional commits (feat:, fix:, chore:, docs:, test:, refactor:). |
| 205 | + All commits should be squashed before merge. |
| 206 | + All commits must be signed with git signature. |
| 207 | +
|
| 208 | + - | |
| 209 | + Testing philosophy: We aim for >80% coverage on new code. |
| 210 | + Tests should focus on behavior, not implementation details. |
| 211 | + Mock external dependencies, but don't over-mock internal functions. |
| 212 | +
|
| 213 | + - | |
| 214 | + Documentation: CLAUDE.md is the source of truth for development. |
| 215 | + README.md is user-facing. Keep them in sync. |
| 216 | + All new features must update CLAUDE.md before merging. |
| 217 | +
|
| 218 | +# Review thresholds - only create review comments for actionable items |
| 219 | +review: |
| 220 | + # Minimum confidence to comment (0.0 - 1.0) |
| 221 | + # Higher = fewer but more accurate comments |
| 222 | + confidence_threshold: 0.75 |
| 223 | + |
| 224 | + # Require at least this many similar patterns before suggesting refactoring |
| 225 | + pattern_threshold: 3 |
| 226 | + |
| 227 | + # Only suggest performance improvements if >10% impact |
| 228 | + performance_improvement_threshold: 0.10 |
| 229 | + |
| 230 | +# Tone and style - professional and concise |
| 231 | +tone_instructions: | |
| 232 | + - Be direct and concise - no fluff or pleasantries |
| 233 | + - Focus on "why" not just "what" (explain the impact) |
| 234 | + - Provide specific examples and code suggestions |
| 235 | + - Link to documentation when relevant |
| 236 | + - Don't repeat what the developer already knows |
| 237 | + - Skip comments on anything already handled by automated tools |
| 238 | + - Use "Consider" for suggestions, "This will" for bugs/issues |
| 239 | + - No emoji, no enthusiasm, just facts |
| 240 | + - If you're not 75%+ confident, don't comment |
0 commit comments