# Perch vs CodeRabbit: catch a stock check an agent weakens

Check every requested stock line with a saved Perch requirement, inspect the public evaluation inputs, and compare CodeRabbit’s review workflow and seat pricing.

Source: https://perchscan.com/compare/perch-vs-coderabbit/
Published: 2026-10-14

Perch gives your coding agent a requirement it can check before committing. This stock check returns after the first available item, so a later shortage is ignored:

```python
def can_fulfil(items, stock):
    for item in items:
        if stock.get(item.sku, 0) >= item.quantity:
            return True
    return False
```

The clean control checks every item:

```python
def can_fulfil(items, stock):
    return all(stock.get(item.sku, 0) >= item.quantity for item in items)
```

These helpers adapt Perch’s public [order-service fixture at commit 4af67af](https://github.com/lakeday-org/perch/blob/4af67af46d76ac99398d61c7ad0a45441760d4dc/test/fixtures/order-service/checkout.py). The [public regression commit](https://github.com/lakeday-org/perch/blob/46dd1d0d0ea7ceb0e690203d24fca21c428818ec/review-evaluation/order_service.py) and [clean control](https://github.com/lakeday-org/perch/blob/b9ce63ac935739a998ebb40ca6881a261571d208/review-evaluation/order_service.py) provide the exact evaluated source. The clean expression above is shown on one line.

## Check the requirement after the agent’s edit

The captured evaluation used this scoped file rule:

```yaml
- name: eval-all-stock-lines
  where: "review-evaluation/order_service.py"
  ensure: >-
    Read can_fulfil only. It returns true only when every requested item has
    sufficient stock; a shortage on any line returns false, including when
    an earlier line has enough stock.
```

On October 14, 2026, Perch using jev-latest flagged this requirement at 95% on the public regression input. It passed the same requirement on the clean input. The CLI used its configured direct SystemOne endpoint, `https://api.typesafe.ai/v1/systemone`; the elapsed times describe that execution path. The complete file check asked all four disclosed requirements:

```sh
perch check review-evaluation/order_service.py \
  --rules eval-all-stock-lines,eval-malformed-order-errors,eval-adjacent-expirations,eval-complete-subtotal \
  --force --json
```

The [raw command results](/demos/review-evaluation/perch-results.json) record the immutable base and head commits, source and patch hashes, CLI version, settings, findings and elapsed time.

## Inspect the matched evaluation

| Result | Perch | CodeRabbit |
| --- | --- | --- |
| Targeted regression requirements flagged | 4/4 | Review not run |
| Clean-control requirements flagged | 0/4 | Unscored |
| Review time | 0.436 seconds regression; 0.389 seconds clean | Unavailable |
| Cost for both Perch runs | 0.08 US cents estimated from eight fresh checks at the published rate; actual bill unavailable | Unavailable |

The executable contracts pass on the baseline and clean source and fail on the regression source. The [public evaluation report](https://perch-review-comparisons.j-brown9513.workers.dev/evaluations/order-service/) includes the protocol, input downloads and identical reviewer instructions. CodeRabbit CLI 0.9.0 is installed, but an authenticated review session is not available. Missing results are not treated as misses or clean reviews. This is a focused disclosed-requirement suite; it does not establish general comparative accuracy.

## Compare the local review workflow

CodeRabbit supports [local committed and uncommitted reviews](https://docs.coderabbit.ai/overview/ide-cli-review), [repository guidelines](https://docs.coderabbit.ai/knowledge-base/code-guidelines), and [natural-language custom checks](https://docs.coderabbit.ai/pr-reviews/custom-checks). Its [Essentials plan](https://www.coderabbit.ai/pricing) costs $24 per user per month billed annually or $30 monthly; custom pre-merge checks start on Team. Public-repository reviews are free.

Perch’s MIT CLI runs a selected English requirement on the current working file. Project, file and method rules remain with the code. There is no separate custom-rule subscription tier or developer seat fee.

For five Essentials seats, CodeRabbit has a $120 monthly equivalent billed annually, before usage charges. Perch’s September–October 2026 estimate for 100 mid-sized PRs is about $50, using about 50¢ per PR and approximately 150 methods read. Workloads and review allowances differ; this is a billing scenario rather than an equal-coverage benchmark. Cached Perch checks are free, and fresh checks cost 10¢ per 1,000.

## Give your agent the rule pack

[Download the evaluation rule pack](https://perch-review-comparisons.j-brown9513.workers.dev/evaluations/order-service/rule-pack.zip). Extract it with `unzip -n` from the public input checkout; it adds `.perch/rules/matched-order-service.yaml` and preserves existing files. For application code, adapt its selectors to your paths.

Follow the [Perch quick start](https://docs.perchscan.com/install/) and configure the agent you use with `perch setup claude-code`, `perch setup codex`, `perch setup cursor`, or `perch setup pi`. Ask it to check the named requirement after editing, inspect a finding, fix the implementation, and run the identical check again. Commit the rule and agent configuration alongside the regression tests.

Fresh judgments can vary. Unchanged requests reuse cached answers. Keep executable tests as separate gates; a passing rule does not prove application correctness.
