{
  "schema_version": "controlled_operating_loop.v1",
  "loop_id": "loop_diligenceops_demo_20260608",
  "rail": "diligenceops",
  "workflow_type": "diligence_review",
  "status": "needs_operator_review",
  "attempts": 1,
  "max_attempts": 3,
  "operator_boundary": "Agents may inventory evidence, draft risk summaries, and flag missing items. Operators approve conclusions, delivery, and client-facing release.",
  "operator_approval_required": true,
  "success_criteria": [
    "evidence_inventory_created",
    "missing_items_reported",
    "risk_summary_drafted",
    "readiness_score_created",
    "attestation_ready"
  ],
  "orchestrator": {
    "role": "loop_orchestrator",
    "policy": "cycle worker output through validation before return package publication"
  },
  "agents": [
    {
      "role": "inventory_agent",
      "responsibility": "create evidence inventory"
    },
    {
      "role": "risk_agent",
      "responsibility": "draft risk summary from evidence"
    },
    {
      "role": "validator_agent",
      "responsibility": "check source coverage and missing items"
    },
    {
      "role": "exception_agent",
      "responsibility": "flag assumptions and unresolved evidence gaps"
    }
  ],
  "steps": [
    {
      "step_id": "s1",
      "step_name": "intake",
      "agent_role": "orchestrator",
      "state": "pass",
      "writes_receipt": true,
      "operator_visible": true
    },
    {
      "step_id": "s2",
      "step_name": "inventory",
      "agent_role": "inventory_agent",
      "state": "pass",
      "writes_receipt": true,
      "operator_visible": true
    },
    {
      "step_id": "s3",
      "step_name": "risk_summary",
      "agent_role": "risk_agent",
      "state": "pass",
      "writes_receipt": true,
      "operator_visible": true
    },
    {
      "step_id": "s4",
      "step_name": "validation",
      "agent_role": "validator_agent",
      "state": "needs_review",
      "writes_receipt": true,
      "operator_visible": true
    }
  ],
  "validation": {
    "pass": true,
    "coverage_score": 0.86,
    "warnings": [
      "risk summary is draft-only until operator approval"
    ]
  },
  "exceptions": [],
  "revision_feedback": [],
  "return_package": [
    "evidence_inventory",
    "missing_item_report",
    "risk_summary",
    "readiness_score",
    "attestation"
  ],
  "proof_objects": [
    {
      "object": "runtime_run",
      "status": "ready"
    },
    {
      "object": "attestation",
      "status": "ready"
    }
  ],
  "next_action": "operator_review"
}
