{
  "publisher": "Perch",
  "label": "Reject stale Rails cancellation decisions with optimistic locking",
  "source": "https://frameworkrecipes.dev/rails/optimistic-cancellation/",
  "archive": "rule-pack.zip",
  "sha256": "98ec9f8f354545104784c5379f7a589973bae193cb5fb408ccc8b96042bc1560",
  "installed_rule": ".perch/rules/perch-guide-rails-optimistic-cancellation.yaml",
  "rules": [
    {
      "name": "submitted-order-version",
      "where": "app/services/cancel_order.rb",
      "check": "perch check app/services/cancel_order.rb --rules submitted-order-version --json"
    }
  ],
  "agent_setup": [
    "perch setup claude-code",
    "perch setup codex",
    "perch setup cursor",
    "perch setup pi"
  ]
}
