Skip to content

Take semver out of review scope - #787

Merged
tobyhede merged 1 commit into
mainfrom
semver-out-of-review-scope
Aug 17, 2026
Merged

Take semver out of review scope#787
tobyhede merged 1 commit into
mainfrom
semver-out-of-review-scope

Conversation

@tobyhede

Copy link
Copy Markdown
Owner

Rundown is unreleased and has no downstream consumers. CLAUDE.md already says this for persisted runbook state — "compatibility code for consumers that do not exist" — but never for package versions, so review keeps generating semver findings.

It happened on #784: a changeset bump was raised as the top finding, verified against "precedent", and turned into a PR, for a package nothing depends on. That effort was wasted, and nothing in the repo told the reviewer not to spend it.

Changes

CLAUDE.md gains a Versioning and changesets section. The rule: the bump field does not matter, the changeset prose does, and a finding whose only consequence lands on a hypothetical consumer is out of scope. It names the three shapes that keep recurring so they are recognisable — a patch on a public-API removal, a bump inconsistent with a sibling changeset, and any "a consumer on ^1.0.0 would break" argument.

.coderabbit.yaml gets the same rule twice:

  • tone_instructions, so it applies to every file.
  • A .changeset/**/*.md path instruction that splits the two halves: never comment on the bump level, but do review the prose for accuracy against the diff in the same PR.

The config file already did exactly this for persisted state under packages/core/src/runbook/** ("this project is pre-release. Do not request migrations, compatibility shims…"). This is the missing sibling rule.

Notes

Both files need changing, not just one: the .coderabbit.yaml rules only steer CodeRabbit, while the #784 finding came from /code-review, which reads CLAUDE.md.

CodeRabbit picks up config changes only for reviews started after they land on the base branch, so this will not quiet the bot on this PR itself.

Docs only — no source or test changes. .coderabbit.yaml parses and keeps its schema shape (22 path_instructions entries); it is not Prettier-managed here (.prettierignore line 1). CLAUDE.md passes check:md.

Rundown is unreleased with no downstream consumers, which CLAUDE.md already
states for persisted runbook state ("compatibility code for consumers that do
not exist"). The same reasoning applies to package versions, but it was never
written down, so review kept producing semver findings — a changeset bump was
recently raised as the top finding on #784 and turned into a PR, for a package
nothing depends on.

CLAUDE.md gets a `Versioning and changesets` section saying the bump field does
not matter, the changeset prose does, and that a finding whose only consequence
lands on a hypothetical consumer is out of scope.

.coderabbit.yaml gets the same rule twice: in `tone_instructions` for global
effect, and as a `.changeset/**/*.md` path instruction that separates the two
halves — never comment on the bump level, do review the prose for accuracy
against the diff.
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 2 minutes

Limit details: You’ve used all 1 included review currently available under your plan. You completed 61 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b769e4a0-fb15-4ead-b2f0-6673817ca936

📥 Commits

Reviewing files that changed from the base of the PR and between c403c95 and 8d57ae5.

📒 Files selected for processing (2)
  • .coderabbit.yaml
  • CLAUDE.md

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Too big: expected string to have <=250 characters at "tone_instructions"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

🧬 Mutation score (advisory)

Hybrid mutation analysis: source changes use changed-line scopes (dedicated tests by default; mutation:related opts into related tests), while test-only changes use native incremental comparison with the main baseline. This check is advisory and never blocks merge. Trend & full reports: the Stryker Dashboard. See issue #485.

ℹ️ Mutation scope plan

No eligible source or test changes in this PR.

No mutated source changes in this PR.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying rundown with  Cloudflare Pages  Cloudflare Pages

Latest commit: 8d57ae5
Status: ✅  Deploy successful!
Preview URL: https://3e76cc3b.rundown-7hl.pages.dev
Branch Preview URL: https://semver-out-of-review-scope.rundown-7hl.pages.dev

View logs

@tobyhede
tobyhede merged commit dfc8490 into main Aug 17, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant