Rails: Perch rule pack
3 saved requirements for Rails. Inspect the selectors and adapt the example paths to your repository.
- name: locked-stock-availability
where: "app/services/reserve_stock.rb"
ensure: >-
Inside the row lock, available stock must be checked against quantity before it is decremented. Reject reservations that exceed the locked stock.
- name: submitted-order-version
where: "app/services/cancel_order.rb"
ensure: >-
The cancellation must reject when the supplied expected_version differs from order.lock_version before changing status.
- name: profile-field-allowlist
where: "app/controllers/profiles_controller.rb"
ensure: >-
The profile_params method permits only display_name and timezone. It must not permit admin, role, or all parameters with permit! or an empty-hash allowlist.
Download the rule pack ZIP · Download YAML · Agent repair task · Implementation, integration requirements and captured checks
Install the rule without replacing your configuration
npm install -g @lakeday/perch
perch login
curl -fL 'https://reporules.fyi/rails/rule-pack.zip' -o 'perch-guide-rails.zip'
unzip -n 'perch-guide-rails.zip'Keep your existing perch.yaml. Extraction preserves existing files and adds .perch/rules/perch-guide-rails.yaml. Review each where selector before running a check on your application.
Configure your coding agent
perch setup claude-code
perch setup codex
perch setup cursor
perch setup piChoose the setup command for the agent you use.
Check the edit, fix the finding, check again
perch check app/services/reserve_stock.rb --rules locked-stock-availability --json
perch check app/services/cancel_order.rb --rules submitted-order-version --json
perch check app/controllers/profiles_controller.rb --rules profile-field-allowlist --jsonRun the check after an agent edit. Read the finding and affected code, repair the implementation, and repeat the identical command. Keep the application regression tests as separate gates.
Exit 3 means a finding. Exit 1 or 2 means the check did not complete. A pass does not prove application correctness. Fresh judgments can vary; unchanged requests reuse cached answers. Relevant source is sent to the configured model service.