Perch gives a coding agent a named requirement to check against the method it just edited. Save the requirement in perch.yaml, run perch check against working code, and keep the same rule for CI.

Check a saved rule on the current method

This is the same requirement and command used in the captured refund example:

- name: refund-once
  where: checkout.py
  each: method
  ensure: Refunded orders cannot be refunded again.

The deliberately broken method calls the payment provider without checking the order status:

def refund(order, payment):
    payment.refund(order.total)
    order.status = "refunded"
    return order

Run the focused check from the repository root:

perch check checkout.py::refund --rules refund-once --json

In the September 20, 2026 capture, the unguarded refund was flagged at 80% confidence and exited 3. Adding if order.status == "refunded": return order before the payment call made the check pass and exit 0. The capture uses refund.py; use checkout.py when adapting the public order-service source at commit 4af67af.

Save the rule with the code, then use the same command to check the next agent edit. Add regression tests for concurrency and payment-provider idempotency in the application.

Compare the review workflow

Workflow Perch CodeRabbit
Saved requirement perch.yaml with a name, selector, and ensure Repository guidelines and natural-language custom checks
Focused correction loop perch check checkout.py::refund --rules refund-once IDE/CLI review; custom checks over PR context
Result to act on Rule findings and a command exit status Custom checks return Passed, Failed, or Inconclusive

Check the exact requirement before the next commit

Perch gives the agent a precise correction loop: save the requirement, select the edited method, run the named rule, fix the finding, and recheck. perch check checkout.py::refund --rules refund-once checks the requirement you chose against the working file. The same rule stays in the repository for the next edit and CI.

How CodeRabbit handles review

CodeRabbit supports natural-language custom checks, repository guidelines, and IDE and CLI reviews. Its custom checks return Passed, Failed, or Inconclusive over pull request context.

Add Perch to your agent workflow

Follow the Perch quick start, then save the requirement with the code. Install the skill for the coding agent you use:

perch setup claude-code
# Or: perch setup codex
# Or: perch setup cursor

The Perch skill instructs the agent to check the named rule after each relevant edit, inspect the finding, repair the code, and recheck. Keep the rule and regression test beside the application so the next session can use the same requirement.

With your base reference fetched, add perch scan --since origin/main --filter type=lint beside your tests in CI. CI setup explains the changed-code scan. Gated findings exit 3; exits 1 and 2 mean the check did not complete.

Compare cost and result limits

Perch charges 10¢ per 1,000 rule checks, with cached checks free. The pricing comparison estimates about 50¢ for a mid-sized pull request with about 150 methods read, including surrounding code. Usage follows the selected questions and their code context.

Unchanged requests reuse cached answers for free; fresh model judgments can vary. Perch’s CLI is MIT licensed. Model analysis sends relevant source to the configured service.

Competitor documentation reviewed October 14, 2026. All comparisons · Perch rule syntax