{
  "format": "minctrl.process/v1",
  "graph": {
    "edges": [
      {
        "id": "e0___start____intake",
        "source": "__start__",
        "target": "intake"
      },
      {
        "id": "e1_intake__vuln-gateway",
        "source": "intake",
        "target": "vuln-gateway"
      },
      {
        "id": "e2_vuln-gateway__manager-signoff",
        "label": "vulnerability flag — mandatory human handling",
        "source": "vuln-gateway",
        "target": "manager-signoff"
      },
      {
        "id": "e3_vuln-gateway__evidence-split",
        "label": "no vulnerability flag",
        "source": "vuln-gateway",
        "target": "evidence-split"
      },
      {
        "id": "e4_evidence-split__policy-check",
        "source": "evidence-split",
        "target": "policy-check"
      },
      {
        "id": "e5_evidence-split__evidence-gather",
        "source": "evidence-split",
        "target": "evidence-gather"
      },
      {
        "id": "e6_policy-check__draft-redress",
        "source": "policy-check",
        "target": "draft-redress"
      },
      {
        "id": "e7_evidence-gather__draft-redress",
        "source": "evidence-gather",
        "target": "draft-redress"
      },
      {
        "id": "e8_draft-redress__outcome-gateway",
        "source": "draft-redress",
        "target": "outcome-gateway"
      },
      {
        "id": "e9_outcome-gateway__auto-clear",
        "label": "routine / not upheld / no redress",
        "source": "outcome-gateway",
        "target": "auto-clear"
      },
      {
        "id": "e10_outcome-gateway__manager-signoff",
        "label": "redress owed or contested fair-treatment call",
        "source": "outcome-gateway",
        "target": "manager-signoff"
      },
      {
        "id": "e11_manager-signoff__decision-gateway",
        "source": "manager-signoff",
        "target": "decision-gateway"
      },
      {
        "id": "e12_decision-gateway__evidence-gather",
        "label": "sent back — more evidence needed",
        "source": "decision-gateway",
        "target": "evidence-gather"
      },
      {
        "id": "e13_decision-gateway__disburse",
        "label": "approved with redress",
        "source": "decision-gateway",
        "target": "disburse"
      },
      {
        "id": "e14_decision-gateway__send-letter",
        "label": "approved, no payment",
        "source": "decision-gateway",
        "target": "send-letter"
      },
      {
        "id": "e15_disburse__send-letter",
        "source": "disburse",
        "target": "send-letter"
      },
      {
        "id": "e16_auto-clear__monitor",
        "source": "auto-clear",
        "target": "monitor"
      },
      {
        "id": "e17_send-letter__monitor",
        "source": "send-letter",
        "target": "monitor"
      },
      {
        "id": "e18_monitor____end__",
        "source": "monitor",
        "target": "__end__"
      }
    ],
    "nodes": [
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "__start__",
        "interrupt_before": false,
        "kind": "terminal",
        "label": "Start",
        "position": {
          "x": 0,
          "y": 0
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "terminal",
        "tools": []
      },
      {
        "agent": "intake",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "intake",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Pull the complaint and the customer record from the case-management and core banking systems, classify the root cause and detect any vulnerability flags",
        "position": {
          "x": 0,
          "y": 120
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "case-mgmt",
          "core-ledger",
          "crm"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "exclusive",
        "human": null,
        "id": "vuln-gateway",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Vulnerability flag present?",
        "position": {
          "x": 0,
          "y": 240
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "parallel",
        "human": null,
        "id": "evidence-split",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Open parallel investigation work-streams",
        "position": {
          "x": 0,
          "y": 360
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "analyzer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "policy-check",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Test the complaint against product terms and DISP rules and the regulatory timeline",
        "position": {
          "x": 0,
          "y": 480
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "case-mgmt",
          "disp-rules"
        ]
      },
      {
        "agent": "analyzer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "evidence-gather",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Gather transaction and interaction evidence from the ledger and the communications archive",
        "position": {
          "x": 0,
          "y": 600
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "core-ledger",
          "comms-archive"
        ]
      },
      {
        "agent": "reviewer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "draft-redress",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Compute the redress/refund (interest, fees, consequential loss) and draft the final-response letter with the proposed outcome; merges the two parallel investigation streams",
        "position": {
          "x": 0,
          "y": 720
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "medium",
        "tools": [
          "redress-calc",
          "core-ledger",
          "letter-gen"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "exclusive",
        "human": null,
        "id": "outcome-gateway",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Routine, in-policy, no redress owed?",
        "position": {
          "x": 0,
          "y": 840
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "reviewer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "auto-clear",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Record the not-upheld / no-redress disposition and standard final response as a reversible draft on the case, log it for the SLA clock and route into monitoring — no money moves and no customer-facing send on this branch",
        "position": {
          "x": 0,
          "y": 960
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "case-mgmt",
          "letter-gen"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": "gate:complaints-manager-signoff",
        "gateway": null,
        "human": "Complaints manager (DISP-accountable)",
        "id": "manager-signoff",
        "interrupt_before": true,
        "kind": "gate",
        "label": "A complaints manager reviews fair treatment, approves the goodwill/redress figure and signs the final-response letter; vulnerability cases are decided here, and a case can be sent back for more evidence",
        "position": {
          "x": 0,
          "y": 1080
        },
        "reversible": false,
        "sla": null,
        "sla_spec": null,
        "tier": "high",
        "tools": []
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "exclusive",
        "human": null,
        "id": "decision-gateway",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Manager decision?",
        "position": {
          "x": 0,
          "y": 1200
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "execute",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "disburse",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Disburse the approved redress/goodwill payment via the payment rails and post it to the ledger",
        "position": {
          "x": 0,
          "y": 1320
        },
        "reversible": false,
        "sla": null,
        "sla_spec": null,
        "tier": "high",
        "tools": [
          "payment-rails",
          "core-ledger",
          "case-mgmt"
        ]
      },
      {
        "agent": "submit",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "send-letter",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Send the signed final-response letter to the customer and record DISP-compliant delivery",
        "position": {
          "x": 0,
          "y": 1440
        },
        "reversible": false,
        "sla": null,
        "sla_spec": null,
        "tier": "high",
        "tools": [
          "comms-outreach",
          "case-mgmt"
        ]
      },
      {
        "agent": "monitor",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "monitor",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Track the 8-week/regulatory SLA, log the audit trail, and route any referral to the Financial Ombudsman Service",
        "position": {
          "x": 0,
          "y": 1560
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "case-mgmt",
          "fos-portal"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "__end__",
        "interrupt_before": false,
        "kind": "terminal",
        "label": "Done",
        "position": {
          "x": 0,
          "y": 1680
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "terminal",
        "tools": []
      }
    ]
  },
  "hash": "af24dd60f1616d4299231321feecfe1181975f3c9ea7e3dd9804703686aac74b",
  "name": "Complaints handling & redress autopilot",
  "slug": "complaints-redress",
  "source": "example",
  "version": null,
  "violations": []
}
