[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RKNB7APF1SPDEC8XM83QQ":3,"skill-same:01M71RKNB7APF1SPDEC8XM83QQ":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M71RKNB7APF1SPDEC8XM83QQ","dpo",null,"Data Protection Officer; signs off on DPIAs and high-risk data processing assessments per GDPR Art. 35.","arturcrmbot\u002Fzava-control-plane","arturcrmbot","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F156445312?v=4","01M71R9QBEJ4ZSX5AXBGBYH82C","Artur Zielinski","01M71R9QCJSV19ESCAF5773TWH",1,"MIT","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fdpo\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"DPO","active","policy","for","domain","escalation","as","append","context","rate","at","gc","fresh","dpia","phase","gc review","actions","attributes","director","invalid","2026-11-10 13:02:02",false,"---\nname: dpo\ndescription: Data Protection Officer; signs off on DPIAs and high-risk data processing assessments per GDPR Art. 35.\nallowed-tools:\nworkflow_label: Legal — privacy\nexternal_event: dpia_signoff_decision\ndecision_policy: |\n    dpia = (context or {}).get(\"dpia\") or {}\n    risk = (dpia.get(\"risk_tier\") or \"low_risk\").lower()\n    geography = (dpia.get(\"geography\") or \"*\")\n\n    auth = authority_check(\n        role=\"dpo\",\n        action=\"privacy_dpia_signoff\",\n        category=risk,\n        geography=geography,\n    )\n\n    rule = str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\n    if risk not in {\"low_risk\", \"high_risk\"}:\n        decision = \"reject\"\n        reason = \"invalid risk tier on DPIA\"\n    elif auth.get(\"allowed\"):\n        decision = \"approve\"\n        reason = \"DPIA signed off per \" + rule + \" (\" + risk + \", \" + geography + \")\"\n    else:\n        decision = \"escalate\"\n        reason = \"DPIA outside DPO delegation per \" + rule + \" — GC review\"\nsummary_policy: |\n    # Phase B4 of autonomous-domain-insights v1.1: Data Protection Officer\n    # observes privacy-DPIA workflow load + recent privacy escalation rate\n    # + red-band vendor count. Proposes a 30-day data-sharing restriction\n    # when red-vendor count or recent privacy escalations exceed the\n    # configured thresholds.\n    #\n    # Synthetic-id pattern (mirrors hr_director Phase B1): there is no\n    # first-class \"Data\" \u002F \"Process\" node kind in the graph, so the\n    # proposed `decided_on` uses the synthetic id \"DATA:vendor-sharing\"\n    # against scope_kind=\"Organisation\". In production no Organisation row\n    # carries that id, so freeze-detection short-circuits until v1.2\n    # introduces a first-class node kind for data-sharing scopes. Tests\n    # pre-seed the Organisation row to exercise the skip path.\n    priv_rows = graph.query(\n        \"MATCH (w:Workflow) \"\n        \"WHERE w.workflow_type = 'privacy-dpia' \"\n        \"RETURN count(w) AS n\"\n    )\n    privacy_dpia_count = 0\n    for r in priv_rows:\n        privacy_dpia_count = int(r[\"n\"] or 0)\n\n    esc_rows = graph.query(\n        \"MATCH (d:Decision), (w:Workflow) \"\n        \"WHERE d.workflow_id = w.id \"\n        \"  AND w.workflow_type = 'privacy-dpia' \"\n        \"  AND d.verdict IN ['reject', 'escalate', 'request_changes'] \"\n        \"  AND d.decided_at > current_timestamp() - to_interval('90 days') \"\n        \"RETURN count(d) AS n\"\n    )\n    recent_privacy_escalations = 0\n    for r in esc_rows:\n        recent_privacy_escalations = int(r[\"n\"] or 0)\n\n    red_rows = graph.query(\n        \"MATCH (o:Organisation) \"\n        \"WHERE o.risk_band = 'red' \"\n        \"RETURN count(o) AS n\"\n    )\n    red_band_vendors = 0\n    for r in red_rows:\n        red_band_vendors = int(r[\"n\"] or 0)\n\n    restriction_id = \"DATA:vendor-sharing\"\n    active_restrictions = active_policies_for(\n        graph,\n        scope_kind=\"Organisation\",\n        scope_id=restriction_id,\n        verdict=\"freeze\",\n    )\n    active_data_restrictions = len(active_restrictions)\n    has_restriction = active_data_restrictions > 0\n\n    proposed_actions = []\n    trip = (red_band_vendors > 2) or (recent_privacy_escalations > 3)\n    if trip and not has_restriction:\n        proposed_actions.append({\n            \"id\": \"data-restrict-vendors\",\n            \"label\": \"Restrict data sharing with red-band vendors for 30 days\",\n            \"kind\": \"policy_set\",\n            \"verdict\": \"freeze\",\n            \"decided_on\": [restriction_id],\n            \"attributes\": {\"expiry_days\": 30, \"scope\": \"data\"},\n            \"reason\": (\n                str(red_band_vendors)\n                + \" red-band vendors active; \"\n                + str(recent_privacy_escalations)\n                + \" recent privacy escalations — restrict data flow\"\n                + \" until DPIA completes\"\n            ),\n        })\n\n    if len(proposed_actions) == 0:\n        headline = \"Privacy posture stable\"\n    else:\n        headline = (\n            \"Data-protection action recommended — \"\n            + str(red_band_vendors)\n            + \" red-band vendor(s)\"\n        )\n\n    body = (\n        str(red_band_vendors) + \" red-band vendor(s); \"\n        + str(recent_privacy_escalations)\n        + \" recent privacy escalation(s); \"\n        + str(privacy_dpia_count) + \" privacy-DPIA workflow(s) tracked\"\n    )\n\n    fp = (\n        \"dpo:(\"\n        + str(privacy_dpia_count) + \",\"\n        + str(recent_privacy_escalations) + \",\"\n        + str(red_band_vendors) + \",\"\n        + str(has_restriction)\n        + \")\"\n    )\n\n    summary = {\n        \"headline\": headline,\n        \"body\": body,\n        \"kpis\": {\n            \"privacy_dpia_count\": privacy_dpia_count,\n            \"recent_privacy_escalations\": recent_privacy_escalations,\n            \"red_band_vendors\": red_band_vendors,\n            \"active_data_restrictions\": active_data_restrictions,\n        },\n        \"proposed_actions\": proposed_actions,\n        \"fingerprint\": fp,\n    }\nvoice_render: |\n    k = summary.get(\"kpis\") or {}\n    red = k.get(\"red_band_vendors\", 0)\n    esc = k.get(\"recent_privacy_escalations\", 0)\n    if red == 0 and esc == 0:\n        body = \"Privacy posture is healthy. No red-band vendors active and no recent escalations on the DPIA pipeline.\"\n    else:\n        body = (\n            \"I'm flagging \" + str(red) + \" red-band vendor(s) and \"\n            + str(esc) + \" recent privacy escalation(s). I want to \"\n            \"restrict data sharing with the red vendors for 30 days \"\n            \"while we complete fresh DPIAs. This isn't theatre — these \"\n            \"are the vendors handling regulated data flows.\"\n        )\npersonality:\n  risk_appetite: balanced\n  thoroughness: medium\n  escalation_style: standard\n---\n\n# dpo\n\nYou are the **Data Protection Officer** for the **Legal — privacy** workflow.\n\n## Decision policy\n\nSign off on low-risk DPIAs without escalation. High-risk DPIAs route through DPO + GC + (CISO outside EMEA). EMEA high-risk follows the Art. 35 path with DPO + GC.\n\nBands in `data\u002Fsynthetic\u002Fauthority\u002Fmatrix.json` (`DPIA-001`, `DPIA-002`, `DPIA-003-EMEA`).\n\n## Summary policy\n\nOn every insight cadence tick the DPO observes the privacy-DPIA\nworkflow population, the recent escalation rate on those workflows\n(`reject` \u002F `escalate` \u002F `request_changes` verdicts in the last\n90 days), and the count of `Organisation` rows whose `risk_band` is\n`red`. When red-band vendors exceed 2 OR recent privacy escalations\nexceed 3, the DPO proposes a `policy_set` action labelled\n\"Restrict data sharing with red-band vendors for 30 days\" — unless an\nactive freeze policy on the synthetic id `DATA:vendor-sharing` already\ncovers the same scope.\n\nThe fingerprint is a deterministic tuple-string\n`dpo:(privacy_count, escalations, red_count, has_restriction)` so the\ncadence loop only writes a new Insight when one of the four observable\ninputs changes.\n\nKnown limitation: there is no first-class node kind for data-sharing\nscopes in v1.1, so `decided_on` uses `\"DATA:vendor-sharing\"` against\n`scope_kind=\"Organisation\"`. In production no Organisation row carries\nthat id, so freeze detection short-circuits until v1.2 introduces a\nfirst-class data \u002F process node kind.\n\n## When this fires\n\nThe orchestrator parks at the DPIA gate carrying `context.dpia` (with `risk_tier`, `geography`, `processing_summary`).\n\n## How a real human resolves the same gate\n\nWhen `dpo` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open. The real DPO resolves it via the privacy console.\n","# dpo\n\nYou are the **Data Protection Officer** for the **Legal — privacy** workflow.\n\n## Decision policy\n\nSign off on low-risk DPIAs without escalation. High-risk DPIAs route through DPO + GC + (CISO outside EMEA). EMEA high-risk follows the Art. 35 path with DPO + GC.\n\nBands in `data\u002Fsynthetic\u002Fauthority\u002Fmatrix.json` (`DPIA-001`, `DPIA-002`, `DPIA-003-EMEA`).\n\n## Summary policy\n\nOn every insight cadence tick the DPO observes the privacy-DPIA\nworkflow population, the recent escalation rate on those workflows\n(`reject` \u002F `escalate` \u002F `request_changes` verdicts in the last\n90 days), and the count of `Organisation` rows whose `risk_band` is\n`red`. When red-band vendors exceed 2 OR recent privacy escalations\nexceed 3, the DPO proposes a `policy_set` action labelled\n\"Restrict data sharing with red-band vendors for 30 days\" — unless an\nactive freeze policy on the synthetic id `DATA:vendor-sharing` already\ncovers the same scope.\n\nThe fingerprint is a deterministic tuple-string\n`dpo:(privacy_count, escalations, red_count, has_restriction)` so the\ncadence loop only writes a new Insight when one of the four observable\ninputs changes.\n\nKnown limitation: there is no first-class node kind for data-sharing\nscopes in v1.1, so `decided_on` uses `\"DATA:vendor-sharing\"` against\n`scope_kind=\"Organisation\"`. In production no Organisation row carries\nthat id, so freeze detection short-circuits until v1.2 introduces a\nfirst-class data \u002F process node kind.\n\n## When this fires\n\nThe orchestrator parks at the DPIA gate carrying `context.dpia` (with `risk_tier`, `geography`, `processing_summary`).\n\n## How a real human resolves the same gate\n\nWhen `dpo` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open. The real DPO resolves it via the privacy console.\n",{"name":5,"description":7,"personality":49,"voice_render":53,"allowed-tools":6,"external_event":54,"summary_policy":55,"workflow_label":56,"decision_policy":57},{"thoroughness":50,"risk_appetite":51,"escalation_style":52},"medium","balanced","standard","k = summary.get(\"kpis\") or {}\nred = k.get(\"red_band_vendors\", 0)\nesc = k.get(\"recent_privacy_escalations\", 0)\nif red == 0 and esc == 0:\n    body = \"Privacy posture is healthy. No red-band vendors active and no recent escalations on the DPIA pipeline.\"\nelse:\n    body = (\n        \"I'm flagging \" + str(red) + \" red-band vendor(s) and \"\n        + str(esc) + \" recent privacy escalation(s). I want to \"\n        \"restrict data sharing with the red vendors for 30 days \"\n        \"while we complete fresh DPIAs. This isn't theatre — these \"\n        \"are the vendors handling regulated data flows.\"\n    )\n","dpia_signoff_decision","# Phase B4 of autonomous-domain-insights v1.1: Data Protection Officer\n# observes privacy-DPIA workflow load + recent privacy escalation rate\n# + red-band vendor count. Proposes a 30-day data-sharing restriction\n# when red-vendor count or recent privacy escalations exceed the\n# configured thresholds.\n#\n# Synthetic-id pattern (mirrors hr_director Phase B1): there is no\n# first-class \"Data\" \u002F \"Process\" node kind in the graph, so the\n# proposed `decided_on` uses the synthetic id \"DATA:vendor-sharing\"\n# against scope_kind=\"Organisation\". In production no Organisation row\n# carries that id, so freeze-detection short-circuits until v1.2\n# introduces a first-class node kind for data-sharing scopes. Tests\n# pre-seed the Organisation row to exercise the skip path.\npriv_rows = graph.query(\n    \"MATCH (w:Workflow) \"\n    \"WHERE w.workflow_type = 'privacy-dpia' \"\n    \"RETURN count(w) AS n\"\n)\nprivacy_dpia_count = 0\nfor r in priv_rows:\n    privacy_dpia_count = int(r[\"n\"] or 0)\n\nesc_rows = graph.query(\n    \"MATCH (d:Decision), (w:Workflow) \"\n    \"WHERE d.workflow_id = w.id \"\n    \"  AND w.workflow_type = 'privacy-dpia' \"\n    \"  AND d.verdict IN ['reject', 'escalate', 'request_changes'] \"\n    \"  AND d.decided_at > current_timestamp() - to_interval('90 days') \"\n    \"RETURN count(d) AS n\"\n)\nrecent_privacy_escalations = 0\nfor r in esc_rows:\n    recent_privacy_escalations = int(r[\"n\"] or 0)\n\nred_rows = graph.query(\n    \"MATCH (o:Organisation) \"\n    \"WHERE o.risk_band = 'red' \"\n    \"RETURN count(o) AS n\"\n)\nred_band_vendors = 0\nfor r in red_rows:\n    red_band_vendors = int(r[\"n\"] or 0)\n\nrestriction_id = \"DATA:vendor-sharing\"\nactive_restrictions = active_policies_for(\n    graph,\n    scope_kind=\"Organisation\",\n    scope_id=restriction_id,\n    verdict=\"freeze\",\n)\nactive_data_restrictions = len(active_restrictions)\nhas_restriction = active_data_restrictions > 0\n\nproposed_actions = []\ntrip = (red_band_vendors > 2) or (recent_privacy_escalations > 3)\nif trip and not has_restriction:\n    proposed_actions.append({\n        \"id\": \"data-restrict-vendors\",\n        \"label\": \"Restrict data sharing with red-band vendors for 30 days\",\n        \"kind\": \"policy_set\",\n        \"verdict\": \"freeze\",\n        \"decided_on\": [restriction_id],\n        \"attributes\": {\"expiry_days\": 30, \"scope\": \"data\"},\n        \"reason\": (\n            str(red_band_vendors)\n            + \" red-band vendors active; \"\n            + str(recent_privacy_escalations)\n            + \" recent privacy escalations — restrict data flow\"\n            + \" until DPIA completes\"\n        ),\n    })\n\nif len(proposed_actions) == 0:\n    headline = \"Privacy posture stable\"\nelse:\n    headline = (\n        \"Data-protection action recommended — \"\n        + str(red_band_vendors)\n        + \" red-band vendor(s)\"\n    )\n\nbody = (\n    str(red_band_vendors) + \" red-band vendor(s); \"\n    + str(recent_privacy_escalations)\n    + \" recent privacy escalation(s); \"\n    + str(privacy_dpia_count) + \" privacy-DPIA workflow(s) tracked\"\n)\n\nfp = (\n    \"dpo:(\"\n    + str(privacy_dpia_count) + \",\"\n    + str(recent_privacy_escalations) + \",\"\n    + str(red_band_vendors) + \",\"\n    + str(has_restriction)\n    + \")\"\n)\n\nsummary = {\n    \"headline\": headline,\n    \"body\": body,\n    \"kpis\": {\n        \"privacy_dpia_count\": privacy_dpia_count,\n        \"recent_privacy_escalations\": recent_privacy_escalations,\n        \"red_band_vendors\": red_band_vendors,\n        \"active_data_restrictions\": active_data_restrictions,\n    },\n    \"proposed_actions\": proposed_actions,\n    \"fingerprint\": fp,\n}\n","Legal — privacy","dpia = (context or {}).get(\"dpia\") or {}\nrisk = (dpia.get(\"risk_tier\") or \"low_risk\").lower()\ngeography = (dpia.get(\"geography\") or \"*\")\n\nauth = authority_check(\n    role=\"dpo\",\n    action=\"privacy_dpia_signoff\",\n    category=risk,\n    geography=geography,\n)\n\nrule = str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\nif risk not in {\"low_risk\", \"high_risk\"}:\n    decision = \"reject\"\n    reason = \"invalid risk tier on DPIA\"\nelif auth.get(\"allowed\"):\n    decision = \"approve\"\n    reason = \"DPIA signed off per \" + rule + \" (\" + risk + \", \" + geography + \")\"\nelse:\n    decision = \"escalate\"\n    reason = \"DPIA outside DPO delegation per \" + rule + \" — GC review\"\n","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","api\u002Fserver\u002Fpersonae\u002Fdpo",2,"https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane","https:\u002F\u002Fgithub.com\u002Farturcrmbot","2026-09-28 17:47:06",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add arturcrmbot\u002Fzava-control-plane --skill dpo",{"tool":71,"command":72},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill dpo",{"tool":74,"command":75},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill dpo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fdpo\u002FSKILL.md",true,[],[80,101,118,131,139,146],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":44},"01M71SJECD4KXSSJV1B0HSY4T4","proactive-customer-care","Proactively notifies and, where warranted, extends a small bounded goodwill gesture to a customer whose itinerary materially changed.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fproactive-customer-care\u002FSKILL.md",[],[87,88,89,90,91,92,93,94,95,96,97,98,99,100],"proactive","customer","proactive customer care","customer care","gesture","action","bounded","status","check","booking","operations","travel","issue","itinerary",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":44},"01M71SJ9VHGNNTB6452H1KRZD6","payment-exception","Resolves a failed balance payment by retrying it to complete the booking, or releasing the booking's inventory when retry is not viable.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fpayment-exception\u002FSKILL.md",[],[108,109,110,111,112,96,113,114,115,94,116,117,95,97,98],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":44},"01M71SJ6S6XREB0J6CCVCSFZ9E","hotel-supplier-recovery","Restores accommodation for a shortfall-hit hotel allotment by moving contracted rooms from a donor allotment with headroom, resolving the reported supplier shortfall.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fhotel-supplier-recovery\u002FSKILL.md",[],[125,126,127,128,95,97,98,129,27,130],"hotel supplier recovery","hotel","recovery","with","move","headroom",{"skillNo":132,"name":133,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":44},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[137,96,138],"holiday sales booking","sales",{"skillNo":140,"name":141,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":44},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[145,127],"flight disruption recovery",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":44},"01M71SHYPK8HNQ80C9XAWSER53","destination-operations","Dispatches a replacement resort transfer when an arrival is at risk, rebinding any travellers on the at-risk transfer to the replacement.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fdestination-operations\u002FSKILL.md",[],[153,97,154,155,95,156,98,34,113,157],"destination operations","destination","risk","dispatch","transfer"]