{
  "suite": "release checkpoint: both coils x three transactions (mock adapters only)",
  "generated_at": "2026-08-23T20:04:39.372355Z",
  "quest_item": "01a02b87-1c24-778c-ae09-f50f4da19388",
  "mock_only": true,
  "real_emails_sent": 0,
  "real_crm_mutations": 0,
  "handlers": [
    "coils/send-and-log/handler.py (repaired 2026-08-23)",
    "coils/crm-upsert/handler.py (repaired 2026-08-23)"
  ],
  "manual_fallback_source": "skills/outreach.md - Cold/first send, Live-thread reply, Follow-up rule sections",
  "cases": [
    {
      "case": "T1a send-and-log first-send mutation == documented manual fallback",
      "passed": true,
      "detail": {
        "fields_written": [
          "batch",
          "date_sent",
          "email",
          "email_id",
          "first_outbound_at",
          "first_outbound_email_id",
          "focus",
          "follow_up_sent",
          "id",
          "institution",
          "last_outbound_at",
          "last_outbound_email_id",
          "name",
          "next_action",
          "reply_received",
          "status",
          "type"
        ],
        "status": "sent"
      }
    },
    {
      "case": "T1b crm-upsert manual first-send logging writes canonical set once",
      "passed": true,
      "detail": {
        "first_send_transition": true
      }
    },
    {
      "case": "T1c send-and-log dry_run first-send preview: zero sends, zero writes",
      "passed": true,
      "detail": {
        "sends": 0,
        "crm_updated": false,
        "first_send_detected": true
      }
    },
    {
      "case": "T2a send-and-log follow-up: sets follow_up_sent, never touches write-once",
      "passed": true,
      "detail": {
        "follow_up_sent": "true",
        "write_once_unchanged": true
      }
    },
    {
      "case": "T2b crm-upsert sparse post-follow-up update preserves write-once",
      "passed": true,
      "detail": {
        "fields_written": [
          "last_outbound_at",
          "last_outbound_email_id",
          "email_id",
          "follow_up_sent",
          "next_action",
          "id"
        ]
      }
    },
    {
      "case": "T2c second follow-up refused by guard",
      "passed": true,
      "detail": {
        "error": "follow_up_already_sent: one follow-up per contact"
      }
    },
    {
      "case": "T3a crm-upsert inbound-reply logging: sparse, no write-once, legal transition",
      "passed": true,
      "detail": {
        "fields_written": [
          "status",
          "reply_received",
          "last_inbound_at",
          "last_inbound_email_id",
          "next_action",
          "id"
        ]
      }
    },
    {
      "case": "T3b send-and-log live-thread reply: last-outbound only, write-once intact",
      "passed": true,
      "detail": {
        "last_outbound_email_id": "rel-3003"
      }
    },
    {
      "case": "T3c crm-upsert rejects write-once change, row byte-identical",
      "passed": true,
      "detail": {
        "error": "write_once_conflict: first_outbound_email_id is write-once (stored 'rel-3001'); a later upsert may not change it"
      }
    }
  ],
  "all_passed": true,
  "branch": "all-pass",
  "live_readonly_dry_runs": {
    "method": "run_coil('send-and-log', {dry_run: true}) against the real CRM dataset; exercises the repaired {{table}} SQL resolution on the live backend",
    "real_emails_sent": 0,
    "real_crm_mutations": 0,
    "cases": [
      {
        "case": "B1 drafted contact, intent=cold",
        "first_send_detected": true,
        "would_crm_row_includes": [
          "first_outbound_at",
          "first_outbound_email_id",
          "date_sent",
          "status='sent'"
        ],
        "sends": 0,
        "crm_updated": false,
        "ccs_ok": true,
        "passed": true
      },
      {
        "case": "B2 sent/no-follow-up contact, intent=followup",
        "first_send_detected": false,
        "would_crm_row_includes": [
          "last_outbound_*",
          "follow_up_sent='true'"
        ],
        "write_once_absent": true,
        "sends": 0,
        "crm_updated": false,
        "ccs_ok": true,
        "passed": true
      },
      {
        "case": "B3 replied contact, intent=reply",
        "first_send_detected": false,
        "would_crm_row_includes": [
          "last_outbound_* only"
        ],
        "write_once_absent": true,
        "sends": 0,
        "crm_updated": false,
        "ccs_ok": true,
        "passed": true
      }
    ],
    "post_run_crm_unchanged": true
  },
  "summary": {
    "mock_cases_passed": "9/9",
    "live_dry_run_cases_passed": "3/3",
    "all_passed": true,
    "branch": "all-pass: retire broken-coil warning"
  }
}