ci(review-bots): on-demand, non-redundant Qodo + CodeRabbit split#53
Conversation
Rework the two review bots into non-overlapping, on-demand specialists to cut token burn, stop per-PR "paused/quota" spam, and play each tool to its documented strength. Topology: - Qodo (.pr_agent.toml) = primary deep reviewer: bugs, security-in-code, N+1/query cost, Octane safety, Laravel 12 / Livewire 3 idiom, tests, /improve suggestions. Project rules in best_practices.md. - CodeRabbit (.coderabbit.yaml) = presentation-layer & comprehension specialist: Blade a11y / WCAG 2.2 AA / Core Web Vitals / theme tokens, walkthrough + sequence diagrams, secret/SAST scan. - Style/PSR-12/static analysis stays with CI (Pint + PHPStan-max + Rector). Redundancy removed: - Drop CodeRabbit phpstan/phpcodesniffer/phpmd (CI already runs them, blocking). - N+1/query-perf now Qodo-only; CodeRabbit keeps rendered-output CWV only. - Architecture/idiom prose consolidated into best_practices.md. Spam control: - Both bots on-demand (CodeRabbit auto_review.enabled=false; Qodo pr_commands=[]). - CodeRabbit review_status=false suppresses the skipped/paused status comment; poem/suggested_reviewers/related_prs off to trim walkthrough filler. Also: reframe stale /teal subpath rule as APP_URL-portable URL generation (prod is now the teal.dotmavriq.life subdomain), and un-ignore best_practices.md.
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Looking for one thing? Review this PR in Change Stack to search files, summaries, diffs, and code without losing your place. Warning Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories. Note
|
| Layer / File(s) | Summary |
|---|---|
Project coding standards foundation best_practices.md |
Non-negotiable architecture rules (no controllers, Livewire 3 safety, module boundaries), multi-tenancy and authorization patterns, performance code practices, external API connector discipline, data/schema conventions, and coding/testing expectations define TEAL's baseline. |
CodeRabbit presentation-layer review policy .coderabbit.yaml |
CodeRabbit scope shifts from full-stack PHP guidance to browser-received output: Blade/CSS/assets reviewed for WCAG 2.2 AA, Core Web Vitals, Livewire form safety, and image optimization; PHP logic, security scanning, tests, and style formatting explicitly out of scope. PHP static analysis tools disabled; auto-review turned off. |
PR-Agent on-demand review configuration .pr_agent.toml |
PR-Agent configured for manual, on-demand PR analysis requiring security/tests/split-ability checks and scoring, with code suggestions capped and focused on Laravel 12/Livewire 3/Octane correctness, query efficiency, auth/policy, and test coverage; presentation, CWV, and pure formatting explicitly excluded. |
Configuration maintenance .gitignore |
.gitignore adds best_practices.md to ignored files. |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
Poem
📋 Standards written clear,
Two reviewers now appear—
One eyes the screen's glow,
One checks the logic flow,
Presentation and correctness near! 🎭✨
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title directly and clearly describes the main change: reconfiguring review bots (Qodo and CodeRabbit) into non-overlapping, on-demand specialists to reduce redundancy. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Commit unit tests in branch
ci/review-bots-on-demand
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
What
Reworks the two AI review bots into non-overlapping, on-demand specialists — cutting token burn, stopping the per-PR "paused/quota" spam, and assigning each tool the lane it's documented to be best at.
Topology
/improvesuggestions.pr_agent.toml) — highest measured bug-detection F1; multi-agent + RAG;/improveis its signature.coderabbit.yaml) — best at readable summaries + reading the rendered HTML/CSSEach config explicitly defers the other two lanes, so the bots don't double-report.
Redundancy removed
phpstan/phpcodesniffer/phpmd— CI already runs these, blocking. Kept only what CI lacks (gitleaks,trufflehog,semgrep,actionlint,yamllint,markdownlint).best_practices.md(Qodo's/improvemechanism).Spam control
auto_review.enabled: false; Qodopr_commands = []. Nothing posts until invoked (/review,/improve, or@coderabbitai review).review_status: falsesuppresses the "review skipped/paused/quota" status comment.poem/suggested_reviewers/related_prsoff to trim walkthrough filler.Also
/tealsubpath rule as APP_URL-portable URL generation (prod is now theteal.dotmavriq.lifesubdomain).best_practices.md(blanket*.mdignore) so Qodo can read it.🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores