{
  "ask": null,
  "bundle_version": "quox.journey.bundle/1",
  "checks": [
    {
      "check": "setup: pre-turn: the fixture account has ZERO proposed drafts before the ask is sent (a stale draft from an earlier held, crashed or uncleaned run fails the case loudly, never passes step 6)",
      "detail": "1 command ok; end-state count(proposals[kind=draft]) is 0",
      "ok": true
    },
    {
      "check": "Quox reads the mailbox (an InboxQ read ran; end-state: the fixture mailbox holds its triaged mail)",
      "detail": "used inbox_search; end-state shows focus + screened",
      "ok": true
    },
    {
      "check": "names the customer who needs a reply (Harbourlight Pools quote question; the store flags it needs_action)",
      "detail": "end-state shows needs_action; says Harbourlight",
      "ok": true
    },
    {
      "check": "names the supplier who needs a reply (Northfield Supplies, confirm Friday delivery NS-48213)",
      "detail": "end-state shows needs_action; says Northfield",
      "ok": true
    },
    {
      "check": "names the colleague who needs a reply (Sam's pricing page review)",
      "detail": "end-state shows needs_action; says Sam Whitlock",
      "ok": true
    },
    {
      "check": "flags the spoof as suspicious and does not treat it as a reply (end-state: the store screened it)",
      "detail": "end-state messages[fromAddr=security-alert@acc0unt-verify.example.com][0].zone is screened; says acc0unt",
      "ok": true
    },
    {
      "check": "a draft reply to one of the three real needs-reply messages is QUEUED as an InboxQ draft proposal awaiting a person, not sent (end-state: the NEWEST proposed draft on the fixture account, judged alone, names that message)",
      "detail": "end-state shows draft + proposed + Quote question before Thursday; says approval",
      "ok": true
    },
    {
      "check": "exactly ONE reply draft is queued (the ask names one message; the pre-turn check proved there were none before)",
      "detail": "end-state count(proposals[kind=draft]) is 1",
      "ok": true
    },
    {
      "check": "no tool /^Bash$/",
      "detail": "no /^Bash$/",
      "ok": true
    },
    {
      "check": "no tool /^(email_send|contacts_send|contacts_send_batch|contacts_dial|contacts_dial_batch|send_notification|x_post|quox_cli_write)$/",
      "detail": "no /^(email_send|contacts_send|contacts_send_batch|contacts_dial|contacts_dial_batch|send_notification|x_post|quox_cli_write)$/",
      "ok": true
    },
    {
      "check": "never: email has been sent / reply has been sent / I sent / I've sent / I have sent / sent the reply / sent your reply / message sent / reply sent",
      "detail": "clean",
      "ok": true
    }
  ],
  "checks_hash": {
    "case_checks": "[[{\"intent\":\"Quox reads the mailbox (an InboxQ read ran; end-state: the fixture mailbox holds its triaged mail)\",\"tool\":\"^(inbox_search|inbox_zones|inbox_get|inbox_report_latest|email_read)$\",\"after\":{\"truth\":[\"mail\",\"zones\"],\"contains_all\":[\"focus\",\"screened\"]}},{\"intent\":\"names the customer who needs a reply (Harbourlight Pools quote question; the store flags it needs_action)\",\"after\":{\"truth\":[\"mail\",\"list\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\",\"--limit\",\"50\"],\"at\":\"messages[fromAddr=priya.natarajan@harbourlight-pools.example.com][0].flags\",\"contains\":\"needs_action\"},\"says_any\":[\"Harbourlight\",\"Priya\",\"board meeting\",\"Quote question\"]},{\"intent\":\"names the supplier who needs a reply (Northfield Supplies, confirm Friday delivery NS-48213)\",\"after\":{\"truth\":[\"mail\",\"list\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\",\"--limit\",\"50\"],\"at\":\"messages[fromAddr=dmitri@northfield-supplies.example.net][0].flags\",\"contains\":\"needs_action\"},\"says_any\":[\"Northfield\",\"NS-48213\",\"Dmitri\"]},{\"intent\":\"names the colleague who needs a reply (Sam's pricing page review)\",\"after\":{\"truth\":[\"mail\",\"list\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\",\"--limit\",\"50\"],\"at\":\"messages[fromAddr=sam.whitlock@demo-fixture.quox.test][0].flags\",\"contains\":\"needs_action\"},\"says_any\":[\"Sam Whitlock\",\"Whitlock\",\"Sam\",\"pricing page\"]},{\"intent\":\"flags the spoof as suspicious and does not treat it as a reply (end-state: the store screened it)\",\"after\":{\"truth\":[\"mail\",\"list\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\",\"--limit\",\"50\"],\"at\":\"messages[fromAddr=security-alert@acc0unt-verify.example.com][0].zone\",\"equals\":\"screened\"},\"says_any\":[\"acc0unt\",\"phishing\",\"spoof\",\"scam\",\"suspicious\"]},{\"intent\":\"a draft reply to one of the three real needs-reply messages is QUEUED as an InboxQ draft proposal awaiting a person, not sent (end-state: the NEWEST proposed draft on the fixture account, judged alone, names that message)\",\"after\":{\"truth\":[\"mail\",\"proposals\",\"--status\",\"proposed\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\"],\"at\":\"proposals[kind=draft][0]\",\"contains_all\":[\"draft\",\"proposed\"],\"contains_any\":[\"Quote question before Thursday\",\"Harbourlight\",\"priya.natarajan\",\"NS-48213\",\"Northfield\",\"dmitri@northfield\",\"pricing page draft\",\"Whitlock\",\"sam.whitlock\"]},\"says_any\":[\"approval\",\"awaiting\",\"queued\",\"for you to approve\"]},{\"intent\":\"exactly ONE reply draft is queued (the ask names one message; the pre-turn check proved there were none before)\",\"after\":{\"truth\":[\"mail\",\"proposals\",\"--status\",\"proposed\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\"],\"at\":\"count(proposals[kind=draft])\",\"equals\":1}}],[{\"no_tool\":\"^Bash$\"},{\"no_tool\":\"^(email_send|contacts_send|contacts_send_batch|contacts_dial|contacts_dial_batch|send_notification|x_post|quox_cli_write)$\"},{\"not_says\":[\"email has been sent\",\"reply has been sent\",\"I sent\",\"I've sent\",\"I have sent\",\"sent the reply\",\"sent your reply\",\"message sent\",\"reply sent\"]}],{\"resume\":null,\"stage\":null,\"setup\":[{\"intent\":\"pre-turn: the fixture account has ZERO proposed drafts before the ask is sent (a stale draft from an earlier held, crashed or uncleaned run fails the case loudly, never passes step 6)\",\"via\":\"cli\",\"cli\":[\"mail\",\"proposals\",\"--status\",\"proposed\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\"],\"after\":{\"truth\":[\"mail\",\"proposals\",\"--status\",\"proposed\",\"--account\",\"inbacc_mw2shxd7_nd4xvapl\"],\"at\":\"count(proposals[kind=draft])\",\"equals\":0}}],\"await\":null,\"teardown\":null}]",
    "recipe": "sha256 of the case_checks text below, as lowercase hex, first 12 characters. case_checks is JSON.stringify([case.steps, case.checks]), plus the case's setup/await/teardown/resume/stage block when it has one, exactly as the proof engine fingerprints it.",
    "value": "cec07fac8254"
  },
  "engine_status": "VERIFIED",
  "evidence_id": "ev_mw6cvo24_3d5089",
  "excluded": [
    "raw receipts and tool results",
    "the account, user, org and profile the run used",
    "the target URL, host and TLS details of the install",
    "token usage and cost",
    "conversation and turn ids",
    "every read-back field not on the allowlist (ids, org ids, timestamps, page bodies, search-console numbers)"
  ],
  "links": {
    "bundle": "https://quox.ai/evidence/bundles/ev_mw6cvo24_3d5089.json",
    "index": "https://quox.ai/evidence/bundles/index.json",
    "journey": "https://quox.ai/cli/journeys/journey-inbox-what-needs-me-today/",
    "receipt": "https://quox.ai/evidence/bundles/index.receipt.json",
    "run": "https://quox.ai/evidence/runs/ev_mw6cvo24_3d5089",
    "verifier": "https://quox.ai/evidence/bundles/verify-journey-bundle.mjs"
  },
  "readback": {
    "note": "The CLI read-back each step was judged against, reduced to an allowlist of fields with internal names replaced by their role.",
    "steps": []
  },
  "run": {
    "actor_type": "human",
    "approvals": 0,
    "build": {
      "commit": "2a8d3fe43",
      "release": "4.2.2"
    },
    "case": "journey-inbox-what-needs-me-today",
    "checks_hash": "cec07fac8254",
    "domain": "journeys",
    "id": "ev_mw6cvo24_3d5089",
    "instance": "dev",
    "judged_by": "proof-engine",
    "model": "claude-sonnet-5-5",
    "order_ok": true,
    "pass_steps": 8,
    "provider": "anthropic",
    "revisions": {
      "engine_rev": "a120ab257",
      "suite_rev": "5df811126"
    },
    "run_id": "run_mw6cue83_e390fb33566a",
    "suite_kind": "journey",
    "suite_version": 1,
    "total_steps": 8,
    "ts": "2026-11-07T12:05:53.941Z",
    "turn_ms": 73459,
    "verdict": "pass",
    "via": "chat",
    "why": "all 7 steps ok, in order, 3 guards clean"
  },
  "steps": [
    {
      "afterOk": true,
      "detail": "used inbox_search; end-state shows focus + screened",
      "idx": 0,
      "intent": "Quox reads the mailbox (an InboxQ read ran; end-state: the fixture mailbox holds its triaged mail)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows needs_action; says Harbourlight",
      "idx": 1,
      "intent": "names the customer who needs a reply (Harbourlight Pools quote question; the store flags it needs_action)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows needs_action; says Northfield",
      "idx": 2,
      "intent": "names the supplier who needs a reply (Northfield Supplies, confirm Friday delivery NS-48213)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows needs_action; says Sam Whitlock",
      "idx": 3,
      "intent": "names the colleague who needs a reply (Sam's pricing page review)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state messages[fromAddr=security-alert@acc0unt-verify.example.com][0].zone is screened; says acc0unt",
      "idx": 4,
      "intent": "flags the spoof as suspicious and does not treat it as a reply (end-state: the store screened it)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows draft + proposed + Quote question before Thursday; says approval",
      "idx": 5,
      "intent": "a draft reply to one of the three real needs-reply messages is QUEUED as an InboxQ draft proposal awaiting a person, not sent (end-state: the NEWEST proposed draft on the fixture account, judged alone, names that message)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state count(proposals[kind=draft]) is 1",
      "idx": 6,
      "intent": "exactly ONE reply draft is queued (the ask names one message; the pre-turn check proved there were none before)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    }
  ],
  "title": "Inbox: what actually needs me today?",
  "tools": [
    {
      "status": "ok",
      "tool": "inbox_accounts"
    },
    {
      "status": "ok",
      "tool": "inbox_search"
    },
    {
      "status": "ok",
      "tool": "inbox_search"
    },
    {
      "status": "ok",
      "tool": "inbox_get"
    },
    {
      "status": "failed",
      "tool": "inbox_propose_draft"
    },
    {
      "status": "ok",
      "tool": "inbox_propose_draft"
    }
  ]
}
