{
  "ask": null,
  "bundle_version": "quox.journey.bundle/1",
  "checks": [
    {
      "check": "BUILD: Quox builds the workflow (end-state: the stored workflow has the weekday 08:00 cron, the site call and a delivering step)",
      "detail": "used create_workflow; end-state shows 0 8 * * 1-5 + https://quox.ai + notification:deliver; says built",
      "ok": true
    },
    {
      "check": "THE HTTP STEP: exactly one call node, and it requests https://quox.ai (the node itself, not the description)",
      "detail": "end-state count(definition.nodes[type=call][config.url*=https://quox.ai]) is 1",
      "ok": true
    },
    {
      "check": "NO AI STEP: no agent, assistant, team, browser or tool-call node in the workflow (the same plain check every day)",
      "detail": "end-state definition.nodes.type shows none of agent:, assistant:, team:, browser:, action:tool, util:subworkflow",
      "ok": true
    },
    {
      "check": "ONE WORKFLOW: exactly one workflow name carries proof-sitecheck-<run> (no test copies)",
      "detail": "end-state count([name*=proof-sitecheck-6440ce]) is 1",
      "ok": true
    },
    {
      "check": "TEST RUN: Quox runs it once now and the run completed (end-state: the newest run of this workflow is completed)",
      "detail": "used execute_workflow; end-state [workflowName=proof-sitecheck-6440ce][0].status is completed; says completed",
      "ok": true
    },
    {
      "check": "ON REQUEST: that test run was started by the person asking, not by the schedule",
      "detail": "end-state shows user:",
      "ok": true
    },
    {
      "check": "THE REAL RESULT: the run record holds the status code the site really returned, and Quox reports it",
      "detail": "end-state [workflowName=proof-sitecheck-6440ce][0].output.status is 200; says 200",
      "ok": true
    },
    {
      "check": "THE HTTP STEP'S OWN RESULT: in this test run, the call node itself answered 200 (its node result envelope, not the run output a set/transform node could fake)",
      "detail": "end-state [corr=wf-wf-1793883172152-jj4s5l-5PWAPV92][payload.nodeId=c1][0].payload.status is 200",
      "ok": true
    },
    {
      "check": "DELIVERED: the one-line status went out under this title from THIS test run and carries the real status code (end-state: the delivery envelope whose corr is this run's correlation id)",
      "detail": "end-state shows 200",
      "ok": true
    },
    {
      "check": "ARMED (this workflow): the stored workflow is active after the test",
      "detail": "end-state active is true; says armed",
      "ok": true
    },
    {
      "check": "ARMED (the trigger): THIS workflow's schedule row is the weekday 08:00 cron, active, with a next fire time",
      "detail": "end-state shows 0 8 * * 1-5 + nextFireAt + \"active\":true",
      "ok": true
    },
    {
      "check": "ARMED (exact cron): this workflow's schedule expression is exactly 0 8 * * 1-5",
      "detail": "end-state [workflowId=wf-1793883172152-jj4s5l][0].expression is 0 8 * * 1-5",
      "ok": true
    },
    {
      "check": "ARMED (active): this workflow's schedule row is active",
      "detail": "end-state [workflowId=wf-1793883172152-jj4s5l][0].active is true",
      "ok": true
    },
    {
      "check": "ARMED (next fire): this workflow's schedule has a next fire time at 08:00 UTC",
      "detail": "end-state shows T08:00:00.000Z",
      "ok": true
    },
    {
      "check": "no tool /^Bash$/",
      "detail": "no /^Bash$/",
      "ok": true
    },
    {
      "check": "no tool /^(deactivate_workflow|delete_workflow)$/",
      "detail": "no /^(deactivate_workflow|delete_workflow)$/",
      "ok": true
    },
    {
      "check": "never: I could not run / I couldn't run / was not able to run / unable to run the workflow",
      "detail": "clean",
      "ok": true
    }
  ],
  "checks_hash": {
    "case_checks": "[[{\"intent\":\"BUILD: Quox builds the workflow (end-state: the stored workflow has the weekday 08:00 cron, the site call and a delivering step)\",\"tool\":\"^create_workflow$\",\"after\":{\"truth\":[\"workflow\",\"get\",\"proof-sitecheck-{{run}}\"],\"contains_all\":[\"0 8 * * 1-5\",\"https://quox.ai\",\"notification:deliver\"],\"at\":\"definition.nodes\"},\"says_any\":[\"created\",\"built\",\"set up\"]},{\"intent\":\"THE HTTP STEP: exactly one call node, and it requests https://quox.ai (the node itself, not the description)\",\"after\":{\"truth\":[\"workflow\",\"get\",\"proof-sitecheck-{{run}}\"],\"at\":\"count(definition.nodes[type=call][config.url*=https://quox.ai])\",\"equals\":\"1\"}},{\"intent\":\"NO AI STEP: no agent, assistant, team, browser or tool-call node in the workflow (the same plain check every day)\",\"after\":{\"truth\":[\"workflow\",\"get\",\"proof-sitecheck-{{run}}\"],\"at\":\"definition.nodes.type\",\"contains_none\":[\"agent:\",\"assistant:\",\"team:\",\"browser:\",\"action:tool\",\"util:subworkflow\"]}},{\"intent\":\"ONE WORKFLOW: exactly one workflow name carries proof-sitecheck-<run> (no test copies)\",\"after\":{\"truth\":[\"workflow\",\"list\"],\"at\":\"count([name*=proof-sitecheck-{{run}}])\",\"equals\":\"1\"}},{\"intent\":\"TEST RUN: Quox runs it once now and the run completed (end-state: the newest run of this workflow is completed)\",\"tool\":\"^execute_workflow$\",\"after\":{\"truth\":[\"run\",\"list\",\"--workflow\",\"{{cap.wid}}\",\"--limit\",\"50\"],\"at\":\"[workflowName=proof-sitecheck-{{run}}][0].status\",\"equals\":\"completed\"},\"says_any\":[\"completed\",\"succeeded\",\"success\"]},{\"intent\":\"ON REQUEST: that test run was started by the person asking, not by the schedule\",\"after\":{\"truth\":[\"run\",\"list\",\"--workflow\",\"{{cap.wid}}\",\"--limit\",\"50\"],\"at\":\"[workflowName=proof-sitecheck-{{run}}][0].triggeredBy\",\"contains\":\"user:\"}},{\"intent\":\"THE REAL RESULT: the run record holds the status code the site really returned, and Quox reports it\",\"after\":{\"truth\":[\"run\",\"list\",\"--workflow\",\"{{cap.wid}}\",\"--limit\",\"50\"],\"at\":\"[workflowName=proof-sitecheck-{{run}}][0].output.status\",\"equals\":\"200\"},\"says_any\":[\"200\"]},{\"intent\":\"THE HTTP STEP'S OWN RESULT: in this test run, the call node itself answered 200 (its node result envelope, not the run output a set/transform node could fake)\",\"after\":{\"truth\":[\"aee\",\"query\",\"--corr\",\"{{cap.corr}}\",\"--intent\",\"quox.flow.node.completed\",\"--type\",\"result\",\"--limit\",\"50\"],\"at\":\"[corr={{cap.corr}}][payload.nodeId={{cap.callnode}}][0].payload.status\",\"equals\":\"200\"}},{\"intent\":\"DELIVERED: the one-line status went out under this title from THIS test run and carries the real status code (end-state: the delivery envelope whose corr is this run's correlation id)\",\"after\":{\"truth\":[\"aee\",\"query\",\"--corr\",\"{{cap.corr}}\",\"--intent\",\"ops.notification.delivered\",\"--limit\",\"50\"],\"at\":\"[corr={{cap.corr}}][payload.title=proof-sitecheck-{{run}}][0].payload.message\",\"contains\":\"200\"}},{\"intent\":\"ARMED (this workflow): the stored workflow is active after the test\",\"after\":{\"truth\":[\"workflow\",\"get\",\"proof-sitecheck-{{run}}\"],\"at\":\"active\",\"equals\":\"true\"},\"says_any\":[\"armed\",\"active\",\"scheduled\",\"every weekday\",\"weekdays\",\"Monday to Friday\",\"Monday-Friday\"]},{\"intent\":\"ARMED (the trigger): THIS workflow's schedule row is the weekday 08:00 cron, active, with a next fire time\",\"after\":{\"truth\":[\"trigger\",\"schedules\"],\"contains_all\":[\"0 8 * * 1-5\",\"nextFireAt\",\"\\\"active\\\":true\"],\"at\":\"[workflowId={{cap.wid}}][0]\"}},{\"intent\":\"ARMED (exact cron): this workflow's schedule expression is exactly 0 8 * * 1-5\",\"after\":{\"truth\":[\"trigger\",\"schedules\"],\"at\":\"[workflowId={{cap.wid}}][0].expression\",\"equals\":\"0 8 * * 1-5\"}},{\"intent\":\"ARMED (active): this workflow's schedule row is active\",\"after\":{\"truth\":[\"trigger\",\"schedules\"],\"at\":\"[workflowId={{cap.wid}}][0].active\",\"equals\":\"true\"}},{\"intent\":\"ARMED (next fire): this workflow's schedule has a next fire time at 08:00 UTC\",\"after\":{\"truth\":[\"trigger\",\"schedules\"],\"at\":\"[workflowId={{cap.wid}}][0].nextFireAt\",\"contains\":\"T08:00:00.000Z\"}}],[{\"no_tool\":\"^Bash$\"},{\"no_tool\":\"^(deactivate_workflow|delete_workflow)$\"},{\"not_says\":[\"I could not run\",\"I couldn't run\",\"was not able to run\",\"unable to run the workflow\"]}]]",
    "recipe": "sha256(JSON.stringify([case.steps, case.checks])) as lowercase hex, first 12 characters. case_checks below holds exactly that JSON text.",
    "value": "fc3f859cd16d"
  },
  "engine_status": "OBSERVED",
  "evidence_id": "ev_mw3jpp3r_b60df1",
  "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_mw3jpp3r_b60df1.json",
    "index": "https://quox.ai/evidence/bundles/index.json",
    "journey": "https://quox.ai/cli/journeys/journey-automate-weekday-site-check/",
    "receipt": "https://quox.ai/evidence/bundles/index.receipt.json",
    "run": "https://quox.ai/evidence/runs/ev_mw3jpp3r_b60df1",
    "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": [
      {
        "fields": [
          {
            "status": "completed"
          }
        ],
        "step": 4
      },
      {
        "fields": [
          {
            "status": "completed"
          }
        ],
        "step": 5
      },
      {
        "fields": [
          {
            "status": "completed"
          }
        ],
        "step": 6
      }
    ]
  },
  "run": {
    "actor_type": "human",
    "approvals": 0,
    "build": {
      "commit": "87f0bc045",
      "release": "4.2.2"
    },
    "case": "journey-automate-weekday-site-check",
    "checks_hash": "fc3f859cd16d",
    "domain": "journeys",
    "id": "ev_mw3jpp3r_b60df1",
    "instance": "dev",
    "judged_by": "proof-engine",
    "model": "claude-sonnet-5-5",
    "order_ok": true,
    "pass_steps": 14,
    "provider": "anthropic",
    "revisions": {
      "engine_rev": "37aff5fc4",
      "suite_rev": "37aff5fc4"
    },
    "run_id": "run_mw3jovqg_d8c0b55a574b",
    "suite_kind": "journey",
    "suite_version": 1,
    "total_steps": 14,
    "ts": "2026-11-05T12:53:41.644Z",
    "turn_ms": 64227,
    "verdict": "pass",
    "via": "chat",
    "why": "all 14 steps ok, in order, 3 guards clean"
  },
  "steps": [
    {
      "afterOk": true,
      "detail": "used create_workflow; end-state shows 0 8 * * 1-5 + https://quox.ai + notification:deliver; says built",
      "idx": 0,
      "intent": "BUILD: Quox builds the workflow (end-state: the stored workflow has the weekday 08:00 cron, the site call and a delivering step)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state count(definition.nodes[type=call][config.url*=https://quox.ai]) is 1",
      "idx": 1,
      "intent": "THE HTTP STEP: exactly one call node, and it requests https://quox.ai (the node itself, not the description)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state definition.nodes.type shows none of agent:, assistant:, team:, browser:, action:tool, util:subworkflow",
      "idx": 2,
      "intent": "NO AI STEP: no agent, assistant, team, browser or tool-call node in the workflow (the same plain check every day)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state count([name*=proof-sitecheck-6440ce]) is 1",
      "idx": 3,
      "intent": "ONE WORKFLOW: exactly one workflow name carries proof-sitecheck-<run> (no test copies)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "used execute_workflow; end-state [workflowName=proof-sitecheck-6440ce][0].status is completed; says completed",
      "idx": 4,
      "intent": "TEST RUN: Quox runs it once now and the run completed (end-state: the newest run of this workflow is completed)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows user:",
      "idx": 5,
      "intent": "ON REQUEST: that test run was started by the person asking, not by the schedule",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state [workflowName=proof-sitecheck-6440ce][0].output.status is 200; says 200",
      "idx": 6,
      "intent": "THE REAL RESULT: the run record holds the status code the site really returned, and Quox reports it",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state [corr=wf-wf-1793883172152-jj4s5l-5PWAPV92][payload.nodeId=c1][0].payload.status is 200",
      "idx": 7,
      "intent": "THE HTTP STEP'S OWN RESULT: in this test run, the call node itself answered 200 (its node result envelope, not the run output a set/transform node could fake)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows 200",
      "idx": 8,
      "intent": "DELIVERED: the one-line status went out under this title from THIS test run and carries the real status code (end-state: the delivery envelope whose corr is this run's correlation id)",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state active is true; says armed",
      "idx": 9,
      "intent": "ARMED (this workflow): the stored workflow is active after the test",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows 0 8 * * 1-5 + nextFireAt + \"active\":true",
      "idx": 10,
      "intent": "ARMED (the trigger): THIS workflow's schedule row is the weekday 08:00 cron, active, with a next fire time",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state [workflowId=wf-1793883172152-jj4s5l][0].expression is 0 8 * * 1-5",
      "idx": 11,
      "intent": "ARMED (exact cron): this workflow's schedule expression is exactly 0 8 * * 1-5",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state [workflowId=wf-1793883172152-jj4s5l][0].active is true",
      "idx": 12,
      "intent": "ARMED (active): this workflow's schedule row is active",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    },
    {
      "afterOk": true,
      "detail": "end-state shows T08:00:00.000Z",
      "idx": 13,
      "intent": "ARMED (next fire): this workflow's schedule has a next fire time at 08:00 UTC",
      "ok": true,
      "saysOk": true,
      "toolOk": true
    }
  ],
  "title": "Automation: check my site every weekday morning",
  "tools": [
    {
      "status": "ok",
      "tool": "create_workflow"
    },
    {
      "status": "ok",
      "tool": "execute_workflow"
    },
    {
      "status": "ok",
      "tool": "list_schedules"
    }
  ]
}
