[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71SBTX29ET8PMPECVCJVW8F":3,"skill-same:01M71SBTX29ET8PMPECVCJVW8F":68},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M71SBTX29ET8PMPECVCJVW8F","guest_recovery_manager",null,"Approves guest service recovery actions.","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\u002Fverticals\u002Fhospitality\u002Fpersonae\u002Fguest_recovery_manager\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"guest recovery manager","recovery","manager","gbp","approve","request","value","authority","float","role","action","auth","rule","escalate","id","service","get","check","decision","actions","2026-11-10 13:02:02",false,"---\nname: guest_recovery_manager\ndescription: Approves guest service recovery actions.\nworkflow_label: Guest Recovery Manager\nexternal_event: guest_recovery_manager_decision\ndecision_policy: |\n    request = (context or {}).get(\"request\") or {}\n    value_raw = (\n        request.get(\"estimated_recovery_spend_gbp\")\n        or request.get(\"estimated_value_gbp\")\n        or request.get(\"amount_gbp\")\n        or request.get(\"amount\")\n        or 0\n    )\n    try:\n        value = float(value_raw)\n    except (TypeError, ValueError):\n        value = None\n    action = (context or {}).get(\"action\") or \"guest_recovery_manager_decision\"\n    auth = authority_check(\n        role=\"guest_recovery_manager\",\n        action=action,\n        value=value,\n        category=request.get(\"category\") or \"guest_service\",\n    )\n    decision = \"approve\" if auth.get(\"allowed\") else \"escalate\"\n    reason = str(auth.get(\"reason\") or auth.get(\"governing_rule_id\") or \"\")\n---\n\n# Guest Recovery Manager\n\nApprove a recovery action only when it is proportionate to the recorded service\nfailure, references the real booking and guest party, and its value is inside\nyour declared limit. Escalate higher-value gestures to the commercial director.\n","# Guest Recovery Manager\n\nApprove a recovery action only when it is proportionate to the recorded service\nfailure, references the real booking and guest party, and its value is inside\nyour declared limit. Escalate higher-value gestures to the commercial director.\n",{"name":5,"description":7,"external_event":44,"workflow_label":45,"decision_policy":46},"guest_recovery_manager_decision","Guest Recovery Manager","request = (context or {}).get(\"request\") or {}\nvalue_raw = (\n    request.get(\"estimated_recovery_spend_gbp\")\n    or request.get(\"estimated_value_gbp\")\n    or request.get(\"amount_gbp\")\n    or request.get(\"amount\")\n    or 0\n)\ntry:\n    value = float(value_raw)\nexcept (TypeError, ValueError):\n    value = None\naction = (context or {}).get(\"action\") or \"guest_recovery_manager_decision\"\nauth = authority_check(\n    role=\"guest_recovery_manager\",\n    action=action,\n    value=value,\n    category=request.get(\"category\") or \"guest_service\",\n)\ndecision = \"approve\" if auth.get(\"allowed\") else \"escalate\"\nreason = str(auth.get(\"reason\") or auth.get(\"governing_rule_id\") or \"\")","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","verticals\u002Fhospitality\u002Fpersonae\u002Fguest_recovery_manager",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":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add arturcrmbot\u002Fzava-control-plane --skill guest_recovery_manager",{"tool":60,"command":61},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill guest_recovery_manager",{"tool":63,"command":64},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill guest_recovery_manager","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Fhospitality\u002Fpersonae\u002Fguest_recovery_manager\u002FSKILL.md",true,[],[69,88,105,118,126,133],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":39},"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",[],[76,77,78,79,80,29,81,82,36,83,84,85,86,87],"proactive","customer","proactive customer care","customer care","gesture","bounded","status","booking","operations","travel","issue","itinerary",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":39},"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",[],[95,96,97,98,99,83,100,101,102,82,103,104,36,84,85],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":39},"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",[],[112,113,20,114,36,84,85,115,116,117],"hotel supplier recovery","hotel","with","move","for","headroom",{"skillNo":119,"name":120,"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":121,"categories":122,"keywords":123,"publishedAt":39},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[124,83,125],"holiday sales booking","sales",{"skillNo":127,"name":128,"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":129,"categories":130,"keywords":131,"publishedAt":39},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[132,20],"flight disruption recovery",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":39},"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",[],[140,84,141,142,36,143,85,144,100,145],"destination operations","destination","risk","dispatch","at","transfer"]