{
  "format": "minctrl.process/v1",
  "graph": {
    "edges": [
      {
        "id": "e0___start____intake",
        "source": "__start__",
        "target": "intake"
      },
      {
        "id": "e1_intake__verify-split",
        "source": "intake",
        "target": "verify-split"
      },
      {
        "id": "e2_verify-split__doc-auth",
        "source": "verify-split",
        "target": "doc-auth"
      },
      {
        "id": "e3_verify-split__liveness-match",
        "source": "verify-split",
        "target": "liveness-match"
      },
      {
        "id": "e4_doc-auth__verify-merge",
        "source": "doc-auth",
        "target": "verify-merge"
      },
      {
        "id": "e5_liveness-match__verify-merge",
        "source": "liveness-match",
        "target": "verify-merge"
      },
      {
        "id": "e6_verify-merge__adjudicate",
        "source": "verify-merge",
        "target": "adjudicate"
      },
      {
        "id": "e7_adjudicate__risk-gateway",
        "source": "adjudicate",
        "target": "risk-gateway"
      },
      {
        "id": "e8_risk-gateway__auto-approve",
        "label": "clean pass — authentic, live, matching",
        "source": "risk-gateway",
        "target": "auto-approve"
      },
      {
        "id": "e9_risk-gateway__stage",
        "label": "ambiguous / deepfake-suspect / synthetic / reject",
        "source": "risk-gateway",
        "target": "stage"
      },
      {
        "id": "e10_stage__officer-signoff",
        "source": "stage",
        "target": "officer-signoff"
      },
      {
        "id": "e11_officer-signoff__decision-gateway",
        "source": "officer-signoff",
        "target": "decision-gateway"
      },
      {
        "id": "e12_decision-gateway__verify-split",
        "label": "request re-submission — clearer document/selfie needed",
        "source": "decision-gateway",
        "target": "verify-split"
      },
      {
        "id": "e13_decision-gateway__commit",
        "label": "approve or signed reject",
        "source": "decision-gateway",
        "target": "commit"
      },
      {
        "id": "e14_auto-approve__monitor",
        "source": "auto-approve",
        "target": "monitor"
      },
      {
        "id": "e15_commit__monitor",
        "source": "commit",
        "target": "monitor"
      },
      {
        "id": "e16_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": "Ingest the ID-document images, selfie/liveness capture and applicant metadata from the onboarding intake",
        "position": {
          "x": 0,
          "y": 120
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "kyc-vendor",
          "ocr",
          "doc-capture-sdk"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "parallel",
        "human": null,
        "id": "verify-split",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Fan out the independent document and liveness verification work-streams",
        "position": {
          "x": 0,
          "y": 240
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "analyzer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "doc-auth",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Authenticate the document: MRZ/barcode parse, template and security-feature checks, tamper/photoshop detection",
        "position": {
          "x": 0,
          "y": 360
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "doc-auth-engine",
          "mrz-parser",
          "tamper-detect"
        ]
      },
      {
        "agent": "analyzer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "liveness-match",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Score liveness (PAD), run face-match between selfie and document portrait, and screen for deepfake/injection artifacts",
        "position": {
          "x": 0,
          "y": 480
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "liveness-pad",
          "face-match",
          "deepfake-detect"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "parallel",
        "human": null,
        "id": "verify-merge",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Consolidate the document, liveness and face-match signals",
        "position": {
          "x": 0,
          "y": 600
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "reviewer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "adjudicate",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Adjudicate: fuse the document + liveness + match signals against policy and draft a decision rationale",
        "position": {
          "x": 0,
          "y": 720
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "medium",
        "tools": [
          "decision-policy",
          "case-mgmt"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": null,
        "gateway": "exclusive",
        "human": null,
        "id": "risk-gateway",
        "interrupt_before": false,
        "kind": "gateway",
        "label": "Clean authentic, live, matching pass?",
        "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-approve",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Clean pass: record the auto-approval with its documented rationale and audit trail as a reversible disposition on the case — no customer-denying action and no irreversible commit on this branch",
        "position": {
          "x": 0,
          "y": 960
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "decision-policy",
          "case-mgmt"
        ]
      },
      {
        "agent": "analyzer",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "stage",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Ambiguous / deepfake-suspect / synthetic-identity: stage the case, force enhanced verification and assemble the evidence pack for officer review",
        "position": {
          "x": 0,
          "y": 1080
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "medium",
        "tools": [
          "doc-auth-engine",
          "deepfake-detect",
          "case-mgmt"
        ]
      },
      {
        "agent": null,
        "confidential": false,
        "gate": "gate:fraud-officer-signoff",
        "gateway": null,
        "human": "Fraud & Identity Operations Officer",
        "id": "officer-signoff",
        "interrupt_before": true,
        "kind": "gate",
        "label": "A fraud/ops officer reviews and signs every suspected-fraud, synthetic-identity or deepfake case and every final REJECT denying a customer access",
        "position": {
          "x": 0,
          "y": 1200
        },
        "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": "Officer decision?",
        "position": {
          "x": 0,
          "y": 1320
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "gateway",
        "tools": []
      },
      {
        "agent": "submit",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "commit",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Commit the verification decision to the onboarding system: approve, or apply the signed REJECT and emit the adverse-action record",
        "position": {
          "x": 0,
          "y": 1440
        },
        "reversible": false,
        "sla": null,
        "sla_spec": null,
        "tier": "high",
        "tools": [
          "kyc-vendor",
          "core-onboarding",
          "case-mgmt"
        ]
      },
      {
        "agent": "monitor",
        "confidential": false,
        "gate": null,
        "gateway": null,
        "human": null,
        "id": "monitor",
        "interrupt_before": false,
        "kind": "agent",
        "label": "Monitor decision SLAs and auto-approve precision, log every rationale for audit, and route re-submissions and appeals back into the queue",
        "position": {
          "x": 0,
          "y": 1560
        },
        "reversible": true,
        "sla": null,
        "sla_spec": null,
        "tier": "low",
        "tools": [
          "case-mgmt",
          "audit-log"
        ]
      },
      {
        "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": "6a845a9bc036a40ec705dfa5ea7f6945f7099495a10b0416ff61ddee92d4059a",
  "name": "Document & liveness verification autopilot",
  "slug": "doc-liveness-adjudication",
  "source": "example",
  "version": null,
  "violations": []
}
