{
  "format": "epicdraw-workspace",
  "version": 1,
  "charts": [
    {
      "id": "blog-product-kanban-handoffs-example",
      "name": "Product Kanban and handoff checks",
      "nodes": [
        {
          "id": "title",
          "type": "text",
          "text": "Product Kanban · what must be true before a card moves?",
          "x": 40,
          "y": 20,
          "w": 2500,
          "h": 90,
          "fill": "none",
          "font": "sans",
          "fs": 44,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14700
        },
        {
          "id": "fiction",
          "type": "text",
          "text": "FICTIONAL BOOKING TEAM · Example policies and snapshot. People, evidence and dates need confirming.",
          "x": 40,
          "y": 130,
          "w": 2500,
          "h": 70,
          "fill": "none",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14701
        },
        {
          "id": "scope",
          "type": "round",
          "text": "USER TASK · Choose a suitable booking and identify the confirmed time after a change.\nThis board includes discovery and delivery work. Ready is not started; Doing and Review are started.\nDone means released with the agreed checks recorded. A review approval alone is not a release.",
          "x": 40,
          "y": 240,
          "w": 2500,
          "h": 220,
          "fill": "white",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14702
        },
        {
          "id": "ready-title",
          "type": "round",
          "text": "READY",
          "x": 40,
          "y": 520,
          "w": 550,
          "h": 120,
          "fill": "mint",
          "font": "sans",
          "fs": 38,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14703
        },
        {
          "id": "ready-policy",
          "type": "round",
          "text": "Entry: bounded task and user need.\nExit: next action, accepted owner,\nreview check and dependencies clear;\nstarted-work capacity available.",
          "x": 40,
          "y": 680,
          "w": 550,
          "h": 350,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14704
        },
        {
          "id": "doing-title",
          "type": "round",
          "text": "DOING",
          "x": 690,
          "y": 520,
          "w": 550,
          "h": 120,
          "fill": "mint",
          "font": "sans",
          "fs": 38,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14705
        },
        {
          "id": "doing-policy",
          "type": "round",
          "text": "Entry: Ready exit conditions met.\nExit: reviewable work and check\nevidence available; review requested.\nBlocked cards stay here and count.",
          "x": 690,
          "y": 680,
          "w": 550,
          "h": 350,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14706
        },
        {
          "id": "review-title",
          "type": "round",
          "text": "REVIEW",
          "x": 1340,
          "y": 520,
          "w": 550,
          "h": 120,
          "fill": "mint",
          "font": "sans",
          "fs": 38,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14707
        },
        {
          "id": "review-policy",
          "type": "round",
          "text": "Entry: work, evidence and check ready.\nExit: agreed checks met, handoff\naccepted and release evidence recorded.\nWaiting or rework stays visible.",
          "x": 1340,
          "y": 680,
          "w": 550,
          "h": 350,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14708
        },
        {
          "id": "done-title",
          "type": "round",
          "text": "DONE",
          "x": 1990,
          "y": 520,
          "w": 550,
          "h": 120,
          "fill": "mint",
          "font": "sans",
          "fs": 38,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14709
        },
        {
          "id": "done-policy",
          "type": "round",
          "text": "Entry: released and agreed checks\nrecorded; no open acceptance work.\nExit: archive, or reopen with a reason\nand an explicit next action.",
          "x": 1990,
          "y": 680,
          "w": 550,
          "h": 350,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14710
        },
        {
          "id": "ready-card",
          "type": "round",
          "text": "C · Setup guidance\nReady · not started\nScope: explain the first setup choice.\nNext check / accepted owner: [blank]\nNo delivery date agreed.",
          "x": 40,
          "y": 1090,
          "w": 550,
          "h": 310,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14711
        },
        {
          "id": "doing-card",
          "type": "round",
          "text": "A · Booking-change result\nDoing · BLOCKED\nWaiting: save / failure contract.\nCurrent owner: [confirm]\nNext action: trace behaviour.",
          "x": 690,
          "y": 1090,
          "w": 550,
          "h": 310,
          "fill": "peach",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14712
        },
        {
          "id": "review-card",
          "type": "round",
          "text": "B · Availability labels\nReview · waiting for a check\nReview: can guests pick a valid time?\nCurrent owner / reviewer: [confirm]\nEvidence and release: [blank]",
          "x": 1340,
          "y": 1090,
          "w": 550,
          "h": 310,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14713
        },
        {
          "id": "done-card",
          "type": "round",
          "text": "No completed example card.\nA move to Review is not a release.\nRecord agreed check and release\nevidence before using Done.",
          "x": 1990,
          "y": 1090,
          "w": 550,
          "h": 310,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14714
        },
        {
          "id": "wip",
          "type": "round",
          "text": "EXAMPLE WIP POLICY · Doing + Review combined: limit 2; current count 2, including blocked and waiting cards.\nReady does not count as started. Done is finished. Do not pull C while the started-work limit is full.\nThis is an illustrative policy, not a recommended team capacity. Actual limits / exception policy: [agree].",
          "x": 40,
          "y": 1460,
          "w": 2500,
          "h": 230,
          "fill": "sun",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14715
        },
        {
          "id": "handoff-review",
          "type": "round",
          "text": "A · BLOCKED WORK REVIEW\nCheck: identify the confirmed booking after a change, including a save failure.\nBlocker: booking-record save / failure behaviour is unresolved.\nNext action: trace the contract with engineering.\nExpected output: behaviour notes and remaining questions.\nConfirm current owner and accepted action owner: [blank]\nCheck-back date / evidence / decision: [blank]\nResume when the behaviour supports the agreed review check.\nKeep A in Doing and within the started-work count while blocked.",
          "x": 40,
          "y": 1760,
          "w": 1200,
          "h": 790,
          "fill": "white",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14716
        },
        {
          "id": "worksheet",
          "type": "round",
          "text": "HANDOFF RECORD\nCard / bounded scope / user task: [blank]\nCurrent state / current owner: [blank]\nEntry / exit conditions: [blank]\nReview check / evidence / reviewer: [blank]\nBlocker / needed decision: [blank]\nNext action / accepted owner / check-back date: [blank]\nReceiving person / capacity / accepted handoff: [blank]\nRelease and acceptance evidence: [blank]\nState change / reason / date: [blank]",
          "x": 1340,
          "y": 1760,
          "w": 1200,
          "h": 790,
          "fill": "white",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 14717
        }
      ],
      "edges": [],
      "paper": "white",
      "pattern": "none",
      "ink": "navy",
      "wobble": 0.25
    }
  ],
  "cur": 0
}
