{
  "captured": "2026-10-14T19:19:03.790592+00:00",
  "model": "jev-latest",
  "identity": {
    "fixed_sha256": "ab0ba4b01cf3b46e08801844dcede312adfc395099ba8069616a5f16828f0d93",
    "broken_sha256": "2294dfc52b20411b2e3cc884c73e7533f15357dd788e4cfd50a857f4fb0e2a40",
    "rule_sha256": "89dda03c84867512155eed100726729aebb77fd30c9022ab819adc65d0a8f5ea"
  },
  "rule": "OutboxEvent.objects.create must run inside the same transaction.atomic block as order.save. Moving event insertion after the atomic block breaks the rule.",
  "results": {
    "broken": {
      "command": [
        "perch",
        "check",
        "orders/confirmation.py",
        "--rules",
        "outbox-same-atomic-block",
        "--json"
      ],
      "exit_code": 3,
      "stdout": "{\n  \"path\": \"orders/confirmation.py\",\n  \"name\": \"orders/confirmation.py\",\n  \"line\": 1,\n  \"checked\": 1,\n  \"broken\": [\n    {\n      \"rule\": \"outbox-same-atomic-block\",\n      \"said\": \"OutboxEvent.objects.create must run inside the same transaction.atomic block as order.save. Moving event insertion after the atomic block breaks the rule.\",\n      \"broken\": 0.73,\n      \"floor\": 0.5\n    }\n  ],\n  \"issues\": null,\n  \"note\": null,\n  \"clean\": false\n}\n",
      "stderr": ""
    },
    "fixed": {
      "command": [
        "perch",
        "check",
        "orders/confirmation.py",
        "--rules",
        "outbox-same-atomic-block",
        "--json"
      ],
      "exit_code": 0,
      "stdout": "{\n  \"path\": \"orders/confirmation.py\",\n  \"name\": \"orders/confirmation.py\",\n  \"line\": 1,\n  \"checked\": 1,\n  \"broken\": [],\n  \"issues\": null,\n  \"note\": null,\n  \"clean\": true\n}\n",
      "stderr": ""
    }
  }
}
