Skip to content
14 changes: 13 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ This repo uses AI reviewers and an autonomous fix loop — full details in the d
[AI-Assisted Development](https://bestax.io/docs/guides/getting-started/ai-development).
The short version for contributors:

- **Every PR gets a CodeRabbit review** automatically. Address or refute its comments — it
- **A PR targeting `main` gets a CodeRabbit review** automatically once it is out of draft. Address or refute its comments — it
reviews incrementally and marks addressed comments "✅ Addressed". It also rate-limits, so a
push during a spent window waits for the next one; the AI-assisted section below says how to
nudge it. A human maintainer still reviews and merges everything.
Expand All @@ -330,6 +330,18 @@ The short version for contributors:
its window reopens.
Do not relabel per push: each application spends a full opus session, and relabeling after
every fix is what turned #643 into 14 review rounds.
- **Know when to stop fixing.** The autonomous loop stops after `MAX_ITERATIONS` fix rounds
(`claude-pr-loop.yml` sets it), pauses, and labels the PR `ai-loop-paused` for a human. Give
a hand-driven PR the same stopping point. Once a file has been round-tripped that many times
and what is left is wording rather than behaviour, reply once naming the findings you are
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
leaving and why, then take the PR to human review. The reviewers keep reviewing; what changes
is that you stop treating every finding as blocking. A finding that names a defect in
behaviour still earns another round.
- **A PR based on another PR's branch gets no automatic CodeRabbit review.** It auto-reviews
only the base branches listed in `.coderabbit.yaml`; ask for one with `@coderabbitai review`.
The deep review turns on its own condition — a branch whose copy of `claude-review.yml`
differs from the default branch's does not get one — so an upper PR carrying a workflow change
can lose both. Prefer landing a stack one PR at a time; the docs guide has the detail.
- **PR titles must be scoped conventional commits** — the title becomes the squash commit and
drives semantic-release (see [Commit Message Guidelines](#commit-message-guidelines)).

Expand Down
16 changes: 14 additions & 2 deletions docs/docs/guides/getting-started/ai-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,27 @@ The more actionable your issue, the better the agent does with it:

## For contributors: what reviews your PR

Every PR gets AI review before human review:
AI review comes before human review, and which reviewers a PR draws depends on where it
targets and what it changes:
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

- **CodeRabbit** reviews automatically. Respond in-thread or just push fixes — it re-reviews
- **CodeRabbit** reviews a PR automatically once it targets the default branch and is out of
draft. Respond in-thread or just push fixes — it re-reviews
each push and marks addressed comments with "✅ Addressed in commit …". If you think a
finding is wrong, say so in the thread; a maintainer has the final word.
- **`@claude` mentions** are restricted to the owner, members, and invited collaborators (they
spend the maintainer's Claude usage). External contributors don't need them — just push.
- **Copilot review** may also appear when the maintainers have it enabled.

**A PR based on another PR's branch gets no automatic CodeRabbit review.** CodeRabbit
Comment thread
allxsmith marked this conversation as resolved.
auto-reviews only the base branches listed under `auto_review.base_branches` in
`.coderabbit.yaml`, which is the default branch alone. On any other base it posts a "Review
skipped" notice, and that notice names `@coderabbitai review` as the way to get a single review
anyway. Stacking affects that reviewer only. The Claude deep review turns on a separate
condition — a branch whose copy of `claude-review.yml` differs from the default branch's does not
get one — which an upper PR carrying an unmerged change to that file meets, so the two are easy
to confuse. Mention CodeRabbit on an upper PR, and prefer landing a stack one PR at a time so
each is reviewed against the default branch.

A green AI review is not approval: a human maintainer still reviews and merges every PR, and
the review-time requirements (Storybook story for UI changes, docs page for API changes,
`skills/` updates for component changes) still apply.
Expand Down
Loading